:root {
  color-scheme: light;
  --ink: #1c2e27;
  --muted: #65736c;
  --green: #1c4b38;
  --green-dark: #183d30;
  --lime: #c2e86f;
  --paper: #f6f7f1;
  --white: #fff;
  --line: #dfe5dc;
  --font-body: "DM Sans", sans-serif;
  --font-display: "Manrope", sans-serif;
  --header-height: 82px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 12px); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-body); font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.skip-link { position: fixed; z-index: 99; top: 8px; left: 8px; padding: 10px 16px; transform: translateY(-150%); color: white; background: var(--green); border-radius: 4px; }
.skip-link:focus { transform: translateY(0); }
.site-header { height: var(--header-height); display: flex; align-items: center; justify-content: space-between; padding: 0 7.1%; background: var(--paper); position: sticky; top: 0; z-index: 50; box-shadow: 0 1px 0 rgba(28,46,39,.1); }
.brand { display: inline-flex; align-items: center; gap: 9px; font: 800 23px/1 var(--font-display); letter-spacing: -1.4px; }
.brand-light { color: #87928b; font-weight: 500; letter-spacing: -1.1px; }
.brand-mark { display: grid; width: 25px; height: 25px; grid-template-columns: repeat(2, 1fr); gap: 2px; transform: rotate(-12deg); }
.brand-mark span { display: block; background: #6fa03e; border-radius: 3px; }
.brand-mark span:nth-child(2) { background: #a8d94e; }
.brand-mark span:nth-child(3) { background: #36704d; }
.brand-mark span:nth-child(4) { background: #84b83d; }
.main-nav { display: flex; gap: clamp(16px, 2.2vw, 32px); margin-left: auto; margin-right: 28px; }
.main-nav a { white-space: nowrap; }
.main-nav a, .mobile-menu a { font-size: 13px; font-weight: 600; color: #4a5b52; transition: color .2s; }
.main-nav a:hover, .mobile-menu a:hover { color: #75a43f; }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; padding: 0 22px; border: 0; border-radius: 4px; font-size: 13px; font-weight: 700; transition: transform .2s, background .2s; cursor: pointer; }
.button:hover { transform: translateY(-2px); }
.button-small { min-height: 42px; padding: 0 16px; gap: 14px; font-size: 12px; }
.button-dark { color: white; background: var(--green); }
.button-dark:hover { background: var(--green-dark); }
.button-primary { color: var(--ink); background: var(--lime); }
.button-primary:hover { background: #d0f185; }
.button-light { color: var(--green-dark); background: white; }
.menu-toggle, .mobile-menu { display: none; }

.hero { min-height: 634px; position: relative; overflow: hidden; display: grid; grid-template-columns: 49% 51%; padding: 68px 7.1% 74px; }
.hero-copy { align-self: center; position: relative; z-index: 1; padding-bottom: 5px; }
.eyebrow { margin: 0 0 20px; color: #597063; font-size: 11px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; }
.eyebrow-dot { display: inline-block; width: 8px; height: 7px; margin-right: 9px; border-radius: 50%; background: #8bb843; vertical-align: 1px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-display); }
.hero h1 { margin: 0 0 22px; font-size: clamp(54px, 6vw, 79px); font-weight: 600; line-height: 1.03; letter-spacing: -5px; }
.hero h1 span, .process-intro h2 span, .simulator-intro h2 span { color: #7da644; }
.hero-intro { max-width: 416px; margin-bottom: 28px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.hero-actions { display: flex; align-items: center; gap: 25px; }
.text-link { color: var(--ink); font-size: 13px; font-weight: 700; }
.text-link span { margin-left: 8px; color: #79a344; }
.hero-proof { display: flex; align-items: center; gap: 13px; margin-top: 48px; }
.proof-avatars { display: flex; align-items: center; }
.proof-avatars span { width: 30px; height: 30px; display: grid; place-items: center; margin-right: -7px; border: 2px solid var(--paper); border-radius: 50%; color: white; background: #789155; font-size: 12px; font-weight: 700; }
.proof-avatars span:last-child { color: var(--green); background: #e2edcc; }
.hero-proof p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.hero-proof strong { color: var(--ink); font-size: 11px; }
.hero-visual { position: relative; min-height: 475px; margin: -20px -8% -12px -2%; overflow: hidden; background: #e8eddf; }
.sun-orbit { position: absolute; width: 430px; height: 430px; top: 10px; left: 50%; transform: translateX(-48%); border: 1px solid rgba(99,128,69,.17); border-radius: 50%; }
.sun { position: absolute; top: 60px; right: 22%; width: 82px; height: 82px; border-radius: 50%; background: #c5df7a; box-shadow: 0 0 0 16px rgba(197,223,122,.14); }
.house-scene { position: absolute; inset: 70px 5% 38px; }
.house { position: absolute; z-index: 2; left: 50%; bottom: 76px; width: 340px; transform: translateX(-50%); }
.roof { position: relative; z-index: 1; width: 0; height: 0; margin: auto; border-right: 190px solid transparent; border-bottom: 131px solid #344f40; border-left: 190px solid transparent; }
.house-body { position: relative; width: 283px; height: 160px; margin: -1px auto 0; background: #f4f0df; box-shadow: inset -24px 0 #e7e2cd; }
.solar-panels { position: absolute; z-index: 2; top: 19px; left: 52px; width: 210px; height: 85px; display: grid; grid-template-columns: repeat(3,1fr); grid-template-rows: repeat(2,1fr); gap: 3px; padding: 4px; transform: skewY(-29deg) rotate(1deg); transform-origin: top left; background: #274f52; border: 3px solid #d8e3bf; }
.solar-panels span { background: linear-gradient(135deg,#72989a,#416e72); border: 1px solid rgba(211,230,215,.35); }
.window { position: absolute; bottom: 38px; width: 48px; height: 54px; border: 5px solid #d9d4c2; background: #9fbcaf; }
.window-left { left: 30px; }.window-right { right: 24px; }
.door { position: absolute; left: 50%; bottom: 0; width: 43px; height: 75px; transform: translateX(-50%); background: #926d4f; }
.ground { position: absolute; bottom: 39px; left: 5%; right: 5%; height: 28px; border-radius: 50%; background: #b7c49d; }
.house-shadow { position: absolute; bottom: 35px; left: 15%; right: 15%; height: 35px; border-radius: 50%; background: rgba(64,84,61,.12); filter: blur(8px); }
.scene-tree { position: absolute; z-index: 3; bottom: 71px; width: 76px; height: 150px; }
.tree-one { left: 10%; }.tree-two { right: 8%; transform: scale(.78); transform-origin: bottom; }
.scene-tree i, .scene-tree b { position: absolute; bottom: 28px; left: 7px; width: 61px; height: 83px; border-radius: 48% 52% 45% 55%; background: #81986d; }
.scene-tree b { bottom: 67px; left: 21px; width: 43px; height: 55px; background: #97aa7b; }
.scene-tree:after { content: ""; position: absolute; bottom: 0; left: 35px; width: 11px; height: 42px; background: #997d5e; }
.hero-note { position: absolute; z-index: 4; display: flex; align-items: center; gap: 10px; padding: 12px 15px; color: #6a7767; background: rgba(255,255,255,.9); box-shadow: 0 8px 25px rgba(51,72,54,.08); font-size: 9px; line-height: 1.4; }
.hero-note strong { color: var(--ink); font-size: 11px; }
.note-top { top: 112px; left: 6%; }.note-bottom { right: 4%; bottom: 117px; }
.note-icon { width: 27px; height: 27px; display: grid; place-items: center; color: var(--green); background: #eaf1dc; border-radius: 50%; font-size: 14px; }
.note-sun { color: #92ae50; background: #f4f3dd; }
.visual-caption { position: absolute; right: 7%; bottom: 17px; color: #7a8778; font-size: 8px; font-weight: 700; letter-spacing: 1.4px; }
.visual-caption span { margin-right: 12px; color: #9aaf76; }
.hero-scroll { position: absolute; left: 7.1%; bottom: 24px; display: flex; align-items: center; gap: 10px; color: #7a877d; font-size: 8px; font-weight: 700; letter-spacing: 1.3px; }
.hero-scroll span { width: 25px; height: 1px; background: #91ad69; }

.section-pad { padding: 104px 10%; }
.about-section { background: #fff; }
.about-heading { margin-bottom: 44px; }
.about-heading .eyebrow { margin-bottom: 14px; }
.about-heading h2 { margin: 0; font-size: clamp(39px, 4vw, 52px); line-height: 1.12; font-weight: 600; letter-spacing: -2.6px; }
.about-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr); gap: clamp(32px, 5vw, 76px); align-items: start; }
.about-portrait { margin: 0; min-width: 0; }
.about-portrait img { display: block; width: 100%; height: auto; border-radius: 8px; }
.about-portrait figcaption { display: grid; gap: 4px; margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--line); }
.about-portrait figcaption strong { font: 600 20px/1.4 var(--font-display); }
.about-portrait figcaption span { color: var(--muted); font-size: 12px; letter-spacing: 1px; text-transform: uppercase; }
.about-copy { min-width: 0; }
.about-copy h3 { margin-bottom: 22px; font-size: clamp(28px, 3vw, 38px); line-height: 1.2; font-weight: 600; letter-spacing: -1.2px; }
.about-copy p { margin-bottom: 22px; color: var(--muted); font-size: 14px; line-height: 1.85; }
.about-copy p.about-intro { color: var(--green); font-size: 18px; line-height: 1.7; }
.about-copy strong { color: var(--ink); }
.about-copy p:last-child { margin-bottom: 0; }
@media (min-width: 1101px) and (max-width: 1280px) {
  .home-page .site-header { padding-right: 4%; padding-left: 4%; }
  .home-page .main-nav { gap: 14px; margin-right: 16px; }
}
@media (max-width: 720px) {
  .about-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .about-portrait { width: 100%; max-width: 420px; margin-inline: auto; }
  .about-heading { margin-bottom: 30px; }
}
.choice-section { background: #fff; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 50px; margin-bottom: 43px; }
.section-heading .eyebrow { margin-bottom: 14px; }
.section-heading h2, .process-intro h2, .simulator-intro h2 { margin: 0; font-size: clamp(39px, 4vw, 52px); line-height: 1.12; font-weight: 600; letter-spacing: -2.6px; }
.section-heading > p { max-width: 350px; margin: 0 3% 4px 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 19px; }
.choice-card { min-height: 285px; position: relative; overflow: hidden; display: flex; gap: 24px; padding: 34px 34px 30px; transition: transform .2s; }
.choice-card:hover { transform: translateY(-4px); }
.home-card { background: #e9f0df; }.business-card { color: white; background: #244d3a; }
.choice-icon { flex: 0 0 42px; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(42,74,51,.24); border-radius: 50%; color: var(--green); font-size: 22px; }
.business-card .choice-icon { border-color: rgba(255,255,255,.4); color: #d4e9a6; }
.choice-content { position: relative; z-index: 1; }
.card-kicker { color: #75866f; font-size: 9px; font-weight: 700; letter-spacing: 1.5px; }
.business-card .card-kicker { color: #b3ca9c; }
.choice-card h3 { margin: 15px 0 10px; font-size: 27px; line-height: 1.2; letter-spacing: -1px; font-weight: 600; }
.choice-card p { max-width: 340px; margin-bottom: 19px; color: #637169; font-size: 12px; line-height: 1.65; }
.business-card p { color: #c0cfc3; }
.card-link { color: var(--green); font-size: 11px; font-weight: 700; }
.card-link b { margin-left: 6px; color: #8bab57; }
.business-card .card-link { color: #e5f0d3; }
.choice-number { position: absolute; right: 20px; bottom: 0; color: rgba(44,82,53,.07); font: 800 115px/.9 var(--font-display); letter-spacing: -10px; }
.business-card .choice-number { color: rgba(255,255,255,.07); }

.solutions-section { background: var(--paper); border-top: 1px solid var(--line); }
.solutions-section .section-heading > p { max-width: 370px; margin-right: 0; }
.solutions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.solution-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: 8px; }
.solution-image { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #e5ebe3; }
.solution-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.solution-image-ecoflow img { object-fit: contain; background: #263137; }
.solution-image-huawei img { object-fit: contain; background: #dfe9ec; }
.solution-label { position: absolute; top: 16px; left: 16px; padding: 5px 11px; border-radius: 3px; color: var(--green-dark); background: #fff; font-size: 11px; font-weight: 700; }
.solution-content { flex: 1; display: flex; flex-direction: column; padding: 27px 25px 24px; }
.solution-content .card-kicker { margin: 0 0 14px; color: #597063; font-size: 9px; line-height: 1.6; letter-spacing: 1.1px; }
.solution-content h3 { margin: 0 0 16px; font: 600 clamp(21px, 1.9vw, 27px)/1.25 var(--font-display); letter-spacing: -.9px; }
.solution-content > p:not(.card-kicker) { margin-bottom: 25px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.solution-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); color: var(--green); font-size: 12px; font-weight: 700; }
.solution-link span { display: grid; place-items: center; flex: 0 0 30px; height: 30px; border-radius: 50%; background: #eff4e7; font-size: 17px; transition: background .2s; }
.solution-link:hover span { background: var(--lime); }
.solutions-services { margin-top: 56px; padding-top: 38px; border-top: 1px solid var(--line); }
.solutions-services-heading { max-width: 640px; margin-bottom: 30px; }
.solutions-services-heading .eyebrow { margin-bottom: 12px; }
.solutions-services-heading h3 { margin: 0 0 12px; font: 600 clamp(26px, 3vw, 34px)/1.2 var(--font-display); letter-spacing: -1px; }
.solutions-services-heading > p:last-child { margin-bottom: 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.solutions-services-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 44px; margin: 0; padding: 0; list-style: none; }
.solutions-services-list li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 14px; padding: 25px 0; border-bottom: 1px solid var(--line); }
.service-number { padding-top: 3px; color: #597063; font-size: 12px; font-weight: 700; }
.solutions-services-list h4 { margin: 0 0 8px; font: 600 18px/1.35 var(--font-display); letter-spacing: -.4px; }
.solutions-services-list p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.solutions-note { margin: 30px 0 0; text-align: center; color: var(--muted); font-size: 13px; }
.solutions-note a { display: inline-block; color: var(--green); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.solutions-section a:focus-visible, .main-nav a:focus-visible, .mobile-menu a:focus-visible { outline: 3px solid #81a847; outline-offset: 5px; }
.process-section { display: grid; grid-template-columns: .83fr 1.17fr; gap: 12%; align-items: center; background: #f2f4ec; }
.process-intro .eyebrow { margin-bottom: 18px; }
.process-intro h2 { margin-bottom: 20px; }
.process-intro > p:not(.eyebrow) { max-width: 350px; margin-bottom: 24px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.process-list { border-top: 1px solid #d7dfd4; }
.process-item { min-height: 94px; display: grid; grid-template-columns: 36px 1fr 35px; align-items: center; gap: 16px; border-bottom: 1px solid #d7dfd4; }
.process-index { align-self: start; padding-top: 29px; color: #7fa54c; font-size: 12px; font-weight: 700; }
.process-item h3 { margin: 0 0 3px; font-size: 15px; font-weight: 700; letter-spacing: -.3px; }
.process-item p { max-width: 400px; margin: 0; color: #718077; font-size: 14px; line-height: 1.6; }
.process-symbol { justify-self: end; color: #8eac60; font-size: 23px; }

.audience-section { min-height: 540px; display: grid; grid-template-columns: 1fr 1fr; background: #fff; }
.audience-reverse .audience-image { order: 2; }.audience-reverse .audience-copy { order: 1; }
.audience-image { position: relative; min-height: 500px; overflow: hidden; }
.home-image { background: #e7eddf; }
.image-stamp { position: absolute; z-index: 3; top: 13%; left: 13%; display: flex; flex-direction: column; gap: 9px; }
.image-stamp span { color: #657867; font-size: 10px; font-weight: 700; letter-spacing: 1.8px; }
.image-stamp strong { color: var(--green); font: 600 25px/1.25 var(--font-display); letter-spacing: -1px; }
.mini-sun { position: absolute; top: 20%; right: 20%; width: 75px; height: 75px; border-radius: 50%; background: #c8df8e; box-shadow: 0 0 0 15px rgba(200,223,142,.2); }
.mini-roof { position: absolute; bottom: 25%; left: 18%; width: 64%; height: 0; border-right: 180px solid transparent; border-bottom: 150px solid #34513e; border-left: 180px solid transparent; }
.mini-house { position: absolute; bottom: 8%; left: 25%; width: 50%; height: 20%; background: #eeeada; box-shadow: inset -30px 0 #dedbc8; }
.mini-house:before { content: ""; position: absolute; top: -105px; left: 15%; width: 68%; height: 45px; transform: skewY(-27deg); background: repeating-linear-gradient(90deg,#426d6d 0 3px,#71999a 3px 44px); border: 3px solid #dce8c9; }
.mini-house:after { content: ""; position: absolute; left: 45%; bottom: 0; width: 40px; height: 77px; background: #9d7857; }
.business-image { background: #e8eddf; }
.business-building { position: absolute; right: 11%; bottom: 14%; width: 76%; height: 45%; }
.building-roof { position: absolute; top: 0; left: -4%; width: 108%; height: 20%; transform: skew(-26deg); background: #47644b; }
.building-panels { position: absolute; z-index: 1; top: -4%; left: 5%; width: 79%; height: 15%; transform: skew(-26deg); background: repeating-linear-gradient(90deg,#426c70 0 3px,#688f91 3px 42px); border: 2px solid #d5e4c7; }
.building-base { position: absolute; bottom: 0; width: 100%; height: 84%; display: flex; justify-content: space-around; align-items: center; padding: 10% 8% 0; background: #f0eddf; box-shadow: inset -35px 0 #e0dece; }
.building-base i { width: 18%; height: 48%; background: #aac1b1; border: 5px solid #dad8c8; }
.business-sun { position: absolute; top: 28%; right: 17%; width: 65px; height: 65px; border-radius: 50%; background: #c6dd86; }
.audience-copy { align-self: center; max-width: 580px; padding: 75px 12%; }
.audience-copy .eyebrow { margin-bottom: 15px; }
.audience-copy h2 { margin-bottom: 16px; font-size: clamp(36px, 4vw, 48px); line-height: 1.15; font-weight: 600; letter-spacing: -2px; }
.audience-copy > p:not(.eyebrow) { margin-bottom: 19px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.check-list { display: grid; gap: 10px; margin: 0 0 25px; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 23px; color: #46564d; font-size: 12px; }
.check-list li:before { content: "✓"; position: absolute; left: 0; color: #7fa64c; font-weight: 700; }
.audience-copy .button { min-height: 46px; font-size: 11px; }

.simulator-section { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 9%; background: #f1f4ea; }
.simulator-intro .eyebrow { margin-bottom: 18px; }
.simulator-intro h2 { margin-bottom: 17px; font-size: clamp(37px, 4vw, 49px); }
.simulator-intro > p:not(.eyebrow) { max-width: 360px; margin-bottom: 26px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.simulator-promise { display: flex; align-items: center; gap: 12px; color: #647367; font-size: 12px; line-height: 1.6; }
.simulator-promise > span:first-child { width: 34px; height: 34px; display: grid; place-items: center; color: var(--green); background: #e1eacd; border-radius: 50%; font-size: 15px; }
.simulator-promise strong { color: var(--ink); font-size: 11px; }
.wizard-card { padding: 31px 34px 23px; background: white; box-shadow: 0 14px 45px rgba(35,60,42,.07); }
.wizard-top { display: flex; justify-content: space-between; gap: 20px; align-items: start; }
.wizard-overline { color: #87948a; font-size: 10px; font-weight: 700; letter-spacing: 1.5px; }
.wizard-step-label { margin: 3px 0 17px; font: 700 18px/1.4 var(--font-display); letter-spacing: -.4px; }
.wizard-count { padding-top: 4px; color: #7d9467; font-size: 12px; font-weight: 700; white-space: nowrap; }
.progress-track { height: 3px; margin-bottom: 24px; overflow: hidden; background: #e8ede3; }
.progress-track span { display: block; width: 16.66%; height: 100%; background: #94b951; transition: width .25s; }
.question-label { display: block; margin: 0 0 10px; color: #405248; font-size: 11px; font-weight: 700; }
.choice-options { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; }
.option-card { position: relative; min-height: 59px; display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid #e2e8df; color: #46584c; background: #fff; cursor: pointer; transition: border .15s, background .15s; font-size: 11px; line-height: 1.4; }
.option-card:hover { border-color: #9bb677; background: #fbfcf8; }
.option-card input { position: absolute; opacity: 0; pointer-events: none; }
.option-card:has(input:checked) { border-color: #6f9943; background: #f1f6e8; box-shadow: inset 0 0 0 1px #6f9943; }
.option-dot { flex: 0 0 17px; width: 17px; height: 17px; border: 1px solid #c8d2c5; border-radius: 50%; }
.option-card:has(input:checked) .option-dot { border: 5px solid #78a044; }
.field-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.form-field { display: flex; flex-direction: column; gap: 6px; color: #43554a; font-size: 12px; font-weight: 700; }
.form-field.full { grid-column: 1/-1; }
.form-field input, .form-field select { width: 100%; min-height: 43px; padding: 0 12px; border: 1px solid #dfe6dc; border-radius: 0; outline: none; color: var(--ink); background: #fff; font-size: 11px; }
.form-field input:focus, .form-field select:focus { border-color: #749a49; box-shadow: 0 0 0 2px rgba(116,154,73,.12); }
.solution-picker { position: relative; min-width: 0; font-weight: 400; }
.solution-picker summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 45px; padding: 10px 12px; border: 1px solid var(--line); color: var(--ink); background: #fff; font-size: 13px; list-style: none; cursor: pointer; }
.solution-picker summary::-webkit-details-marker { display: none; }
.solution-picker summary:focus-visible, .solution-picker-options input:focus-visible { outline: 2px solid #749a49; outline-offset: 3px; }
.solution-picker-arrow { flex-shrink: 0; font-size: 18px; line-height: 1; }
.solution-picker[open] .solution-picker-arrow { transform: rotate(180deg); }
.solution-picker-options { position: absolute; z-index: 15; top: calc(100% + 4px); left: 0; right: 0; max-height: 260px; overflow-y: auto; padding: 6px; border: 1px solid var(--line); background: #fff; box-shadow: 0 10px 26px #1c2e2720; }
.solution-picker-options label { display: flex; align-items: center; gap: 10px; padding: 10px 8px; font-size: 13px; line-height: 1.5; cursor: pointer; }
.solution-picker-options label:hover, .solution-picker-options label:has(input:checked) { background: #eff4e7; }
.solution-picker-options input { width: 17px; height: 17px; min-height: 0; margin: 0; padding: 0; flex-shrink: 0; accent-color: var(--green); }
.request-description { margin-top: 20px; }
.request-description textarea { width: 100%; min-height: 120px; padding: 12px; border: 1px solid var(--line); color: var(--ink); background: #fff; font: 400 13px/1.6 var(--font-body); resize: vertical; }
.request-description textarea:focus { outline: none; border-color: #749a49; box-shadow: 0 0 0 2px rgba(116,154,73,.12); }
.form-field input[aria-invalid="true"] { border-color: #a2372f; }
.field-error { color: #a2372f; font-size: 12px; font-weight: 400; line-height: 1.5; }
.field-error[hidden], .address-suggestions[hidden] { display: none; }
.address-search { position: relative; min-width: 0; }
.address-suggestions { position: absolute; z-index: 12; top: calc(100% + 4px); left: 0; right: 0; max-height: 250px; overflow-y: auto; margin: 0; padding: 5px; list-style: none; border: 1px solid var(--line); border-radius: 4px; background: #fff; box-shadow: 0 10px 26px #1c2e2720; }
.address-suggestions li { padding: 11px 10px; color: var(--ink); font-size: 12px; font-weight: 400; line-height: 1.5; cursor: pointer; overflow-wrap: anywhere; }
.address-suggestions li:hover, .address-suggestions li[aria-selected="true"] { background: #eff4e7; }
.address-status { margin: 14px 0 6px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.address-status:empty { margin: 0; }
.field-hint { margin-top: -3px; color: #7b887f; font-size: 9px; font-weight: 400; }
.consent-field { display: flex; align-items: start; gap: 9px; margin-top: 15px; color: #66756b; font-size: 9px; line-height: 1.55; }
.consent-field input { margin: 2px 0 0; accent-color: #628c3a; }
.consent-field a { color: var(--green); text-decoration: underline; }
.wizard-actions { display: flex; justify-content: space-between; align-items: center; margin-top: 23px; }
.wizard-actions[hidden] { display: none; }
.next-button { min-height: 45px; margin-left: auto; padding: 0 17px; font-size: 11px; }
.back-button { padding: 10px 0; border: 0; color: #607166; background: transparent; font-size: 12px; font-weight: 700; cursor: pointer; }
.back-button span { margin-right: 6px; }
.form-error { margin: 11px 0 0; color: #a2372f; font-size: 12px; }
.privacy-note { display: flex; align-items: center; gap: 7px; margin: 16px 0 0; padding-top: 13px; border-top: 1px solid #eef0eb; color: #89948c; font-size: 9px; }
.privacy-note span { color: #85a359; }
.wizard-success { padding: 20px 0 6px; }
.success-icon { width: 45px; height: 45px; display: grid; place-items: center; margin-bottom: 14px; color: var(--green); background: #edf4df; border-radius: 50%; font-size: 22px; }
.wizard-success h3 { margin-bottom: 8px; font-size: 21px; letter-spacing: -.7px; }
.wizard-success p { margin-bottom: 16px; color: #65746b; font-size: 11px; line-height: 1.7; }
.wizard-success .button { min-height: 44px; font-size: 11px; }
.wizard-send-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.review-edit-button { display: block; margin-bottom: 12px; }
.review-edit-button[hidden] { display: none; }
.review-edit-button:disabled { cursor: wait; opacity: .65; }
.wizard-success .request-send-status { margin: 14px 0 0; font-size: 13px; color: var(--green); }
.wizard-success .request-send-status.is-error { color: #a2372f; }
.request-send-status:empty { display: none; }
.wizard-send-actions button:disabled { cursor: default; opacity: .65; transform: none; }
.request-preview { margin: 0 0 20px; font-size: 13px; }
.request-preview summary { cursor: pointer; font-weight: 600; }
.request-preview pre { max-height: 320px; overflow: auto; padding: 16px; white-space: pre-wrap; overflow-wrap: anywhere; border: 1px solid var(--line); background: var(--paper); font: 400 13px/1.65 var(--font-body); }
.lead-request { margin-bottom: 20px; }
.wizard-success .restart-button { margin: 12px 0 0; padding-left: 0; }
.restart-button { margin-left: 13px; padding: 10px; border: 0; color: #607166; background: transparent; font-size: 12px; font-weight: 700; cursor: pointer; }

.closing-cta { min-height: 300px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; padding: 60px 12%; color: white; background: #1e4936; }
.closing-cta .eyebrow { margin-bottom: 12px; color: #b7cf9c; }
.closing-cta h2 { position: relative; z-index: 1; margin: 0; font-size: clamp(38px, 4.5vw, 54px); font-weight: 600; line-height: 1.12; letter-spacing: -2px; }
.closing-cta .button { position: relative; z-index: 1; font-size: 11px; }
.closing-orbit { position: absolute; top: -165px; right: 13%; width: 470px; height: 470px; border: 1px solid rgba(220,241,190,.14); border-radius: 50%; }
.orbit-two { top: -90px; right: 20%; width: 320px; height: 320px; }
.site-footer { padding: 48px 7.1% 24px; background: #183d30; color: #d6e0d4; }
.footer-main { display: grid; grid-template-columns: 1fr 1.25fr 1fr; gap: 40px; align-items: start; max-width: 1280px; margin-inline: auto; }
.footer-identity > p { margin: 18px 0 0; color: #b1c2b3; font-size: 13px; }
.footer-reviews-link { display: inline-block; margin-top: 16px; color: var(--lime); font-size: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.footer-reviews-link:hover { color: #fff; }
.footer-contacts { display: grid; gap: 17px; margin: 0; font-style: normal; }
.footer-contacts > a, .footer-email, .footer-address { display: flex; align-items: flex-start; gap: 14px; font-size: 13px; line-height: 1.7; }
.footer-contacts svg { flex: 0 0 20px; width: 20px; height: 20px; margin-top: 2px; color: var(--lime); }
.footer-contacts a:hover { color: var(--lime); }
.footer-social { justify-self: end; }
.footer-social > p { margin: 0 0 15px; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.footer-social-links { display: flex; flex-wrap: wrap; gap: 12px; }
.footer-social-links a { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px 12px; border: 1px solid #486653; border-radius: 4px; font-size: 12px; font-weight: 600; transition: color .2s, border-color .2s, background .2s; }
.footer-social-links a:hover { color: var(--lime); border-color: var(--lime); background: #214a39; }
.footer-social-links svg { flex: 0 0 22px; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 18px 30px; max-width: 1280px; margin: 36px auto 0; padding-top: 22px; border-top: 1px solid #3c5b49; }
.footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.footer-privacy { font-size: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.site-footer .cookie-settings-link { font-size: 12px; }
.footer-copy { color: #a6b8a9; font-size: 12px; text-align: right; }
.site-footer a:focus-visible, .site-footer button:focus-visible { outline: 3px solid var(--lime); outline-offset: 4px; }
.footer-brand { color: white; font-size: 19px; }.footer-brand .brand-light { color: #a9b9aa; }
.footer-brand .brand-mark { width: 21px; height: 21px; }
@media (max-width: 1100px) {
  .footer-main { grid-template-columns: 1fr 1.2fr; gap: 32px; }
  .footer-social { grid-column: 1 / -1; justify-self: start; }
  .footer-bottom { flex-wrap: wrap; }
}
.portfolio-main { min-height: calc(100vh - 178px); padding: 86px 10% 100px; background: #fff; }
.breadcrumbs { max-width: 1120px; margin: 0 auto 32px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 9px; margin: 0; padding: 0; list-style: none; color: #78867c; font-size: 12px; }
.breadcrumbs li + li::before { content: "/"; margin-right: 9px; color: #a2ad9d; }
.breadcrumbs a { text-decoration: underline; text-underline-offset: 2px; }
.portfolio-hero { max-width: 680px; margin: 0 auto; text-align: center; }
.portfolio-hero .eyebrow { margin-bottom: 14px; }
.portfolio-hero h1 { margin: 0 0 15px; font-size: clamp(48px, 6vw, 72px); font-weight: 600; line-height: 1.08; letter-spacing: -4px; }
.portfolio-hero > p:last-child { max-width: 530px; margin: 0 auto; color: var(--muted); font-size: 14px; line-height: 1.8; }
.portfolio-hero-actions { display: flex; align-items: center; justify-content: center; gap: 23px; margin-top: 25px; }
.portfolio-hero-actions .button { min-height: 46px; font-size: 11px; }
.portfolio-hero-image { width: min(100%, 820px); aspect-ratio: 16 / 7; margin: 35px auto 0; overflow: hidden; background: #e8eddf; }
.portfolio-hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.portfolio-listing { max-width: 1120px; margin: 72px auto 0; }
.portfolio-listing-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.portfolio-listing-heading h2, .related-projects > h2 { margin: 0; font-size: 27px; font-weight: 600; letter-spacing: -1px; }
.portfolio-listing-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.portfolio-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 15px; }
.portfolio-filter, .portfolio-page-button { min-height: 37px; padding: 0 13px; border: 1px solid var(--line); color: #4d5d52; background: white; font-size: 12px; font-weight: 700; cursor: pointer; }
.portfolio-filter:hover, .portfolio-filter.is-active, .portfolio-page-button[aria-current="page"] { border-color: var(--green); color: white; background: var(--green); }
.portfolio-results { min-height: 18px; margin: 0 0 14px; color: #76847a; font-size: 12px; }
.portfolio-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 20px; }
.realization-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid #e4e9e1; background: white; }
.realization-card[hidden] { display: none; }
.realization-card-image { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: #e8eddf; }
.realization-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s; }
.realization-card:hover .realization-card-image img { transform: scale(1.025); }
.realization-card-content { flex: 1; display: flex; align-items: flex-start; flex-direction: column; padding: 20px; }
.realization-card-content .eyebrow { min-height: 14px; margin-bottom: 8px; font-size: 8px; letter-spacing: 1.1px; }
.realization-card h2 { margin: 0 0 6px; font-size: 19px; line-height: 1.3; letter-spacing: -.5px; }
.realization-card h2 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.realization-location { margin-bottom: 10px; color: #718077; font-size: 12px; }
.realization-summary { margin-bottom: 12px; color: #526158; font-size: 11px; line-height: 1.7; }
.realization-facts { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 15px; padding: 0; list-style: none; }
.realization-facts li { padding: 4px 7px; color: #455a49; background: #eef3e6; font-size: 9px; }
.realization-card-content > .text-link { margin-top: auto; font-size: 12px; }
.portfolio-pagination { display: flex; justify-content: center; gap: 7px; margin-top: 30px; }
.portfolio-pagination[hidden] { display: none; }
.portfolio-empty { max-width: 680px; margin: 62px auto 0; padding: 45px 35px; border: 1px solid var(--line); text-align: center; background: var(--paper); }
.portfolio-empty-mark { width: 44px; height: 44px; display: grid; place-items: center; margin: 0 auto 16px; border-radius: 50%; color: var(--green); background: #e6eed8; font-size: 21px; }
.portfolio-empty h2 { margin-bottom: 9px; font-size: 22px; font-weight: 600; letter-spacing: -.6px; }
.portfolio-empty p { max-width: 425px; margin: 0 auto 20px; color: var(--muted); font-size: 12px; line-height: 1.75; }
.portfolio-empty .button { min-height: 45px; font-size: 12px; }
.project-main { padding-top: 50px; }
.project-detail { max-width: 940px; margin: 0 auto; }
.project-header { max-width: 820px; margin: 0 auto 42px; }
.project-header .eyebrow { margin-bottom: 10px; }
.project-header h1 { margin: 0 0 9px; font-size: clamp(38px, 5vw, 58px); line-height: 1.12; letter-spacing: -2.8px; }
.project-location { margin-bottom: 20px; color: #66766b; font-size: 12px; }
.project-cover { display: block; width: 100%; height: auto; max-height: 560px; object-fit: cover; background: #e8eddf; }
.project-lead { max-width: 720px; margin: 20px 0 0; color: #53635a; font-size: 15px; line-height: 1.8; }
.project-technical, .project-copy, .project-gallery, .related-projects { max-width: 820px; margin: 0 auto 42px; }
.project-detail h2 { margin: 0 0 16px; font-size: 26px; line-height: 1.3; letter-spacing: -.8px; }
.detail-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; }
.detail-fact { min-height: 82px; padding: 15px; border: 1px solid var(--line); background: #f8f9f5; }
.detail-fact dt { margin-bottom: 6px; color: #718077; font-size: 9px; }
.detail-fact dd { margin: 0; font: 700 14px/1.4 var(--font-display); overflow-wrap: anywhere; }
.detail-fact-product { display: grid; gap: 3px; }
.detail-fact-product span + span { color: #5e6e63; font: 500 11px/1.45 var(--font-body); }
.project-copy-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-width: 820px; margin: 0 auto 36px; }
.project-copy { min-width: 0; margin: 0; padding: 16px 18px; border: 1px solid var(--line); background: #f8f9f5; }
.project-copy-wide { grid-column: 1 / -1; }
.project-copy h2 { margin: 0 0 8px; color: var(--green-dark); font-size: 17px; line-height: 1.35; letter-spacing: -.3px; }
.project-copy p { margin: 0 0 8px; color: #58685e; font-size: 12px; line-height: 1.65; }
.project-copy p:last-child { margin-bottom: 0; }
.project-copy ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 14px; margin: 0; padding: 0; list-style: none; }
.project-copy li { position: relative; padding: 4px 0 4px 15px; color: #58685e; font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.project-copy li::before { position: absolute; top: 11px; left: 1px; width: 5px; height: 5px; border-radius: 50%; background: #86a95a; content: ""; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.gallery-grid figure { margin: 0; }
.gallery-grid a { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #e8eddf; }
.gallery-grid img { width: 100%; height: 100%; display: block; object-fit: cover; }
.gallery-grid figcaption { padding-top: 7px; color: #718077; font-size: 12px; }
.gallery-lightbox { width: min(1000px, calc(100vw - 32px)); max-width: none; max-height: calc(100vh - 32px); padding: 48px 16px 16px; border: 0; background: #14241b; }
.gallery-lightbox::backdrop { background: rgba(12, 20, 15, .86); }
.gallery-lightbox img { display: block; max-width: 100%; max-height: calc(100vh - 96px); width: auto; height: auto; margin: 0 auto; }
.gallery-lightbox [data-lightbox-close] { position: absolute; top: 10px; right: 12px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.45); color: white; background: transparent; font-size: 11px; cursor: pointer; }
.gallery-lightbox [data-lightbox-close] span { margin-left: 6px; font-size: 16px; }
.project-cta { margin: 54px 0; padding: 40px; color: white; background: var(--green-dark); }
.project-cta .eyebrow { color: #c0d7a5; }
.project-cta h2 { margin-bottom: 20px; font-size: 32px; }
.project-cta .button { min-height: 46px; font-size: 12px; }
.related-projects .portfolio-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.related-projects .realization-card-content { padding: 15px; }
.related-projects .realization-card h2 { font-size: 16px; }
.portfolio-main :focus-visible, .gallery-lightbox :focus-visible { outline: 3px solid #81a847; outline-offset: 3px; }

@media (max-width: 980px) {
  .site-header { padding: 0 5%; }.main-nav { gap: 20px; margin-right: 20px; }
  .hero { grid-template-columns: 1fr 1fr; padding-right: 5%; padding-left: 5%; }
  .hero h1 { font-size: 61px; }
  .hero-visual { margin-right: -10%; }
  .section-pad { padding-right: 7%; padding-left: 7%; }
  .solutions-grid { gap: 15px; }
  .solution-content { padding: 22px 18px; }
  .process-section { gap: 7%; }
  .audience-copy { padding-right: 8%; padding-left: 9%; }
  .simulator-section { gap: 5%; }
  .wizard-card { padding-right: 25px; padding-left: 25px; }
  .portfolio-main { padding-right: 7%; padding-left: 7%; }
  .portfolio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  :root { --header-height: 68px; }
  .site-header { padding: 0 6%; }
  .brand { font-size: 21px; }.brand-mark { width: 22px; height: 22px; }
  .main-nav, .header-cta { display: none; }
  .main-nav.portfolio-nav { display: flex; margin: 0 0 0 auto; }
  .menu-toggle { width: 42px; height: 42px; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 10px; border: 0; background: transparent; }
  .menu-toggle span { width: 22px; height: 2px; background: var(--green); }
  .mobile-menu { position: fixed; z-index: 49; top: var(--header-height); left: 0; right: 0; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; overscroll-behavior: contain; display: grid; gap: 0; padding: 8px 6% 16px; background: var(--paper); box-shadow: 0 12px 18px rgba(40,55,39,.1); }
  .mobile-menu[hidden] { display: none; }.mobile-menu a { padding: 12px 0; border-bottom: 1px solid #e2e7df; }
}
@media (max-width: 720px) {
  .hero { display: flex; flex-direction: column; padding: 54px 6% 56px; }
  .hero h1 { font-size: clamp(55px, 13vw, 75px); letter-spacing: -4px; }
  .hero-intro { max-width: 470px; font-size: 14px; }
  .hero-actions { flex-wrap: wrap; gap: 18px; }
  .hero-proof { margin-top: 30px; }
  .hero-visual { min-height: 400px; margin: 39px -6% -20px; }
  .house-scene { inset: 55px 2% 25px; }
  .house { transform: translateX(-50%) scale(.83); transform-origin: bottom center; }
  .sun-orbit { width: 350px; height: 350px; top: 20px; }
  .sun { width: 60px; height: 60px; top: 56px; right: 18%; }
  .note-top { top: 76px; left: 5%; }.note-bottom { right: 3%; bottom: 92px; }
  .hero-scroll { display: none; }
  .section-pad { padding: 75px 6%; }
  .section-heading { display: block; margin-bottom: 28px; }
  .section-heading h2, .process-intro h2, .simulator-intro h2 { font-size: 43px; }
  .section-heading > p { margin: 17px 0 0; }
  .choice-grid { grid-template-columns: 1fr; gap: 12px; }
  .solutions-grid { grid-template-columns: 1fr; gap: 24px; }
  .solutions-services { margin-top: 40px; padding-top: 30px; }
  .solutions-services-list { grid-template-columns: 1fr; }
  .solution-image { aspect-ratio: 4 / 3; }
  .solution-content { padding: 25px; }
  .solution-content h3 { font-size: 27px; }
  .solutions-note { margin-top: 25px; }
  .choice-card { min-height: 260px; padding: 27px 24px; gap: 17px; }
  .choice-card h3 { font-size: 25px; }
  .process-section { grid-template-columns: 1fr; gap: 35px; }
  .process-intro > p:not(.eyebrow) { max-width: 450px; }
  .process-item { grid-template-columns: 29px 1fr 25px; gap: 10px; }
  .audience-section { grid-template-columns: 1fr; }
  .audience-image { min-height: 350px; order: 1 !important; }
  .audience-copy { order: 2 !important; max-width: 100%; padding: 54px 7% 58px; }
  .audience-copy h2 { font-size: 40px; }
  .mini-roof { left: 15%; bottom: 25%; transform: scale(.8); transform-origin: bottom center; }
  .mini-house { bottom: 8%; }
  .simulator-section { grid-template-columns: 1fr; gap: 35px; }
  .simulator-intro > p:not(.eyebrow) { max-width: 490px; }
  .wizard-card { padding: 26px 21px 20px; }
  .closing-cta { min-height: 330px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 25px; padding: 55px 7%; }
  .closing-cta h2 { font-size: 45px; }
  .site-footer { padding: 36px 6% 24px; }
  .footer-main { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .footer-social { grid-column: auto; }
  .footer-bottom { margin-top: 28px; align-items: flex-start; flex-direction: column; gap: 18px; }
  .footer-copy { text-align: left; }
  .portfolio-main { min-height: calc(100vh - 178px); padding: 64px 6% 72px; }
  .portfolio-hero h1 { font-size: 54px; letter-spacing: -3px; }
  .portfolio-empty { margin-top: 40px; padding: 34px 22px; }
  .portfolio-empty h2 { font-size: 20px; }
  .portfolio-hero-actions { align-items: flex-start; flex-direction: column; gap: 14px; }
  .portfolio-hero-actions .text-link { padding: 6px 2px; }
  .portfolio-listing { margin-top: 50px; }
  .portfolio-listing-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
  .portfolio-grid, .related-projects .portfolio-grid { grid-template-columns: 1fr; }
  .detail-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-header h1 { font-size: 40px; letter-spacing: -2px; }
  .project-lead { font-size: 13px; }
  .project-detail h2 { font-size: 23px; }
  .project-copy-grid { grid-template-columns: 1fr; gap: 8px; }
  .project-copy-wide { grid-column: auto; }
  .project-copy { padding: 14px 16px; }
  .project-copy ul { grid-template-columns: 1fr; gap: 2px; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .project-cta { padding: 28px 22px; }
  .project-cta h2 { font-size: 27px; }
}
@media (max-width: 390px) {
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-visual { min-height: 350px; }
  .house { transform: translateX(-50%) scale(.72); }
  .choice-card { gap: 12px; padding-left: 18px; }
  .choice-icon { flex-basis: 34px; width: 34px; height: 34px; }
  .wizard-card { padding-right: 16px; padding-left: 16px; }
  .choice-options { gap: 7px; }
  .option-card { padding: 9px 8px; font-size: 12px; }
  .field-grid { grid-template-columns: 1fr; }
  .form-field.full { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.admin-body { min-height: 100vh; padding-bottom: 60px; background: #f4f6f0; }
.admin-shell { width: min(100% - 36px, 520px); margin: 0 auto; padding-top: 48px; }
.admin-shell > .brand { margin: 0 0 24px; }
.admin-panel { padding: 32px; border: 1px solid var(--line); background: white; }
.admin-panel h1, .admin-dashboard-heading h1 { margin: 0 0 12px; font-size: clamp(30px, 4vw, 42px); line-height: 1.13; letter-spacing: -1.8px; }
.admin-panel > p:not(.eyebrow), .admin-dashboard-heading p { color: var(--muted); font-size: 13px; line-height: 1.7; }
.admin-form { display: grid; gap: 18px; margin-top: 22px; }
.admin-form label { display: grid; gap: 6px; color: #34473c; font-size: 12px; font-weight: 700; }
.admin-form input:not([type="checkbox"]):not([type="file"]), .admin-form select, .admin-form textarea { width: 100%; min-height: 43px; padding: 10px 12px; border: 1px solid #d6ded5; border-radius: 3px; color: var(--ink); background: white; font: 400 14px/1.5 var(--font-body); }
.admin-form textarea { min-height: 90px; resize: vertical; }
.admin-form input[type="file"] { width: 100%; padding: 10px; border: 1px dashed #b7c4b4; background: #f8faf6; font-size: 12px; }
.admin-form input:focus-visible, .admin-form textarea:focus-visible, .admin-form select:focus-visible, .admin-form button:focus-visible, .admin-topbar a:focus-visible, .admin-topbar button:focus-visible { outline: 3px solid #81a847; outline-offset: 2px; }
.admin-form small { color: var(--muted); font-size: 11px; font-weight: 400; }
.admin-form fieldset { display: grid; gap: 17px; min-width: 0; margin: 0; padding: 20px; border: 1px solid var(--line); }
.admin-form legend { padding: 0 7px; color: var(--green); font: 700 16px/1.4 var(--font-display); }
.admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.admin-checkboxes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-form .admin-checkboxes label, .admin-form .admin-confirm { display: flex; align-items: flex-start; gap: 8px; font-weight: 500; line-height: 1.5; }
.admin-form input[type="checkbox"] { width: 17px; height: 17px; flex: 0 0 auto; margin: 1px 0 0; accent-color: var(--green); }
.admin-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.admin-actions .button { min-height: 46px; }
.admin-notice, .admin-success, .admin-error { padding: 12px 15px; border: 1px solid #cbd9c4; background: #f1f7e9; color: #345239; font-size: 13px; }
.admin-error { border-color: #e8c1bb; color: #872d22; background: #fff2ef; }
.admin-topbar { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px max(6%, calc((100% - 1120px) / 2)); background: white; }
.admin-topbar > div, .admin-topbar form { display: flex; align-items: center; gap: 16px; }
.admin-topbar > div > a, .admin-topbar button { color: var(--green); font-size: 12px; font-weight: 700; }
.admin-topbar form { margin: 0; }
.admin-topbar button { padding: 7px 10px; border: 1px solid var(--line); background: white; cursor: pointer; }
.admin-dashboard { width: min(100% - 36px, 1120px); margin: 46px auto 0; }
.admin-dashboard-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.admin-dashboard-heading > div { max-width: 650px; }
.admin-project-list { display: grid; gap: 10px; }
.admin-project-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; border: 1px solid var(--line); background: white; }
.admin-project-row h2 { margin: 6px 0 3px; font-size: 18px; }
.admin-project-row p { margin: 0; color: var(--muted); font-size: 11px; }
.admin-project-row > div:last-child { display: flex; align-items: center; gap: 15px; }
.admin-project-row .button { min-height: 38px; font-size: 11px; }
.admin-status { display: inline-block; padding: 3px 8px; color: #5f5542; background: #f2eddf; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; }
.admin-status.is-published { color: #31563a; background: #e7f0df; }
.admin-editor { max-width: 900px; margin: 0 auto; }
.admin-editor > .text-link { display: inline-block; margin-bottom: 25px; }
.admin-editor > p:not(.eyebrow) { max-width: 690px; }
.admin-existing-image { display: flex; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--line); font-size: 11px; }
.admin-existing-image img { width: 84px; height: 58px; object-fit: cover; background: #edf1e8; }
.admin-existing-image > span { flex: 1; }
.admin-form .admin-existing-image label { display: flex; align-items: center; gap: 6px; }
.admin-photo-slot { padding: 12px; border: 1px solid var(--line); }
.admin-photo-slot summary { color: var(--green); font-size: 12px; font-weight: 700; cursor: pointer; }
.admin-photo-slot[open] { display: grid; gap: 12px; }
.admin-delete { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); }
.admin-delete button { padding: 8px 0; border: 0; color: #9a3327; background: none; font-size: 12px; font-weight: 700; cursor: pointer; }
@media (max-width: 720px) {
  .admin-topbar { padding: 10px 6%; }
  .admin-topbar > div { gap: 10px; }
  .admin-dashboard { margin-top: 28px; }
  .admin-dashboard-heading, .admin-project-row { align-items: flex-start; flex-direction: column; }
  .admin-project-row { width: 100%; }
  .admin-project-row > div:last-child { flex-wrap: wrap; }
  .admin-panel { padding: 24px 18px; }
  .admin-form fieldset { padding: 16px 12px; }
}
@media (max-width: 430px) {
  .admin-grid, .admin-checkboxes { grid-template-columns: 1fr; }
  .admin-actions { flex-direction: column; align-items: stretch; }
  .admin-actions .button { width: 100%; }
  .admin-existing-image { flex-wrap: wrap; }
}

/* Scheda EP CUBE: aggiunta alla griglia esistente. */
.solution-image-epcube img { object-fit: contain; background: #f1f2ed; }
@media (min-width: 721px) {
  .solutions-grid:has(.solution-card-epcube) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
