/*
 * TK 343 v2 — Технический комитет по стандартизации ТК 343 «Качество воды» (TK343-01, staging)
 * Self-contained stylesheet for the templates «ТК 343 v2 — *». Every class is prefixed .tk343-v2-*.
 * Same elements and rhythm as ETS v2 (header, cards, typography, hover lift/shadow, footer),
 * palette one step darker than ETS v2 (ETS blue #278bc0 → #1f74a6, navy #173851 → #102c42).
 */

@font-face { font-family: "TK343 Avenir"; src: local("Avenir Next Cyr"), url("/assets/fonts/avenirnextcyr-regular.woff2") format("woff2"), url("/assets/fonts/avenirnextcyr-regular.woff") format("woff"); font-weight: 400; font-display: swap; }
@font-face { font-family: "TK343 Avenir"; src: local("Avenir Next Cyr Medium"), url("/assets/fonts/avenirnextcyr-medium.woff2") format("woff2"), url("/assets/fonts/avenirnextcyr-medium.woff") format("woff"); font-weight: 500; font-display: swap; }
@font-face { font-family: "TK343 Avenir"; src: local("Avenir Next Cyr Bold"), url("/assets/fonts/avenirnextcyr-bold.woff2") format("woff2"), url("/assets/fonts/avenirnextcyr-bold.woff") format("woff"); font-weight: 700; font-display: swap; }

.tk343-v2 {
  --tk-blue: #1f74a6;           /* accents, bars, focus (ETS: #278bc0) */
  --tk-blue-ink: #175d88;       /* text-safe blue, 6.9:1 on white (ETS: #1c6f9c) */
  --tk-blue-deep: #114a6d;
  --tk-navy: #102c42;           /* headings (ETS: #173851) */
  --tk-navy-900: #00142a;       /* topbar, footer (ETS: #011b35) */
  --tk-text: #24323f;
  --tk-muted: #4d6378;
  --tk-line: #cfdde9;
  --tk-line-strong: #9dbfd8;
  --tk-surface: #ffffff;
  --tk-surface-alt: #eef3f8;
  --tk-sky: #e2edf6;
  --tk-shadow-card: 0 10px 26px rgba(16, 44, 66, .09);
  --tk-shadow-hover: 0 16px 32px rgba(16, 44, 66, .17);
  --tk-radius: 8px;
  --tk-radius-lg: 12px;
  --tk-ease: cubic-bezier(.2, 0, 0, 1);
  --tk-font: "TK343 Avenir", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  --tk-gutter: 16px;
  --tk-header-h: 72px;

  margin: 0;
  background: var(--tk-surface);
  color: var(--tk-text);
  font-family: var(--tk-font);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
@media (min-width: 480px) { .tk343-v2 { --tk-gutter: 20px; } }
@media (min-width: 768px) { .tk343-v2 { --tk-gutter: 32px; --tk-header-h: 84px; } }

.tk343-v2 *, .tk343-v2 *::before, .tk343-v2 *::after { box-sizing: border-box; }
.tk343-v2 img { max-width: 100%; height: auto; }
.tk343-v2 a { color: var(--tk-blue-ink); text-underline-offset: 4px; text-decoration-thickness: 1px; }
.tk343-v2 a:hover { color: var(--tk-blue-deep); }
.tk343-v2 :focus-visible { outline: 3px solid var(--tk-blue); outline-offset: 3px; border-radius: 2px; }
.tk343-v2 h1, .tk343-v2 h2, .tk343-v2 h3, .tk343-v2 h4 { color: var(--tk-navy); font-weight: 700; line-height: 1.2; margin: 0; letter-spacing: -.01em; }
.tk343-v2-main:focus { outline: 0; }

.tk343-v2-container { width: 100%; max-width: calc(1200px + 2 * var(--tk-gutter)); margin: 0 auto; padding: 0 var(--tk-gutter); }
.tk343-v2-skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--tk-navy-900); color: #fff !important; border-radius: var(--tk-radius); font-weight: 500; text-decoration: none; }
.tk343-v2-skip:focus { top: 12px; }

/* ---------- Top bar: link back to RAWW ---------- */
.tk343-v2-topbar { background: var(--tk-navy-900); color: #bccddc; font-size: 13px; line-height: 1.4; }
.tk343-v2-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.tk343-v2-topbar__org { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.tk343-v2-topbar__org-short { display: none; }
.tk343-v2 .tk343-v2-topbar__link { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; color: #fff; text-decoration: none; font-weight: 500; white-space: nowrap; }
.tk343-v2 .tk343-v2-topbar__link:hover { color: #7fb9de; }
.tk343-v2-topbar__mark { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--tk-blue); }
@media (max-width: 479px) { .tk343-v2-topbar__org-full { display: none; } .tk343-v2-topbar__org-short { display: inline; } }

/* ---------- Header ---------- */
.tk343-v2-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--tk-line); }
.tk343-v2-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--tk-header-h); }
.tk343-v2-brand { display: inline-flex; align-items: center; flex: 0 1 auto; min-width: 0; margin-right: auto; padding: 6px 0; }
.tk343-v2-brand img { display: block; width: auto; height: 40px; }
@media (max-width: 359px) { .tk343-v2-brand img { height: 34px; } }
@media (min-width: 768px) { .tk343-v2-brand img { height: 50px; } }

