/* ============================================================
   PUR PROJEKT — calculator wizard
   ============================================================ */
.calc{display:grid;grid-template-columns:1fr 360px;gap:26px;align-items:start}
.calc__main{background:var(--foam);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(22px,3vw,38px);min-height:520px;position:relative;overflow:hidden}

/* progress */
.calc__progress{display:flex;gap:6px;margin-bottom:30px;flex-wrap:wrap}
.calc__progress .pstep{display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:100px;font-size:.78rem;font-weight:700;color:var(--muted);background:var(--foam-2);transition:.3s}
.calc__progress .pstep .pn{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--foam-3);color:var(--muted);font-size:.74rem;transition:.3s}
.calc__progress .pstep.active{background:var(--ink);color:var(--foam)}
.calc__progress .pstep.active .pn{background:var(--spray);color:var(--ink)}
.calc__progress .pstep.done{color:var(--ink)}
.calc__progress .pstep.done .pn{background:var(--spray);color:var(--ink)}
.calc__progress .plabel{display:none}
@media (min-width:560px){.calc__progress .plabel{display:inline}}

.calc__panel{display:none;animation:fade .4s var(--ease)}
.calc__panel.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.calc__step-no{font-family:"Unbounded";font-weight:700;color:var(--spray-deep);font-size:.9rem}
.calc__panel h3{margin:.4em 0 .3em;font-size:clamp(1.3rem,2.4vw,1.7rem)}
.calc__panel .hint{color:var(--muted);font-size:.94rem;margin-bottom:24px}

/* option cards */
.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.opt{position:relative;border:1.5px solid var(--line);border-radius:var(--r-md);padding:20px;cursor:pointer;transition:.25s var(--ease);background:var(--foam)}
.opt:hover{border-color:var(--ink-soft);transform:translateY(-2px)}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt .opt-ic{width:46px;height:46px;border-radius:12px;background:var(--foam-3);display:grid;place-items:center;margin-bottom:14px;transition:.25s}
.opt .opt-ic svg{width:24px;height:24px}
.opt h4{font-size:1.06rem;margin:0 0 4px;font-family:"Manrope";font-weight:700}
.opt p{font-size:.84rem;color:var(--muted);margin:0}
.opt .badge{position:absolute;top:16px;right:16px;font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:100px;background:var(--foam-3);color:var(--ink)}
.opt .badge.premium{background:var(--spray);color:var(--ink)}
.opt .opt-check{position:absolute;top:16px;right:16px;width:24px;height:24px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;transition:.25s}
.opt .opt-check svg{width:14px;height:14px;opacity:0;transform:scale(.5);transition:.25s}
.opt.selected{border-color:var(--ink);background:#fff}
.opt.selected .opt-ic{background:var(--spray)}
.opt.selected .opt-check{background:var(--spray);border-color:var(--spray)}
.opt.selected .opt-check svg{opacity:1;transform:scale(1)}

.opt-detail{display:grid;gap:10px;margin:16px 0}
.opt-detail .row{display:flex;justify-content:space-between;font-size:.86rem;padding-bottom:8px;border-bottom:1px solid var(--line-soft)}
.opt-detail .row b{font-weight:700}
.opt .opt-price{font-family:"Unbounded";font-weight:700;font-size:1.15rem;margin-top:8px}
.opt .opt-price small{font-family:"Manrope";font-weight:600;font-size:.74rem;color:var(--muted)}

/* sliders */
.slider-block{margin-bottom:26px}
.slider-block .sl-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.slider-block .sl-head label{font-weight:700;font-size:.96rem}
.slider-val{display:flex;align-items:baseline;gap:6px}
.slider-val input{width:92px;text-align:right;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:8px 10px;font-family:"Unbounded";font-weight:700;font-size:1.05rem;color:var(--ink)}
.slider-val input:focus{outline:none;border-color:var(--ink)}
.slider-val .unit{font-weight:700;color:var(--muted);font-size:.9rem}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:100px;background:var(--foam-3);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:var(--ink);border:4px solid var(--spray);cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.25);transition:transform .15s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.12)}
input[type=range]::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:var(--ink);border:4px solid var(--spray);cursor:pointer}
.slider-block .sub{font-size:.8rem;color:var(--muted);margin-top:9px}
.vol-pill{display:inline-flex;align-items:baseline;gap:7px;background:var(--ink);color:var(--foam);padding:14px 20px;border-radius:14px;margin-top:6px}
.vol-pill .v{font-family:"Unbounded";font-weight:700;font-size:1.6rem;color:var(--spray)}
.vol-pill .u{font-size:.82rem;opacity:.8}

/* power / county */
.note-box{background:var(--foam-2);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px;font-size:.88rem;color:var(--ink-soft);margin-top:18px;display:flex;gap:12px}
.note-box .ic{flex:none;width:30px;height:30px;border-radius:9px;background:var(--spray);display:grid;place-items:center}
.note-box .ic svg{width:17px;height:17px}

.county-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.county{padding:12px 8px;border:1.5px solid var(--line);border-radius:11px;background:var(--foam);font-weight:600;font-size:.86rem;text-align:center;cursor:pointer;transition:.2s}
.county:hover{border-color:var(--ink-soft)}
.county.selected{background:var(--ink);color:var(--foam);border-color:var(--ink)}
.county small{display:block;font-size:.7rem;color:var(--muted);font-weight:600;margin-top:2px}
.county.selected small{color:var(--spray)}

