@charset "UTF-8";
/* Иглополе — стили темы. Палитра «Хвоя и латунь». Без внешних запросов: шрифты и Swiper лежат в теме. */

/* ---------- Шрифты ---------- */
@font-face {
   font-family: "Wix Madefor Display";
   font-style: normal;
   font-display: swap;
   font-weight: 400 800;
   src: url("../fonts/wix-madefor-display-cyrillic-wght-normal.woff2") format("woff2-variations");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
   font-family: "Wix Madefor Display";
   font-style: normal;
   font-display: swap;
   font-weight: 400 800;
   src: url("../fonts/wix-madefor-display-latin-wght-normal.woff2") format("woff2-variations");
   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: "Wix Madefor Display";
   font-style: normal;
   font-display: swap;
   font-weight: 400 800;
   src: url("../fonts/wix-madefor-display-latin-ext-wght-normal.woff2") format("woff2-variations");
   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: "Wix Madefor Text";
   font-style: normal;
   font-display: swap;
   font-weight: 400 800;
   src: url("../fonts/wix-madefor-text-cyrillic-wght-normal.woff2") format("woff2-variations");
   unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
   font-family: "Wix Madefor Text";
   font-style: normal;
   font-display: swap;
   font-weight: 400 800;
   src: url("../fonts/wix-madefor-text-latin-wght-normal.woff2") format("woff2-variations");
   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: "Wix Madefor Text";
   font-style: normal;
   font-display: swap;
   font-weight: 400 800;
   src: url("../fonts/wix-madefor-text-latin-ext-wght-normal.woff2") format("woff2-variations");
   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;
}

/* ---------- Токены ---------- */
:root {
   --pine-950: #0F2620;
   --pine-900: #173D33;
   --pine: #1D4B3E;
   --pine-700: #2E6B57;
   --pine-100: #DDE8E2;
   --pine-50: #EEF3EF;
   --brass: #B7832F;
   --brass-2: #D9AE5B;
   --brass-ink: #8A5D16;
   --brass-50: #F6EBD3;
   --sand: #F4F0E8;
   --sand-2: #EAE3D5;
   --paper: #FFFFFF;
   --ink: #1E2A25;
   --ink-2: #2F3D37;
   --muted: #55625B;
   --line: #D9D0BE;
   --line-2: #E6DFD1;
   --on-dark: #E9E4D8;
   --on-dark-2: #B9CCC3;
   --water: #3E8E7E;
   --water-2: #A9D3C8;
   --soil: #EADFC8;
   --error: #B42318;

   --f-head: "Wix Madefor Display", "Segoe UI", Arial, sans-serif;
   --f-text: "Wix Madefor Text", "Segoe UI", Arial, sans-serif;

   --r-sm: 10px;
   --r: 14px;
   --r-lg: 22px;
   --shadow: 0 1px 2px rgba(23, 61, 51, .06), 0 10px 28px -14px rgba(23, 61, 51, .22);
   --shadow-lg: 0 2px 4px rgba(23, 61, 51, .06), 0 24px 48px -20px rgba(23, 61, 51, .32);
   --gut: 16px;
   --head-h: 64px;
   --t: .25s ease;
   --field-line: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='30'%3E%3Cpath d='M0 26c11 0 15 3 28 3s17-3 28-3' fill='none' stroke='%233E8E7E' stroke-width='1.5' stroke-opacity='.55'/%3E%3Cpath d='M0 5h56' stroke='%23B7832F' stroke-width='3'/%3E%3Cpath d='M28 5v14' stroke='%23B7832F' stroke-width='2.4' stroke-linecap='round'/%3E%3Crect x='25.6' y='16' width='4.8' height='9' rx='1.6' fill='%23B7832F'/%3E%3C/svg%3E");
}
@media (min-width: 640px) {
   :root { --gut: 24px; }
}
@media (min-width: 1100px) {
   :root { --gut: 32px; --head-h: 76px; }
}

