/* «О предприятии» (o-predpriyatii.html): шапка страницы, хозяйство, схема очистных, лента работ, реквизиты,
   противодействие коррупции и персональные данные, дополнения к контактам.
   Подключается после site.css. Цвета — только var(--c-*), размеры — rem. Цвета --c-illu-* — только в декоре. */

/* ---------- Шапка страницы ---------- */
.about-head__inner { position: relative; }
.about-head .lead { max-width: 40em; }
.about-head__director { margin-top: 1rem; color: var(--c-ink-2); }
.about-head__director b { color: var(--c-ink); font-weight: 600; }
.about-head__art { display: none; }
@media (min-width: 75em) {
  .about-head { overflow: clip; }
  .about-head__inner > :not(.about-head__art) { position: relative; max-width: 50rem; }
  .about-head__art { display: block; position: absolute; top: 1.25rem; right: var(--gutter); width: 23rem; height: 23rem; pointer-events: none; }
}
/* Рисунок: радиальный отстойник сверху */
.about-head__art * { fill: none; stroke-linecap: round; }
.ah-water { fill: var(--c-illu-clean-soft); fill-opacity: 0.3; }
.ah-ripple { stroke: var(--c-illu-clean); stroke-opacity: 0.55; stroke-width: 1.5; stroke-dasharray: 2 9; }
.ah-ripple--wide { stroke-dasharray: 2 12; }
.ah-thin { stroke: var(--c-line); stroke-width: 1.5; }
.ah-teeth { stroke: var(--c-line); stroke-width: 2; }
.ah-wall { stroke: var(--c-line-strong); stroke-width: 2; }
.ah-arm { stroke: var(--c-line-strong); stroke-width: 1.5; stroke-dasharray: 4 6; }
.ah-rail { stroke: var(--c-ink-2); stroke-width: 2; }
.ah-core { fill: var(--c-surface); stroke: var(--c-ink-2); stroke-width: 2; }

/* ---------- Хозяйство ---------- */
.farm__grid { display: grid; gap: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
@media (min-width: 64em) { .farm__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: start; } }
.farm__side { display: grid; gap: clamp(2rem, 1.6rem + 1.5vw, 2.75rem); align-content: start; }
.farm__group { padding-top: 1rem; border-top: 2px solid var(--c-ink); }
.farm__title { font-size: 1.0625rem; }
.farm__hero { display: grid; gap: 0.5rem; margin-top: clamp(1.25rem, 1rem + 1vw, 2rem); }
.farm__num {
  font-family: var(--font-display); font-weight: 600; font-size: clamp(1.75rem, 1.5rem + 0.9vw, 2.375rem); line-height: 1;
  letter-spacing: -0.04em; font-variant-numeric: tabular-nums; white-space: nowrap;
}
.farm__num--xl { font-size: clamp(2.75rem, 1.9rem + 3.4vw, 4.5rem); letter-spacing: -0.05em; }
.farm__num--l { font-size: clamp(2.25rem, 1.8rem + 1.8vw, 3.25rem); letter-spacing: -0.045em; }
.farm__unit { margin-left: 0.16em; font-size: max(0.42em, 0.875rem); font-weight: 500; letter-spacing: 0; color: var(--c-ink-2); }
.farm__label { display: block; margin-top: 0.5rem; color: var(--c-ink-2); line-height: 1.45; }
.farm__hero .farm__label { margin-top: 0; font-size: 1.0625rem; }
.farm__plan { margin-top: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); padding-top: 1.25rem; border-top: 1px solid var(--c-line); }
.farm__plan > p { max-width: 36em; }

