/* §шрифт: Nunito self-host (woff2 в /assets/fonts/) — БЕЗ Google Fonts (ПДн: не гоняем IP в Google). ТЗ launch-fixes 11.07 */
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/nunito-400-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/nunito-400-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/nunito-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/nunito-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/nunito-700-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/nunito-700-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/nunito-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/nunito-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/nunito-800-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/nunito-800-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/nunito-800-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/nunito-800-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/nunito-900-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/nunito-900-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/nunito-900-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/nunito-900-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Дизайн-система — перенос 1:1 из прототипа pogoda1-multyashnyy-polnyi.html (<style>).
   DEMO-блок #proto удалён; header top:38px→0 (в проде нет proto-бара).
   НЕ менять значения без правки прототипа/ТЗ. */
:root{--sky1:#7cc6ff;--sky2:#cfeeff;--ink:#15315b;--muted:#5b78a6;--card:#fff;--soft:#f1f8ff;--line:#e6f0fb;--headbg:rgba(255,255,255,.72);
 --sun:#ffce4d;--sun2:#ff9d3b;--grass:#52c08a;--rain:#4aa3f0;--candy:#ff6f9c;--violet:#9b8cff;--gold:#ffce3a;--gold2:#e0a200;--bad:#e0533a;
 --crumb:#143a73;--crumb-cur:#46618c;--shadow:0 6px 0 rgba(21,49,91,.05),0 16px 36px rgba(21,49,91,.12);--r:26px}
html[data-theme="dark"]{--sky1:#2a4170;--sky2:#1c2c4d;--ink:#eef4ff;--muted:#aabde0;--card:#243355;--soft:#1e2d4c;--line:#3a4d76;--headbg:rgba(30,44,78,.78);
 --crumb:#bcd6ff;--crumb-cur:#8aa6d6;--shadow:0 6px 0 rgba(0,0,0,.22),0 16px 36px rgba(0,0,0,.4)}
html[data-theme="dark"] body{background:linear-gradient(180deg,#2c4170,#1e2e50 58%,#182238)}
html[data-theme="dark"] .sh{background:var(--card);color:var(--ink)}
html[data-theme="dark"] .promo{background:var(--card)}
html[data-theme="dark"] .search,html[data-theme="dark"] .fav,html[data-theme="dark"] .pills button,html[data-theme="dark"] .t2,html[data-theme="dark"] .regions a,html[data-theme="dark"] .regions .cur,html[data-theme="dark"] .faq details,html[data-theme="dark"] footer,html[data-theme="dark"] .frow input,html[data-theme="dark"] .frow select,html[data-theme="dark"] .frow textarea,html[data-theme="dark"] .summary{background:var(--card);color:var(--ink)}
html[data-theme="dark"] .pushtoast{background:var(--card);color:var(--ink)}
html[data-theme="dark"] .pushtoast h4{color:var(--ink)}
html[data-theme="dark"] header{background:var(--headbg)}
html[data-theme="dark"] nav a{color:var(--ink)}html[data-theme="dark"] nav a:hover{background:var(--soft)}
html[data-theme="dark"] .hcol{background:var(--soft)}
html[data-theme="dark"] .regions .ct,html[data-theme="dark"] .seotext,html[data-theme="dark"] .legal p,html[data-theme="dark"] .legal li{color:var(--muted)}
html[data-theme="dark"] .regions .cur{background:#4a3a10}html[data-theme="dark"] .regions .cur .rn{color:#ffd76a}   /* ТЗ v2: «вы здесь» видимой карточкой и в тёмной теме (тёмно-янтарная) */
html[data-theme="dark"] .ncard .ph{background:linear-gradient(135deg,#26344f,#1b2942)}
html[data-theme="dark"] .ncard{background:var(--card);color:var(--ink)}
html[data-theme="dark"] .ncard h3{color:var(--ink)}
html[data-theme="dark"] .pills button.on,html[data-theme="dark"] .pills a.on{color:#3a2500}
html[data-theme="dark"] .cloud{opacity:.5}
*{box-sizing:border-box}
body{margin:0;font-family:"Nunito",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);
 background:linear-gradient(180deg,var(--sky1),var(--sky2) 55%,#eef8ff);min-height:100vh;overflow-x:hidden}
h1,h2,h3,h4{margin:0;font-weight:900;letter-spacing:-.5px}
a{color:var(--rain);text-decoration:none;cursor:pointer}
.wrap{max-width:960px;margin:0 auto;padding:0 18px}
.muted{color:var(--muted)}
.cloud{position:fixed;z-index:0;opacity:.85;filter:drop-shadow(0 8px 12px rgba(21,49,91,.08));pointer-events:none}
.cloud svg{overflow:visible;display:block}   /* макушка облака: средняя дуга пути выходит на ~11px выше viewBox (y≈-11) — дефолтный overflow:hidden у <svg> резал её «полукругом»; .cloud fixed+pointer-events:none, наружу выступает только вверх — скролл не создаёт */
.c1{top:78px;left:-180px;animation:d1 40s linear infinite}.c2{top:300px;left:-220px;animation:d2 56s linear infinite 8s}.c3{top:520px;left:-200px;animation:d3 48s linear infinite 16s}
@keyframes d1{to{transform:translateX(122vw)}}@keyframes d2{from{transform:translateX(0) scale(.7)}to{transform:translateX(122vw) scale(.7)}}@keyframes d3{from{transform:translateX(0) scale(.9)}to{transform:translateX(122vw) scale(.9)}}


header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.72);backdrop-filter:blur(10px);border-bottom:2px solid var(--line)}
header .wrap{display:flex;align-items:center;gap:12px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:20px;cursor:pointer;white-space:nowrap}
.brand .m{width:38px;height:38px;border-radius:14px;background:linear-gradient(135deg,var(--sun),var(--sun2));display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:0 5px 0 rgba(255,140,59,.35)}
nav{display:flex;gap:3px;margin-left:4px}
nav a{padding:9px 13px;border-radius:14px;font-weight:800;color:var(--ink);white-space:nowrap}   /* ТЗ 02.07: пункты шапки без переносов */
nav a:hover{background:#fff}
.fav{margin-left:auto;padding:10px 15px;border-radius:16px;font-weight:900;background:var(--card);cursor:pointer;border:0;box-shadow:0 5px 0 rgba(21,49,91,.08);color:var(--ink);font-family:inherit}
.fav.star{font-size:23px;padding:7px 13px;line-height:1}
.fav.on{color:var(--sun2)}
.ibtn2{padding:9px 13px;border-radius:14px;font-weight:900;background:var(--card);cursor:pointer;border:0;box-shadow:0 5px 0 rgba(21,49,91,.08);color:var(--ink);font-size:16px;font-family:inherit}
.langhead{text-decoration:none;font-size:13px;display:inline-flex;align-items:center;letter-spacing:.5px}
.search{display:flex;align-items:center;gap:8px;background:#fff;border-radius:16px;padding:9px 14px;box-shadow:0 5px 0 rgba(21,49,91,.06);min-width:110px;max-width:200px;flex:0 1 200px}   /* ТЗ 02.07: поиск уже, приоритет ширины у меню */
.search:focus-within{max-width:280px;flex-basis:280px}
.search input{min-width:0}
.search input{border:0;outline:0;font-family:inherit;font-weight:700;width:100%;color:var(--ink);background:transparent}
@media(max-width:780px){nav,.search{display:none}}
/* мобильное бургер-меню (≤780px) */
.burger{display:none;width:42px;height:42px;border:0;background:var(--soft);border-radius:11px;place-items:center;cursor:pointer;flex:0 0 auto}
.burger span,.burger span::before,.burger span::after{content:"";display:block;width:20px;height:2.5px;background:var(--ink);border-radius:2px;position:relative}
.burger span::before{position:absolute;top:-6px}.burger span::after{position:absolute;top:6px}
.scrim{position:fixed;inset:0;background:rgba(10,20,40,.45);z-index:90;opacity:0;transition:opacity .2s}
.scrim.show{opacity:1}
.drawer{position:fixed;top:0;left:0;bottom:0;width:76%;max-width:320px;background:var(--card);z-index:91;box-shadow:6px 0 30px rgba(0,0,0,.18);padding:14px;display:flex;flex-direction:column;gap:6px;transform:translateX(-100%);transition:transform .22s ease;overflow-y:auto}
.drawer.show{transform:translateX(0)}
.dr-search{display:flex;align-items:center;gap:8px;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.dr-search input{border:0;background:none;outline:0;flex:1;font-size:15px;font-family:inherit;color:var(--ink)}
.dr-ac{display:flex;flex-direction:column;border-radius:10px;overflow:hidden}
.dr-ac:not(:empty){border:1px solid var(--line);margin-top:2px}
.dr-aci{padding:10px 12px;text-decoration:none;color:var(--ink);font-weight:700;font-size:14px}
.dr-aci:active,.dr-aci:hover{background:var(--soft)}
.dr-nav{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.dr-nav a{display:flex;align-items:center;gap:11px;padding:13px 10px;border-radius:11px;text-decoration:none;color:var(--ink);font-weight:700;font-size:16px}
.dr-nav a.on,.dr-nav a:active{background:#fff6e2}
html[data-theme="dark"] .dr-nav a.on{background:rgba(255,206,77,.16)}
.dr-nav .em{width:26px;text-align:center}
.dr-foot{margin-top:auto;display:flex;gap:8px;padding-top:10px}
.dr-foot button{flex:1;border:1px solid var(--line);background:var(--soft);border-radius:11px;padding:12px;font-weight:800;cursor:pointer;font-family:inherit;color:var(--ink)}
@media(max-width:780px){.burger{display:grid}}
.dr-lang{flex:0 0 auto;border:1px solid var(--line);background:var(--soft);border-radius:11px;padding:12px 14px;font-weight:800;text-decoration:none;color:var(--muted);display:flex;align-items:center;gap:2px}
.dr-lang b.on{color:var(--rain)}
/* §5 шапка страницы: заяц zn31 справа-сверху (баннер убран) */
.phead{position:relative;padding:6px 175px 12px 0;min-height:96px}
.phead .crumbs{font-weight:800;font-size:13px;color:var(--muted)}
.phead h1{font-size:28px;margin:6px 0 2px}
.phead .lead{color:var(--muted);font-weight:700;font-size:14px}
.phead .hare{position:absolute;top:6px;right:8px;width:143px;height:auto;pointer-events:none;filter:drop-shadow(0 10px 12px rgba(21,49,91,.18))}
@media(max-width:820px){.phead{padding-right:118px}.phead .hare{width:109px}}
.ad-slot{max-width:728px;margin:14px auto}
.lvlc{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:13px}
.lvlc .dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
.h1fav{display:flex;align-items:center;gap:10px}
.h1fav .favbig{flex:none;order:-1}
.h1fav .h1t{min-width:0}
h1 .h1date{white-space:nowrap}
/* §1 новости на главной — 2×3, крупнее */
.ncards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ncards .ncard{background:var(--card);border-radius:22px;overflow:hidden;cursor:pointer;box-shadow:var(--shadow);transition:transform .2s;text-decoration:none;color:var(--ink);display:block}
.ncards .ncard:hover{transform:translateY(-3px)}
.ncards .ncard .ph{height:230px;position:relative;overflow:hidden;background:linear-gradient(135deg,#5bb6ff,#4072d8);display:grid;place-items:center}
.ncards .ncard .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,25,50,.5),transparent 55%);z-index:1}
.ncards .ncard .tx{padding:16px 20px 20px}
.ncards .ncard h3{font-size:21px;line-height:1.25;margin:0}
.ncards .ncard .dt{color:var(--muted);font-weight:800;font-size:13px;margin-top:9px}
.ncard .ph{position:relative}
.ncard .ncat{position:absolute;top:10px;left:10px;z-index:2;background:rgba(255,255,255,.92);color:#15315b;font-size:11px;font-weight:900;padding:4px 10px;border-radius:12px;box-shadow:0 2px 6px rgba(0,0,0,.12)}
html[data-theme="dark"] .ncard .ncat{background:rgba(36,53,85,.92);color:#eaf2ff}
@media(max-width:760px){.ncards{grid-template-columns:1fr}}
@media(max-width:560px){.ncards .ncard .ph{height:190px}.ncards .ncard h3{font-size:18px}}
/* §4 блок «нет температуры воды» → подписка по e-mail (та же ячейка, заяц zn32) */
.card.subw{background:linear-gradient(135deg,#5b6cf0,#7a5be0);color:#fff;padding-right:178px;position:relative;overflow:hidden;min-height:208px}/* .card.subw (0,2,0) перебивает .card{background:var(--card)} (0,1,0) — иначе на свету бел-по-бел */
.subw h4{opacity:.95}
.subw p{font-weight:800;font-size:13px;opacity:.92;margin:6px 0 0}
.subw .f{display:flex;gap:8px;margin-top:14px}
.subw input{flex:1;border:0;border-radius:12px;padding:12px 14px;font-family:inherit;font-weight:700;font-size:14px;outline:none;min-width:0;color:#15233b;background:#fff}
.subw button{border:0;border-radius:12px;padding:12px 16px;font-weight:900;cursor:pointer;background:var(--sun);color:#5a3a00;font-family:inherit;white-space:nowrap}
.subw .note{font-size:11px;opacity:.85;font-weight:700;margin-top:10px}
.subw .note a{color:#fff;text-decoration:underline}
.subw .subhare2{position:absolute;right:0;bottom:-40px;height:253px;width:auto;pointer-events:none;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25))}
@media(max-width:760px){.subw,.card.subw{padding-right:150px}.subw .subhare2{height:215px;bottom:-32px}.water{padding-right:124px}.water .diver{height:140px}}
/* §B звезда избранного в углу витринных карточек городов */
.pcard,.ctile{position:relative}
.favc{position:absolute;top:9px;right:9px;z-index:4;width:30px;height:30px;cursor:pointer;line-height:0}
.favc svg{width:100%;height:100%;display:block}
.favc svg path{fill:#ffd24a;stroke:#e0a200;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;filter:none}
.favc:hover{transform:scale(1.14)}
.favc.off svg path{fill:none;stroke:#c2cedd;stroke-width:1.9;stroke-linejoin:round;stroke-linecap:round;filter:none}
.pcard .favc.off svg path{stroke:rgba(255,255,255,.92);filter:none}
.ctile .favc{width:24px;height:24px;top:7px;right:7px}

main{position:relative;z-index:2}
.screen{display:none;padding:10px 0 50px}.screen.active{display:block}
.crumbs{font-weight:800;color:var(--crumb-cur);margin:14px 2px 6px;font-size:13px}
.crumbs a{color:var(--crumb);text-decoration:none}.crumbs a:hover{text-decoration:underline}
.sec{font-size:22px;font-weight:900;margin:28px 6px 14px;display:flex;align-items:center;gap:10px}
.lk{color:#1664c0;font-weight:800}.lk:hover{text-decoration:underline}   /* §2 контраст на голубом + жирность standalone «Все регионы» */
.sec .lk{margin-left:auto;font-size:13px;font-weight:800}
html[data-theme="dark"] .lk{color:#8cc2ff}
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:22px}
.card.subw{padding-right:178px}/* резерв под зайца: спец-ть 0,2,0 перебивает .card padding независимо от порядка */
.acts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:4px 0 8px}
.act{display:flex;align-items:center;gap:11px;background:var(--card);border:2px solid var(--line);border-radius:16px;padding:13px 15px;font-weight:800;color:var(--ink)}
.act .ae{font-size:26px;line-height:1;flex:none}
.act .al{font-size:15px;line-height:1.2}

/* reveal pop */
.pop{opacity:0;transform:translateY(26px) scale(.94)}
.pop.in{opacity:1;transform:none;animation:pop .65s cubic-bezier(.18,1.5,.4,1)}
@keyframes pop{from{opacity:0;transform:translateY(26px) scale(.94)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.pop{opacity:1;transform:none}.pop.in{animation:none}}
.g2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.g2>.card:only-child,.g2>.subw:only-child{grid-column:1/-1}/* одиночный блок (вода без AQI / подписка) — во всю ширину, без дыры справа */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:680px){.g3,.g4{grid-template-columns:repeat(2,1fr)}.g2{grid-template-columns:1fr}}

/* HERO */
.hero{position:relative;border-radius:34px;overflow:hidden;margin-top:10px;padding:30px;color:#fff;background:linear-gradient(135deg,#5bb6ff,#4072d8);box-shadow:var(--shadow)}
.hero.night{background:linear-gradient(135deg,#3a4f8f,#1f2c5e)}
.hero .sun{position:absolute;right:-24px;top:-24px;width:190px;height:190px;z-index:0}
.hero .sun .core{transform-origin:95px 95px;animation:spin 20s linear infinite}
.hero .sun .glow{transform-origin:95px 95px;animation:pulse 3s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
.hero .hcloud{position:absolute;opacity:.9;z-index:1;animation:hfloat 9s ease-in-out infinite}
@keyframes hfloat{0%,100%{transform:translateX(0)}50%{transform:translateX(16px)}}
/* BIGGER HERO + DRAWN WEATHER SCENE (internal element animation, not whole-picture) */
.hero{padding:40px 36px;min-height:360px}
.hero h1{font-size:38px}
.temp{font-size:104px}
.hero .in{max-width:56%}
.hero .sun{width:220px;height:220px}
.scene{position:absolute;right:6px;bottom:0;top:0;width:270px;z-index:1;pointer-events:none}
.scene .dcloud{position:absolute;right:108px;top:74px;width:104px;height:78px;filter:drop-shadow(0 8px 10px rgba(0,0,0,.16))}
.scene .hare{position:absolute;right:0;bottom:6px;width:170px;height:auto;filter:drop-shadow(0 8px 12px rgba(0,0,0,.2))}
.wic{display:inline-block;width:1.5em;height:1.5em;vertical-align:-.32em}
.hcol .he,.day .de{font-size:0}.hcol .he .wic,.day .de .wic{width:32px;height:32px;vertical-align:middle}
/* hare — internal animation (ears wag, blink, umbrella sway) */
.hare .ear-l,.hare .ear-r{transform-box:fill-box;transform-origin:bottom center}
.hare .ear-l{animation:earWag 3.2s ease-in-out infinite}
.hare .ear-r{animation:earWag 3.6s ease-in-out infinite reverse}
@keyframes earWag{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(6deg)}}
.hare .eye{transform-box:fill-box;transform-origin:center;animation:blink 4.6s infinite}
@keyframes blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.12)}}
.hare .umbrella{transform-box:fill-box;transform-origin:60% 100%;animation:umbSway 4s ease-in-out infinite}
@keyframes umbSway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@media(max-width:720px){.hero .in{max-width:100%}.scene{display:none}.temp{font-size:80px}}
.hero .in{position:relative;z-index:2}
.hero h1{font-size:30px}
.hero .bc{color:rgba(255,255,255,.85);font-weight:800;font-size:13px;margin-bottom:6px}
.whero .bc a{color:#fff;text-shadow:0 1px 3px rgba(21,49,91,.35);text-decoration:none}.whero .bc a:hover{text-decoration:underline}   /* крошки-ссылки в синем hero белые (не сливаются с фоном) — водоём/город/регион/каталог/списки */
.hero .upd{color:rgba(255,255,255,.85);font-weight:800;margin-top:2px}
.big{display:flex;align-items:center;gap:18px;margin-top:14px;flex-wrap:wrap}
.temp{font-size:84px;font-weight:900;line-height:.9;text-shadow:0 6px 0 rgba(0,0,0,.08)}
.cond{font-size:20px;font-weight:900}.feels{opacity:.92;font-weight:800}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.chip{background:rgba(10,44,80,.55);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:9px 14px;font-weight:800;backdrop-filter:blur(4px);cursor:default;-webkit-tap-highlight-color:transparent}

/* pills (табы периодов) — пилюли-ссылки: тень, активная — золотой градиент, скролл без полосы */
.pills{display:flex;gap:9px;overflow:auto;margin-top:16px;padding:6px 2px;scrollbar-width:none}
@media(min-width:681px){.pills{flex-wrap:wrap;overflow:visible}}
.pills::-webkit-scrollbar{display:none}
.pills a,.pills button{flex:0 0 auto;border:0;background:var(--card);color:var(--ink);font-weight:900;font-family:inherit;padding:12px 20px;border-radius:16px;cursor:pointer;box-shadow:var(--shadow);font-size:15px;text-decoration:none;transition:transform .12s;display:inline-block}
.pills a:hover,.pills button:hover{transform:translateY(-2px)}
.pills a.on,.pills button.on{background:linear-gradient(135deg,var(--sun),var(--sun2));color:#5a3a00;box-shadow:0 6px 0 rgba(255,140,59,.3)}
.pills .pill-arch{opacity:.92}
.estb{font-size:.72em;opacity:.7;margin-left:1px;font-weight:700;vertical-align:1px}

/* summary */
.summary{display:flex;gap:14px;align-items:center;margin-top:16px;background:#fff;border-radius:var(--r);padding:16px 20px;box-shadow:var(--shadow);font-weight:800}
.summary .em{font-size:30px}

/* tiles */
.ctile{text-align:center}
.ctile .emo{font-size:42px}
.ctile .v{font-size:26px;font-weight:900;margin-top:4px}
.ctile .k{color:var(--muted);font-weight:800;font-size:13px}
.bounce{display:inline-block;animation:bob 2.6s ease-in-out infinite}@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.spin-slow{display:inline-block;animation:spin 6s linear infinite}
.ctile .emo{font-size:0;line-height:0}
.ctile .emo .micon{width:46px;height:46px;display:block;margin:0 auto}
.chip .chic{width:22px;height:22px;vertical-align:-5px;margin-right:5px}
.chip .chic-sun{width:26px;height:26px;vertical-align:-7px}
html{scroll-behavior:smooth}
.sec[id]{scroll-margin-top:84px}
.summary .em .sumic{width:38px;height:38px;display:block}
.wicn{width:22px;height:22px;vertical-align:-5px;display:inline-block}
.pcn{width:18px;height:18px;vertical-align:-4px;display:inline-block}
.hicon{width:1.05em;height:1.05em;vertical-align:-.18em;display:inline-block}
.inli{width:16px;height:16px;vertical-align:-3px;display:inline-block}
.iwidget .b .e .iwic{width:46px;height:46px;display:block}
.ncard .ph .micon{width:56px;height:56px;display:block;margin:0 auto}

/* sun arc */
.sunarc{display:flex;align-items:center;gap:18px}
.sunarc svg{flex:0 0 auto}

/* hourly */
.hours{display:flex}/* шаг колонок = шагу svg (HCOL=64): без gap/overflow/padding; скролл и точные размеры — в скоупе CityPage */
.hcol{flex:1;min-width:66px;text-align:center;background:#f1f8ff;border-radius:20px;padding:12px 4px}
.hcol .hh{color:var(--muted);font-weight:800;font-size:12px}.hcol .he{font-size:24px;margin:5px 0}.hcol .ht{font-weight:900}
.hcol .pp{font-size:11px;color:var(--rain);font-weight:800}
.hchart{width:100%;height:150px;display:block}
.drawline{stroke-dasharray:1;stroke-dashoffset:1}.card.in .drawline{animation:draw 1.2s .1s ease forwards}@keyframes draw{to{stroke-dashoffset:0}}
.fadein{opacity:0}.card.in .fadein{animation:fin 1s .3s ease forwards}@keyframes fin{to{opacity:1}}

/* days */
.day{display:flex;align-items:center;gap:14px;padding:14px 6px;border-bottom:2px dashed var(--line)}.day:last-child{border-bottom:0}
.day .dn{font-weight:900;width:90px}.day .dd{color:var(--muted);font-weight:800;font-size:12px}
.day .de{font-size:30px;width:44px;text-align:center}
.day .bar{flex:1;height:13px;border-radius:8px;background:#eef5fd;position:relative;overflow:hidden}
.day .bar i{position:absolute;height:13px;border-radius:8px;background:linear-gradient(90deg,#7cc6ff,var(--sun));transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.card.in .day .bar i{transform:scaleX(1)}
.day .lo{color:var(--muted);font-weight:800;width:42px;text-align:right}.day .dt{font-weight:900;width:46px;text-align:right;color:var(--sun2)}

/* water (§2: шевелится + заяц-водолаз zn22) */
.water{background:linear-gradient(135deg,#48c6ef,#2a8fd6);color:#fff;position:relative;overflow:hidden;padding-right:140px;min-height:208px}
.water h4{color:#fff}
.water .big2{font-size:46px;font-weight:900;margin-top:10px;font-variant-numeric:tabular-nums}.water .badge{display:inline-block;background:rgba(255,255,255,.25);border-radius:14px;padding:6px 13px;font-weight:800;margin-top:8px}
.water .wv{position:absolute;left:0;bottom:0;width:200%;height:46px;opacity:.5;pointer-events:none;animation:wave 7s linear infinite}
@keyframes wave{to{transform:translateX(-50%)}}
.water .diver{position:absolute;right:8px;bottom:8px;height:156px;width:auto;z-index:2;filter:drop-shadow(0 5px 7px rgba(0,0,0,.25))}

/* aqi (§3: число+подпись сверху во всю ширину, шкала ниже короче, счёт + бегунок, заяц zn23) */
.aqi{min-height:208px;position:relative;overflow:hidden}
.aqi .aqinum{font-size:42px;font-weight:900;margin-top:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
.aqi .aqinum small{font-size:15px;font-weight:800;color:var(--muted)}
.aqi .pollen{font-weight:800;margin-top:8px;max-width:calc(100% - 150px)}
.aqi .hare2{position:absolute;right:6px;bottom:0;height:132px;width:auto;z-index:3}
.aqiscale{height:14px;border-radius:9px;background:linear-gradient(90deg,#52c08a,#ffce4d,#ff9d3b,#ff6f6f);position:relative;margin-top:18px;width:calc(100% - 160px)}
.aqiscale i{position:absolute;top:-4px;width:7px;height:22px;border-radius:4px;background:#fff;box-shadow:0 0 0 3px rgba(0,0,0,.25);left:0;transform:translateX(-50%);transition:left 1s ease}

/* climate */
.climwrap{display:flex;align-items:flex-end;gap:7px;height:140px;padding-top:8px}
.cb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px}
.cb .bar{width:76%;border-radius:9px 9px 4px 4px;background:linear-gradient(180deg,var(--sun),#7cc6ff);transform:scaleY(.001);transform-origin:bottom;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.card.in .cb .bar{transform:scaleY(1)}
.cb .mn{font-size:11px;color:var(--muted);font-weight:800}.cb .vv{font-size:11px;font-weight:900}

/* near */
.near .ctile{cursor:pointer}
.near div.ctile{cursor:default;-webkit-tap-highlight-color:transparent}   /* #2/3 плитки-метрики (div, не ссылки) — не кликабельны на вид */

/* photo cards */
.pcards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:680px){.pcards{grid-template-columns:repeat(2,1fr)}}
/* ── Карточка-заглушка «скайлайн» (день/ночь по теме страницы) — эталон pogoda1-skylajn-final-maket.html ── */
.pcard{position:relative;height:150px;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);cursor:pointer;background:linear-gradient(135deg,#5bb6ff,#4072d8);
  --sc-wall:#e4eefb;--sc-wall2:#d3e2f8;--sc-win:#a9c6ee;--sc-winop:.6;--sc-ground:rgba(20,45,95,.2)}
html[data-theme="dark"] .pcard{--sc-wall:#33477a;--sc-wall2:#3c5288;--sc-win:#ffd27a;--sc-winop:1;--sc-ground:rgba(8,16,36,.5)}
.pcard img,.pcard .scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.pcard:hover img{transform:scale(1.08)}
.sky{stop-color:#79c4ff}.sky2{stop-color:#3f78d6}
html[data-theme="dark"] .sky{stop-color:#2c4170}html[data-theme="dark"] .sky2{stop-color:#16244d}
.wall{fill:var(--sc-wall)}.wall2{fill:var(--sc-wall2)}.win{fill:var(--sc-win);opacity:var(--sc-winop)}.ground{fill:var(--sc-ground)}
.sun{fill:#ffd964}.sunrays line{stroke:#ffd964;stroke-width:3.2;stroke-linecap:round;opacity:.95}.moon{fill:#f6efc8}.star{fill:#fff}
.clouds ellipse{fill:#fff;opacity:.85}html[data-theme="dark"] .clouds ellipse{opacity:.16}
.pcard .night-only{display:none}html[data-theme="dark"] .pcard .day-only{display:none}html[data-theme="dark"] .pcard .night-only{display:inline}
.pcard .sc{position:absolute;left:0;right:0;bottom:0;height:66%;z-index:1;background:linear-gradient(0deg,rgba(6,16,38,.96) 0%,rgba(6,16,38,.86) 24%,rgba(6,16,38,.45) 50%,transparent 100%)}
.pcard .lbl{position:absolute;left:14px;right:14px;bottom:12px;z-index:2;display:flex;align-items:flex-end;justify-content:space-between;gap:10px;color:#fff}
.pcard .nm{min-width:0;font-weight:900;font-size:16px;line-height:1.12;text-shadow:0 1px 5px rgba(0,0,0,.7);overflow-wrap:anywhere}
.pcard .cond{font-weight:700;font-size:12px;opacity:.95;margin-top:3px;text-shadow:0 1px 4px rgba(0,0,0,.7)}
.pcard .tp{flex:0 0 auto;white-space:nowrap;font-weight:900;font-size:28px;line-height:1;text-shadow:0 2px 7px rgba(0,0,0,.8),0 0 2px rgba(0,0,0,.6)}
@media(max-width:560px){
  .pcard .tp{font-size:22px}                                            /* #6 темп меньше — не наезжает на длинное имя */
  .climwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.cb{min-width:30px}   /* #10 климат 12 мес — горизонт. скролл */
  .subw,.card.subw{padding-right:96px}.subw .subhare2{height:150px;bottom:-14px}.subw .f{flex-direction:column}.subw input,.subw button{width:100%}   /* #9 поле подписки не сжато */
  html[data-theme="dark"] .cloud, .cloud{opacity:.22}                   /* #11 облака бледнее (спец-ть перебивает dark-theme .cloud) — не мешают белому H1 */
  .hcard .hwrap{margin-left:-22px;margin-right:-22px;padding-left:22px;padding-right:22px}   /* #8 почасовой слайдер — до краёв карточки (не режется паддингом 22px) */
  .pills{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}          /* #8 табы периодов — до краёв экрана */
  .climscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.climate{min-width:680px}     /* #10 климат-SVG не сплющивается — горизонт. скролл */
  .scene .hare{width:110px}.hero .seolead{padding-right:122px}                               /* #12 заяц сцены меньше, SEO-текст не заходит под него */
}
.pcard svg.fav{position:absolute;inset:auto;top:11px;right:11px;width:30px;height:30px;z-index:3;cursor:pointer;filter:drop-shadow(0 1px 3px rgba(0,0,0,.55));transition:transform .14s}
.fav path{fill:rgba(255,255,255,.22);stroke:#fff;stroke-width:1.9;stroke-linejoin:round;stroke-linecap:round}
.fav:hover{transform:scale(1.13)}.fav.on path{fill:#ffd24a;stroke:#e0a200}
.pcard .favc{top:11px;right:11px;z-index:3}.pcard .favc svg path{fill:rgba(255,255,255,.22);stroke:#fff;stroke-width:1.9}
.pcard .favc:not(.off) svg path{fill:#ffd24a;stroke:#e0a200}
.pcard .pbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.pcard:has(.pbg)::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,30,60,.8),transparent 60%);z-index:1;pointer-events:none}

/* news */
.ncard{overflow:hidden;cursor:pointer;padding:0}
.ncard .ph{height:120px;display:grid;place-items:center;font-size:44px;background:linear-gradient(135deg,#cdeffe,#eaf6ff)}
.ncard .tx{padding:15px}.ncard h3{font-size:16px}.ncard .dt{color:var(--muted);font-weight:800;font-size:12px;margin-top:6px}

/* promo / informer widget */
.promo{position:relative;display:grid;grid-template-columns:1.3fr 1fr;gap:18px;align-items:center;background:linear-gradient(120deg,#fff6df,#fff);border-radius:var(--r);box-shadow:var(--shadow);padding:24px}
@media(max-width:680px){.promo{grid-template-columns:1fr}}
.btn{display:inline-flex;background:var(--sun);color:#5a3a00;border:0;border-radius:16px;padding:12px 20px;font-weight:900;cursor:pointer;font-family:inherit;box-shadow:0 5px 0 rgba(255,140,59,.3)}
.iwidget{width:240px;margin:0 auto;border-radius:20px;overflow:hidden;background:linear-gradient(135deg,#5bb6ff,#4072d8);color:#fff;box-shadow:var(--shadow)}
.iwidget .t{padding:13px 16px 0;font-weight:900}
.iwidget .b{display:flex;align-items:center;gap:12px;padding:4px 16px 8px}.iwidget .b .e{font-size:48px}.iwidget .b .tt{font-size:42px;font-weight:900}
.iwidget .f{display:flex;justify-content:space-between;padding:10px 16px;font-weight:800;font-size:12px;background:rgba(0,0,0,.16)}

/* regions */
.regions{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(max-width:680px){.regions{grid-template-columns:1fr}}
.regions a,.regions .cur{display:block;background:#fff;border-radius:20px;padding:16px 18px;box-shadow:var(--shadow)}   /* .cur = текущий район города («вы здесь»), не ссылка */
.regions .cur{background:#fff3d6}.regions .cur .rn{color:#9a6a00}   /* ТЗ v2: мягкая жёлтая подсветка текущего, имя тёмно-янтарным */
.regions .cur .cnt{background:var(--sun);color:#5a3a00}
.regions .rt{display:flex;justify-content:space-between;align-items:center}.regions .rn{font-weight:900;font-size:16px}
.regions .cnt{background:#fff3d6;color:#9a6a00;border-radius:999px;padding:3px 10px;font-weight:900;font-size:12px;white-space:nowrap}
.regions .ct{color:var(--muted);font-weight:800;font-size:12px;margin-top:7px}

/* map */
.worldmap{position:relative;height:340px;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);cursor:pointer}
.wmsvg{position:absolute;inset:0;width:100%;height:100%}
.mappin{position:absolute;transform:translate(-50%,-50%);background:#fff;border-radius:999px;padding:6px 12px;font-weight:900;font-size:12px;box-shadow:0 4px 0 rgba(21,49,91,.1)}

/* faq */
.faq details{background:#fff;border-radius:18px;padding:16px 18px;margin-bottom:10px;box-shadow:var(--shadow)}
.faq summary{cursor:pointer;font-weight:900;list-style:none;position:relative;padding-right:28px}.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋";position:absolute;right:0;top:0;color:var(--muted)}.faq details[open] summary::after{content:"－"}   /* #16 крестик абсолютом — не едет на 2-строчных заголовках */
.faq p{margin:10px 0 0;color:var(--muted);font-weight:700}

/* forms / archive / legal */
.frow{margin:10px 0}.frow label{display:block;font-weight:800;color:var(--muted);font-size:13px;margin-bottom:5px}
.frow input,.frow select,.frow textarea{width:100%;padding:12px 14px;border-radius:14px;border:2px solid var(--line);font-family:inherit;font-weight:700;color:var(--ink);background:#fbfdff;font-size:15px}
.frow textarea{min-height:130px;resize:vertical}
.t2{background:#fff;border-radius:20px;padding:16px;box-shadow:var(--shadow)}.t2 .k{color:var(--muted);font-weight:800;font-size:13px}.t2 .v{font-size:24px;font-weight:900;margin-top:4px}
.ad-slot{display:flex;justify-content:center;align-items:flex-start;overflow:hidden;margin:14px auto;width:100%}
.ad-slot>div{width:100%}
.ad-slot.ad-left{margin-left:0;margin-right:auto;justify-content:flex-start}   /* верхний баннер контентных страниц — слева (перебивает margin auto + justify center) */
/* Кросс-промо «Ресторан»/«Кино» — заяц В ФОНЕ (z-index:0), контент на всю ширину (ТЗ pereverstka + макет) */
.rec{position:relative;overflow:hidden;min-height:280px;padding:20px 22px 18px;color:#fff;border-radius:var(--r)}
.rec.rest{background:linear-gradient(135deg,#ff8a3d,#ff5d6e)}
.rec.kino{background:linear-gradient(135deg,#7a5be0,#5b6cf0)}
.rec h4,.rec .rrow,.rec .rbtn{position:relative;z-index:1}   /* контент НАД зайцем */
.rec h4{color:#fff;margin:0 0 10px;font-size:15px;font-weight:800;letter-spacing:.2px;opacity:.95;white-space:normal}
.rec .rrow{display:flex;gap:14px;align-items:flex-start}
.rec .rpic{object-fit:cover;border-radius:12px;flex:none;box-shadow:0 6px 16px rgba(0,0,0,.3);background:#0002}
.rec.rest .rpic{width:156px;height:156px}
.rec.kino .rpic{width:142px;height:200px}
.rec .rinfo{min-width:0}
.rec .rnm{font-size:20px;font-weight:900;line-height:1.14;margin:0}
.rec .rmeta{margin-top:8px;font-weight:800;font-size:13px;opacity:.95;line-height:1.45}
.rec .rlead{margin-top:8px;font-size:12.5px;opacity:.9;line-height:1.4;max-width:210px}
.rec .rsub{margin-top:8px;font-size:12.5px;opacity:.92;line-height:1.4;max-width:230px}
.rec .rbadge{display:inline-block;margin-top:6px;font-size:11px;font-weight:900;padding:3px 9px;border-radius:20px;background:rgba(255,255,255,.25)}
.rec .fmt{display:inline-flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.rec .fmt span{font-size:11px;font-weight:900;padding:3px 9px;border-radius:8px;background:rgba(255,255,255,.22)}
.rec .rbtn{display:inline-block;margin-top:14px;background:#fff;color:#222;font-weight:800;font-size:14px;padding:11px 16px;border-radius:12px;white-space:nowrap;text-decoration:none;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.rec .rpartner{position:absolute;left:22px;bottom:10px;z-index:1;font-size:10.5px;font-weight:700;color:rgba(255,255,255,.7)}
.rec .rhare{position:absolute;width:auto;z-index:0;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(0,0,0,.28))}
.rec.rest .rhare{right:16px;bottom:-22px;height:227px}
.rec.kino .rhare{right:6px;bottom:2px;height:170px}
@media(max-width:760px){.rec{min-height:0;padding-right:22px}.rec.rest .rhare{height:185px;right:6px}.rec.kino .rhare{height:150px}.rec .rlead{display:none}}
@media(max-width:560px){.rec.kino .rpic{width:120px;height:170px}}
/* избранное: звезда в шапке (всегда золотая) */
/* §2 звезда в шапке — прозрачная, без чипа/тени/ореола */
.favhead{border:0;background:none;box-shadow:none;cursor:pointer;padding:0;display:inline-grid;place-items:center;line-height:0}
.favhead svg{width:26px;height:26px;display:block}
.favhead svg path{fill:var(--gold);stroke:var(--gold2);stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round;filter:none}
.favhead:hover{transform:scale(1.08)}
html[data-theme="dark"] .favhead{background:none}
/* звезда у H1 города (контур=нет, золото=в избранном) */
.favbig{border:0;background:transparent;cursor:pointer;width:32px;height:32px;padding:0;vertical-align:-5px;line-height:0}
.favbig svg{width:100%;height:100%}
.favbig svg path{fill:none;stroke:#fff;stroke-width:2;stroke-linejoin:round;filter:none}
/* §1.1 интро-абзац под H1 */
.seolead{color:#dbe7ff;font-weight:700;font-size:14px;margin:10px 0 0;max-width:640px;line-height:1.55}
html[data-theme="dark"] .seolead{color:#cfe0ff}
/* §4 блоки выходных/метео */
.wkrow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wkcard{background:linear-gradient(135deg,#5bb6ff,#4072d8);color:#fff;border-radius:18px;padding:16px 18px;font-weight:800;display:flex;align-items:center;gap:10px}
.wkcard .wmi{width:34px;height:34px;flex:0 0 auto}
@media(max-width:680px){.wkrow{grid-template-columns:1fr}}
.metrow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.metcell{background:var(--soft);border-radius:14px;padding:14px;text-align:center}
.metcell .micon{width:34px;height:34px;display:block;margin:0 auto 6px}
.metcell .mv{font-size:22px;font-weight:900}.metcell .ml{color:var(--muted);font-weight:800;font-size:12px;margin-top:4px}
@media(max-width:680px){.metrow{grid-template-columns:1fr 1fr}}
.favbig.on svg path{fill:var(--gold);stroke:var(--gold2)}
/* web-push тост (только на странице города) */
.pushtoast{position:fixed;left:18px;bottom:18px;z-index:70;max-width:330px;display:none;gap:12px;background:var(--card);color:var(--ink);border-radius:22px;padding:16px;box-shadow:0 16px 44px rgba(0,0,0,.2)}
.pushtoast.show{display:flex}
.pushtoast .pt-x{position:absolute;top:8px;right:10px;background:none;border:0;color:var(--muted);font-size:18px;font-weight:900;cursor:pointer;line-height:1;padding:4px}
.pushtoast .pt-x:hover{color:var(--ink)}
.pushtoast .bell{font-size:26px}
.pushtoast h4{font-size:14px;margin:0}
.pushtoast p{font-size:12px;color:var(--muted);font-weight:700;margin:4px 0 10px}
.pushtoast .row{display:flex;gap:8px;flex-wrap:wrap}
.pushtoast .yes{background:var(--sun);color:#5a3a00;border:0;border-radius:12px;padding:9px 14px;font-weight:900;cursor:pointer;font-family:inherit}
.pushtoast .no{background:0;border:2px solid var(--line);border-radius:12px;padding:9px 14px;font-weight:800;cursor:pointer;font-family:inherit;color:var(--ink)}
@media(max-width:480px){.pushtoast{left:10px;right:10px;max-width:none}}
.legal{max-width:780px}.legal h2{font-size:20px;margin:22px 0 8px}.legal p,.legal li{color:#2c456e;font-weight:700;line-height:1.7}
.legal ol,.legal ul{padding-left:20px}.legal li{margin:0 0 12px}.legal a{color:#2f9bdc;font-weight:800}
.codebox{background:#0e2747;color:#bfe0ff;border-radius:16px;padding:14px;font-family:ui-monospace,Menlo,monospace;font-size:12px;white-space:pre-wrap;overflow:auto}

/* share */
.share{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}
.share .lbl{font-weight:900;color:var(--muted)}
.sh{display:inline-flex;align-items:center;gap:7px;background:#fff;border-radius:14px;padding:9px 14px;font-weight:800;box-shadow:0 4px 0 rgba(21,49,91,.06);cursor:pointer}
.sh .d{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:900}
.sh.vk .d{background:#0077ff}.sh.ok .d{background:#ee8208}.sh.tg .d{background:#2aabee}.sh.cp .d{background:#7a8aa6}.sh.fb .d{background:#1877f2}.sh.x .d{background:#111}
@media(max-width:640px){
  .share{gap:8px}
  .share .sh .t{display:none}        /* мобила — только логотип */
  .share .sh{padding:8px;gap:0}      /* компактный квадрат под значок */
}

.seotext{color:#3a5680;font-weight:700;line-height:1.75;margin-top:8px}.seotext h2{font-size:18px;margin:6px 0 8px}

footer{position:relative;z-index:2;background:#fff;border-top:2px solid var(--line);margin-top:30px}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:20px;padding:28px 18px}   /* #7 боковые отступы (footer .cols перебивал .wrap padding) */
footer h4{font-size:12px;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
footer a{display:block;color:var(--ink);font-weight:800;padding:4px 0}
footer .cc{border-top:2px solid var(--line);padding:14px 18px;color:var(--muted);font-weight:800;font-size:13px}   /* #7 боковые отступы */
footer .cc a{display:inline;width:auto}
footer .flogo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
@media(max-width:780px){footer .cols{grid-template-columns:1fr 1fr}}

/* favorite modal + push */
.overlay{position:fixed;inset:0;background:rgba(15,30,60,.45);z-index:80;display:none;align-items:center;justify-content:center;padding:18px}
.overlay.show{display:flex}
.modal{background:#fff;border-radius:28px;padding:28px;max-width:380px;width:100%;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.3)}
.modal .star{font-size:40px}.modal h3{font-size:20px;margin:8px 0}.modal p{color:var(--muted);font-weight:700;margin:0 0 14px}
.mbtn{display:block;width:100%;background:var(--sun);color:#5a3a00;border:0;border-radius:16px;padding:13px;font-weight:900;cursor:pointer;margin:8px 0;font-family:inherit}
.modal input{width:100%;padding:12px;border-radius:14px;border:2px solid var(--line);font-family:inherit;margin-bottom:6px}
.modal .close{background:0;border:0;color:var(--muted);font-weight:800;cursor:pointer;margin-top:6px}
.pushtoast{position:fixed;left:18px;bottom:18px;z-index:70;max-width:330px;display:none;gap:12px;background:#fff;border-radius:22px;padding:16px;box-shadow:0 16px 44px rgba(0,0,0,.2)}
.pushtoast.show{display:flex}.pushtoast .bell{font-size:26px}.pushtoast h4{font-size:14px}.pushtoast p{font-size:12px;color:var(--muted);font-weight:700;margin:4px 0 10px}
.pushtoast .row{display:flex;gap:8px}.pushtoast .yes{background:var(--sun);color:#5a3a00;border:0;border-radius:12px;padding:9px 14px;font-weight:900;cursor:pointer;font-family:inherit}.pushtoast .no{background:0;border:2px solid var(--line);border-radius:12px;padding:9px 14px;font-weight:800;cursor:pointer;font-family:inherit;color:var(--ink)}
/* MASCOT (сквозной заяц) */
.scene{display:block}
.scene .wx{position:absolute;top:2px;right:14px;width:240px;z-index:1}
.scene .wx-svg{width:100%;height:auto}
.hare-img{position:absolute;bottom:12px;right:18px;height:auto;z-index:2;filter:drop-shadow(0 10px 12px rgba(0,0,0,.22))}
.cornerhare{position:absolute;right:8px;bottom:2px;width:120px;z-index:4;pointer-events:none}
.cornerhare .hare-img{position:static;width:100%!important;display:block}
.lezhaspot{position:relative;height:0;z-index:3}
.lezhaspot img{position:absolute;right:22px;bottom:-10px;width:168px;height:auto;pointer-events:none;filter:drop-shadow(0 12px 12px rgba(0,0,0,.18));animation:lzin .6s ease both}
@keyframes lzin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:720px){.lezhaspot img{width:110px;right:8px}}
.r-eye{transform-box:fill-box;transform-origin:center;animation:blink 4.8s infinite}
@keyframes blink{0%,92%,100%{transform:scaleY(1)}96%{transform:scaleY(.12)}}
.r-ear{transform-box:fill-box;transform-origin:50% 100%;animation:eartw 3.4s ease-in-out infinite}
.r-ear.r2{animation-duration:4.1s;animation-direction:reverse}
@keyframes eartw{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(5deg)}}
.r-umb{transform-box:fill-box;transform-origin:62% 96%;animation:umbsway 4s ease-in-out infinite}
@keyframes umbsway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
.r-sun-peek{animation:peekloop 6.5s ease-in-out infinite}
@keyframes peekloop{0%,100%{transform:translate(0,0)}45%,55%{transform:translate(-30px,-22px)}}
.r-sun-rays{transform-box:fill-box;transform-origin:center;animation:spin 13s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.r-cloud-drift{animation:cdrift 9s ease-in-out infinite}
@keyframes cdrift{0%,100%{transform:translateX(0)}50%{transform:translateX(14px)}}
.r-raindrop{animation:rdrop 1s linear infinite}
@keyframes rdrop{0%{transform:translateY(-8px);opacity:0}20%{opacity:1}100%{transform:translateY(46px);opacity:0}}
.r-sweat{transform-box:fill-box;animation:sweat 1.7s ease-in infinite}
@keyframes sweat{0%{transform:translateY(0);opacity:0}30%{opacity:1}100%{transform:translateY(16px);opacity:0}}
.r-ripple{transform-box:fill-box;transform-origin:center;animation:ripple 2.6s ease-out infinite}
@keyframes ripple{0%{transform:scale(.6);opacity:.75}100%{transform:scale(1.5);opacity:0}}

/* ===== weather hero ===== */
#cityScene,#homeScene{position:absolute;top:0;left:0;right:0;bottom:0;width:auto;height:auto;z-index:0;overflow:hidden;pointer-events:none}
.hero .in{position:relative;z-index:3}
.wf-rab{position:absolute;right:34px;bottom:-6px;height:248px;width:auto;z-index:2;filter:drop-shadow(0 12px 14px rgba(0,0,0,.28))}
@media(max-width:720px){.wf-rab{height:150px;right:6px}}
.wsw{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 12px}
.wsw button{flex:none;border:1px solid #d4dded;background:#fff;color:#23314a;font-weight:800;font-size:13px;padding:8px 14px;border-radius:999px;cursor:pointer;font-family:inherit;white-space:nowrap}
.wsw button.on{background:#1f5fbf;color:#fff;border-color:transparent}
html[data-theme="dark"] .wsw button{background:var(--card);color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] .wsw button.on{background:#2f6fd0}
.hsun{position:absolute;top:34px;right:34%;width:116px;height:116px;filter:drop-shadow(0 0 14px rgba(255,200,60,.5))}
.boltsvg{position:absolute;top:16px;right:34%;width:94px;height:auto;filter:drop-shadow(0 0 16px rgba(255,170,40,.9));animation:wflash 3.4s steps(1) infinite}
@keyframes wflash{0%,7%,46%,53%,100%{opacity:0}8%,11%,48%,51%{opacity:1}9%{opacity:0}10%{opacity:1}}
.wf-cloud{position:absolute;border-radius:60px;background:#fff;opacity:.92;animation:wcfloat linear infinite}
.wf-cloud i{position:absolute;background:#fff;border-radius:50%}
.wf-cloud.wide{animation:wcwide 7s ease-in-out infinite}
@keyframes wcfloat{0%,100%{transform:translateX(0)}50%{transform:translateX(26px)}}
@keyframes wcwide{0%,100%{transform:translateX(-48px)}50%{transform:translateX(48px)}}
.wf-drop{position:absolute;top:-12%;width:2.2px;height:16px;border-radius:2px;background:linear-gradient(rgba(255,255,255,0),rgba(225,238,255,.95));animation:wfall linear infinite}
@keyframes wfall{to{transform:translateY(440px)}}
.wf-flake{position:absolute;top:-6%;color:#fff;text-shadow:0 0 4px rgba(120,150,200,.6);animation:wsnow linear infinite}
@keyframes wsnow{to{transform:translateY(420px) translateX(var(--sx))}}
.wf-gust{position:absolute;height:2.2px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);animation:wgust linear infinite}
@keyframes wgust{0%{transform:translateX(-200px);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateX(1100px);opacity:0}}
.wf-veil{position:absolute;inset:0;background:linear-gradient(0deg,rgba(255,255,255,.18),rgba(255,255,255,.05));animation:wfpulse 6s ease-in-out infinite}
@keyframes wfpulse{0%,100%{opacity:.7}50%{opacity:1}}
.wf-fogw{position:absolute;border-radius:50%;background:rgba(255,255,255,.28);filter:blur(26px);animation:wfdrift linear infinite}
@keyframes wfdrift{0%{transform:translateX(-50px)}100%{transform:translateX(50px)}}
.wf-moon{position:absolute;top:24px;right:32%;width:78px;height:78px;border-radius:50%;background:radial-gradient(circle at 38% 38%,#fff5cf,#ffe08a);box-shadow:0 0 34px 10px rgba(255,220,120,.36)}
.wf-star{position:absolute;width:3.2px;height:3.2px;border-radius:50%;background:#fff;animation:wtw 2.4s ease-in-out infinite}
@keyframes wtw{0%,100%{opacity:.25}50%{opacity:1}}
.search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-family:inherit;font-size:14px}
.search input::placeholder{color:var(--muted);opacity:1}
.legal .search{border:1px solid var(--line)}
@media(max-width:780px){.legal .search{display:flex}}

/* Lite-режим (§18, добавлено ревьюером) */
html.lite *{animation:none!important;transition:none!important}
html.lite .cloud{display:none}
html.lite .pop{opacity:1;transform:none}

/* Автокомплит поиска (§3.3). Дропдаун — недостающий макет §15.8: базовый стиль на токенах. */
.search{position:relative}
.ac-drop{position:absolute;top:calc(100% + 6px);left:0;min-width:260px;right:0;z-index:50;background:var(--card);border-radius:16px;box-shadow:var(--shadow);overflow:hidden auto;max-height:340px;display:none}
.ac-drop.show{display:block}
.ac-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;color:var(--ink);font-weight:800;white-space:nowrap}
.ac-item:hover,.ac-item.active{background:var(--soft)}
.ac-item .ac-reg{color:var(--muted);font-weight:700;font-size:12px;margin-left:auto;overflow:hidden;text-overflow:ellipsis}
.ac-item .ac-t{font-weight:900;color:var(--sun2);min-width:42px;text-align:right}
.ac-empty{padding:12px 14px;color:var(--muted);font-weight:700}
html[data-theme="dark"] .ac-drop{background:var(--card)}

/* ── страница результатов поиска ── */
.rlist{display:flex;flex-direction:column;gap:2px}
.ritem{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;color:var(--ink);font-weight:800}
.ritem:hover{background:var(--soft)}
.ritem .n{font-size:16px}
.ritem .ac-reg{color:var(--muted);font-weight:700;font-size:13px;margin-left:auto;text-align:right}
.ritem .ac-t{font-weight:900;color:var(--sun2);min-width:52px;text-align:right;font-size:17px}
.rhead{font-size:20px;margin-bottom:4px}
.rsub{color:var(--muted);font-weight:700;font-size:13px;margin-bottom:10px}
@media(max-width:480px){
  .ritem{flex-wrap:wrap;padding:11px 12px}
  .ritem .n{flex:1 1 auto}
  .ritem .ac-t{order:2}
  .ritem .ac-reg{order:3;flex:1 0 100%;margin-left:0;text-align:left;margin-top:2px}
}
/* тёмная тема: инлайн-поиски страниц (.searchbox/.suggest — вода/клёв/дневник) держат белый фон в page-CSS/inline-style,
   а текст var(--ink) в дарке светлый → белое на белом; !important перебивает и inline style="background:#fff" */
html[data-theme="dark"] .searchbox{background:var(--card) !important}
html[data-theme="dark"] .suggest{background:var(--card) !important}

/* Cookie-баннер (soft-consent) */
.cookieBanner{position:fixed;left:12px;right:12px;bottom:12px;z-index:9999;display:flex;gap:16px;align-items:center;justify-content:space-between;background:#1f2937;color:#fff;padding:14px 18px;border-radius:10px;font-size:14px;line-height:1.45;box-shadow:0 4px 20px rgba(0,0,0,.25)}
.cookieBanner a{color:#7db3ff;text-decoration:underline}
.cookieBanner__btn{flex:none;background:#ffd34e;color:#111;border:0;border-radius:8px;padding:8px 18px;font-weight:700;cursor:pointer}
.cookieBanner__btn:hover{background:#ffce4d}
.cookieBanner.is-hidden{display:none}
@media (max-width:560px){.cookieBanner{flex-direction:column;align-items:stretch;gap:10px;text-align:left}.cookieBanner__btn{align-self:flex-end}}

/* ── Водные страницы: water_body_page (wBody/wSea/wPeriod) ── */
.whero{background:linear-gradient(135deg,#48c6ef,#2a8fd6)!important}
.whero .wv{position:absolute;left:0;right:auto;bottom:0;width:200%;height:auto;opacity:.5;z-index:1}
.whero .wv.r1{height:84px;opacity:.5}
.whero .wv.r2{height:116px;opacity:.34}
.whero .wv.r3{height:150px;opacity:.2}
.whero .rab{position:absolute;right:8px;bottom:-40px;height:225px;width:auto;z-index:2;filter:drop-shadow(0 12px 14px rgba(0,0,0,.28));pointer-events:none}   /* ТЗ 01.07 заяц +50% (150→225), притоплен «в воду» — влезает и в hero 210px */
img.rab{width:auto!important;max-width:none}   /* §5 фикс: заяц не схлопывается в width:0 (был lazy → naturalWidth 0); теперь eager + width:auto */
.whero .in{position:relative;z-index:3}
.whero .seolead,.whero .upd,.whero .feels{color:#fff;opacity:.96}
@media(max-width:720px){.whero .rab{display:none}}
.wmap{position:relative;height:330px;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);background:linear-gradient(135deg,#dfeee0,#cfe3ee)}
.wpin{position:absolute;transform:translate(-50%,-50%);text-align:center;text-decoration:none}
.wpin .t{display:inline-block;font-weight:900;font-size:13px;color:#fff;border-radius:9px;padding:3px 9px;box-shadow:0 3px 8px rgba(0,0,0,.25);white-space:nowrap}
.wpin .n{display:block;font-size:11px;font-weight:800;color:#1f3350;background:rgba(255,255,255,.88);border-radius:7px;padding:1px 6px;margin-top:2px}
.wlegend{display:flex;gap:8px;align-items:center;margin-top:10px;font-weight:800;font-size:13px;color:var(--muted);flex-wrap:wrap}
.wlegend .sc{height:12px;width:150px;border-radius:7px;background:linear-gradient(90deg,#2c7bb6,#abd9e9,#ffffbf,#fdae61,#d7191c)}
.ntab{width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
.ntab th{text-align:left;color:var(--muted);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;border-bottom:2px solid var(--line)}
.ntab td{padding:11px 12px;font-weight:800;border-bottom:1px solid var(--line);vertical-align:middle}
.ntab tbody tr:nth-child(even){background:var(--soft)}
.ntab tbody tr:last-child td{border-bottom:0}
.ntab .city{font-weight:900;color:var(--rain)}
.tpill{display:inline-block;border-radius:999px;padding:4px 13px;font-weight:900;font-size:15px}
.swb{display:inline-block;font-size:12px;font-weight:800;border-radius:999px;padding:3px 10px}
.tpill.cold,.swb.cold{background:#e4f1fb;color:#2a6fb0}
.tpill.cool,.swb.cool{background:#eaf1f8;color:#3f6792}
.tpill.ok,.swb.ok{background:#e3f6ea;color:#1d8a4e}
.tpill.warm,.swb.warm{background:#fde3c2;color:#b5641a}
html[data-theme="dark"] .tpill.cold,html[data-theme="dark"] .swb.cold{background:#1d3a5c;color:#9bc8f5}
html[data-theme="dark"] .tpill.cool,html[data-theme="dark"] .swb.cool{background:#243a55;color:#a9c4e0}
html[data-theme="dark"] .tpill.ok,html[data-theme="dark"] .swb.ok{background:#1d4030;color:#9be6b6}
html[data-theme="dark"] .tpill.warm,html[data-theme="dark"] .swb.warm{background:#5a3a1a;color:#ffc98f}
.heatt{border-collapse:collapse;width:100%}
.heatt th{padding:6px 4px;color:var(--muted);font-size:12px;font-weight:800}
.heatt td{padding:7px 4px;text-align:center;font-weight:900;border-radius:6px;color:#27384f;font-variant-numeric:tabular-nums}
.recs{display:flex;flex-wrap:wrap;gap:8px}
.wlink{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;background:#eef5fc;color:#15539e;border:1px solid #d4e6f7;border-radius:10px;font-weight:800;font-size:14px;line-height:1;text-decoration:none}
.wlink:hover{background:#e0eefb;border-color:#bcdcf3}
.wlink b{color:#0b6db5;font-weight:900}
body.dark .wlink{background:#16324a;color:#cfe6fb;border-color:#22425f}
body.dark .wlink:hover{background:#1d3e5c}
body.dark .wlink b{color:#7ec8f5}
/* ── Новости: авторы / редакция / подпись на статье ── */
.ava{position:relative;border-radius:50%;display:grid;place-items:center;font-weight:900;color:#fff;flex:0 0 auto;overflow:hidden;background:linear-gradient(135deg,#7cc6ff,#4072d8);box-shadow:0 6px 14px rgba(21,49,91,.2)}
.ava img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ava.k{background:linear-gradient(135deg,var(--sun),var(--sun2))}
.ava.a{background:linear-gradient(135deg,var(--grass),#2f9b6e)}
.ava.lg{width:128px;height:128px;font-size:44px}
.ava.md{width:64px;height:64px;font-size:22px}
.ava.sm{width:44px;height:44px;font-size:16px}
.byline{display:flex;gap:13px;align-items:center;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:14px 0}
.byline .info{flex:1;min-width:0}
.byline .nm{font-weight:900;color:var(--ink)}.byline .nm a{color:var(--ink)}.byline .nm a:hover{color:var(--rain)}
.byline .meta{color:var(--muted);font-weight:800;font-size:13px;margin-top:2px}
.bygo{font-weight:800;font-size:13px;white-space:nowrap;align-self:center}
.authorbox{display:flex;gap:16px;align-items:flex-start;background:var(--soft);border-radius:20px;padding:18px;margin:22px 0}
.authorbox .info{flex:1;min-width:0}
.authorbox .nm{font-size:18px;font-weight:900}.authorbox .nm a{color:var(--ink)}
.authorbox .rl{font-weight:800;color:var(--muted);font-size:13px;margin:3px 0 6px}
.authorbox .bb{font-weight:600;color:var(--ink);line-height:1.55;font-size:14px}
.authorbox .go{font-weight:800;font-size:13px;margin-top:8px;display:inline-block}
.ahero{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
.ahero .info{flex:1;min-width:240px}
.arole{display:inline-block;background:var(--soft);color:var(--ink);border-radius:14px;padding:6px 13px;font-weight:900;font-size:13px;margin:8px 0}
.arole.lead{background:#fff4d6;color:#8a5a00}
.abio{color:var(--ink);line-height:1.65;font-weight:600;margin:6px 0 12px;max-width:62ch}
.atags{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.atags .tag{background:var(--soft);border-radius:13px;padding:6px 12px;font-weight:800;font-size:13px;color:var(--muted)}
.alinks{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.alinks a,.alinks button{background:var(--soft);border:0;border-radius:14px;padding:9px 14px;font-weight:800;font-size:14px;color:var(--rain);cursor:pointer;font-family:inherit}
.astat{display:flex;gap:22px;margin-top:12px;flex-wrap:wrap}
.astat b{font-size:20px}.astat span{display:block;color:var(--muted);font-weight:800;font-size:12px}
.nlist{display:flex;flex-direction:column}
.nrow{display:flex;gap:14px;align-items:baseline;padding:14px 4px;border-bottom:1px solid var(--line)}
.nrow:last-child{border-bottom:0}
.nrow .cat{flex:0 0 120px;font-weight:900;font-size:12px;color:var(--rain);text-transform:uppercase;letter-spacing:.4px}
.nrow .ttl{flex:1;font-weight:800;line-height:1.4;color:var(--ink)}.nrow .ttl:hover{color:var(--rain)}
.nrow .dt{flex:0 0 auto;color:var(--muted);font-weight:800;font-size:12px;white-space:nowrap}
@media(max-width:640px){.nrow{flex-wrap:wrap;gap:4px}.nrow .cat{flex-basis:auto}.nrow .dt{order:3;width:100%}}
.pager{display:flex;gap:7px;justify-content:center;margin:22px 0 0;flex-wrap:wrap}
.pager a,.pager span{min-width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:var(--card);box-shadow:0 4px 0 rgba(21,49,91,.06);font-weight:900;padding:0 12px;color:var(--ink)}
.pager .cur{background:var(--ink);color:var(--card)}
.pager .dots{background:transparent;box-shadow:none;color:var(--muted)}
.people{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:640px){.people{grid-template-columns:1fr}}
.edcard{display:flex;gap:16px;align-items:flex-start}
.edcard .info{flex:1;min-width:0}
.edcard .nm{font-size:18px;font-weight:900}.edcard .nm a{color:var(--ink)}
.edcard .rl{font-weight:800;color:var(--muted);font-size:13px;margin:3px 0 6px}
.edcard .bb{font-weight:600;color:var(--ink);line-height:1.5;font-size:14px}
.edcard .go{font-weight:800;font-size:13px;margin-top:8px;display:inline-block}
.princ{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.princ a{background:var(--soft);border-radius:14px;padding:10px 14px;font-weight:800;font-size:14px}
/* ── Новости v2: маскот zn39, статья (подпись/время), листинг строками, карточка автора ── */
.bunny{float:right;height:132px;width:auto;margin:0 0 8px 16px;filter:drop-shadow(0 10px 14px rgba(21,49,91,.16))}
@media(max-width:600px){.bunny{height:92px}}
.arth{font-size:32px;line-height:1.18;font-weight:900;letter-spacing:-.5px}
@media(max-width:600px){.arth{font-size:26px}}
.byline2{display:flex;gap:13px;align-items:center;margin:14px 0 16px}
.byline2 .aw{display:flex;flex:0 0 auto}
.byline2 .nm{font-weight:900;color:var(--ink)}.byline2 .nm a{color:var(--ink)}.byline2 .nm a:hover{color:var(--rain)}
.pubtime{color:var(--muted);font-weight:800;font-size:13px;margin:16px 0 10px}
a.rev,.pubtime .rev{color:var(--grass);text-decoration:none}
.updrow{color:var(--muted);font-weight:800;font-size:13px;margin-top:22px;padding-top:12px;border-top:1px solid var(--line)}
.cats{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 6px}
.cats a{background:var(--soft);border-radius:14px;padding:8px 14px;font-weight:800;font-size:14px;color:var(--ink)}
.cats a.on{background:var(--ink);color:var(--card)}
.nrow2{display:flex;gap:16px;padding:14px 4px;border-bottom:1px solid var(--line)}
.nrow2:last-child{border-bottom:0}
.nrow2 .thumb{width:132px;height:86px;border-radius:16px;flex:0 0 auto;object-fit:cover;display:block;background:linear-gradient(150deg,#3a6ea5,#1f3d6b);box-shadow:0 6px 14px rgba(21,49,91,.16)}
.nrow2 .rcol{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.nrow2 .cat{font-weight:900;font-size:12px;color:var(--rain);text-transform:uppercase;letter-spacing:.4px}
.nrow2 .dt{color:var(--muted);font-weight:800;font-size:12px}
.nrow2 .ttl{font-weight:800;line-height:1.35;color:var(--ink)}.nrow2 .ttl:hover{color:var(--rain)}
.nrow2 .exc{color:var(--muted);font-weight:600;font-size:13px;line-height:1.4}
@media(max-width:560px){.nrow2 .thumb{width:96px;height:72px}}
.aleft{display:flex;flex-direction:column;align-items:flex-start;gap:14px;justify-content:space-between}
.acorner{height:150px;width:auto;margin-top:6px;filter:drop-shadow(0 10px 14px rgba(21,49,91,.16))}
@media(max-width:640px){.acorner{display:none}}
/* §ФОН-дудл: погодный паттерн-подложка (light/dark по data-theme); геометрия в /assets/img/doodle-*.svg
   (background-image повторяется плиткой 720×720) — грузится один раз и кэшируется, а не в каждой HTML-странице */
.pagedoodle{position:fixed;inset:0;z-index:0;pointer-events:none;background-repeat:repeat;background-position:0 0;background-size:720px 720px}
.pd-l{background-image:url(/assets/img/doodle-l.svg)}
.pd-d{background-image:url(/assets/img/doodle-d.svg);display:none}
html[data-theme="dark"] .pd-l{display:none}
html[data-theme="dark"] .pd-d{display:block}
html.lite .pagedoodle{display:none}
.heroimg{position:relative;border-radius:22px;height:380px;overflow:hidden;display:grid;place-items:end;box-shadow:var(--shadow);background:linear-gradient(160deg,#22416f,#0f2238);margin:0 0 16px}
.heroimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.heroimg .cap{position:relative;width:100%;background:linear-gradient(0deg,rgba(0,0,0,.45),transparent);padding:10px 14px;font-size:12px;text-align:right;color:#cfe0f5;font-weight:700}
@media(max-width:600px){.heroimg{height:240px}}
/* Leaflet divIcon-обёртка водных пинов (убрать белый бокс по умолчанию) */
.wm-pin{background:none;border:0}
.leaflet-container{font-family:inherit;background:#cfe3ee}
.mconds .mcrow{display:flex;align-items:center;gap:12px;padding:9px 2px;border-bottom:1px dashed var(--line)}.mconds .mcrow:last-child{border:0}.mconds .mcm{width:46px;font-weight:900;flex:0 0 auto}.mconds .mbd{flex:0 0 auto;font-weight:800;font-size:12px;border-radius:999px;padding:3px 10px}.mconds .bok{background:#e3f6ea;color:#1d8a4e}.mconds .bno{background:#fde8e8;color:#c0392b}.mconds .bcool{background:#fff1db;color:#9a6a00}.mconds .mct{color:var(--muted);font-weight:700;flex:1;font-size:13px}
.heatt.yyt td{color:var(--ink)}.heatt .cn{text-align:left;color:var(--ink)}

/* П2 (ТЗ kosyaki 10.07): мобайл — блок рыбалки, кнопка «Прогноз клёва» обрезалась overflow-x при 390px */
@media (max-width: 600px){
  a.pop[href$="/rybalka/"], a.pop[href$="/fishing/"]{
    flex-wrap: wrap;
    row-gap: 12px;
    overflow-x: visible;
  }
  a.pop[href$="/rybalka/"] > img, a.pop[href$="/fishing/"] > img{
    flex: 0 0 72px;
    width: 72px;
    height: auto;
  }
  a.pop[href$="/rybalka/"] > div, a.pop[href$="/fishing/"] > div{
    flex: 1 1 auto;
    min-width: 0;
  }
  a.pop[href$="/rybalka/"] > span, a.pop[href$="/fishing/"] > span{
    flex: 1 0 100%;
    text-align: center;
    margin: 0;
  }
}
/* П3 (ТЗ kosyaki 10.07): тёмная тема — поля формы /contacts были белыми с почти белым текстом (контраст 1,1:1) */
html[data-theme="dark"] #cform input:not([name="website"]),
html[data-theme="dark"] #cform textarea{
  background: #16233c;
  color: #eef4ff;
  border-color: #3a4d76;
}
html[data-theme="dark"] #cform input:not([name="website"])::placeholder,
html[data-theme="dark"] #cform textarea::placeholder{
  color: #93a6c8;
}
/* П7 (ТЗ kosyaki 10.07): эмодзи в плитках (line-height:0 давал нулевую высоту — глиф наезжал на значение на мобиле) */
.card.ctile .emo{
  line-height: 1;
  margin-bottom: 6px;
}