/* ---------- База ---------- */
*, *::before, *::after { box-sizing: border-box; }
html {
   -webkit-text-size-adjust: 100%;
   text-size-adjust: 100%;
   scroll-behavior: smooth;
   scroll-padding-top: calc(var(--head-h) + 24px);
}
@media (prefers-reduced-motion: reduce) {
   html { scroll-behavior: auto; }
   *, *::before, *::after { animation: none !important; }
}
body {
   margin: 0;
   background: var(--sand);
   color: var(--ink-2);
   font-family: var(--f-text);
   font-size: 16px;
   line-height: 1.6;
   overflow-x: clip;
}
body.nav-lock { overflow: hidden; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: var(--pine); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { margin: 0; color: var(--ink); font-family: var(--f-head); font-weight: 700; line-height: 1.2; text-wrap: balance; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
figure { margin: 0; }
:focus-visible { outline: 3px solid var(--brass); outline-offset: 2px; }
::selection { background: var(--brass-50); color: var(--ink); }

.screen-reader-text {
   position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
   overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
   position: absolute; left: 12px; top: -60px; z-index: 100;
   padding: 10px 16px; border-radius: var(--r-sm);
   background: var(--brass-2); color: var(--pine-950); font-weight: 700; text-decoration: none;
   transition: top var(--t);
}
.skip-link:focus { top: 12px; }
.container { width: 100%; max-width: calc(1280px + var(--gut) * 2); margin: 0 auto; padding: 0 var(--gut); }
.container--text { max-width: calc(820px + var(--gut) * 2); }
.nowrap { white-space: nowrap; }

.icon { width: 24px; height: 24px; flex: none; }
.icon--xs { width: 16px; height: 16px; }
.icon--sm { width: 20px; height: 20px; }

/* ---------- Мелкие элементы ---------- */
.eyebrow {
   display: inline-flex; align-items: center; gap: 8px;
   margin: 0 0 12px;
   color: var(--brass-ink);
   font-family: var(--f-head); font-size: 13px; font-weight: 700; letter-spacing: .08em; line-height: 1.3; text-transform: uppercase;
}
.eyebrow .icon { color: var(--brass); }
.link-more {
   display: inline-flex; align-items: center; gap: 6px;
   color: var(--pine); font-weight: 600; font-size: 15px; text-decoration: none;
   transition: color var(--t);
}
.link-more .icon { transition: transform var(--t); }
.link-more:hover { color: var(--brass-ink); }
.link-more:hover .icon { transform: translateX(3px); }

.plate {
   position: relative; z-index: 2;
   display: inline-flex; align-items: center; gap: 6px;
   padding: 4px 10px; border-radius: 999px;
   background: var(--pine-50); color: var(--pine);
   font-size: 13px; font-weight: 600; line-height: 1.35; text-decoration: none;
   transition: background-color var(--t), color var(--t);
}
a.plate:hover { background-color: var(--pine); color: #fff; }
.plate--icon { padding: 6px 12px 6px 10px; }

.btn {
   display: inline-flex; align-items: center; justify-content: center; gap: 8px;
   min-height: 50px; padding: 0 22px; border-radius: 12px; border: 1px solid transparent;
   font-weight: 600; font-size: 16px; line-height: 1.2; text-decoration: none;
   transition: background-color var(--t), color var(--t), border-color var(--t);
}
.btn--primary { background: var(--pine); color: #fff; }
.btn--primary:hover { background-color: var(--pine-900); }
.btn--ghost { background: var(--paper); border-color: var(--line); color: var(--pine); }
.btn--ghost:hover { background-color: var(--pine-50); border-color: var(--pine-100); }

.icon-btn {
   display: inline-flex; align-items: center; justify-content: center; gap: 8px;
   min-width: 44px; height: 44px; padding: 0 10px; border: 0; border-radius: 12px;
   background: transparent; color: inherit;
   transition: background-color var(--t), color var(--t), border-color var(--t);
}

.arrows { display: flex; gap: 8px; }
.arrow-btn {
   display: inline-flex; align-items: center; justify-content: center;
   width: 46px; height: 46px; border-radius: 50%;
   border: 1px solid var(--line); background: var(--paper); color: var(--pine);
   transition: background-color var(--t), color var(--t), border-color var(--t), opacity var(--t);
}
.arrow-btn:hover { background-color: var(--pine); border-color: var(--pine); color: #fff; }
.arrow-btn--sm { width: 38px; height: 38px; }
.arrow-btn.swiper-button-disabled { opacity: .35; cursor: default; }
.arrow-btn.swiper-button-disabled:hover { background-color: var(--paper); border-color: var(--line); color: var(--pine); }
.arrow-btn.swiper-button-lock { display: none; }
.no-js .arrows, .no-js .chips__prev, .no-js .chips__next { display: none; }


/* ---------- Шапка ---------- */
.site-header {
   position: sticky; top: 0; z-index: 50;
   background: var(--pine-900); color: var(--on-dark);
   box-shadow: 0 1px 0 rgba(0, 0, 0, .15);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }
.site-header__bar { display: flex; align-items: center; gap: 24px; height: var(--head-h); }
.logo { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; min-width: 0; }
.logo__mark { width: 44px; height: 44px; flex: none; }
.logo__text { display: flex; flex-direction: column; min-width: 0; }
.logo__name { color: #fff; font-family: var(--f-head); font-weight: 800; font-size: 19px; line-height: 1.1; letter-spacing: -.01em; }
.logo__sub { color: var(--brass-2); font-size: 13px; font-weight: 500; line-height: 1.3; }
.site-header .logo__mark rect { transition: fill var(--t); }
.site-header .logo:hover .logo__mark rect { fill: var(--pine-700); }

.nav { margin-left: auto; }
.nav__head, .nav__search { display: none; }
.menu { display: flex; align-items: center; gap: 2px; list-style: none; }
.menu > li { position: relative; display: flex; align-items: center; }
.menu > li > a {
   display: block; padding: 10px 12px; border-radius: 10px;
   color: var(--on-dark); font-size: 15px; font-weight: 500; line-height: 1.3; text-decoration: none; white-space: nowrap;
   transition: background-color var(--t), color var(--t);
}
.menu > li > a:hover { background-color: rgba(255, 255, 255, .08); color: #fff; }
.menu__toggle {
   display: inline-flex; align-items: center; justify-content: center;
   width: 30px; height: 30px; margin-left: -6px; border: 0; border-radius: 8px;
   background: transparent; color: var(--on-dark);
   transition: background-color var(--t), color var(--t);
}
.menu__toggle:hover { background-color: rgba(255, 255, 255, .08); color: #fff; }
.menu__toggle .icon { width: 18px; height: 18px; transition: transform var(--t); }
.menu > li.is-open > .menu__toggle .icon { transform: rotate(180deg); }
.sub-menu {
   position: absolute; top: calc(100% + 8px); left: 0; z-index: 5;
   min-width: 280px; padding: 8px; border-radius: var(--r); list-style: none;
   background: var(--paper); box-shadow: var(--shadow-lg);
   opacity: 0; visibility: hidden; transform: translateY(6px);
   transition: opacity var(--t), transform var(--t), visibility var(--t);
}
.menu > li:last-child > .sub-menu, .menu > li:nth-last-child(2) > .sub-menu { left: auto; right: 0; }
.menu > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.sub-menu a {
   display: block; padding: 9px 12px; border-radius: 8px;
   color: var(--ink); font-size: 15px; line-height: 1.35; text-decoration: none;
   transition: background-color var(--t), color var(--t);
}
.sub-menu a:hover { background-color: var(--pine-50); color: var(--pine); }
/* на ПК с мышью подменю раскрывается и при наведении; ::before закрывает щель между пунктом и подменю */
@media (min-width: 961px) and (hover: hover) {
   .menu > li:hover > .sub-menu { opacity: 1; visibility: visible; transform: none; }
   .menu > li:hover > .menu__toggle .icon { transform: rotate(180deg); }
   .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 8px; }
}

.site-header__actions { display: flex; align-items: center; gap: 6px; }
.search-toggle { border: 1px solid rgba(255, 255, 255, .22); padding: 0 14px; color: var(--on-dark); font-size: 15px; font-weight: 500; }
.search-toggle:hover, .search-toggle[aria-expanded="true"] { background-color: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .4); color: #fff; }
.burger { display: none; color: #fff; }
.burger:hover { background-color: rgba(255, 255, 255, .1); }

/* панель поиска лежит поверх страницы и не сдвигает её */
.search-panel {
   position: absolute; top: 100%; left: 0; right: 0;
   padding: 16px 0; background: var(--pine-950);
   box-shadow: 0 14px 28px -14px rgba(0, 0, 0, .45);
   opacity: 0; visibility: hidden; transform: translateY(-6px);
   transition: opacity var(--t), transform var(--t), visibility var(--t);
}
/* при открытии visibility включается сразу, иначе поле не примет фокус */
.search-panel.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity var(--t), transform var(--t), visibility 0s; }
.search-panel__inner { display: flex; align-items: center; gap: 12px; }
.search-panel .sbox { flex: 1; }
.search-panel__close { color: var(--on-dark); }
.search-panel__close:hover { background-color: rgba(255, 255, 255, .1); color: #fff; }

.nav-overlay {
   position: fixed; inset: 0; z-index: 55;
   background: rgba(15, 38, 32, .55);
   opacity: 0; transition: opacity .3s ease;
}
.nav-overlay.is-visible { opacity: 1; }

@media (max-width: 1100px) and (min-width: 961px) {
   .menu > li > a { padding: 10px 9px; font-size: 14.5px; }
   .search-toggle__label { display: none; }
   .search-toggle { padding: 0 10px; }
   .site-header__bar { gap: 16px; }
}
@media (max-width: 960px) {
   .burger { display: inline-flex; }
   .search-toggle__label { display: none; }
   .search-toggle { padding: 0 10px; }
   .site-header__actions { margin-left: auto; }
   .nav {
      position: fixed; top: 0; right: 0; bottom: 0; z-index: 60;
      display: flex; flex-direction: column;
      width: min(380px, 88vw); margin: 0; padding: 16px 20px 20px;
      background: var(--sand); color: var(--ink);
      transform: translateX(100%); visibility: hidden;
      transition: transform .3s ease, visibility .3s ease;
      overflow-y: auto; overscroll-behavior: contain;
   }
   .nav.is-open { transform: none; visibility: visible; }
   .nav__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
   .nav__title { font-family: var(--f-head); font-weight: 700; font-size: 20px; color: var(--ink); }
   .nav__close { color: var(--ink); }
   .nav__close:hover { background-color: var(--sand-2); }
   .menu { flex-direction: column; align-items: stretch; gap: 0; }
   .menu > li { flex-wrap: wrap; border-bottom: 1px solid var(--line-2); }
   .menu > li > a { flex: 1; padding: 14px 4px; color: var(--ink); font-size: 17px; white-space: normal; border-radius: 0; }
   .menu > li > a:hover { background-color: transparent; color: var(--pine); }
   .menu__toggle { width: 44px; height: 44px; margin: 0; color: var(--ink); }
   .menu__toggle:hover { background-color: var(--sand-2); color: var(--pine); }
   .sub-menu {
      position: static; flex-basis: 100%; min-width: 0; height: 0; padding: 0; overflow: hidden;
      background: transparent; box-shadow: none; border-radius: 0;
      opacity: 1; transform: none; visibility: hidden;
      transition: height .3s ease, visibility .3s ease;
   }
   .menu > li.is-open > .sub-menu { visibility: visible; }
   .sub-menu li:last-child { padding-bottom: 10px; }
   .sub-menu a { padding: 9px 12px 9px 16px; font-size: 15.5px; }
   .nav__search { display: block; margin-top: auto; padding-top: 24px; }
}
@media (max-width: 420px) {
   .logo__mark { width: 40px; height: 40px; }
   .logo__name { font-size: 17px; }
   .logo__sub { font-size: 12px; }
   .site-header__bar { gap: 10px; }
}

/* ---------- Поиск (форма) ---------- */
.sbox { display: flex; align-items: stretch; width: 100%; max-width: 560px; }
.sbox__input {
   flex: 1; min-width: 0; width: 100%; height: 52px; padding: 0 16px;
   border: 1px solid var(--line); border-right: 0; border-radius: 12px 0 0 12px;
   background: var(--paper); color: var(--ink); font-size: 16px;
   transition: border-color var(--t), box-shadow var(--t);
}
.sbox__input::placeholder { color: #7A857F; }
.sbox__input:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px rgba(29, 75, 62, .15); }
.sbox__btn {
   display: inline-flex; align-items: center; gap: 8px; flex: none;
   height: 52px; padding: 0 20px; border: 0; border-radius: 0 12px 12px 0;
   background: var(--pine); color: #fff; font-weight: 600;
   transition: background-color var(--t), color var(--t);
}
.sbox__btn:hover { background-color: var(--pine-700); }
.sbox__btn .icon { width: 20px; height: 20px; }
.search-panel .sbox__input { border-color: transparent; }
.search-panel .sbox__btn { background: var(--brass-2); color: var(--pine-950); }
.search-panel .sbox__btn:hover { background-color: #E6C27C; }
.nav__search .sbox__btn-text { display: none; }
.nav__search .sbox__btn { padding: 0 16px; }
@media (max-width: 420px) {
   .sbox__btn { padding: 0 14px; }
   .sbox__btn-text { display: none; }
}

/* ---------- Секции ---------- */
.section { padding: 64px 0; }
.section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: 32px; flex-wrap: wrap; }
.section__title { font-size: clamp(26px, 2.6vw, 36px); line-height: 1.15; letter-spacing: -.01em; }
.section__note { max-width: 440px; color: var(--muted); font-size: 15px; text-wrap: pretty; }
@media (max-width: 640px) {
   .section { padding: 44px 0; }
   .section__head { margin-bottom: 24px; }
}

/* ---------- Карточки ---------- */
.card { position: relative; display: flex; flex-direction: column; min-width: 0; }
.card:has(:focus-visible) { outline: 3px solid var(--brass); outline-offset: 3px; }
.card .stretch:focus-visible { outline: none; }
.stretch { color: inherit; text-decoration: none; }
.stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card__media { position: relative; overflow: hidden; background: var(--sand-2); }
.card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.card:hover .card__media img { transform: scale(1.04); }
.thumb-ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--water); }
.card__title { font-size: 19px; font-weight: 700; line-height: 1.3; text-wrap: pretty; }
.card__title a { transition: color var(--t); }
.card:hover .card__title a { color: var(--pine); }
.card__excerpt { color: var(--muted); font-size: 15px; line-height: 1.55; text-wrap: pretty; }
.card__cat { display: flex; line-height: 1; }
.card__cat .plate { display: block; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; color: var(--muted); font-size: 13.5px; line-height: 1.4; }
.meta__time { display: inline-flex; align-items: center; gap: 5px; }
.meta__time .icon { color: var(--brass); }
.card__more { display: inline-flex; align-items: center; gap: 6px; color: var(--brass-ink); font-size: 14.5px; font-weight: 600; }
.card__more .icon { transition: transform var(--t); }
.card:hover .card__more .icon { transform: translateX(3px); }

/* сетка карточек */
.card--grid {
   height: 100%; border: 1px solid var(--line-2); border-radius: var(--r); overflow: hidden;
   background: var(--paper);
   transition: border-color var(--t), box-shadow var(--t);
}
.card--grid:hover { border-color: var(--line); box-shadow: var(--shadow); }
.card--grid .card__media { aspect-ratio: 3 / 2; }
.card--grid .card__body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 18px 20px 20px; }
.card--grid .card__more { margin-top: auto; padding-top: 4px; }
.card--grid .meta { margin-top: 2px; }
.card--grid .card__title { font-size: 18px; }

.grid { display: grid; gap: 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1023px) {
   .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
   .grid--trio > :nth-child(3) { display: none; }
}
@media (max-width: 640px) {
   .grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

/* мини-карточка */
.card--mini { flex-direction: row; align-items: flex-start; gap: 14px; }
.card--mini .card__media { width: 84px; height: 84px; flex: none; border-radius: var(--r-sm); }
.card--mini .card__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.card--mini .card__title { font-size: 16px; line-height: 1.35; }

/* ---------- Первый экран ---------- */
.hero { position: relative; padding: 56px 0 0; background: radial-gradient(120% 90% at 85% 10%, #FBF8F2 0, var(--sand) 60%); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); gap: 56px; align-items: center; padding-bottom: 56px; }
.hero__title { font-size: clamp(31px, 4.1vw, 58px); line-height: 1.04; letter-spacing: -.02em; font-weight: 800; color: var(--pine-950); }
.hero__sub { margin-top: 18px; padding-left: 14px; border-left: 3px solid var(--brass); color: var(--pine); font-family: var(--f-head); font-size: 19px; font-weight: 600; line-height: 1.35; }
.hero__lead { max-width: 560px; margin-top: 18px; color: var(--ink-2); font-size: 17px; line-height: 1.6; text-wrap: pretty; }
.hero__search { margin-top: 28px; }
.hero__stats { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 0; margin: 32px 0 0; }
.hero__stat { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 2px; padding: 0 28px; border-left: 1px solid var(--line); }
.hero__stat:first-child { padding-left: 0; border-left: 0; }
.hero__stat dd { margin: 0; color: var(--pine); font-family: var(--f-head); font-weight: 800; font-size: 32px; line-height: 1.1; white-space: nowrap; }
.hero__stat dt { color: var(--muted); font-size: 14px; line-height: 1.35; }

/* схема водопонижения */
.scheme { padding: 20px 20px 22px; border-radius: var(--r-lg); background: var(--paper); box-shadow: var(--shadow-lg); }
.scheme__svg { width: 100%; height: auto; border-radius: 12px; overflow: hidden; }
.sch-soil { fill: var(--soil); }
.sch-pit { fill: var(--paper); }
.sch-ground { fill: none; stroke: var(--ink-2); stroke-width: 2; stroke-linejoin: round; }
.sch-ugv { fill: none; stroke: var(--water); stroke-width: 1.5; stroke-dasharray: 7 6; opacity: .75; }
.sch-curve { fill: none; stroke: var(--water); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 14 8; animation: sch-flow 2.4s linear infinite; }
@keyframes sch-flow { to { stroke-dashoffset: -44; } }
.sch-needles path { fill: none; stroke: var(--ink-2); stroke-width: 3.5; stroke-linecap: round; }
.sch-needles .sch-needles__ghost { stroke-width: 2.5; opacity: .3; }
.sch-filters rect { fill: var(--brass); }
.sch-collector { fill: none; stroke: var(--brass); stroke-width: 7; stroke-linecap: round; }
.sch-pump { fill: var(--pine); }
.sch-pump__dial { fill: var(--sand); }
.sch-pump__hand { stroke: var(--brass); stroke-width: 2.5; stroke-linecap: round; }
.sch-flow path { fill: none; stroke: var(--water); stroke-width: 1.6; stroke-dasharray: 3 4; marker-end: url(#sch-arrow); }
.sch-arrowhead { fill: var(--water); }
.sch-marks circle { fill: var(--pine-950); }
.sch-marks text { fill: #fff; font-family: var(--f-head); font-size: 12px; font-weight: 700; text-anchor: middle; }
.scheme__cap { margin-top: 16px; }
.scheme__title { display: block; margin-bottom: 10px; color: var(--ink); font-family: var(--f-head); font-weight: 700; font-size: 16px; }
.scheme__legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 20px; list-style: none; counter-reset: lg; }
.scheme__legend li { position: relative; padding-left: 30px; color: var(--ink-2); font-size: 14px; line-height: 1.4; counter-increment: lg; }
.scheme__legend li::before {
   content: counter(lg); position: absolute; left: 0; top: -1px;
   display: inline-flex; align-items: center; justify-content: center;
   width: 21px; height: 21px; border-radius: 50%;
   background: var(--pine-950); color: #fff; font-family: var(--f-head); font-size: 11.5px; font-weight: 700;
}

@media (max-width: 1100px) {
   .hero__grid { gap: 36px; }
   .hero__stat { padding: 0 18px; }
   .scheme__legend { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}
@media (max-width: 900px) {
   .hero__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
   .hero__intro { max-width: 680px; }
   .hero__art { max-width: 680px; }
   .scheme__legend { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 20px; }
}
@media (max-width: 640px) {
   .hero { padding-top: 36px; }
   .hero__grid { padding-bottom: 40px; gap: 32px; }
   .hero__sub { font-size: 17px; }
   .hero__lead { font-size: 16px; }
   .hero__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
   .hero__stat { padding: 0 12px; }
   .hero__stat dd { font-size: 26px; }
   .hero__stat dt { font-size: 13px; }
   .scheme { padding: 12px 12px 16px; border-radius: var(--r); }
   .scheme__legend { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- С чего начать ---------- */
.section--start { background: var(--paper); padding-top: 56px; }
.start__swiper { position: relative; min-width: 0; padding-top: 30px; }
.start__list { list-style: none; }
.start__slide { position: relative; height: auto; }
/* линия маршрута рисуется у каждого слайда (до соседнего), чтобы ехать вместе со слайдами за край контейнера */
.start__slide::after {
   content: ""; position: absolute; left: 0; right: -24px; top: -22px; height: 5px; border-radius: 3px;
   background: var(--brass);
}
.start__slide:last-child::after { right: 0; }
.start__slide::before {
   content: ""; position: absolute; left: 34px; top: -22px; width: 4px; height: 22px; border-radius: 2px;
   background: var(--brass);
}
/* экран не шире контейнера — слайды выходят за его край до края экрана */
@media (max-width: 1344px) {
   .section--start { overflow: hidden; }
   .start__swiper { overflow: visible; }
}
.start__nav { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 28px; }
.start__nav .arrow-btn { flex: none; }
.start__dots { display: flex; align-items: center; justify-content: center; }
.start__dots.swiper-pagination-bullets .swiper-pagination-bullet {
   display: inline-flex; align-items: center; justify-content: center;
   width: 24px; height: 24px; margin: 0; border-radius: 0; background: none; opacity: 1; cursor: pointer;
}
.start__dots .swiper-pagination-bullet::before {
   content: ""; width: 8px; height: 8px; border-radius: 4px; background: var(--line);
   transition: width var(--t), background-color var(--t);
}
.start__dots .swiper-pagination-bullet-active::before { width: 22px; background-color: var(--brass); }
.start__dots .swiper-pagination-bullet:focus-visible { outline-offset: -2px; border-radius: 8px; }
/* ПК с мышью — стрелки, тач-экран — точки */
@media (hover: hover) and (pointer: fine) {
   .start__dots { display: none; }
}
@media (hover: none), (pointer: coarse) {
   .start__nav .arrow-btn { display: none; }
   .start__nav { margin-top: 18px; }
}
[data-start].is-locked .start__nav, .no-js .start__nav { display: none; }
.no-js .start__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.card--step {
   height: 100%; border: 1px solid var(--line-2); border-radius: var(--r); overflow: hidden;
   background: var(--sand);
   transition: border-color var(--t), box-shadow var(--t);
}
.card--step:hover { border-color: var(--line); box-shadow: var(--shadow); }
.card--step .card__media { aspect-ratio: 16 / 10; }
.card--step .card__num {
   position: absolute; left: 14px; top: 14px;
   padding: 5px 10px; border-radius: 8px;
   background: var(--pine-950); color: var(--brass-2);
   font-family: var(--f-head); font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.card--step .card__body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 16px 16px 18px; }
.card--step .card__title { font-size: 17px; }
.card--step .meta { margin-top: auto; }
@media (min-width: 1200px) and (max-width: 1399px) {
   .card--step .card__title { font-size: 16px; }
}

/* ---------- Свежие статьи: лента по датам + боковая колонка ---------- */
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; }
.feed { position: relative; list-style: none; display: flex; flex-direction: column; gap: 22px; }
.feed::before { content: ""; position: absolute; left: 96px; top: 6px; bottom: 6px; width: 2px; background: var(--line); }
.feed__item { position: relative; display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 44px; }
.feed__item::before {
   content: ""; position: absolute; left: 90px; top: 12px; width: 14px; height: 14px; border-radius: 50%;
   background: var(--sand); border: 3px solid var(--brass);
}
.feed__date { display: flex; flex-direction: column; align-items: flex-end; text-align: right; padding-top: 2px; }
.feed__day { color: var(--pine); font-family: var(--f-head); font-size: 32px; font-weight: 800; line-height: 1; }
.feed__month { margin-top: 4px; color: var(--ink); font-size: 14px; font-weight: 600; line-height: 1.2; }
.feed__year { color: var(--muted); font-size: 13px; line-height: 1.3; }
.card--feed {
   flex-direction: row; gap: 0;
   border: 1px solid var(--line-2); border-radius: var(--r); overflow: hidden; background: var(--paper);
   transition: border-color var(--t), box-shadow var(--t);
}
.card--feed:hover { border-color: var(--line); box-shadow: var(--shadow); }
.card--feed .card__media { width: 38%; max-width: 280px; flex: none; min-height: 190px; }
.card--feed .card__media img { position: absolute; inset: 0; }
.card--feed .card__body { display: flex; flex-direction: column; gap: 9px; flex: 1; min-width: 0; padding: 18px 22px 20px; }
.card--feed .card__title { font-size: 20px; }
.card--feed .card__more { margin-top: 2px; }

@media (min-width: 1101px) {
   .layout__side { position: sticky; top: var(--side-top, calc(var(--head-h) + 24px)); }
}
@media (max-width: 1100px) {
   .layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 640px) {
   .feed::before { left: 15px; }
   .feed__item { grid-template-columns: minmax(0, 1fr); gap: 8px; padding-left: 40px; }
   .feed__item::before { left: 9px; top: 4px; }
   .feed__date { flex-direction: row; align-items: baseline; gap: 6px; text-align: left; padding-top: 0; }
   .feed__day { font-size: 18px; }
   .feed__month, .feed__year { margin: 0; font-size: 14px; }
   .card--feed { flex-direction: column; }
   .card--feed .card__media { width: 100%; max-width: none; aspect-ratio: 16 / 10; min-height: 0; }
   .card--feed .card__title { font-size: 18px; }
}

/* боковая колонка */
.sidebar { display: flex; flex-direction: column; gap: 24px; }
.widget { padding: 24px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--paper); }
.widget__title { position: relative; margin-bottom: 16px; padding-left: 16px; font-size: 19px; line-height: 1.25; }
.widget__title::before { content: ""; position: absolute; left: 0; top: .15em; width: 4px; height: 1em; border-radius: 2px; background: var(--brass); }
.wauthor { display: flex; align-items: center; gap: 14px; }
.wauthor__name { color: var(--ink); font-family: var(--f-head); font-weight: 700; font-size: 18px; line-height: 1.25; }
.wauthor__role { margin-top: 2px; color: var(--muted); font-size: 14px; line-height: 1.45; }
.wauthor__about { margin: 14px 0 16px; color: var(--ink-2); font-size: 15px; line-height: 1.6; text-wrap: pretty; }
.wpop { list-style: none; display: flex; flex-direction: column; }
.wpop__item + .wpop__item { border-top: 1px solid var(--line-2); }
.card--pop { flex-direction: row; gap: 14px; padding: 12px 0; }
.wpop__item:first-child .card--pop { padding-top: 0; }
.wpop__item:last-child .card--pop { padding-bottom: 0; }
.card--pop .card__num { flex: none; width: 34px; color: var(--brass); font-family: var(--f-head); font-size: 22px; font-weight: 800; line-height: 1.1; }
.card--pop .card__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.card--pop .card__title { font-size: 15.5px; line-height: 1.38; }
.wcats { list-style: none; }
.wcats__link {
   display: flex; align-items: center; gap: 12px; padding: 9px 8px; margin: 0 -8px; border-radius: 10px;
   color: var(--ink); text-decoration: none; font-size: 15px; line-height: 1.35;
   transition: background-color var(--t), color var(--t);
}
.wcats__link:hover, .wcats__link[aria-current] { background-color: var(--pine-50); color: var(--pine); }
.wcats__icon { color: var(--brass); }
.wcats__icon .icon { width: 20px; height: 20px; }
.wcats__name { flex: 1; min-width: 0; }
.wcats__count { color: var(--muted); font-size: 13px; }
@media (max-width: 1100px) and (min-width: 641px) {
   .sidebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
}

/* ---------- Кому что читать ---------- */
.section--roles { background: var(--pine-900); color: var(--on-dark); }
.section--roles .section__title { color: #fff; }
.section--roles .eyebrow { color: var(--brass-2); }
.section--roles .eyebrow .icon { color: var(--brass-2); }
.section--roles .section__note { color: var(--on-dark-2); }
.roles__tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 28px; }
.roles__tab {
   display: flex; align-items: center; gap: 12px; min-width: 0; min-height: 64px; padding: 12px 16px;
   border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--r);
   background: rgba(255, 255, 255, .04); color: var(--on-dark);
   text-align: left; font-family: var(--f-head); font-size: 16px; font-weight: 600; line-height: 1.25;
   transition: background-color var(--t), border-color var(--t), color var(--t);
}
.roles__tab:hover { background-color: rgba(255, 255, 255, .09); border-color: rgba(255, 255, 255, .28); color: #fff; }
.roles__tab[aria-selected="true"] { background-color: var(--sand); border-color: var(--sand); color: var(--pine-950); }
.roles__name { min-width: 0; overflow-wrap: break-word; }
.roles__icon {
   display: inline-flex; align-items: center; justify-content: center; flex: none;
   width: 40px; height: 40px; border-radius: 10px;
   background: rgba(217, 174, 91, .16); color: var(--brass-2);
   transition: background-color var(--t), color var(--t);
}
.roles__tab[aria-selected="true"] .roles__icon { background-color: var(--brass-50); color: var(--brass-ink); }
.roles__panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.75fr); grid-template-rows: auto 1fr; gap: 0 40px; align-items: start; }
.roles__intro { grid-column: 1; grid-row: 1; }
.roles__more { grid-column: 1; grid-row: 2; }
.roles__list { grid-column: 2; grid-row: 1 / span 2; }
.roles__panel[hidden] { display: none; }
.no-js .roles__tabs { display: none; }
.no-js .roles__panel[hidden] { display: grid; margin-top: 40px; }
.roles__title { color: #fff; font-size: 26px; }
.roles__text { margin-top: 12px; color: var(--on-dark); font-size: 16.5px; line-height: 1.6; text-wrap: pretty; }
.roles__cats-label { margin-top: 22px; color: var(--on-dark-2); font-size: 14px; }
.roles__cats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; list-style: none; }
.roles__cats .chip { border-color: rgba(255, 255, 255, .2); background: transparent; color: var(--on-dark); }
.roles__cats .chip .icon { color: var(--brass-2); }
.roles__cats .chip:hover { background-color: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .36); color: #fff; }
.roles__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; list-style: none; }
.roles__list .card--mini {
   height: 100%; padding: 12px; border-radius: var(--r);
   background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1);
   transition: background-color var(--t), border-color var(--t);
}
.roles__list .card--mini:hover { background-color: rgba(255, 255, 255, .11); border-color: rgba(255, 255, 255, .22); }
.roles__list .card__title { color: #fff; font-size: 15.5px; }
.roles__list .card:hover .card__title a { color: var(--brass-2); }
.roles__list .meta { color: var(--on-dark-2); }
.section--roles .card:has(:focus-visible) { outline-color: var(--brass-2); }
@media (max-width: 1100px) {
   .roles__tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
   .roles__panel { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; gap: 28px; }
   .roles__intro, .roles__more, .roles__list { grid-column: auto; grid-row: auto; }
   .roles__cats-label { margin-top: 0; }
}
@media (max-width: 640px) {
   .roles__tabs { gap: 8px; }
   .roles__tab { min-height: 56px; padding: 10px; gap: 10px; font-size: 14.5px; }
   .roles__icon { width: 34px; height: 34px; }
   .roles__icon .icon { width: 20px; height: 20px; }
   .roles__list { grid-template-columns: minmax(0, 1fr); }
   .roles__title { font-size: 22px; }
}
@media (max-width: 520px) {
   .roles__tabs { grid-template-columns: minmax(0, 1fr); }
   .roles__tab { min-height: 52px; }
}

/* ---------- Плитки рубрик ---------- */
.tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.cat-tile {
   gap: 10px; height: 100%; padding: 22px; border: 1px solid var(--line-2); border-radius: var(--r); overflow: hidden;
   background: var(--paper);
   transition: border-color var(--t), box-shadow var(--t);
}
.cat-tile:hover { border-color: var(--line); box-shadow: var(--shadow); }
.cat-tile__icon {
   display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; margin-bottom: 6px; border-radius: 12px;
   background: var(--pine-50); color: var(--pine);
   transition: background-color var(--t), color var(--t);
}
.cat-tile:hover .cat-tile__icon { background-color: var(--pine); color: #fff; }
.cat-tile__name { font-size: 18px; line-height: 1.3; }
.cat-tile__name a { transition: color var(--t); }
.cat-tile:hover .cat-tile__name a { color: var(--pine); }
.cat-tile__text { color: var(--muted); font-size: 14.5px; line-height: 1.55; text-wrap: pretty; }
.cat-tile__count { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 6px; color: var(--brass-ink); font-size: 14.5px; font-weight: 600; }
.cat-tile__count .icon { transition: transform var(--t); }
.cat-tile:hover .cat-tile__count .icon { transform: translateX(3px); }
@media (max-width: 1100px) { .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .tiles { grid-template-columns: minmax(0, 1fr); gap: 14px; } }

/* ---------- Секции рубрик на главной ---------- */
.rubric { padding: 48px 0; }
.rubric:nth-child(odd) { background: var(--paper); }
.rubric__grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 32px; align-items: start; }
.rubric__head { display: flex; flex-direction: column; gap: 12px; }
.rubric__icon {
   display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%;
   background: var(--brass-50); color: var(--brass-ink);
}
.rubric__icon .icon { width: 28px; height: 28px; }
.rubric__title { font-size: 23px; line-height: 1.2; }
.rubric__text { color: var(--muted); font-size: 15px; line-height: 1.6; text-wrap: pretty; }
.rubric:nth-child(odd) .card--grid { background: var(--sand); }
.rubric__cards .card__title { font-size: 17px; }
@media (min-width: 1200px) and (max-width: 1365px) {
   .rubric__cards .card__title { font-size: 16px; }
}
@media (max-width: 1100px) {
   .rubric__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
   .rubric__head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 4px 16px; }
   .rubric__icon { grid-row: span 2; }
   .rubric__title { margin-top: 14px; }   /* (56 − 28) / 2: первая строка по центру иконки */
   .rubric__more { margin-top: 16px; }
   .rubric__text { grid-column: 2 / 4; }
   .rubric__more { grid-column: 3; grid-row: 1; }
}
@media (max-width: 640px) {
   .rubric { padding: 36px 0; }
   .rubric__head { grid-template-columns: auto minmax(0, 1fr); }
   .rubric__icon { width: 46px; height: 46px; grid-row: auto; }
   .rubric__title { margin-top: 10px; }   /* (46 − 26) / 2 */
   .rubric__more { margin-top: 8px; }
   .rubric__icon .icon { width: 24px; height: 24px; }
   .rubric__title { font-size: 22px; }
   .rubric__text { grid-column: 1 / -1; }
   .rubric__more { grid-column: 1 / -1; grid-row: auto; }
}

/* ---------- SEO-текст главной ---------- */
.section--seo { background: var(--sand-2); }
.seo { max-width: calc(1080px + var(--gut) * 2); }
.seo__head { margin-bottom: 24px; }
.seo__title { font-size: clamp(28px, 3vw, 40px); line-height: 1.15; }
.seo__intro .prose { max-width: 820px; }
.signature { display: flex; align-items: center; gap: 14px; margin-top: 24px; padding-left: 16px; border-left: 3px solid var(--brass); }
.signature__name { color: var(--ink); font-family: var(--f-head); font-weight: 700; font-size: 17px; }
.signature__role { color: var(--muted); font-size: 14px; }
.seo__block { margin-top: 48px; }
.seo__subtitle { font-size: clamp(22px, 2.2vw, 28px); margin-bottom: 14px; }
.seo__lead { max-width: 820px; margin-bottom: 22px; }
.topics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; list-style: none; }
.topics--who { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.topic { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: var(--r); background: var(--paper); border: 1px solid var(--line-2); }
.topic__icon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin-bottom: 6px; border-radius: 12px; background: var(--pine-50); color: var(--pine); }
.topic__num { color: var(--brass-ink); font-family: var(--f-head); font-size: 19px; font-weight: 800; }
.seo__block--topics .topic__icon { background: var(--brass-50); }
.topic__head { color: var(--ink); font-family: var(--f-head); font-size: 18px; font-weight: 700; line-height: 1.3; text-wrap: balance; }
.topic__head--inline { font-size: inherit; font-family: inherit; color: var(--ink); }
.topic__text { color: var(--ink-2); font-size: 15.5px; line-height: 1.6; text-wrap: pretty; }
.bigquote { margin-top: 48px; padding: 40px 48px; border-radius: var(--r-lg); background: var(--pine-900); color: var(--on-dark); }
.bigquote__label { color: var(--brass-2); font-size: 15px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.bigquote__fig { position: relative; margin-top: 18px; padding-left: 64px; }
.bigquote__mark { position: absolute; left: 0; top: 2px; color: var(--brass-2); }
.bigquote__mark .icon { width: 42px; height: 42px; }
.bigquote__text { margin: 0; }
.bigquote__text p { color: #fff; font-family: var(--f-head); font-size: clamp(20px, 2vw, 26px); font-weight: 600; line-height: 1.4; text-wrap: pretty; }
.bigquote__cap { margin-top: 18px; color: var(--on-dark-2); font-size: 15px; }
.seo__outro { max-width: 820px; margin-top: 32px; }
@media (max-width: 1023px) {
   .topics--who { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
   .topics { grid-template-columns: minmax(0, 1fr); gap: 14px; }
   .topic { padding: 20px; }
   .bigquote { padding: 28px 22px; }
   .bigquote__fig { padding-left: 0; padding-top: 48px; }
   .bigquote__text p { font-size: 18px; line-height: 1.45; }
   .bigquote__cap { font-size: 14px; }
   /* имя — своей строкой, должность под ним */
   .bigquote__who { display: block; color: var(--on-dark); font-weight: 600; }
   .bigquote__comma { display: none; }
}
@media (max-width: 420px) {
   .bigquote { padding: 24px 18px; }
   .bigquote__text p { font-size: 17px; }
}

/* ---------- Шапки страниц и крошки ---------- */
.page-head { padding: 28px 0 44px; background: var(--sand-2); }
.page-head__title { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.12; letter-spacing: -.015em; font-weight: 800; color: var(--pine-950); }
.page-head__note { max-width: 680px; margin-top: 14px; color: var(--muted); font-size: 16px; text-wrap: pretty; }
.crumbs { margin-bottom: 20px; }
.crumbs__list { list-style: none; color: var(--muted); font-size: 14px; line-height: 1.5; }
.crumbs__item { display: inline; }
.crumbs__item + .crumbs__item::before { content: "\203A"; margin: 0 8px 0 4px; color: var(--brass); }
.crumbs__link { color: var(--muted); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: color var(--t), text-decoration-color var(--t); }
.crumbs__link:hover { color: var(--pine); text-decoration-color: currentColor; }
.page-search { margin-top: 22px; }
.section--page { padding-top: 48px; }

/* ---------- Рубрика ---------- */
.cat-head { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.cat-head__desc { max-width: 680px; margin-top: 14px; color: var(--ink-2); font-size: 17px; text-wrap: pretty; }
.cat-head__blurb { max-width: 680px; margin-top: 8px; color: var(--muted); font-size: 15.5px; text-wrap: pretty; }
.cat-head__count { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; color: var(--brass-ink); font-weight: 600; font-size: 15px; }
.cat-head__stack { position: relative; height: 190px; }
.cat-head__shot { position: absolute; width: 190px; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; border: 4px solid var(--paper); box-shadow: var(--shadow); }
.cat-head__shot img { width: 100%; height: 100%; object-fit: cover; }
.cat-head__shot--1 { right: 0; top: 0; z-index: 3; transform: rotate(3deg); }
.cat-head__shot--2 { right: 70px; top: 30px; z-index: 2; transform: rotate(-4deg); }
.cat-head__shot--3 { right: 120px; top: 6px; z-index: 1; transform: rotate(-9deg); opacity: .85; }
@media (max-width: 1023px) {
   .cat-head { grid-template-columns: minmax(0, 1fr); }
   .cat-head__stack { display: none; }
}

/* плашки-фильтры рубрик */
@property --fade-l { syntax: "<length>"; inherits: false; initial-value: 0px; }
@property --fade-r { syntax: "<length>"; inherits: false; initial-value: 0px; }
.chips { padding: 22px 0 0; }
.chips__inner { position: relative; display: flex; align-items: center; gap: 10px; }
.chips__swiper {
   flex: 1; min-width: 0;
   --fade-l: 48px; --fade-r: 48px;
   -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);
   mask-image: linear-gradient(90deg, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);
   transition: --fade-l .3s ease, --fade-r .3s ease;
}
.chips.is-start .chips__swiper { --fade-l: 0px; }
.chips.is-end .chips__swiper { --fade-r: 0px; }
.chips__list { list-style: none; }
.no-js .chips__list, .chips:not(.is-ready) .chips__list { display: flex; flex-wrap: wrap; gap: 8px; }
.chips .swiper-slide { width: auto; }
.chip {
   display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 14px; border-radius: 999px;
   border: 1px solid var(--line); background: var(--paper); color: var(--ink);
   font-size: 15px; font-weight: 500; text-decoration: none; white-space: nowrap;
   transition: background-color var(--t), border-color var(--t), color var(--t);
}
.chip .icon { color: var(--brass); transition: color var(--t); }
.chip:hover { background-color: var(--pine-50); border-color: var(--pine-100); color: var(--pine); }
.chip[aria-current] { background-color: var(--pine); border-color: var(--pine); color: #fff; }
.chip[aria-current] .icon { color: var(--brass-2); }
.chip__count { padding: 1px 7px; border-radius: 999px; background: var(--sand-2); color: var(--muted); font-size: 12.5px; font-weight: 600; transition: background-color var(--t), color var(--t); }
.chip[aria-current] .chip__count { background-color: rgba(255, 255, 255, .16); color: #fff; }
.chips__prev, .chips__next { display: none; flex: none; }
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
   .chips.is-ready .chips__prev, .chips.is-ready .chips__next { display: inline-flex; }
   .chips .swiper-button-lock { display: none; }
   .chips .swiper-button-disabled { opacity: 0; pointer-events: none; }
}
@media (max-width: 767px) {
   .chips__swiper { margin: 0 calc(-1 * var(--gut)); --fade-l: 0px; --fade-r: 0px; -webkit-mask-image: none; mask-image: none; }
}
.section--archive { padding-top: 32px; }

/* пагинация */
.pager { margin-top: 40px; }
.pager__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; }
.pager .page-numbers {
   display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; padding: 0 12px; border-radius: 12px;
   border: 1px solid var(--line); background: var(--paper); color: var(--ink); font-weight: 600; text-decoration: none;
   transition: background-color var(--t), border-color var(--t), color var(--t);
}
.pager a.page-numbers:hover { background-color: var(--pine-50); border-color: var(--pine-100); color: var(--pine); }
.pager .page-numbers.current { background: var(--pine); border-color: var(--pine); color: #fff; }
.pager .page-numbers.dots { border-color: transparent; background: transparent; }
.empty { padding: 40px; border-radius: var(--r); background: var(--paper); text-align: center; }
.empty__title { color: var(--ink); font-family: var(--f-head); font-size: 22px; font-weight: 700; margin-bottom: 8px; }

/* ---------- Статья ---------- */
.post-head { padding: 28px 0 48px; background: var(--sand-2); }
.post-head__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 48px; align-items: center; }
.post-head--nocover .post-head__grid { grid-template-columns: minmax(0, 1fr); max-width: 900px; }
.post-head--long .post-head__grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); gap: 40px; }
.post-head__title { margin-top: 16px; font-size: clamp(30px, 3.1vw, 44px); line-height: 1.12; letter-spacing: -.015em; font-weight: 800; color: var(--pine-950); }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 24px; }
.post-meta__author { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.post-meta__who { display: flex; flex-direction: column; padding-left: 12px; border-left: 3px solid var(--brass); }
.post-meta__name { color: var(--ink); font-weight: 700; font-size: 15px; line-height: 1.3; transition: color var(--t); }
.post-meta__author:hover .post-meta__name { color: var(--pine); }
.post-meta__role { color: var(--muted); font-size: 13px; line-height: 1.35; }
.post-meta__list { display: flex; flex-wrap: wrap; gap: 6px 18px; list-style: none; color: var(--muted); font-size: 14.5px; }
.post-meta__item { display: inline-flex; align-items: center; gap: 6px; }
.post-meta__item .icon { color: var(--brass); }
.post-meta__comments { display: inline-flex; align-items: center; gap: 6px; color: var(--pine); font-weight: 600; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: text-decoration-color var(--t), color var(--t); }
.post-meta__comments:hover { text-decoration-color: currentColor; color: var(--pine-900); }
.post-cover { border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4 / 3; background: var(--sand); box-shadow: var(--shadow-lg); }
.post-cover img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 960px) {
   .post-head__grid, .post-head--long .post-head__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
   .post-cover { aspect-ratio: 16 / 10; border-radius: var(--r); }
}
@media (max-width: 640px) {
   .post-head { padding-bottom: 32px; }
}

.post-layout { display: grid; grid-template-columns: minmax(0, 800px) 310px; justify-content: space-between; gap: 56px; /* текст по левому краю шапки, содержание — по правому краю обложки */ padding-top: 48px; padding-bottom: 24px; }
.post-layout--notoc { grid-template-columns: minmax(0, 820px); }
.post-layout--notoc .post-side { display: none; }
.post-side__sticky { position: sticky; top: calc(var(--head-h) + 24px); display: flex; flex-direction: column; gap: 22px; }
.toc { padding: 20px 14px 18px 16px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--paper); }
.toc__title { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; color: var(--ink); font-family: var(--f-head); font-weight: 700; font-size: 17px; }
.toc__title .icon { color: var(--brass); }
.toc__body { display: flex; gap: 12px; }
.toc__gauge { position: relative; flex: none; width: 4px; border-radius: 2px; background: var(--line-2); overflow: hidden; }
.toc__gauge span { position: absolute; inset: 0; background: var(--brass); transform: scaleY(var(--p, 0)); transform-origin: 50% 0; }
.toc__list {
   flex: 1; min-width: 0; max-height: calc(100vh - var(--head-h) - 260px); overflow-y: auto; list-style: none;
   display: flex; flex-direction: column; gap: 2px; padding-right: 4px;
}
.toc__link {
   display: block; padding: 7px 8px; border-radius: 8px;
   color: var(--muted); font-size: 14px; line-height: 1.4; text-decoration: none;
   transition: background-color var(--t), color var(--t);
}
.toc__text { text-wrap: balance; }
.toc__link:hover { background-color: var(--sand); color: var(--ink); }
.toc__link.is-active { background-color: var(--pine-50); color: var(--pine); }

/* свои полосы прокрутки (оглавление, таблицы) */
.toc__list::-webkit-scrollbar, .table-wrap::-webkit-scrollbar { width: 6px; height: 6px; }
.toc__list::-webkit-scrollbar-track, .table-wrap::-webkit-scrollbar-track { background: var(--line-2); border-radius: 3px; }
.toc__list::-webkit-scrollbar-thumb, .table-wrap::-webkit-scrollbar-thumb { background: var(--brass); border-radius: 3px; }
@supports not selector(::-webkit-scrollbar) {
   .toc__list, .table-wrap { scrollbar-width: thin; scrollbar-color: var(--brass) var(--line-2); }
}

/* поделиться */
.share { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.share__label { color: var(--muted); font-size: 14px; font-weight: 600; }
.share__btns { display: flex; gap: 8px; }
.share__btn {
   display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%;
   border: 1px solid var(--line); background: var(--paper); color: var(--pine);
   transition: background-color var(--t), border-color var(--t), color var(--t);
}
.share__btn .icon { width: 20px; height: 20px; }
.share__btn:hover { background-color: var(--pine); border-color: var(--pine); color: #fff; }
.share__tip { flex-basis: 100%; min-height: 1.4em; color: var(--pine); font-size: 13.5px; font-weight: 600; }
.share--side { padding: 0 4px; }
.share--row { display: none; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line-2); }
.toc-m { display: none; }
@media (max-width: 1100px) {
   .post-layout { grid-template-columns: minmax(0, 820px); gap: 0; padding-top: 32px; }
   .post-side { display: none; }
   .share--row { display: flex; }
   .toc-m { display: block; margin-bottom: 28px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--paper); }
}
.toc-m__sum {
   display: flex; align-items: center; gap: 10px; padding: 14px 16px; cursor: pointer; list-style: none;
   color: var(--ink); font-family: var(--f-head); font-weight: 700; font-size: 16.5px;
}
.toc-m__sum::-webkit-details-marker { display: none; }
.toc-m__sum .icon { color: var(--brass); }
.toc-m__count { margin-left: auto; color: var(--muted); font-family: var(--f-text); font-weight: 500; font-size: 14px; }
.toc-m__chev { transition: transform var(--t); }
.toc-m[open] .toc-m__chev { transform: rotate(180deg); }
.toc-m__list { margin: 0; padding: 0 16px 16px 40px; display: flex; flex-direction: column; gap: 8px; }
.toc-m__list li::marker { color: var(--brass-ink); font-weight: 600; }
.toc-m__list a { color: var(--ink-2); text-decoration: none; font-size: 15.5px; line-height: 1.45; transition: color var(--t); }
.toc-m__list a:hover { color: var(--pine); }

/* лид и текст */
.post-lead { margin-bottom: 32px; padding: 4px 0 4px 22px; border-left: 4px solid var(--brass); }
.post-lead p { color: var(--ink); font-size: 18px; line-height: 1.7; font-weight: 450; text-wrap: pretty; }
.post-lead p + p { margin-top: 12px; }
.prose { color: var(--ink-2); font-size: 18px; line-height: 1.72; overflow-wrap: break-word; }
.prose > * + * { margin-top: 1.05em; }
.prose p { text-wrap: pretty; }
.prose h2 { position: relative; margin-top: 1.9em; padding-left: 20px; font-size: clamp(24px, 2.3vw, 30px); line-height: 1.25; overflow-wrap: break-word; }
.prose h2::before { content: ""; position: absolute; left: 0; top: .2em; width: 5px; height: .95em; border-radius: 3px; background: var(--brass); }
.prose h3 { margin-top: 1.6em; font-size: clamp(20px, 1.8vw, 23px); line-height: 1.3; }
.prose h4 { margin-top: 1.4em; font-size: 19px; }
.prose h2 + *, .prose h3 + * { margin-top: .7em; }
.prose a { color: var(--pine); text-decoration: underline; text-decoration-color: rgba(183, 131, 47, .55); text-decoration-thickness: 1.5px; text-underline-offset: 3px; transition: color var(--t), text-decoration-color var(--t); }
.prose a:hover { color: var(--brass-ink); text-decoration-color: currentColor; }
.prose strong { color: var(--ink); font-weight: 700; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose li + li { margin-top: .45em; }
.prose ul li::marker { color: var(--brass); }
.prose ol li::marker { color: var(--pine); font-weight: 700; }
.prose blockquote {
   position: relative; margin: 1.6em 0; padding: 24px 28px 24px 76px; border-radius: var(--r);
   background: var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23B7832F' d='M3 11.5V18h7v-7H6.2c.2-2.2 1.4-3.6 3.8-4.2V4C5.6 4.7 3 7.5 3 11.5zM14 11.5V18h7v-7h-3.8c.2-2.2 1.4-3.6 3.8-4.2V4c-4.4.7-7 3.5-7 7.5z'/%3E%3C/svg%3E") no-repeat 26px 26px / 32px 32px;
   border-left: 4px solid var(--brass); color: var(--ink);
}
.prose blockquote p { font-size: 18px; }
.prose figure, .prose .prose-figure { margin: 1.6em 0; }
.prose img { border-radius: var(--r); }
.prose figcaption { margin-top: 10px; color: var(--muted); font-size: 14.5px; text-align: center; }
.prose hr { border: 0; height: 30px; margin: 2em 0; background: var(--field-line) repeat-x 0 0 / 56px 30px; }

/* таблицы */
.table-wrap { margin: 1.6em 0; overflow-x: auto; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--paper); }
.prose table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 15.5px; line-height: 1.5; }
.prose th { padding: 12px 16px; background: var(--pine-900); color: #fff; font-family: var(--f-head); font-weight: 600; text-align: left; vertical-align: top; }
.prose td { padding: 12px 16px; border-top: 1px solid var(--line-2); vertical-align: top; }
.prose tr:nth-child(even) td { background: #FBF9F4; }

/* FAQ */
.faq { display: flex; flex-direction: column; gap: 12px; margin: 1.4em 0; }
.faq__item { border: 1px solid var(--line-2); border-radius: var(--r); background: var(--paper); transition: border-color var(--t), box-shadow var(--t); interpolate-size: allow-keywords; }
.faq__item:hover { border-color: var(--line); }
.faq__item[open] { border-color: var(--pine-100); box-shadow: var(--shadow); }
.faq__q { display: flex; align-items: flex-start; gap: 16px; padding: 18px 20px; cursor: pointer; list-style: none; }
.faq__q::-webkit-details-marker { display: none; }
.faq__title { flex: 1; min-width: 0; margin: 0 !important; padding-top: 3px; font-size: 18px !important; line-height: 1.4 !important; } /* (32 − 25) / 2: первая строка по центру плюса */
.faq__q > .faq__icon { margin-top: 0; } /* .prose h3 + * сдвигал плюс вниз */
.faq__icon { position: relative; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--pine-50); transition: background-color var(--t); }
.faq__icon::before, .faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; border-radius: 1px; background: var(--pine); transition: transform var(--t), background-color var(--t); }
.faq__icon::after { transform: rotate(90deg); }
.faq__item[open] .faq__icon { background-color: var(--pine); }
.faq__item[open] .faq__icon::before, .faq__item[open] .faq__icon::after { background-color: #fff; }
.faq__item[open] .faq__icon::after { transform: rotate(0deg); }
.faq__q:hover .faq__icon { background-color: var(--pine-100); }
.faq__item[open] .faq__q:hover .faq__icon { background-color: var(--pine-900); }
.faq__item::details-content { block-size: 0; overflow: hidden; transition: block-size .3s ease, content-visibility .3s allow-discrete; }
.faq__item[open]::details-content { block-size: auto; }
.faq__a { padding: 0 20px 20px; font-size: 17px; }
.faq__a > * + * { margin-top: .8em; }

/* автор, соседние */
.author-box { display: flex; gap: 20px; margin-top: 44px; padding: 28px; border-radius: var(--r); background: var(--paper); border: 1px solid var(--line-2); border-top: 4px solid var(--brass); }
.author-box__label { color: var(--brass-ink); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.author-box__name { margin-top: 6px; color: var(--ink); font-family: var(--f-head); font-size: 22px; font-weight: 700; }
.author-box__role { color: var(--muted); font-size: 15px; }
.author-box__about { margin: 12px 0 14px; color: var(--ink-2); font-size: 16px; line-height: 1.6; text-wrap: pretty; }
.adjacent { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.adjacent__item { gap: 8px; padding: 18px 20px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--paper); transition: border-color var(--t), box-shadow var(--t); }
.adjacent__item:hover { border-color: var(--line); box-shadow: var(--shadow); }
.adjacent__item--next { text-align: right; align-items: flex-end; }
.adjacent__label { display: inline-flex; align-items: center; gap: 6px; color: var(--brass-ink); font-size: 13.5px; font-weight: 600; }
.adjacent__title { color: var(--ink); font-family: var(--f-head); font-weight: 700; font-size: 16.5px; line-height: 1.35; }
.adjacent__title a { transition: color var(--t); }
.adjacent__item:hover .adjacent__title a { color: var(--pine); }
@media (max-width: 640px) {
   .adjacent { grid-template-columns: minmax(0, 1fr); }
   .adjacent__empty { display: none; }
   .author-box { padding: 22px 20px; }
   .prose { font-size: 17px; }
   .prose h2 { padding-left: 16px; }
   .prose blockquote { padding: 64px 20px 20px; background-position: 20px 20px; }
   .post-lead p { font-size: 17px; }
   .faq__q { padding: 16px; }
   .faq__a { padding: 0 16px 16px; font-size: 16.5px; }
   .faq__title { padding-top: 4px; font-size: 17px !important; }
}
@media (max-width: 420px) {
   .faq__title { padding-top: 5px; font-size: 16px !important; } /* (32 − 22,4) / 2 */
}
@media (max-width: 374px) {
   .prose h2 { font-size: 22px; }
   .page-head__title, .post-head__title { font-size: 26px; }
   .prose { font-size: 16.5px; }
   .card--grid .card__body { padding: 16px 16px 18px; }
}

.section--related { background: var(--paper); }
.section--related .card--grid { background: var(--sand); }
.section--more { background: var(--sand-2); }
.more__swiper { min-width: 0; }
.more__swiper .swiper-slide { height: auto; }
.no-js .more__swiper .swiper-wrapper { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
@media (hover: none), (max-width: 767px) {
   .section--more .arrows { display: none; }
}

/* ---------- Комментарии и формы ---------- */
.comments { max-width: calc(880px + var(--gut) * 2); }
.comments__title-row { display: flex; align-items: center; gap: 12px; }
.comments__count { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 30px; padding: 0 10px; border-radius: 999px; background: var(--brass-50); color: var(--brass-ink); font-weight: 700; font-size: 15px; }
.comments__empty { margin-top: 10px; color: var(--muted); }
.cform { margin-top: 24px; padding: 28px; border-radius: var(--r); background: var(--paper); border: 1px solid var(--line-2); }
.cform__title { font-size: 22px; }
.cform__lead { margin-top: 6px; color: var(--muted); font-size: 15px; }
.cform__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; margin-top: 20px; }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field--wide { grid-column: 1 / -1; }
.field__label { color: var(--ink); font-size: 14.5px; font-weight: 600; }
.field__input {
   width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #CFC5B1; border-radius: 10px;
   background: #fff; color: var(--ink); font-size: 16px; line-height: 1.4;
   transition: border-color var(--t), box-shadow var(--t), background-color var(--t);
}
.field__input:hover { border-color: #B5AA94; }
.field__input:focus { outline: none; border-color: var(--pine); box-shadow: 0 0 0 3px rgba(29, 75, 62, .15); }
.field__area { min-height: 130px; resize: vertical; }
.field__select { appearance: none; padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D4B3E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 18px 18px; }
/* подсказка об ошибке видна только экранным чтецам; глазами — красное поле */
.field__error { display: none; }
.field.is-error .field__error { display: block; position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.field { position: relative; }
.field.is-error .field__input { border-color: var(--error); background-color: #FFF6F5; }
.field.is-error .field__input:focus { box-shadow: 0 0 0 3px rgba(180, 35, 24, .16); }
.check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.check__input { position: absolute; opacity: 0; width: 22px; height: 22px; margin: 0; }
.check__box {
   display: inline-flex; align-items: center; justify-content: center; flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 6px;
   border: 1.5px solid #B5AA94; background: #fff; color: transparent;
   transition: background-color var(--t), border-color var(--t), color var(--t);
}
.check__box .icon { width: 16px; height: 16px; }
.check:hover .check__box { border-color: var(--pine); }
.check__input:checked + .check__box { background-color: var(--pine); border-color: var(--pine); color: #fff; }
.check__input:focus-visible + .check__box { outline: 3px solid var(--brass); outline-offset: 2px; }
.field.is-error .check__box { border-color: var(--error); background-color: #FFF6F5; }
.check__text { color: var(--ink-2); font-size: 14.5px; line-height: 1.5; }
.check__text a { color: var(--pine); text-decoration: underline; text-decoration-color: rgba(29, 75, 62, .35); text-underline-offset: 2px; transition: text-decoration-color var(--t); }
.check__text a:hover { text-decoration-color: currentColor; }
.cform__foot { margin-top: 20px; }
@media (max-width: 640px) {
   .cform { padding: 22px 18px; }
   .cform__grid { grid-template-columns: minmax(0, 1fr); }
}

.clist { margin-top: 28px; list-style: none; display: flex; flex-direction: column; gap: 16px; }
.clist__item { display: flex; gap: 14px; padding: 22px; border-radius: var(--r); background: var(--paper); border: 1px solid var(--line-2); }
.clist__body { flex: 1; min-width: 0; }
.clist__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.clist__name { color: var(--ink); font-weight: 700; }
.clist__date { color: var(--muted); font-size: 13.5px; }
.clist__badge { padding: 2px 9px; border-radius: 999px; background: var(--brass-50); color: var(--brass-ink); font-size: 12.5px; font-weight: 700; }
.clist__text { margin-top: 8px; color: var(--ink-2); font-size: 16px; line-height: 1.65; }
.clist__text > * + * { margin-top: .7em; }
.clist__replies { list-style: none; margin-top: 18px; display: flex; flex-direction: column; gap: 14px; }
.clist__reply { display: flex; gap: 12px; padding: 16px 18px; border-radius: var(--r-sm); background: var(--pine-50); border-left: 3px solid var(--brass); }
.avatar { display: inline-flex; align-items: center; justify-content: center; flex: none; overflow: hidden; border-radius: 12px; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar--ini { background: var(--sand-2); color: var(--pine); font-family: var(--f-head); font-weight: 700; }
.avatar--sm { width: 42px; height: 42px; font-size: 15px; }
.avatar--lg { width: 64px; height: 64px; font-size: 20px; }
.avatar--xxl { width: 140px; height: 140px; font-size: 40px; border-radius: 20px; }
.avatar--author.avatar--ini { background: var(--pine); color: var(--brass-2); }
@media (max-width: 560px) {
   .clist__item { flex-direction: column; padding: 18px; }
   .clist__reply { flex-direction: column; }
   .clist .avatar { display: none; }
}

/* окно «Спасибо» */
.thanks { width: min(440px, calc(100vw - 32px)); padding: 0; border: 0; border-radius: var(--r-lg); background: var(--paper); color: var(--ink-2); box-shadow: var(--shadow-lg); }
.thanks[open] { animation: thanks-in .25s ease; }
.thanks.is-closing { animation: thanks-out .2s ease forwards; }
.thanks::backdrop { background: rgba(15, 38, 32, .55); }
.thanks[open]::backdrop { animation: fade-in .25s ease; }
.thanks.is-closing::backdrop { animation: fade-out .2s ease forwards; }
@keyframes thanks-in { from { opacity: 0; transform: translateY(12px) scale(.98); } }
@keyframes thanks-out { to { opacity: 0; transform: translateY(8px) scale(.98); } }
@keyframes fade-in { from { opacity: 0; } }
@keyframes fade-out { to { opacity: 0; } }
.thanks__box { position: relative; padding: 36px 28px 28px; text-align: center; }
.thanks__x { position: absolute; right: 10px; top: 10px; color: var(--muted); }
.thanks__x:hover { background-color: var(--sand); color: var(--ink); }
.thanks__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--pine); color: var(--brass-2); }
.thanks__icon .icon { width: 32px; height: 32px; }
.thanks__title { margin-top: 16px; color: var(--ink); font-family: var(--f-head); font-weight: 700; font-size: 22px; }
.thanks__text { margin-top: 8px; color: var(--muted); }
.thanks__ok { margin-top: 22px; min-width: 160px; }

/* ---------- Об авторе ---------- */
.profile { display: grid; grid-template-columns: auto minmax(0, 1fr) 380px; gap: 32px; align-items: center; padding: 36px; border-radius: var(--r-lg); background: var(--paper); box-shadow: var(--shadow); }
.profile--nophoto { grid-template-columns: minmax(0, 1fr) 380px; }
.profile__title { margin-bottom: 14px; font-size: 13px; }
.profile__name { color: var(--pine-950); font-family: var(--f-head); font-weight: 800; font-size: clamp(30px, 3.4vw, 44px); line-height: 1.1; }
.profile__role { margin-top: 8px; color: var(--pine); font-size: 17px; font-weight: 600; }
.profile__about { margin-top: 14px; color: var(--ink-2); font-size: 16.5px; line-height: 1.65; text-wrap: pretty; }
.profile__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.profile__stat { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 4px; padding: 18px 16px; border-radius: var(--r); background: var(--sand); }
.profile__stat dd { margin: 0; color: var(--pine); font-family: var(--f-head); font-weight: 800; font-size: 30px; line-height: 1.1; white-space: nowrap; }
.profile__stat dt { color: var(--muted); font-size: 13.5px; line-height: 1.35; }
@media (max-width: 1100px) {
   .profile, .profile--nophoto { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
   .profile { padding: 24px 20px; }
   /* колонки поровну, но не уже содержимого — «18 лет» не вылезает за карточку */
   .profile__stats { grid-template-columns: repeat(3, minmax(min-content, 1fr)); gap: 8px; }
   .profile__stat { padding: 14px 12px; }
   .profile__stat dd { font-size: 22px; }
}
@media (max-width: 400px) {
   .profile__role { font-size: 15.5px; }
}
@media (max-width: 360px) {
   .profile { padding: 22px 16px; }
   .profile__stat { padding: 12px 10px; }
   .profile__stat dd { font-size: 20px; }
}

/* текст страницы главами (mt_about_chapters) */
.section--about { background: var(--paper); }
.about { display: flex; flex-direction: column; gap: 56px; max-width: calc(1080px + var(--gut) * 2); }
.about__pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.chap > * + * { margin-top: 18px; }
.chap > .chap__head + * { margin-top: 20px; }
.chap__head { display: flex; align-items: center; gap: 16px; }
.chap__icon {
   display: inline-flex; align-items: center; justify-content: center; flex: none;
   width: 52px; height: 52px; border-radius: 14px; background: var(--brass-50); color: var(--brass-ink);
}
.chap__icon .icon { width: 26px; height: 26px; }
.chap__heading { min-width: 0; }
.chap__num { display: block; color: var(--brass-ink); font-family: var(--f-head); font-size: 13px; font-weight: 700; letter-spacing: .1em; line-height: 1.2; }
.chap__title { margin-top: 3px; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.2; text-wrap: balance; }
.chap__text { max-width: 820px; font-size: 17.5px; line-height: 1.7; }
.chap--intro .chap__text { color: var(--ink); font-size: clamp(18px, 1.6vw, 21px); line-height: 1.65; }
.chap--card { padding: 32px; border-radius: var(--r-lg); background: var(--sand); }
.chap--card .chap__icon { background: var(--paper); }
.chap--card .chap__text { font-size: 16.5px; }
.checks { display: grid; gap: 10px; list-style: none; }
.checks__item {
   display: flex; align-items: flex-start; gap: 12px; padding: 12px 16px; border-radius: 12px;
   background: var(--paper); color: var(--ink); font-size: 15.5px; font-weight: 600; line-height: 1.45;
}
.checks__icon {
   display: inline-flex; align-items: center; justify-content: center; flex: none;
   width: 22px; height: 22px; border-radius: 50%; background: var(--pine); color: #fff;
}
.checks__icon .icon { width: 14px; height: 14px; }
.checks__text { min-width: 0; text-wrap: pretty; }
.facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; list-style: none; }
.fact { display: flex; align-items: flex-start; gap: 16px; padding: 22px; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--paper); }
.fact__icon {
   display: inline-flex; align-items: center; justify-content: center; flex: none;
   width: 46px; height: 46px; border-radius: 12px; background: var(--pine-50); color: var(--pine);
}
.fact__text { min-width: 0; padding-top: 11px; /* первая строка по центру иконки */ color: var(--ink); font-size: 16px; line-height: 1.55; text-wrap: pretty; }
.chap > .motto { margin-top: 28px; }
.motto__after { display: flex; align-items: center; gap: 12px; color: var(--pine); font-family: var(--f-head); font-size: clamp(18px, 1.7vw, 21px); font-weight: 700; line-height: 1.35; }
.motto__after .icon { width: 28px; height: 28px; color: var(--water); }
.motto__after span { min-width: 0; text-wrap: pretty; }
@media (max-width: 900px) {
   .about__pair, .facts { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
   .about { gap: 40px; }
   .chap__icon { width: 46px; height: 46px; border-radius: 12px; }
   .chap__icon .icon { width: 24px; height: 24px; }
   .chap__text, .chap--card .chap__text { font-size: 16.5px; }
   .chap--intro .chap__text { font-size: 18px; }
   .chap--card { padding: 22px 18px; border-radius: var(--r); }
   .checks__item { padding: 11px 14px; font-size: 15px; }
   .fact { gap: 14px; padding: 18px; }
   .fact__icon { width: 42px; height: 42px; }
   .fact__text { padding-top: 9px; font-size: 15.5px; }
}

/* ---------- Контакты ---------- */
.chead__intro { max-width: 720px; margin-top: 16px; color: var(--ink-2); font-size: 17px; }
.chead__intro p + p { margin-top: 10px; }
.contacts { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.contacts__form { position: sticky; top: calc(var(--head-h) + 24px); }
.contacts__form .cform { margin-top: 0; box-shadow: var(--shadow); }
.cmail { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 4px 18px; padding: 22px; border-radius: var(--r); background: var(--pine-900); color: var(--on-dark); }
.cmail__icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: rgba(217, 174, 91, .16); color: var(--brass-2); flex: none; }
.cmail__body { min-width: 0; }
.cmail__label { color: var(--on-dark-2); font-size: 14px; }
.cmail__addr { color: #fff; font-family: var(--f-head); font-weight: 700; font-size: 21px; line-height: 1.3; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: text-decoration-color var(--t), color var(--t); }
.cmail__addr:hover { color: var(--brass-2); text-decoration-color: currentColor; }
.cmail__copy { grid-column: 2; justify-self: start; margin-top: 10px; min-height: 44px; border-color: rgba(255, 255, 255, .2); background: transparent; color: var(--on-dark); }
.cmail__copy:hover { background-color: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .4); color: #fff; }
.contacts__title { margin-top: 36px; font-size: 24px; }
.ctopics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; list-style: none; }
.ctopic { display: flex; flex-direction: column; gap: 6px; padding: 20px; border-radius: var(--r); background: var(--paper); border: 1px solid var(--line-2); }
.ctopic__icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; margin-bottom: 6px; border-radius: 10px; background: var(--brass-50); color: var(--brass-ink); }
.ctopic__head { color: var(--ink); font-family: var(--f-head); font-weight: 700; font-size: 17px; line-height: 1.3; }
.ctopic__text { color: var(--muted); font-size: 15px; line-height: 1.55; text-wrap: pretty; }
.cauthor { margin-top: 24px; padding-left: 16px; border-left: 3px solid var(--brass); }
.cauthor__text { color: var(--ink-2); font-size: 15.5px; }
.cauthor__text a { color: var(--pine); font-weight: 600; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: text-decoration-color var(--t); }
.cauthor__text a:hover { text-decoration-color: currentColor; }
@media (max-width: 1023px) {
   .contacts { grid-template-columns: minmax(0, 1fr); gap: 32px; }
   .contacts__form { position: static; }
}
@media (max-width: 560px) {
   .ctopics { grid-template-columns: minmax(0, 1fr); }
   .cmail { padding: 18px; }
   .cmail { grid-template-columns: minmax(0, 1fr); gap: 12px; }
   .cmail__copy { grid-column: 1; margin-top: 0; }
   .cmail__addr { font-size: 17px; }
}

/* ---------- 404 ---------- */
.nf { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 48px; align-items: center; }
.nf__text .btn { margin-top: 20px; }
.nf__art { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.nf__svg { width: 100%; max-width: 420px; }
.nf__ground { fill: none; stroke: var(--ink-2); stroke-width: 3; stroke-linejoin: round; }
.nf__collector { stroke: var(--brass); stroke-width: 8; stroke-linecap: round; }
.nf__needles { stroke: var(--ink-2); stroke-width: 4; stroke-linecap: round; }
.nf__level { stroke: var(--water); stroke-width: 2; stroke-dasharray: 8 7; }
.nf__code { fill: var(--pine); font-family: var(--f-head); font-weight: 800; font-size: 64px; text-anchor: middle; }
.nf__caption { color: var(--muted); font-size: 15px; }
@media (max-width: 860px) {
   .nf { grid-template-columns: minmax(0, 1fr); gap: 24px; }
   .nf__art { order: -1; align-items: flex-start; }
   .nf__svg { max-width: 260px; }
}

/* ---------- Подвал ---------- */
.site-footer { background: var(--pine-950); color: var(--on-dark-2); }
.site-footer__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr); gap: 40px; padding-top: 44px; padding-bottom: 40px; }
.logo--footer .logo__mark { width: 48px; height: 48px; }
.site-footer__text { max-width: 360px; margin-top: 18px; font-size: 15px; line-height: 1.6; text-wrap: pretty; }
.site-footer__title { margin-bottom: 14px; color: var(--brass-2); font-family: var(--f-head); font-weight: 700; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.fmenu { list-style: none; display: flex; flex-direction: column; gap: 9px; }
.fmenu a { color: var(--on-dark); font-size: 15px; line-height: 1.45; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: color var(--t), text-decoration-color var(--t); }
.fmenu a:hover { color: #fff; text-decoration-color: var(--brass-2); }
.fmenu .sub-menu { display: none; }
.site-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-top: 20px; padding-bottom: 24px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 14px; }
.to-top { display: inline-flex; align-items: center; gap: 6px; color: var(--on-dark); text-decoration: none; transition: color var(--t); }
.to-top:hover { color: var(--brass-2); }
@media (max-width: 1100px) {
   .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
   .site-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 36px; }
   .site-footer__bottom { flex-direction: column; align-items: flex-start; }
   .to-top { align-self: center; min-height: 44px; padding: 0 12px; }
}