/* Доли: полоса и цветные метки декоративные, всё значимое — в подписях */
.share { display: flex; gap: 3px; height: 0.875rem; margin-top: 1rem; }
.share > span { min-width: 0.25rem; border-radius: 0.25rem; }
.share__a { background: var(--c-accent); }
.share__b { background: var(--c-illu-clean); }
.share__c { background: var(--c-illu-clean-soft); box-shadow: inset 0 0 0 1px var(--c-illu-clean); }
.share--people { flex: 1151.974 1 0; } .share--budget { flex: 269.844 1 0; } .share--other { flex: 440.01 1 0; }
.share--gravity { flex: 58 1 0; } .share--pressure { flex: 17.3 1 0; }
ul.legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem 1.5rem; margin-top: 0.875rem; font-size: 0.9375rem; line-height: 1.4; }
@media (max-width: 29.99em) { ul.legend--3 { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 40em) { ul.legend--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.legend li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 0.5rem; align-content: start; color: var(--c-ink-2); }
.legend li > :not(.legend__dot) { grid-column: 2; }
.legend__dot { grid-row: 1; width: 0.75rem; height: 0.75rem; margin-top: 0.3125rem; border-radius: 0.1875rem; }
.legend b { color: var(--c-ink); font-weight: 600; }
.legend__val { color: var(--c-ink); }
.legend b, .legend__pct { font-variant-numeric: tabular-nums; }

/* Ячейки фактов, разделённые линиями */
ul.farm__cells { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); border-top: 1px solid var(--c-line); }
.farm__cell { min-width: 0; padding: 1.125rem 1rem 0.5rem 0; }
.farm__cell:nth-child(2) { padding: 1.125rem 0 0.5rem 1rem; border-left: 1px solid var(--c-line); }
@media (max-width: 22.49em) {
  ul.farm__cells { grid-template-columns: minmax(0, 1fr); }
  .farm__cells .farm__cell:nth-child(n) { grid-column: auto; padding: 1rem 0 0.5rem; border-left: 0; }
  .farm__cells .farm__cell + .farm__cell { margin-top: 0; border-top: 1px solid var(--c-line); }
}
.farm__lab { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.5rem; padding-top: 1rem; border-top: 1px solid var(--c-line); font-weight: 500; }
.farm__lab .icon { width: 1.75rem; height: 1.75rem; flex: none; color: var(--c-accent); stroke-width: 1.5; }
.farm__pic { width: auto; height: 1.5rem; margin-top: 0.875rem; }
.farm__pic rect, .farm__pic circle { fill: none; stroke: var(--c-accent); stroke-width: 1.5; }
.farm__pic--pumps rect { fill: var(--c-accent-soft); }
.farm__pic--pumps .main { fill: var(--c-accent); stroke: var(--c-accent); }
.farm__pic--pumps circle.main { fill: none; stroke: var(--c-on-accent); }

.farm__connect-text { margin-top: 0.75rem; max-width: 30em; color: var(--c-ink-2); }
.farm__connect .link-arrow { margin-top: 0.25rem; }
.farm__source { margin-top: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem); }

/* ---------- Как устроены очистные (тёмная секция) ---------- */
/* v2: вместо тёмной полосы на всю ширину — скруглённый остров, как на главной.
   Схема шире экрана прокручивается внутри острова, поэтому край скруглён (overflow: clip). */