/* upload (new feature) */
.upload{border:2px dashed var(--line);border-radius:var(--r-md);padding:26px;text-align:center;transition:.25s;cursor:pointer;background:var(--foam-2)}
.upload:hover,.upload.drag{border-color:var(--spray-deep);background:#fff}
.upload .up-ic{width:52px;height:52px;border-radius:14px;background:var(--spray);display:grid;place-items:center;margin:0 auto 14px}
.upload .up-ic svg{width:26px;height:26px}
.upload b{display:block;font-size:1rem}
.upload span{font-size:.84rem;color:var(--muted)}
.upload input{display:none}
.up-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.up-thumb{position:relative;width:78px;height:78px;border-radius:11px;overflow:hidden;border:1px solid var(--line);background:var(--foam-3)}
.up-thumb img{width:100%;height:100%;object-fit:cover}
.up-thumb .file-ic{display:grid;place-items:center;height:100%;font-size:.62rem;color:var(--muted);font-weight:700;padding:6px;text-align:center;word-break:break-all}
.up-thumb .rm{position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;background:rgba(20,20,20,.82);color:#fff;border:0;display:grid;place-items:center;font-size:13px;line-height:1}

/* summary table */
.sum-table{display:grid;gap:0;margin:6px 0 22px;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.sum-table .r{display:flex;justify-content:space-between;gap:16px;padding:13px 18px;font-size:.92rem;background:var(--foam)}
.sum-table .r:nth-child(even){background:var(--foam-2)}
.sum-table .r b{font-weight:700;text-align:right}
.sum-table .r.total{background:var(--ink);color:var(--foam);padding:18px}
.sum-table .r.total .t{font-family:"Unbounded";font-weight:700;font-size:1.05rem}
.sum-table .r.total b{font-family:"Unbounded";font-size:1.5rem;color:var(--spray)}

/* nav buttons */
.calc__nav{display:flex;justify-content:space-between;gap:12px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line-soft)}
.calc__nav .spacer{flex:1}

/* sticky live estimate */
.calc__aside{position:sticky;top:calc(var(--header-h) + 18px)}
.estimate{background:var(--pine);color:var(--foam);border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow)}
.estimate .lbl{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--spray);font-weight:700}
.estimate .big{font-family:"Unbounded";font-weight:700;font-size:clamp(2.1rem,4vw,2.8rem);line-height:1;margin:10px 0 4px;letter-spacing:-.02em}
.estimate .big small{font-family:"Manrope";font-size:.9rem;font-weight:600;color:rgba(255,255,255,.7);display:block;margin-top:6px}
.estimate .from{font-size:.8rem;color:rgba(255,255,255,.6)}
.estimate hr{border:0;border-top:1px solid var(--line-light);margin:20px 0}
.estimate .erow{display:flex;justify-content:space-between;font-size:.86rem;padding:7px 0;color:rgba(255,255,255,.82)}
.estimate .erow b{color:#fff;font-weight:700}
.estimate .ebreak{display:flex;justify-content:space-between;font-size:.82rem;padding:5px 0;color:rgba(255,255,255,.6)}
.estimate .disclaimer{font-size:.74rem;color:rgba(255,255,255,.5);margin-top:16px;line-height:1.5}
.estimate .btn{margin-top:18px}
.estimate .call{display:block;text-align:center;margin-top:12px;font-size:.86rem;color:var(--spray);font-weight:700}

@media (max-width:980px){
  .calc{grid-template-columns:1fr}
  .calc__aside{position:static;order:-1}
  .county-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:560px){
  .opt-grid{grid-template-columns:1fr}
  .county-grid{grid-template-columns:repeat(2,1fr)}
  .calc__progress .pstep .plabel{display:none}
}

/* ---------------- Estonia county map (step 5) ---------------- */
.eemap-wrap{display:grid;grid-template-columns:2.1fr 1fr;gap:22px;align-items:center;margin-bottom:18px}
.eemap{width:100%;height:auto;display:block}
.eemap path{fill:#e7e4d8;stroke:var(--foam);stroke-width:1.6;cursor:pointer;transition:fill .18s ease;outline:none}
.eemap path:hover,.eemap path:focus-visible{fill:#d5d8b6}
.eemap path.selected{fill:var(--spray)}
.eemap-lbl{font-family:"Manrope",sans-serif;font-size:18px;font-weight:700;fill:var(--ink-soft);pointer-events:none;text-anchor:middle}
.eemap path.selected + * {}
.eemap-saku circle{fill:var(--ink)}
.eemap-saku .pulse{fill:none;stroke:var(--ink);stroke-width:1.5;opacity:.4}
.eemap-saku text{font-family:"Manrope",sans-serif;font-size:15px;text-anchor:middle;font-weight:800;fill:var(--ink)}
.eemap-side{display:grid;gap:14px}
.eemap-chosen{background:var(--foam-2);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px;display:grid;gap:4px}
.eemap-chosen .k{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.eemap-chosen b{font-family:"Unbounded";font-size:1rem}
@media (max-width:860px){
  .eemap-wrap{grid-template-columns:1fr}
  .eemap-lbl{font-size:17px}
}
