:root{--ink:#17231e;--muted:#66736c;--cream:#f5f3eb;--paper:#fffefa;--green:#164f3b;--lime:#dff54a;--line:#dcded5;--danger:#a62c2c;--radius:1.4rem}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button,input,textarea{font:inherit}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.7rem}.site-header{height:76px;padding:0 clamp(1rem,5vw,5rem);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,254,250,.94);backdrop-filter:blur(12px);z-index:20}.brand{font-weight:800;display:flex;gap:.65rem;align-items:center}.sun{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--lime);color:var(--green)}nav{display:flex;gap:1.5rem;align-items:center;font-size:.95rem}.lang{border:1px solid var(--ink);padding:.35rem .65rem;border-radius:2rem;font-weight:700}.nav-toggle{display:none;border:0;background:transparent;font-size:1.5rem}.hero,.section,.page-head,.calculator-shell,.solar-layout{max-width:1240px;margin:auto}.hero{min-height:640px;padding:clamp(4rem,8vw,7rem) clamp(1.2rem,4vw,3rem);display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:3rem}.hero h1,.page-head h1{font-size:clamp(2.8rem,6vw,6rem);line-height:.96;letter-spacing:-.055em;margin:.7rem 0 1.3rem;max-width:900px}.hero p,.page-head p{font-size:clamp(1.05rem,1.8vw,1.3rem);color:var(--muted);max-width:720px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:800;color:var(--green)}.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}.button{display:inline-flex;border:1px solid var(--green);padding:.85rem 1.2rem;border-radius:3rem;font-weight:750;cursor:pointer;align-items:center;justify-content:center}.button.primary{background:var(--green);color:#fff}.button.primary:hover{background:#0e3e2d}.button.ghost{background:transparent;color:var(--green)}.button.light{background:var(--lime);border-color:var(--lime);color:var(--ink)}.hero-visual{position:relative;min-height:430px;background:linear-gradient(145deg,#effac0,#d9f0d5);border-radius:45% 45% 10% 45%;overflow:hidden}.orb{position:absolute;width:210px;height:210px;border-radius:50%;background:var(--lime);right:7%;top:8%;box-shadow:0 0 80px #f7ff9c}.panel-grid{position:absolute;left:8%;bottom:10%;width:80%;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;transform:perspective(700px) rotateX(58deg) rotateZ(-8deg)}.panel-grid i{height:85px;background:linear-gradient(135deg,#184f62,#0d2634);border:3px solid #d7e1d6;box-shadow:0 12px 24px #18352d40}.section{padding:clamp(3.5rem,7vw,6rem) clamp(1.2rem,4vw,3rem)}.section>h2,.dark h2{font-size:clamp(2rem,4vw,3.8rem);line-height:1.05;letter-spacing:-.04em;max-width:800px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.card{padding:1.6rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;min-height:260px;display:flex;flex-direction:column}.card h2,.card h3{font-size:1.45rem}.card p{color:var(--muted)}.card a{margin-top:auto;font-weight:700;color:var(--green)}.card-index{font-weight:800;color:#9ba69f}.card.featured{background:var(--lime)}.dark{background:var(--green);color:#fff;border-radius:var(--radius);display:flex;align-items:end;justify-content:space-between;gap:3rem;margin-top:2rem}.dark p{color:#d5e4dc;max-width:760px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:0;list-style:none}.steps li{border-top:1px solid var(--line);padding-top:1rem;display:flex;gap:1rem}.steps b{color:var(--green)}footer{padding:3rem clamp(1.2rem,7vw,7rem);background:var(--cream);display:flex;justify-content:space-between}footer div:last-child{display:flex;flex-direction:column;gap:.5rem}.page-head{padding:clamp(4rem,8vw,7rem) clamp(1.2rem,4vw,3rem) 3rem}.page-head.compact h1{font-size:clamp(2.6rem,5vw,4.5rem)}.page-head .back{display:block;margin-bottom:2rem;color:var(--green)}.two-col{display:grid;grid-template-columns:1.4fr .6fr;gap:3rem}.quote-card{padding:2rem;background:var(--cream);border-radius:var(--radius);display:flex;flex-direction:column;gap:1rem}.quote-card strong{font-size:2rem}.notice{padding:1rem;border-left:4px solid #e5a800;background:#fff8db}.calculator-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:1rem;padding:0 clamp(1.2rem,4vw,3rem) 6rem}.calculator-form,.lead-form,.admin-form,.login-card form{padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:1rem;background:#fff}.calculator-form label,.lead-form label,.admin-form label,.login-card label{display:grid;gap:.35rem;font-weight:700}.calculator-form input:not([type=checkbox]):not([type=range]),.lead-form input:not([type=checkbox]),.admin-form input:not([type=checkbox]),.admin-form textarea,.login-card input{width:100%;padding:.75rem;border:1px solid #aeb8b1;border-radius:.6rem;background:#fff}.calculator-form input[type=range]{width:100%;accent-color:var(--green)}label.check{display:flex;gap:.55rem;align-items:center;font-weight:500;cursor:pointer}label.check input[type=checkbox]{flex:0 0 auto;width:1.15rem;height:1.15rem;margin:0;accent-color:var(--green)}.or{text-align:center;color:var(--muted)}.result-card{border-radius:var(--radius);background:var(--green);color:#fff;padding:2rem;min-height:320px}.result-card>strong{font-size:clamp(2rem,4vw,4rem);display:block;line-height:1;margin:1rem 0}.result-card ul{padding:0;list-style:none}.result-card li{display:flex;justify-content:space-between;border-top:1px solid #ffffff30;padding:.7rem 0}.validation{color:var(--danger)}.solar-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:1rem;padding:0 clamp(1.2rem,4vw,3rem) 2rem}.map{height:540px;border-radius:var(--radius);background:var(--cream);overflow:hidden}.map-help{color:var(--muted);font-size:.9rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.result-wide{background:var(--cream);border-radius:var(--radius)}.big-number{font-size:clamp(2.5rem,6vw,5.5rem);line-height:1}.bars{height:260px;display:grid;grid-template-columns:repeat(12,1fr);align-items:end;gap:.5rem;margin-top:2rem}.bars div{height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center;font-size:.7rem}.bars i{width:100%;background:var(--green);border-radius:.3rem .3rem 0 0}.bars b{font-size:.65rem}.lead-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem}.admin-body{background:#f4f5f2}.admin-header{background:var(--ink);color:#fff;padding:1rem 3vw;display:flex;justify-content:space-between}.admin-header nav{gap:1rem}.admin-header form{display:inline}.admin-header button{background:none;color:#fff;border:0;cursor:pointer}.admin-main{max-width:1200px;margin:auto;padding:3rem 1.2rem}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:2rem 0}.metric-grid div{background:#fff;padding:2rem;border-radius:1rem}.metric-grid b{display:block;font-size:2.5rem}.metric-grid span{color:var(--muted)}.admin-title{display:flex;justify-content:space-between;align-items:center}.table-wrap{overflow:auto;background:#fff;border-radius:1rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.9rem;border-bottom:1px solid var(--line);vertical-align:top}.actions-cell{display:flex;gap:.4rem}.admin-form{max-width:900px}.login-card{max-width:460px;margin:10vh auto;background:#fff;padding:2rem;border-radius:var(--radius)}pre{white-space:pre-wrap;max-width:500px}.status{padding:.25rem .5rem;background:var(--cream);border-radius:2rem}@media(max-width:800px){.site-header nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;padding:1rem;flex-direction:column;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.nav-toggle{display:block}.hero{grid-template-columns:1fr;min-height:auto}.hero-visual{min-height:300px}.card-grid,.steps,.metric-grid{grid-template-columns:1fr 1fr}.dark,.two-col,.calculator-shell,.solar-layout,.lead-section{grid-template-columns:1fr}.map{height:380px}.admin-header{align-items:start}.admin-header nav{flex-wrap:wrap}.admin-main{padding-top:2rem}}@media(max-width:520px){.card-grid,.steps,.field-row,.metric-grid{grid-template-columns:1fr}.hero h1,.page-head h1{font-size:2.6rem}.bars{gap:.15rem}.bars b{display:none}footer{flex-direction:column}.admin-header nav{font-size:.78rem;gap:.5rem}}

body{overflow-x:hidden}.solar-layout>*{min-width:0}.page-head h1{overflow-wrap:anywhere}.leaflet-control-attribution{max-width:75%;white-space:normal;text-align:right}

.configuration-title{margin-bottom:1.5rem}.configuration-title h1{margin-bottom:.35rem}.configuration-title p{margin:0;color:var(--muted)}.configuration-title .back{display:inline-block;margin-bottom:.75rem;color:var(--green);font-weight:700}.configuration-form{max-width:none;padding:0;border:0;background:transparent;gap:1.25rem}.configuration-group{margin:0;padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.configuration-group legend{padding:0 .45rem;font-size:1.25rem;font-weight:800}.configuration-group legend span{display:inline-grid;place-items:center;width:2rem;height:2rem;margin-right:.45rem;border-radius:50%;background:var(--lime);font-size:.75rem}.configuration-group>p{margin:.15rem 0 1.25rem;color:var(--muted)}.configuration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem}.configuration-field{min-width:0}.configuration-field-wide{grid-column:1/-1}.configuration-label{display:flex;align-items:center;gap:.45rem;margin-bottom:.4rem}.configuration-label label{font-weight:750}.configuration-field>input{width:100%;padding:.75rem;border:1px solid #aeb8b1;border-radius:.6rem;background:#fff}.info-tip{position:relative;display:inline-grid;flex:0 0 auto;place-items:center;width:1.25rem;height:1.25rem;padding:0;border:1px solid var(--green);border-radius:50%;background:#fff;color:var(--green);font-family:Georgia,serif;font-size:.8rem;font-weight:800;line-height:1;cursor:help}.info-tip span{display:none;position:absolute;z-index:40;bottom:calc(100% + .6rem);left:50%;width:min(280px,75vw);padding:.75rem .85rem;transform:translateX(-50%);border-radius:.7rem;background:var(--ink);color:#fff;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.78rem;font-weight:500;line-height:1.4;text-align:left;box-shadow:0 10px 30px #17231e33}.info-tip span:after{content:"";position:absolute;top:100%;left:50%;border:6px solid transparent;border-top-color:var(--ink);transform:translateX(-50%)}.info-tip:hover span,.info-tip:focus span,.info-tip:focus-visible span{display:block}.configuration-publish{border-color:#b8c6bd}.configuration-actions{display:flex;gap:.75rem;flex-wrap:wrap;padding:.25rem 0 2rem}@media(max-width:700px){.configuration-grid{grid-template-columns:1fr}.configuration-field-wide{grid-column:auto}.configuration-group{padding:1.15rem}.info-tip span{left:auto;right:-.5rem;transform:none}.info-tip span:after{left:auto;right:.8rem;transform:none}}

.muted-note{color:var(--muted);font-size:.9rem;margin:0 0 .4rem}.notice-ok{border-left-color:var(--green);background:#eef7f1}.admin-form small{font-weight:500;color:var(--muted)}.admin-form fieldset{margin:0;padding:1.1rem 1.25rem;border:1px solid var(--line);border-radius:1rem;display:grid;gap:.85rem}.admin-form legend{padding:0 .4rem;font-weight:800}.field-note{margin:.15rem 0 0;color:var(--muted);font-size:.85rem}

.rich-text{max-width:72ch}.rich-text>*:first-child{margin-top:0}.rich-text p{margin:0 0 1rem}.rich-text h2{font-size:1.9rem;letter-spacing:-.02em;margin:2rem 0 .75rem}.rich-text h3{font-size:1.4rem;margin:1.6rem 0 .6rem}.rich-text h4{font-size:1.15rem;margin:1.4rem 0 .5rem}.rich-text ul,.rich-text ol{margin:0 0 1rem;padding-left:1.4rem}.rich-text li{margin:.3rem 0}.rich-text a{color:var(--green);text-decoration:underline}.rich-text blockquote{margin:1.2rem 0;padding:.6rem 0 .6rem 1.1rem;border-left:3px solid var(--lime);color:var(--muted)}.rich-text hr{border:0;border-top:1px solid var(--line);margin:2rem 0}.rich-text code{background:var(--cream);padding:.1rem .35rem;border-radius:.35rem;font-size:.9em}.rich-text pre{background:var(--cream);padding:1rem;border-radius:.7rem;overflow-x:auto}.rich-text pre code{background:none;padding:0}
.gallery-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;padding-bottom:0}.gallery-strip figure{margin:0}.gallery-strip img{width:100%;height:240px;object-fit:cover;border-radius:var(--radius);display:block}.card-cover{width:calc(100% + 3.2rem);margin:-1.6rem -1.6rem 1rem;height:190px;object-fit:cover;border-radius:var(--radius) var(--radius) 0 0}
.gallery-block{max-width:900px;margin-top:2.5rem}.gallery-block h2{font-size:1.6rem}.upload-form{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;padding:1rem;border:1px dashed var(--line);border-radius:1rem;background:#fff;margin:1rem 0}.gallery-list{list-style:none;padding:0;display:grid;gap:1rem}.gallery-item{display:grid;grid-template-columns:200px 1fr;gap:1rem;padding:1rem;background:#fff;border:1px solid var(--line);border-radius:1rem}.gallery-item img{width:200px;height:140px;object-fit:cover;border-radius:.7rem}.gallery-meta{display:grid;gap:.5rem;align-content:start;min-width:0}.alt-form{display:grid;gap:.5rem}.alt-form input{width:100%;padding:.55rem;border:1px solid #aeb8b1;border-radius:.5rem}.gallery-actions{display:flex;gap:.5rem;flex-wrap:wrap}.gallery-actions form{display:inline}.gallery-actions .button,.alt-form .button{padding:.45rem .8rem;font-size:.85rem}.button.danger{border-color:var(--danger);color:var(--danger)}.button:disabled{opacity:.4;cursor:not-allowed}
.editor{display:grid;gap:.4rem;min-width:0}.editor>label{font-weight:700}.editor-toolbar{display:flex;gap:.3rem;flex-wrap:wrap}.editor-toolbar button{padding:.35rem .6rem;border:1px solid var(--line);border-radius:.45rem;background:#fff;cursor:pointer;font-size:.85rem;line-height:1}.editor-toolbar button:hover{border-color:var(--green)}.editor-toolbar button[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}.editor textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}.editor-preview{padding:1rem;border:1px solid var(--line);border-radius:.6rem;background:#fff;min-height:12rem;overflow-x:auto}.editor-preview>*:first-child{margin-top:0}.editor-preview h2{font-size:1.4rem}.editor-preview h3{font-size:1.15rem}.editor-preview blockquote{margin:1rem 0;padding-left:1rem;border-left:3px solid var(--lime);color:var(--muted)}.editor-preview a{color:var(--green);text-decoration:underline}
@media(max-width:700px){.gallery-item{grid-template-columns:1fr}.gallery-item img{width:100%}}

.delete-project{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}.delete-project small{color:var(--muted)}

.upload-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;padding:1rem;border:1px dashed var(--line);border-radius:1rem;background:#fff;margin:.25rem 0 1rem}.gallery-block .field-note{margin:0}fieldset.gallery-block{max-width:none}.upload-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;padding:1rem;border:1px dashed var(--line);border-radius:1rem;background:#fff;margin:.25rem 0 1rem}fieldset.gallery-block{max-width:none}.gallery-meta input{width:100%;padding:.55rem;border:1px solid #aeb8b1;border-radius:.5rem}



.editor-rich{background:#fff;border-radius:0 0 .6rem .6rem}.editor-rich .ql-editor{min-height:18rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:1rem;line-height:1.6}.editor-rich .ql-editor h2{font-size:1.6rem;margin:1.2rem 0 .5rem}.editor-rich .ql-editor h3{font-size:1.25rem;margin:1rem 0 .4rem}.editor-rich .ql-editor blockquote{border-left:3px solid var(--lime);padding-left:1rem;color:var(--muted)}.editor .ql-toolbar.ql-snow{border-radius:.6rem .6rem 0 0;border-color:#aeb8b1;background:#fff}.editor .ql-container.ql-snow{border-color:#aeb8b1}

/* UA and RU editors are one row: each column stretches to the taller of the two, so
   typing in one language does not shift the other up or down. */
.field-row{align-items:stretch}
.editor{display:flex;flex-direction:column;height:100%}
.editor>label{flex:0 0 auto}
.editor-toolbar,.editor .ql-toolbar.ql-snow{flex:0 0 auto}
.editor textarea{flex:1 1 auto;resize:vertical}
.editor .ql-container.ql-snow{flex:1 1 auto;display:flex;flex-direction:column;min-height:16rem}
.editor .ql-container .ql-editor{flex:1 1 auto}
.editor-preview{flex:1 1 auto}

/* With the visual editor running, the Markdown fallback is not shown. A class is
   used rather than the hidden attribute: .editor-toolbar sets display explicitly,
   which would win over it. */
.editor-rich-active>.editor-toolbar,.editor-rich-active>textarea,.editor-rich-active>.editor-preview{display:none}
/* Both editors end on the same line: the text area grows to fill whatever height
   the taller column sets. */
.editor .ql-container.ql-snow{flex:1 1 auto;display:flex;flex-direction:column;min-height:14rem}
.editor .ql-container .ql-editor{flex:1 1 auto;overflow-y:auto}
.editor:not(.editor-rich-active) .editor-preview{flex:1 1 auto}

/* A label is a grid that stretches to the row height. Without this its children
   absorb the slack, so a field whose neighbour carries a hint grew taller and the
   two columns stopped lining up. Keeping content at the start leaves the spare
   height below the hint instead of inside the control. */
.admin-form label:not(.check){align-content:start}

/* Short pages used to leave the footer floating in the middle of the window. */
body{min-height:100vh;display:flex;flex-direction:column}
body>main{flex:1 0 auto}
body>footer{flex:0 0 auto}
.page-note{max-width:1240px;margin:0 auto;padding:0 clamp(1.2rem,4vw,3rem) 1rem;color:var(--muted)}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}
.info-grid h3{font-size:1.15rem;margin:0 0 .4rem}
.info-grid p,.info-grid li{color:var(--muted);margin:0 0 .5rem}
.info-grid ul{padding-left:1.1rem;margin:0}
.section-tight{padding-top:0}
@media(max-width:520px){.info-grid{grid-template-columns:1fr}}