.plant__island { overflow: clip; }
.plant__figure { margin: 0 0 clamp(2rem, 1.5rem + 2vw, 3rem); }
.plant-svg { width: 100%; height: auto; }
.plant__hint { color: var(--c-on-brand-2); }
@media (max-width: 47.99em) {
  .plant__scroll { overflow-x: auto; overscroll-behavior-x: contain; margin-inline: calc(-1 * var(--pad-island)); padding: 0.25rem var(--pad-island) 0.5rem; }
  .plant-svg { min-width: 56rem; }
}
.plant__cap { margin-top: 0.75rem; font-size: 0.875rem; color: var(--c-on-brand-2); }
.plant-svg * { stroke-linecap: round; stroke-linejoin: round; }
.plant-svg .pw-murky { stop-color: var(--c-illu-murky); }
.plant-svg .pw-clean { stop-color: var(--c-illu-clean); }
.plant-svg .p-pipe { fill: none; stroke: url(#plant-water); stroke-width: 6; }
.plant-svg .p-pipe--thin { stroke-width: 3; }
.plant-svg .p-st { fill: var(--c-brand); stroke: var(--c-brand-line-strong); stroke-width: 2; }
.plant-svg .p-w { fill: url(#plant-water); fill-opacity: 0.3; }
.plant-svg .p-ln { fill: none; stroke: var(--c-brand-line-strong); stroke-width: 1.5; }
.plant-svg .p-dot { fill: var(--c-on-brand-2); }
.plant-svg .p-bubble { fill: var(--c-illu-clean); fill-opacity: 0.75; }
.plant-svg .p-lamp { fill: var(--c-illu-clean-soft); fill-opacity: 0.85; }
.plant-svg :is(.p-break, .p-dash, .p-arrow) { fill: none; stroke: var(--c-on-brand-2); stroke-width: 1.5; }
.plant-svg .p-break { stroke-width: 2; }
.plant-svg .p-dash { stroke-dasharray: 5 6; stroke-linecap: butt; }
.plant-svg .p-sludge { fill: var(--c-illu-murky); fill-opacity: 0.22; stroke: var(--c-illu-murky); stroke-width: 1.5; }
.plant-svg .p-sprout { fill: none; stroke: var(--c-illu-clean); stroke-width: 1.6; }
.plant-svg .p-river { fill: var(--c-illu-clean); fill-opacity: 0.16; }
.plant-svg :is(.p-river-edge, .p-ripple) { fill: none; stroke: var(--c-illu-clean); stroke-width: 1.5; stroke-opacity: 0.7; }
.plant-svg .p-label { fill: var(--c-on-brand-2); font-family: var(--font-text); font-size: 16px; font-weight: 500; }
.plant-svg .p-lead { fill: none; stroke: var(--c-brand-line-strong); stroke-width: 1.5; stroke-dasharray: 1 5; }
.plant-svg .p-mark circle { fill: var(--c-brand); stroke: var(--c-on-brand-2); stroke-width: 1.5; }
.plant-svg .p-mark text { fill: var(--c-on-brand); font-family: var(--font-display); font-size: 15px; font-weight: 600; text-anchor: middle; }
/* До 1024 px рисунок уже 1200 единиц: подписи внутри SVG крупнее, чтобы на экране оставаться ≈ 13 px */
@media (max-width: 63.99em) {
  .plant-svg .p-label { font-size: 21px; }
  .plant-svg .p-mark text { font-size: 19px; }
}

.stages { display: grid; column-gap: clamp(1.5rem, 3vw, 2.75rem); }
@media (min-width: 40em) { .stages { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64em) { .stages { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.stage { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: 0.875rem; padding-block: 1rem 1.25rem; border-top: 1px solid var(--c-brand-line); }
.stage__num {
  display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border: 1.5px solid var(--c-brand-line-strong); border-radius: 50%;
  font-family: var(--font-display); font-size: 0.875rem; font-weight: 600; font-variant-numeric: tabular-nums;
}
.stage__title { padding-top: 0.3125rem; font-size: 1.0625rem; }
.stage__fact { margin-top: 0.3125rem; font-size: 0.9375rem; line-height: 1.45; color: var(--c-on-brand-2); }
.plant__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem; margin-top: clamp(1.25rem, 1rem + 1vw, 2rem); padding-top: clamp(1.25rem, 1rem + 1vw, 2rem); border-top: 1px solid var(--c-brand-line); }
.plant__sludge { display: flex; align-items: flex-start; gap: 0.75rem; max-width: 34em; }
.plant__sludge .icon { width: 1.5rem; height: 1.5rem; margin-top: 0.0625rem; flex: none; }
.plant__source { margin-top: 1.25rem; }

/* ---------- Работы последних лет ----------
   Телефон и планшет — вертикальная лента (.timeline из site.css).
   От 64em — строки: слева текст, справа шкала 2022–2025 с отрезком (период) или точкой (месяц).
   В версии для слабовидящих шкала скрыта, остаётся лента. */
.works__years, .works__track { display: none; }
.works .timeline__text { max-width: 36em; }
.works__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 1rem; margin-top: 0.375rem; color: var(--c-ink-2); font-size: 0.9375rem; }
.works__meta b { color: var(--c-ink); font-family: var(--font-display); font-size: 1.0625rem; font-weight: 600; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.works__meta .link-arrow { padding-block: 0.6875rem; }
@media (min-width: 64em) {
  html:not([data-a11y]) .works { --works-cols: minmax(0, 5fr) minmax(0, 7fr); --works-gap: clamp(2.5rem, 5vw, 5rem); }
  html:not([data-a11y]) :is(.works__years, .works__item) { display: grid; grid-template-columns: var(--works-cols); column-gap: var(--works-gap); }
  html:not([data-a11y]) .works__scale { grid-column: 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); box-shadow: inset -1px 0 var(--c-line); }
  html:not([data-a11y]) .works__scale span {
    padding: 0 0.75rem 0.875rem; border-left: 1px solid var(--c-line);
    font-family: var(--font-display); font-size: 1rem; font-weight: 600; letter-spacing: -0.01em; color: var(--c-ink-2); font-variant-numeric: tabular-nums;
  }
  html:not([data-a11y]) .works__list { gap: 0; padding: 0; border-bottom: 1px solid var(--c-line); }
  html:not([data-a11y]) :is(.works__list, .works__item)::before { display: none; }
  html:not([data-a11y]) .works__item { border-top: 1px solid var(--c-line); }
  html:not([data-a11y]) .works__body { padding-block: 1.5rem 1.75rem; }
  html:not([data-a11y]) .works__track {
    display: block; position: relative; box-shadow: inset -1px 0 var(--c-line);
    background-image: linear-gradient(to right, var(--c-line) 1px, transparent 1px); background-size: 25% 100%;
  }
  html:not([data-a11y]) .works__mark { position: absolute; top: 1.875rem; left: 0; width: 25%; height: 0.625rem; border-radius: 0.3125rem; background: var(--c-accent); }
  html:not([data-a11y]) .works__item--y22 .works__mark { width: 75%; }
  html:not([data-a11y]) .works__item--a23 .works__mark { left: calc(25% + 25% * 0.25); width: 1.125rem; height: 1.125rem; margin: -0.25rem 0 0 -0.5625rem; border: 3px solid var(--c-accent); border-radius: 50%; background: var(--c-bg); }
  html:not([data-a11y]) .works__item--y24 .works__mark { left: 50%; }
  html:not([data-a11y]) .works__item--y25 .works__mark { left: 75%; }
}

/* ---------- Реквизиты ---------- */
.req__grid { display: grid; gap: 1.75rem; }
@media (min-width: 64em) { .req__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: start; } }
.req__actions { display: grid; justify-items: start; gap: 0.5rem; margin-top: 1.5rem; }
/* После успешного копирования site.js ставит кнопке класс is-copied — значок меняется на галочку */
.req__icon-done, .is-copied .req__icon-copy { display: none; }
.is-copied .req__icon-done { display: block; }
.req__status { min-height: 1.5rem; font-size: 0.9375rem; font-weight: 600; color: var(--c-accent); }
.req__note { margin-top: 0.5rem; }
.req__wrap { box-shadow: var(--shadow-1); }
.req-table { min-width: 0; font-size: 1rem; }
.req-table tbody th { width: 34%; color: var(--c-ink-2); font-weight: 500; }
.req-table td { font-weight: 500; }
.req-table__code { font-variant-numeric: tabular-nums; letter-spacing: 0.03em; }
@media (max-width: 39.99em) {
  .req-table :is(tbody, tr, th, td) { display: block; }
  .req-table tr { padding: 0.8125rem 1.125rem; border-top: 1px solid var(--c-line); }
  .req-table tbody :is(th, td) { width: auto; padding: 0; border: 0; }
  .req-table tbody th { font-size: 0.875rem; }
  .req-table caption { padding-inline: 1.125rem; }
}

/* ---------- Противодействие коррупции и персональные данные ---------- */
.policies__grid { display: grid; gap: 1.25rem; }
@media (min-width: 64em) { .policies__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.5rem; } }
.policy { min-width: 0; padding: var(--pad-card); border-radius: var(--radius-l); }
.policy { border: 1px solid var(--c-line); background: var(--c-surface); }
.policy__text { margin-top: 1rem; max-width: 36em; }
.hotline { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--c-line); }
.hotline__label { font-weight: 600; }
.hotline__hours { color: var(--c-ink-2); }
ul.policy__list { display: grid; gap: 0.5rem; margin-top: 0.875rem; }
.policy__list li { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); gap: 0.5rem; }
.policy__list li::before { content: ""; width: 0.5rem; height: 0.5rem; margin: 0.5625rem 0 0 0.25rem; border-radius: 50%; background: var(--c-accent); }
.policy__note { display: flex; align-items: flex-start; gap: 0.625rem; margin-top: 1.25rem; padding-top: 1.125rem; border-top: 1px solid var(--c-line-strong); font-weight: 600; }
.policy__note .icon { width: 1.375rem; height: 1.375rem; margin-top: 0.0625rem; flex: none; color: var(--c-accent); }

/* ---------- Контакты: дополнения ---------- */
.contacts__note { display: block; margin-top: 0.125rem; font-size: 0.875rem; font-weight: 400; color: var(--c-ink-2); }

/* ---------- Версия для слабовидящих ---------- */
html[data-a11y="on"] .farm__num { letter-spacing: 0; white-space: normal; overflow-wrap: anywhere; }
html[data-a11y="on"] .farm__num--xl { font-size: 3rem; }
html[data-a11y="on"] .farm__num--l { font-size: 2.5rem; }
html[data-a11y="on"] ul.farm__cells, html[data-a11y="on"] ul.legend, html[data-a11y="on"] .legend li { grid-template-columns: minmax(0, 1fr); }
html[data-a11y="on"] .farm__cells .farm__cell { grid-column: auto; margin-top: 0; padding: 1rem 0 0.5rem; border-left: 0; border-top: 1px solid var(--c-line); }
html[data-a11y="on"] .farm__cells .farm__cell:first-child { border-top: 0; }
html[data-a11y="on"] .legend li > * { grid-column: 1; }
html[data-a11y="on"] .stage { grid-template-columns: minmax(0, 1fr); }
html[data-a11y="on"] :is(.stage__title, .stage__fact) { overflow-wrap: break-word; }
html[data-a11y="on"] .farm__lab .icon { display: none; }
html[data-a11y="on"] .policy { padding: 0.875rem; outline: 2px solid var(--c-line); outline-offset: -2px; overflow-wrap: break-word; }