.tk343-v2-burger { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; min-height: 44px; padding: 0 14px; margin-right: -6px; border: 1px solid var(--tk-line); border-radius: var(--tk-radius); background: #fff; color: var(--tk-navy); font: 500 15px/1 var(--tk-font); cursor: pointer; }
.tk343-v2-burger:hover { border-color: var(--tk-line-strong); }
.tk343-v2-burger__icon { position: relative; width: 18px; height: 12px; }
.tk343-v2-burger__icon::before, .tk343-v2-burger__icon::after, .tk343-v2-burger__icon span { content: ""; position: absolute; left: 0; width: 18px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .16s var(--tk-ease), opacity .16s var(--tk-ease); }
.tk343-v2-burger__icon::before { top: 0; }
.tk343-v2-burger__icon span { top: 5px; }
.tk343-v2-burger__icon::after { top: 10px; }
.tk343-v2-header.is-open .tk343-v2-burger__icon::before { transform: translateY(5px) rotate(45deg); }
.tk343-v2-header.is-open .tk343-v2-burger__icon span { opacity: 0; }
.tk343-v2-header.is-open .tk343-v2-burger__icon::after { transform: translateY(-5px) rotate(-45deg); }

.tk343-v2-nav__list { list-style: none; margin: 0; padding: 0; }
.tk343-v2 .tk343-v2-nav__link { display: flex; align-items: center; color: var(--tk-navy); font-weight: 500; text-decoration: none; }
.tk343-v2 .tk343-v2-nav__link:hover, .tk343-v2 .tk343-v2-nav__link.is-active { color: var(--tk-blue-ink); }

/* phones and tablets: drawer under the header */
@media (max-width: 1023px) {
  .tk343-v2-nav { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--tk-line); box-shadow: 0 18px 30px rgba(16, 44, 66, .14); max-height: calc(100vh - var(--tk-header-h)); max-height: calc(100dvh - var(--tk-header-h)); overflow-y: auto; overscroll-behavior: contain; }
  .tk343-v2-js .tk343-v2-nav { display: none; }
  .tk343-v2-js .tk343-v2-header.is-open .tk343-v2-nav { display: block; }
  .tk343-v2-nav__list { max-width: calc(1200px + 2 * var(--tk-gutter)); margin: 0 auto; padding: 8px var(--tk-gutter) 20px; }
  .tk343-v2-nav__item + .tk343-v2-nav__item { border-top: 1px solid var(--tk-line); }
  .tk343-v2 .tk343-v2-nav__link { min-height: 52px; font-size: 17px; }
  .tk343-v2 .tk343-v2-nav__link.is-active::before { content: ""; width: 4px; height: 20px; margin-right: 12px; border-radius: 2px; background: var(--tk-blue); }
  html:not(.tk343-v2-js) .tk343-v2-nav { position: static; box-shadow: none; border: 0; }
  html:not(.tk343-v2-js) .tk343-v2-header__inner { flex-wrap: wrap; }
  html:not(.tk343-v2-js) .tk343-v2-burger { display: none; }
}
@media (min-width: 1024px) {
  .tk343-v2-burger { display: none; }
  .tk343-v2-nav__list { display: flex; align-items: center; gap: 4px; }
  .tk343-v2 .tk343-v2-nav__link { position: relative; min-height: var(--tk-header-h); padding: 0 12px; font-size: 15px; white-space: nowrap; }
  .tk343-v2 .tk343-v2-nav__link::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--tk-blue); transform: scaleX(0); transition: transform .16s var(--tk-ease); }
  .tk343-v2 .tk343-v2-nav__link:hover::after, .tk343-v2 .tk343-v2-nav__link.is-active::after { transform: scaleX(1); }
}
@media (min-width: 1296px) { .tk343-v2 .tk343-v2-nav__link { padding: 0 16px; font-size: 16px; } .tk343-v2 .tk343-v2-nav__link::after { left: 16px; right: 16px; } }

