:root{--sky-3:#BFE0EA;--line:#E1E9E8}
/* герой */
.hero{padding:34px 0 10px}
h1{font-family:'Manrope',sans-serif;font-weight:700;font-size:clamp(28px,4.6vw,42px);line-height:1.12}
.hero p{color:var(--muted);font-size:16.5px;max-width:680px;margin-top:10px}
/* шаги */
.steps{display:grid;gap:14px;padding:16px 0 8px}
.step{background:var(--bg);border:none;border-radius:20px;box-shadow:0 14px 44px -32px rgba(12,74,87,.45);padding:20px 22px}
.step-h{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.step-n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-weight:700;font-size:16px;transform:translateY(4px)}
.step-h h2{font-size:19px;font-weight:800;letter-spacing:-.01em}
.step-h .s-sub{font-size:13px;color:var(--muted);margin-left:auto;text-align:right}
.hint{font-size:13px;color:var(--muted)}
/* шаг 1: карта + поиск */
.map-grid{display:grid;gap:16px}
@media(min-width:960px){.map-grid{grid-template-columns:1.55fr 1fr;gap:22px;align-items:start}}
.map-card{border:none;border-radius:16px;overflow:hidden;background:#fff;position:relative}
.map-poster{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:0;background:var(--surface);cursor:pointer;font:inherit;color:var(--ink);text-align:center;padding:12px}
.map-poster b{background:var(--ink);color:#fff;border-radius:12px;padding:10px 18px;font-weight:700}
.map-poster small{color:var(--muted);font-size:12px}
.map-card iframe{display:block;width:100%;height:430px;border:0}
@media(max-width:959px){.map-card iframe{height:320px}}
.city-sel{display:grid;gap:10px}
.city-sel .big{font-family:'Manrope',sans-serif;font-weight:700;font-size:clamp(24px,3vw,32px);line-height:1.12}
.ministats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mini{background:var(--surface);border:none;border-radius:12px;padding:10px 13px}
.mini .l{font-size:12px;font-weight:700;letter-spacing:.03em;color:var(--muted)}
.mini .v{font-size:19px;font-weight:800;margin-top:2px}
.gsearch{position:relative}
.gres{position:absolute;left:0;right:0;top:100%;z-index:20;background:#fff;border:none;border-radius:12px;box-shadow:0 14px 34px -18px rgba(12,74,87,.5);overflow:hidden;margin-top:4px}
.gres button{display:block;width:100%;text-align:left;border:0;background:none;font:inherit;font-size:14px;padding:9px 13px;cursor:pointer;color:var(--ink)}
.gres button:hover{background:var(--surface)}
.gres button small{color:var(--muted);margin-left:6px}
#gstat{font-size:12.5px;color:var(--muted)}
.field label{display:block;font-size:12.5px;font-weight:700;letter-spacing:.02em;color:var(--muted);margin-bottom:4px}
.field input,.field select{width:100%;border:none;border-radius:9px;background:var(--surface);font:inherit;font-size:14.5px;font-weight:600;color:var(--ink);padding:8px 10px}
.field input:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
details.adv{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
details.adv summary{cursor:pointer;font-weight:700;color:var(--ink-2);font-size:14.5px}
details.adv summary:hover{color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:13.5px;font-weight:600;color:var(--muted);margin-bottom:10px}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.chart-card svg{width:100%;height:auto;display:block}
.tbl-scroll{overflow-x:auto;margin-top:10px}
details.tbl summary{cursor:pointer;font-weight:700;font-size:14.5px;color:var(--ink-2)}
details.tbl summary:hover{color:var(--accent)}
table{border-collapse:collapse;font-size:13px;white-space:nowrap;width:100%}
th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;text-align:right;padding:8px 9px;border-bottom:2px solid var(--line)}
td{padding:8px 9px;border-bottom:none;text-align:right;font-variant-numeric:tabular-nums}
th:first-child,td:first-child{text-align:left}
tr.tot td{border-bottom:0;border-top:2px solid var(--line);font-weight:800}
.pb-num{font-family:'Manrope',sans-serif;font-weight:700;font-size:clamp(44px,6vw,60px);line-height:1;white-space:nowrap}
.pb-num small{display:block;font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:6px}
.pb-side p{font-size:14.5px;color:var(--muted)}
.pb-side b{color:var(--ink)}
.pb-track{margin-top:12px}
.pb-track svg{width:100%;height:auto;display:block}
.tgrow{display:flex;flex-wrap:wrap;gap:9px;align-items:center;font-size:14px;font-weight:600;color:var(--ink-2);margin-top:12px}
.tgrow label{display:flex;gap:9px;align-items:center;cursor:pointer}
.tgrow input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);flex:none;cursor:pointer}
/* заявка */
.zaya{background:var(--bg);border:none;border-radius:20px;box-shadow:0 14px 44px -32px rgba(12,74,87,.45);padding:22px 24px;margin-top:14px}
.zaya h2{font-size:22px;margin-bottom:6px}
.zaya>p{color:var(--muted);font-size:15px;margin-bottom:16px;max-width:640px}
.zaya-grid{display:grid;gap:14px}
.zaya .full{grid-column:1/-1}
#z-hint{display:none;margin-top:12px;background:var(--surface);border-radius:12px;padding:12px 15px;font-size:14px}
/* футер */
footer{margin-top:28px}
@media(min-width:420px) and (max-width:719px){.fields{grid-template-columns:1fr 1fr}}