/* ---------- Buttons ---------- */
.tk343-v2 .tk343-v2-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border: 1px solid transparent; border-radius: var(--tk-radius); font: 500 16px/1.2 var(--tk-font); text-decoration: none; cursor: pointer; transition: background-color .16s var(--tk-ease), border-color .16s var(--tk-ease), color .16s var(--tk-ease), transform .16s var(--tk-ease), box-shadow .16s var(--tk-ease); }
.tk343-v2 .tk343-v2-btn:active { transform: translateY(1px); }
.tk343-v2 .tk343-v2-btn--ghost { background: #fff; border-color: var(--tk-line-strong); color: var(--tk-navy); }
.tk343-v2 .tk343-v2-btn--ghost:hover { border-color: var(--tk-blue); color: var(--tk-blue-ink); box-shadow: var(--tk-shadow-card); }

/* ---------- Hero (home) ---------- */
.tk343-v2-hero { position: relative; color: #fff; background-color: var(--tk-navy); background-image: linear-gradient(100deg, rgba(0, 20, 42, .92) 0%, rgba(0, 20, 42, .78) 45%, rgba(16, 74, 109, .35) 100%), var(--tk343-hero-img, none); background-size: cover; background-position: 60% 50%; overflow: hidden; }
.tk343-v2-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--tk-blue) 0%, #6fb2dc 100%); }
.tk343-v2-hero__inner { position: relative; padding-top: 40px; padding-bottom: 44px; }
@media (min-width: 768px) { .tk343-v2-hero__inner { padding-top: 56px; padding-bottom: 60px; } }
@media (min-width: 1024px) { .tk343-v2-hero__inner { padding-top: 68px; padding-bottom: 72px; } }
.tk343-v2-hero__eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; color: #a9d0ea; font-size: 12px; font-weight: 700; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; }
.tk343-v2-hero__eyebrow::before { content: ""; flex: 0 0 28px; height: 2px; background: #6fb2dc; }
.tk343-v2 .tk343-v2-hero__title { max-width: 820px; color: #fff; font-size: 30px; line-height: 1.12; letter-spacing: -.02em; text-wrap: balance; }
@media (max-width: 359px) { .tk343-v2 .tk343-v2-hero__title { font-size: 27px; } }
@media (min-width: 768px) { .tk343-v2 .tk343-v2-hero__title { font-size: 42px; } }
@media (min-width: 1296px) { .tk343-v2 .tk343-v2-hero__title { font-size: 50px; } }
.tk343-v2-hero__lead { max-width: 640px; margin: 16px 0 0; color: #d3e3ef; font-size: 17px; }

/* ---------- Home: news + partners ---------- */
.tk343-v2-home { padding: 40px 0 64px; background: linear-gradient(180deg, var(--tk-surface-alt) 0, #fff 420px); }
@media (min-width: 1024px) { .tk343-v2-home { padding: 56px 0 88px; } }
.tk343-v2-home__grid { display: grid; gap: 32px; }
@media (min-width: 1024px) { .tk343-v2-home__grid { grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; align-items: start; } .tk343-v2-home__aside { position: sticky; top: calc(var(--tk-header-h) + 24px); } }
@media (min-width: 1296px) { .tk343-v2-home__grid { grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; } }
.tk343-v2-section__title { display: flex; align-items: center; gap: 12px; margin: 0 0 28px; font-size: 26px; }
.tk343-v2-section__title::before { content: ""; flex: 0 0 4px; align-self: stretch; min-height: 26px; border-radius: 2px; background: var(--tk-blue); }
@media (min-width: 768px) { .tk343-v2-section__title { font-size: 32px; } }

.tk343-v2-newslist { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .tk343-v2-newslist { gap: 20px; } }
.tk343-v2-news__card { position: relative; height: 100%; padding: 20px 18px 22px; background: #fff; border: 1px solid var(--tk-line); border-left: 3px solid var(--tk-blue); border-radius: var(--tk-radius); box-shadow: var(--tk-shadow-card); transition: transform .18s var(--tk-ease), box-shadow .18s var(--tk-ease), border-color .18s var(--tk-ease); }
@media (min-width: 768px) { .tk343-v2-news__card { padding: 26px 30px 28px; } }
.tk343-v2-news__card:hover, .tk343-v2-news__card:focus-within { transform: translateY(-2px); box-shadow: var(--tk-shadow-hover); border-color: var(--tk-line-strong); border-left-color: var(--tk-blue-ink); }
.tk343-v2 .tk343-v2-news__title { margin: 0 0 12px; font-size: 18px; line-height: 1.4; overflow-wrap: break-word; }
@media (min-width: 768px) { .tk343-v2 .tk343-v2-news__title { font-size: 20px; } }
.tk343-v2-news__text { font-size: 16px; line-height: 1.65; }
.tk343-v2-news__text:empty { display: none; }
.js-tk343-v2-collapsed [data-tk343-more-item] { display: none; }
.tk343-v2-newsmore { display: flex; justify-content: center; margin-top: 28px; }
.tk343-v2-newsmore[hidden] { display: none; }
.tk343-v2-newsmore__count { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 24px; padding: 0 8px; border-radius: 999px; background: var(--tk-sky); color: var(--tk-blue-ink); font-size: 13px; font-weight: 700; }
.tk343-v2-empty { padding: 24px; border: 1px dashed var(--tk-line-strong); border-radius: var(--tk-radius); color: var(--tk-muted); }

.tk343-v2-aside-card { padding: 22px 22px 24px; background: #fff; border: 1px solid var(--tk-line); border-radius: var(--tk-radius-lg); box-shadow: var(--tk-shadow-card); }
.tk343-v2 .tk343-v2-aside-card__title { margin: 0 0 16px; color: var(--tk-muted); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.tk343-v2-partners { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.tk343-v2 .tk343-v2-partner__link, .tk343-v2-partner > img { display: flex; align-items: center; justify-content: center; min-height: 96px; padding: 16px; border: 1px solid var(--tk-line); border-radius: var(--tk-radius); background: #fff; transition: transform .18s var(--tk-ease), box-shadow .18s var(--tk-ease), border-color .18s var(--tk-ease); }
.tk343-v2 .tk343-v2-partner__link:hover, .tk343-v2 .tk343-v2-partner__link:focus-visible { transform: translateY(-2px); box-shadow: var(--tk-shadow-hover); border-color: var(--tk-line-strong); }
.tk343-v2-partner img { display: block; width: 200px; max-width: 100%; height: auto; }

/* ---------- Inner pages ---------- */
.tk343-v2-pagehead { padding: 24px 0 32px; background: linear-gradient(180deg, var(--tk-sky) 0%, var(--tk-surface-alt) 100%); border-bottom: 1px solid var(--tk-line); }
@media (min-width: 1024px) { .tk343-v2-pagehead { padding: 36px 0 48px; } }
.tk343-v2-crumbs { margin: 0 0 16px; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 14px; color: var(--tk-muted); }
.tk343-v2-crumbs li { display: inline-flex; align-items: center; min-width: 0; }
.tk343-v2-crumbs li + li::before { content: "/"; margin: 0 10px; color: var(--tk-line-strong); }
.tk343-v2 .tk343-v2-crumbs a { display: inline-flex; align-items: center; min-height: 32px; color: var(--tk-muted); text-decoration: none; }
.tk343-v2 .tk343-v2-crumbs a:hover { color: var(--tk-blue-ink); text-decoration: underline; }
.tk343-v2 .tk343-v2-pagehead__title { max-width: 900px; font-size: 28px; line-height: 1.15; letter-spacing: -.015em; overflow-wrap: break-word; text-wrap: balance; }
@media (min-width: 768px) { .tk343-v2 .tk343-v2-pagehead__title { font-size: 36px; } }
@media (min-width: 1024px) { .tk343-v2 .tk343-v2-pagehead__title { font-size: 40px; } }
.tk343-v2-pagehead__lead { margin: 14px 0 0; max-width: 720px; font-size: 18px; }
.tk343-v2-page { padding: 32px 0 64px; }
@media (min-width: 1024px) { .tk343-v2-page { padding: 48px 0 88px; } }
.tk343-v2-docs__count { margin: 0 0 20px; color: var(--tk-muted); font-size: 15px; font-weight: 500; }

/* ---------- Prose (editor content) ---------- */
.tk343-v2-prose { color: var(--tk-text); font-size: 17px; line-height: 1.7; overflow-wrap: break-word; }
.tk343-v2-prose > :first-child { margin-top: 0; }
.tk343-v2-prose > :last-child { margin-bottom: 0; }
.tk343-v2-prose p, .tk343-v2-prose ul, .tk343-v2-prose ol, .tk343-v2-prose blockquote { margin: 0 0 1em; }
.tk343-v2-prose ul, .tk343-v2-prose ol { padding-left: 1.4em; }
.tk343-v2-prose ul { list-style: disc; }
.tk343-v2-prose ol { list-style: decimal; }
.tk343-v2-prose li { margin: .35em 0; }
.tk343-v2-prose li::marker { color: var(--tk-blue); }
.tk343-v2-prose strong, .tk343-v2-prose b { color: var(--tk-navy); font-weight: 700; }
.tk343-v2-prose img { height: auto !important; max-width: 100% !important; border-radius: var(--tk-radius); }
.tk343-v2-prose hr { margin: 2em 0; border: 0; border-top: 1px solid var(--tk-line); }
.tk343-v2-prose [style*="justify"] { text-align: left !important; }
.tk343-v2-prose a[href] { overflow-wrap: anywhere; }
.tk343-v2-prose--page > p, .tk343-v2-prose--page > ul, .tk343-v2-prose--page > ol { max-width: 860px; }
.tk343-v2-news__text p:last-child { margin-bottom: 0; }

/* Legacy tables: fixed widths are dropped by the snippet; wide tables scroll inside their own box, never the page */
.tk343-v2-table { max-width: 100%; margin: 0 0 1.6em; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--tk-line); border-radius: var(--tk-radius); background: #fff; box-shadow: var(--tk-shadow-card); }
.tk343-v2-prose table { width: 100% !important; margin: 0 !important; border: 0 !important; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.tk343-v2-prose td, .tk343-v2-prose th { padding: 12px 14px; border: 0 !important; border-bottom: 1px solid var(--tk-line) !important; vertical-align: top; text-align: left; }
.tk343-v2-prose tr:last-child > td { border-bottom: 0 !important; }
.tk343-v2-prose td + td, .tk343-v2-prose th + th { border-left: 1px solid var(--tk-line) !important; }
.tk343-v2-prose td p, .tk343-v2-prose th p { margin: 0 0 .35em; }
.tk343-v2-prose td p:last-child { margin-bottom: 0; }
.tk343-v2-prose .tk343-v2-table__head > td, .tk343-v2-prose th { background: var(--tk-sky); color: var(--tk-navy); }
.tk343-v2-prose tr:not(.tk343-v2-table__head):hover > td { background: #f6f9fc; }
.tk343-v2-prose td a, .tk343-v2-prose td { overflow-wrap: anywhere; }
@media (max-width: 767px) {
  /* stacked cards: every row is a card, each cell shows its column header from data-label */
  .tk343-v2-table:has(.tk343-v2-table--labelled) { overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .tk343-v2-prose .tk343-v2-table--labelled, .tk343-v2-prose .tk343-v2-table--labelled > tbody, .tk343-v2-prose .tk343-v2-table--labelled tr, .tk343-v2-prose .tk343-v2-table--labelled td { display: block; width: 100% !important; }
  .tk343-v2-prose .tk343-v2-table--labelled .tk343-v2-table__head { display: none; }
  .tk343-v2-prose .tk343-v2-table--labelled tr { margin: 0 0 12px; border: 1px solid var(--tk-line); border-radius: var(--tk-radius); background: #fff; box-shadow: var(--tk-shadow-card); overflow: hidden; }
  .tk343-v2-prose .tk343-v2-table--labelled td { border-left: 0 !important; padding: 10px 14px; }
  .tk343-v2-prose .tk343-v2-table--labelled td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 4px; color: var(--tk-muted); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
  .tk343-v2-prose .tk343-v2-table--labelled tr:hover > td { background: transparent; }
}

/* ---------- File tiles («Приказы», documents linked in a page) ---------- */
.tk343-v2-files { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0 0 1.4em; padding: 0; list-style: none; }
@media (min-width: 560px) { .tk343-v2-files { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }
@media (min-width: 1024px) { .tk343-v2-files { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 1296px) { .tk343-v2--docs .tk343-v2-files { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tk343-v2-prose .tk343-v2-files { padding-left: 0; list-style: none; }
.tk343-v2-prose .tk343-v2-files > li { margin: 0; }
.tk343-v2-prose .tk343-v2-files > li::marker { content: none; }
.tk343-v2-nobr { white-space: nowrap; }
.tk343-v2-file { --tk-file: #4d6378; --tk-file-bg: #edf1f5; }
.tk343-v2-file--pdf { --tk-file: #a32a22; --tk-file-bg: #fbeceb; }
.tk343-v2-file--doc { --tk-file: #1d58a3; --tk-file-bg: #e8f0fa; }
.tk343-v2-file--zip { --tk-file: #7a5600; --tk-file-bg: #f8f0dc; }
.tk343-v2-file--xls { --tk-file: #1d6b3e; --tk-file-bg: #e6f3ec; }
.tk343-v2 .tk343-v2-file__link { display: flex; align-items: center; gap: 14px; height: 100%; min-height: 84px; padding: 14px 16px; background: #fff; border: 1px solid var(--tk-line); border-radius: var(--tk-radius); box-shadow: 0 2px 6px rgba(16, 44, 66, .05); color: var(--tk-navy); text-decoration: none; transition: transform .18s var(--tk-ease), box-shadow .18s var(--tk-ease), border-color .18s var(--tk-ease), background-color .18s var(--tk-ease); }
.tk343-v2 .tk343-v2-file__link:hover, .tk343-v2 .tk343-v2-file__link:focus-visible { transform: translateY(-3px); box-shadow: var(--tk-shadow-hover); border-color: var(--tk-line-strong); color: var(--tk-blue-ink); }
.tk343-v2 .tk343-v2-file__link:focus-visible { outline: 3px solid var(--tk-blue); outline-offset: 2px; }
.tk343-v2 .tk343-v2-file__link:active { transform: translateY(-1px); }
.tk343-v2-file__icon { position: relative; flex: 0 0 40px; width: 40px; height: 48px; transition: transform .18s var(--tk-ease); }
.tk343-v2-file__icon svg { display: block; width: 40px; height: 48px; }
.tk343-v2-file__sheet { fill: var(--tk-file-bg); stroke: var(--tk-file); stroke-width: 1.5; }
.tk343-v2-file__fold { fill: none; stroke: var(--tk-file); stroke-width: 1.5; stroke-linejoin: round; }
.tk343-v2-file__ext { position: absolute; left: -4px; bottom: 7px; padding: 1px 4px; border-radius: 3px; background: var(--tk-file); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .03em; line-height: 1.3; }
.tk343-v2-file__link:hover .tk343-v2-file__icon, .tk343-v2-file__link:focus-visible .tk343-v2-file__icon { transform: translateY(-1px) rotate(-4deg); }
.tk343-v2-file__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.tk343-v2-file__title { font-size: 15px; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
.tk343-v2-file__meta { color: var(--tk-muted); font-size: 13px; font-weight: 500; letter-spacing: .02em; }

/* ---------- Footer ---------- */
.tk343-v2-footer { background: var(--tk-navy-900); color: #aec1d3; font-size: 15px; }
.tk343-v2-footer__grid { display: grid; gap: 32px; padding: 48px 0 36px; }
@media (min-width: 768px) { .tk343-v2-footer__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); gap: 48px; padding: 56px 0 40px; } }
.tk343-v2-footer__eyebrow { margin: 0 0 6px; color: #8fb4cf; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.tk343-v2-footer__name { margin: 0; color: #fff; font-size: 20px; font-weight: 700; line-height: 1.3; }
.tk343-v2 .tk343-v2-footer__title { margin: 0 0 14px; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.tk343-v2-footer__nav { margin: 0; padding: 0; list-style: none; }
.tk343-v2 .tk343-v2-footer a { color: #e1ebf4; text-decoration: none; }
.tk343-v2 .tk343-v2-footer a:hover { color: #7fb9de; text-decoration: underline; }
.tk343-v2 .tk343-v2-footer__nav a { display: inline-flex; align-items: center; min-height: 36px; }
.tk343-v2-footer__contacts p { margin: 0 0 10px; overflow-wrap: anywhere; }
.tk343-v2 .tk343-v2-footer__contacts a, .tk343-v2 .tk343-v2-footer__bottom a { display: inline-flex; align-items: center; min-height: 32px; }
.tk343-v2-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 20px 0 28px; border-top: 1px solid rgba(255, 255, 255, .14); font-size: 14px; color: #8ba2b8; }

@media (prefers-reduced-motion: reduce) {
  .tk343-v2 *, .tk343-v2 *::before, .tk343-v2 *::after { transition: none !important; }
  .tk343-v2 .tk343-v2-file__link:hover, .tk343-v2 .tk343-v2-file__link:focus-visible, .tk343-v2-news__card:hover, .tk343-v2-news__card:focus-within, .tk343-v2 .tk343-v2-partner__link:hover, .tk343-v2-file__link:hover .tk343-v2-file__icon { transform: none; }
}

/* =====================================================================
   TK343-01 — vertical rhythm (one scale, 8 px steps) and the logo divider «//»
   ===================================================================== */
.tk343-v2 {
  --tk-sp-band-top: 24px;     /* page head: header → crumbs */
  --tk-sp-band-bottom: 32px;  /* page head: title → end of the band */
  --tk-sp-block: 32px;        /* band (hero / page head) → content; gap between the news column and the partners */
  --tk-sp-title: 24px;        /* section title → its content */
  --tk-sp-end: 64px;          /* content → footer */
}
@media (min-width: 768px) { .tk343-v2 { --tk-sp-band-top: 32px; --tk-sp-band-bottom: 40px; --tk-sp-block: 40px; --tk-sp-title: 28px; --tk-sp-end: 72px; } }
@media (min-width: 1024px) { .tk343-v2 { --tk-sp-band-top: 40px; --tk-sp-band-bottom: 48px; --tk-sp-block: 48px; --tk-sp-end: 88px; } }
.tk343-v2 .tk343-v2-section__title { margin: 0 0 var(--tk-sp-title); }
.tk343-v2-home { padding: var(--tk-sp-block) 0 var(--tk-sp-end); }
.tk343-v2-home__grid { gap: var(--tk-sp-block); }
.tk343-v2-pagehead { padding: var(--tk-sp-band-top) 0 var(--tk-sp-band-bottom); }
.tk343-v2-page { padding: var(--tk-sp-block) 0 var(--tk-sp-end); }
.tk343-v2-newsmore { margin-top: var(--tk-sp-title); }
.tk343-v2-prose > .tk343-v2-table:last-child, .tk343-v2-prose > .tk343-v2-files:last-child { margin-bottom: 0; }
@media (max-width: 767px) { .tk343-v2-prose .tk343-v2-table--labelled tr:last-child { margin-bottom: 0; } }

/* Logo divider «//» — as ETS v2 (HDR-01 D): dark + light slash right after the logo, in the TK 343 palette,
   shown where the menu is a row (≥1024 px; ETS: ≥1296 px, its own menu switch point). */
@media (min-width: 1024px) {
  .tk343-v2-brand { margin-right: 0; }
  .tk343-v2-header__inner::after { content: ""; order: 1; flex: 0 0 auto; width: 24px; height: 30px; margin: 0 auto 0 -6px; pointer-events: none; background: no-repeat center / contain;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 30'%3E%3Cpolygon points='1.00,30 3.40,30 16.00,0 13.60,0' fill='%23175d88'/%3E%3Cpolygon points='7.60,30 9.30,30 21.90,0 20.20,0' fill='%237fb2d6'/%3E%3C/svg%3E"); }
  .tk343-v2-nav { order: 2; }
}

/* =====================================================================
   TK343-01 hero wave (Owner 2026-10-20 04:03): no photo — dark navy band, a soft grid of squares and the wireframe wave
   of the first ETS v2 prototype (HERO-WAVE-01), redrawn light-on-dark (/assets/images/tk343-v2-hero-wave.svg).
   Compact height: without a lead the band is only as tall as eyebrow + title need.
   ===================================================================== */
.tk343-v2-hero--wave { isolation: isolate; background-color: #021a33; background-image: linear-gradient(115deg, #00142a 0%, #062744 48%, #0d3a5c 100%); }
/* grid of squares: thin light lines, faded in gently from the left (no hard edges) */
.tk343-v2-hero--wave::before { content: ""; position: absolute; inset: 0; z-index: -2; pointer-events: none;
  background-image: linear-gradient(rgba(143, 195, 230, .09) 1px, transparent 1px), linear-gradient(90deg, rgba(143, 195, 230, .09) 1px, transparent 1px);
  background-size: 28px 28px; background-position: -1px -1px;
  -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, .25) 0%, rgba(0, 0, 0, .7) 55%, #000 100%); mask-image: linear-gradient(90deg, rgba(0, 0, 0, .25) 0%, rgba(0, 0, 0, .7) 55%, #000 100%); }
.tk343-v2-hero__wave { position: absolute; z-index: -1; top: 0; bottom: 0; right: 0; width: min(1200px, 100%); pointer-events: none;
  background: url("/assets/images/tk343-v2-hero-wave.svg?v=2") no-repeat right bottom / 100% 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent 22%, #000 55%); mask-image: linear-gradient(90deg, transparent 22%, #000 55%); }
.tk343-v2-hero--wave .tk343-v2-hero__inner { padding-top: 28px; padding-bottom: 32px; }
@media (min-width: 768px) { .tk343-v2-hero--wave .tk343-v2-hero__inner { padding-top: 36px; padding-bottom: 40px; } }
@media (min-width: 1024px) { .tk343-v2-hero--wave .tk343-v2-hero__inner { padding-top: 44px; padding-bottom: 48px; } }
.tk343-v2-hero--wave .tk343-v2-hero__title { max-width: 720px; }
@media (min-width: 1296px) { .tk343-v2 .tk343-v2-hero--wave .tk343-v2-hero__title { font-size: 46px; } }
@media (max-width: 767px) { .tk343-v2-hero__wave { width: 100%; opacity: .55; -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000 80%); mask-image: linear-gradient(90deg, transparent 30%, #000 80%); } }
@media print { .tk343-v2-hero__wave, .tk343-v2-hero--wave::before { display: none; } }

/* TK343-01 table 1 (Owner 2026-10-20 04:32): «Структура комитета», table «Область деятельности ТК 343» (class="1" in the
   editor HTML — the only such table): auto layout squeezed columns 1–2 to 80/130 px (words broke one per line).
   Fixed proportions from tablet up; phones keep the stacked cards. */
@media (min-width: 768px) {
  .tk343-v2-prose table[class~="1"] { table-layout: fixed; }
  .tk343-v2-prose table[class~="1"] tr > td:nth-child(1) { width: 17%; }
  .tk343-v2-prose table[class~="1"] tr > td:nth-child(2) { width: 25%; }
  .tk343-v2-prose table[class~="1"] tr > td:nth-child(3) { width: 33%; }
  .tk343-v2-prose table[class~="1"] tr > td:nth-child(4) { width: 25%; }
  .tk343-v2-prose table[class~="1"] td { overflow-wrap: break-word; word-break: normal; hyphens: manual; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .tk343-v2-prose table[class~="1"] tr > td:nth-child(1) { width: 22%; }
  .tk343-v2-prose table[class~="1"] tr > td:nth-child(2) { width: 25%; }
  .tk343-v2-prose table[class~="1"] tr > td:nth-child(3) { width: 30%; }
  .tk343-v2-prose table[class~="1"] tr > td:nth-child(4) { width: 23%; }
  .tk343-v2-prose table[class~="1"] td { padding: 10px 12px; }
}

/* TK343-01 hero facts (Owner 2026-10-20 05:12, variant D): row of three facts under the title (MIGX tk343HeroFacts).
   Desktop/tablet: one row with thin dividers. Phones: still one row of three narrow columns, small type — the most compact
   layout (a list of rows added ~180 px to the band at 375). */
.tk343-v2-facts { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, auto); justify-content: start; gap: 0; max-width: 860px; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid rgba(169, 208, 234, .22); }
.tk343-v2-facts__item { min-width: 0; padding: 0 32px 0 0; }
.tk343-v2-facts__item + .tk343-v2-facts__item { padding-left: 32px; border-left: 1px solid rgba(169, 208, 234, .22); }
.tk343-v2-facts dt { margin: 0; color: #fff; font-size: 26px; font-weight: 700; line-height: 1.15; letter-spacing: -.01em; white-space: nowrap; }
.tk343-v2-facts dd { margin: 4px 0 0; max-width: 240px; color: #bcd6ea; font-size: 13px; line-height: 1.4; }
@media (max-width: 1023px) { .tk343-v2-facts dt { font-size: 22px; } .tk343-v2-facts__item { padding-right: 24px; } .tk343-v2-facts__item + .tk343-v2-facts__item { padding-left: 24px; } }
@media (max-width: 767px) {
  .tk343-v2-facts { grid-auto-flow: row; grid-template-columns: minmax(0, .75fr) minmax(0, 1.35fr) minmax(0, .9fr); justify-content: stretch; margin-top: 16px; padding-top: 14px; }
  .tk343-v2-facts__item { padding-right: 10px; }
  .tk343-v2-facts__item + .tk343-v2-facts__item { padding-left: 10px; }
  .tk343-v2-facts dt { font-size: 16px; white-space: nowrap; }
  .tk343-v2-facts dd { overflow-wrap: normal; hyphens: manual; }
  .tk343-v2-facts dd { margin-top: 3px; font-size: 11.5px; line-height: 1.3; }
}

/* TK343-01 file icons (Owner 2026-10-20 07:02): many tiles made a «garland» of red. Icon half the size (40×48 → 20×24),
   colours muted several times; the type badge moves off the icon into the caption line («PDF · 123 КБ», type in a
   readable muted tone ≥ 6:1 on white). Hover lift of the tile unchanged; on hover the icon outline gets a touch stronger. */
.tk343-v2-file { --tk-file: #b3bfca; --tk-file-bg: #f4f6f8; --tk-file-text: #4d6378; }
.tk343-v2-file--pdf { --tk-file: #cfa19c; --tk-file-bg: #fbf3f2; --tk-file-text: #94453e; }
.tk343-v2-file--doc { --tk-file: #a3b7d2; --tk-file-bg: #f1f5fa; --tk-file-text: #2f5f98; }
.tk343-v2-file--zip { --tk-file: #cdbb92; --tk-file-bg: #faf6ec; --tk-file-text: #6e5410; }
.tk343-v2-file--xls { --tk-file: #9cc1aa; --tk-file-bg: #f0f7f3; --tk-file-text: #2b6a45; }
.tk343-v2 .tk343-v2-file__link { align-items: flex-start; gap: 12px; min-height: 72px; }
.tk343-v2-file__icon { flex: 0 0 20px; width: 20px; height: 24px; margin-top: 1px; }
.tk343-v2-file__icon svg { width: 20px; height: 24px; }
.tk343-v2-file__sheet, .tk343-v2-file__fold { stroke-width: 2.4; transition: stroke .18s var(--tk-ease); }
.tk343-v2-file__ext { display: none; }
.tk343-v2-file__type { color: var(--tk-file-text); font-weight: 700; letter-spacing: .04em; }
.tk343-v2-file__link:hover .tk343-v2-file__sheet, .tk343-v2-file__link:hover .tk343-v2-file__fold,
.tk343-v2-file__link:focus-visible .tk343-v2-file__sheet, .tk343-v2-file__link:focus-visible .tk343-v2-file__fold { stroke: var(--tk-file-text); }
