/* ============================================================================
   Bezviz v0.18 — компоненты
   Система «бумага · чернила · красный»: плоскости, линии, без радиусов.
   Bezviz: форк системы Selfmademan, акцент — синий #0057B8.
   ========================================================================= */

.wrap {
  max-width: var(--sm-container);
  margin-inline: auto;
  padding-inline: var(--sm-gutter);
}
.mono {
  font-family: var(--sm-font-mono);
  font-size: .7rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.icon {
  width: 1em;
  height: 1em;
  stroke: currentColor;
  stroke-width: 1.7;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sr,
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.sm-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 200;
  padding: 12px 18px;
  background: var(--sm-ink);
  color: #fff;
  font-size: .85rem;
}
.sm-skip-link:focus { left: 0; }

/* ============================== ШАПКА ============================== */
.site-head {
  position: sticky;
  top: 0;
  z-index: 100;
  height: 66px;
  background: var(--sm-bg-blur);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid var(--sm-line);
}
.head-in {
  max-width: var(--sm-container);
  margin-inline: auto;
  padding-inline: var(--sm-gutter);
  height: 66px;
  display: flex;
  align-items: center;
  gap: 22px;
}
.brand {
  font-family: var(--sm-font-head);
  font-weight: 700;
  font-size: .98rem;
  letter-spacing: -.02em;
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  color: var(--sm-ink);
  text-decoration: none;
}
.brand .dot,
.foot-brand .dot {
  width: 9px;
  height: 9px;
  background: var(--sm-accent);
  flex: none;
  transition: transform .35s var(--sm-ease);
}
.brand:hover .dot { transform: rotate(45deg); }

.nav {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-left: auto;
}
.nav a {
  font-size: .85rem;
  font-weight: 400;
  padding: 4px 0;
  position: relative;
  opacity: .66;
  color: var(--sm-ink);
  text-decoration: none;
  transition: opacity .25s;
}
.nav a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: var(--sm-accent);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .35s var(--sm-ease);
}
.nav a:hover,
.nav a[aria-current="page"] { opacity: 1; }
.nav a:hover::after,
.nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }

.langs {
  display: inline-flex;
  gap: 8px;
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .1em;
}
.langs a {
  opacity: .4;
  color: var(--sm-ink);
  text-decoration: none;
  transition: opacity .2s;
}
.langs a:hover { opacity: 1; }
.langs a.on {
  opacity: 1;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.menu-btn {
  display: none;
  width: auto;
  height: 44px;
  margin-left: auto;
  align-items: center;
  justify-content: center;
  font-family: var(--sm-font-mono);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--sm-ink);
}
.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 110;
  background: var(--sm-ink);
  color: #fff;
  padding: calc(66px + 24px) var(--sm-gutter) 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  transform: translateY(-100%);
  transition: transform .5s var(--sm-ease);
  visibility: hidden;
}
.mobile-nav.open { transform: none; visibility: visible; }
.mobile-nav a {
  font-family: var(--sm-font-head);
  font-weight: 700;
  font-size: clamp(1.7rem, 8vw, 2.8rem);
  line-height: 1.15;
  letter-spacing: -.03em;
  color: #fff;
  text-decoration: none;
}
.mobile-nav a:nth-of-type(2n) { color: var(--sm-accent); }
.mobile-close {
  position: absolute;
  top: 0;
  right: var(--sm-gutter);
  height: 66px;
  font-family: var(--sm-font-mono);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
}

/* ============================== ПОЯВЛЕНИЕ ============================== */
.js .rv {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s var(--sm-ease), transform .7s var(--sm-ease);
  transition-delay: var(--d, 0s);
}
.js .rv.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js .rv { opacity: 1; transform: none; transition: none; }
}

/* ============================== ХИРО ============================== */
.hero { padding-block: clamp(56px, 9vw, 120px) clamp(40px, 5vw, 70px); }
.hero h1 {
  font-size: clamp(2.2rem, 6.6vw, 5rem);
  line-height: .98;
  max-width: 17ch;
}
.hero h1 span { color: var(--sm-accent); }
.hero-meta {
  display: flex;
  gap: 26px;
  flex-wrap: wrap;
  color: var(--sm-muted);
  margin-bottom: clamp(26px, 4vw, 46px);
}
.hero-foot {
  margin-top: clamp(30px, 4vw, 48px);
  display: flex;
  gap: clamp(24px, 4vw, 56px);
  align-items: flex-end;
  flex-wrap: wrap;
}
.hero-foot p {
  max-width: 54ch;
  font-size: 1.05rem;
  color: var(--sm-ink-body);
}
.link-line {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border-bottom: 1px solid var(--sm-ink);
  padding-bottom: 4px;
  font-size: .9rem;
  font-weight: 500;
  white-space: nowrap;
  color: var(--sm-ink);
  text-decoration: none;
  transition: color .25s, border-color .25s;
}
.link-line svg { width: 14px; height: 14px; transition: transform .3s var(--sm-ease); }
.link-line:hover { color: var(--sm-accent); border-color: var(--sm-accent); }
.link-line:hover svg { transform: translateX(3px); }

/* ============================== ЛИД-МАТЕРИАЛ ============================== */
.lead-post {
  border-top: 1px solid var(--sm-ink);
  padding-top: clamp(26px, 3vw, 40px);
  padding-bottom: clamp(44px, 6vw, 80px);
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 60px);
  align-items: start;
}
.lead-post .tag {
  color: var(--sm-accent);
  display: block;
  margin-bottom: 16px;
  text-decoration: none;
}
.lead-post h2 { font-size: clamp(1.7rem, 4vw, 3.1rem); line-height: 1.04; }
.lead-post h2 a { color: inherit; text-decoration: none; transition: color .3s; }
.lead-post h2 a:hover { color: var(--sm-accent); }
.lead-post .excerpt { margin-top: 20px; color: var(--sm-ink-body); max-width: 56ch; }
.lead-post .meta {
  margin-top: 22px;
  color: var(--sm-muted);
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.lead-figure { aspect-ratio: 4 / 3; background: var(--sm-ink); overflow: hidden; margin: 0; }
.lead-figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.05);
  transition: filter .6s var(--sm-ease);
}
.lead-post:hover .lead-figure img { filter: none; }
.lead-figure.noimg {
  background: repeating-linear-gradient(45deg, var(--sm-hatch) 0 12px, #fff 12px 24px);
  border: 1px solid var(--sm-line);
}

/* ============================== РЕЙЛ + ЛЕНТА ============================== */
.stream {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: clamp(28px, 5vw, 72px);
  padding-bottom: clamp(60px, 8vw, 110px);
  border-top: 1px solid var(--sm-line);
  padding-top: clamp(34px, 4vw, 56px);
}
.rail { position: sticky; top: calc(66px + 28px); align-self: start; }
.rail > .mono { color: var(--sm-muted); display: block; margin-bottom: 18px; }
.rail ul { list-style: none; margin: 0; padding: 0; }
.rail li { border-bottom: 1px solid var(--sm-line); }
.rail li a {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 0;
  font-size: .92rem;
  color: var(--sm-ink-body);
  text-decoration: none;
  transition: color .25s, padding-left .3s var(--sm-ease);
}
.rail li a:hover { color: var(--sm-accent); padding-left: 6px; }
.rail li a span {
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  color: var(--sm-muted);
  padding-top: .25em;
}
.rail .all { margin-top: 20px; }

.feed-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 8px;
}
.feed-head .mono { color: var(--sm-muted); }
.posts { border-top: 1px solid var(--sm-line); }
.posts--top { margin-top: 6px; }
.post {
  display: block;
  border-bottom: 1px solid var(--sm-line);
  padding-block: clamp(22px, 2.6vw, 30px);
  color: inherit;
  text-decoration: none;
  transition: padding-left .4s var(--sm-ease);
}
.post:hover { padding-left: 12px; }
.post .ptop {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  color: var(--sm-muted);
  margin-bottom: 12px;
}
.post .ptop .cat { color: var(--sm-accent); }
.post h3 {
  font-size: clamp(1.2rem, 2.2vw, 1.8rem);
  line-height: 1.12;
  transition: color .3s;
}
.post:hover h3 { color: var(--sm-accent); }
.post p {
  margin-top: 12px;
  color: var(--sm-muted);
  max-width: 66ch;
  font-size: .97rem;
}
.more { margin-top: 34px; display: inline-flex; }

/* ============================== С ЧЕГО НАЧАТЬ ============================== */
.start { border-top: 1px solid var(--sm-ink); padding-block: clamp(48px, 6vw, 84px); }
.start h2 { font-size: clamp(1.6rem, 3.2vw, 2.5rem); margin-bottom: clamp(26px, 3vw, 40px); }
.start-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--sm-line);
  border: 1px solid var(--sm-line);
}
.start-grid a {
  background: var(--sm-bg);
  padding: clamp(22px, 2.4vw, 32px);
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 210px;
  color: inherit;
  text-decoration: none;
  transition: background .35s var(--sm-ease), color .35s var(--sm-ease);
}
.start-grid a:hover { background: var(--sm-ink); color: #fff; }
.start-grid b {
  font-family: var(--sm-font-head);
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 1.16;
  letter-spacing: -.02em;
}
.start-grid p { font-size: .92rem; color: var(--sm-muted); margin-top: auto; }
.start-grid a:hover p { color: rgba(255, 255, 255, .7); }
.start-grid .mono { color: var(--sm-accent); }
.start-grid a:hover .mono { color: #fff; }

/* ============================== ПИСЬМО ============================== */
.letter { background: var(--sm-ink); color: #fff; }
.letter .in {
  padding-block: clamp(52px, 7vw, 96px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
  gap: clamp(26px, 5vw, 72px);
  align-items: center;
}
.letter h2 {
  font-size: clamp(1.7rem, 3.6vw, 2.9rem);
  line-height: 1.04;
  max-width: 18ch;
  color: #fff;
}
.letter h2 em { font-style: normal; color: var(--sm-accent); }
.letter p { margin-top: 18px; color: rgba(255, 255, 255, .66); max-width: 48ch; }
.form { display: flex; gap: 10px; flex-wrap: wrap; }
.form input {
  flex: 1 1 220px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, .3);
  color: #fff;
  font: inherit;
  padding: 15px 16px;
}
.form input::placeholder { color: rgba(255, 255, 255, .4); }
.form input:focus { outline: none; border-color: var(--sm-accent); }
.form button {
  background: var(--sm-accent);
  color: #fff;
  padding: 15px 26px;
  font-size: .82rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: background .3s, color .3s;
}
.form button:hover { background: #fff; color: var(--sm-ink); }
.form-note {
  margin-top: 14px;
  color: rgba(255, 255, 255, .4);
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .1em;
}

/* ============================== ПОДВАЛ ============================== */
.site-foot {
  background: var(--sm-ink);
  color: #fff;
  border-top: 1px solid rgba(255, 255, 255, .15);
}
.letter + .site-foot { border-top-color: rgba(255, 255, 255, .15); }
.foot-in {
  padding-block: clamp(40px, 5vw, 64px);
  display: flex;
  gap: 26px 48px;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
}
.foot-nav {
  display: flex;
  gap: 18px 30px;
  flex-wrap: wrap;
  font-size: .86rem;
}
.foot-nav a { color: rgba(255, 255, 255, .66); text-decoration: none; transition: color .2s; }
.foot-nav a:hover { color: #fff; }
.foot-bottom {
  padding-bottom: clamp(30px, 4vw, 48px);
  display: flex;
  gap: 16px 32px;
  flex-wrap: wrap;
  justify-content: space-between;
  color: rgba(255, 255, 255, .4);
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.foot-brand {
  font-family: var(--sm-font-head);
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: -.03em;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  text-decoration: none;
}
.site-foot :focus-visible { outline-color: #fff; }

/* ============================== ВНУТРЕННИЕ ШАПКИ ============================== */
.page-head { padding-block: clamp(34px, 5vw, 56px) clamp(10px, 2vw, 20px); }
.page-head__row {
  display: flex;
  align-items: baseline;
  gap: 18px;
  flex-wrap: wrap;
}
.page-head h1 { font-size: clamp(2rem, 5vw, 3.4rem); }
.page-head__n { color: var(--sm-muted); }
.page-head__desc {
  margin-top: 18px;
  max-width: 60ch;
  font-size: 1.05rem;
  color: var(--sm-ink-body);
}
.page-head__desc p { margin: 0 0 8px; }
.page-head__upd { margin-top: 14px; color: var(--sm-muted); }

/* Крошки */
.sm-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-family: var(--sm-font-mono);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sm-muted);
  margin-bottom: 18px;
}
.sm-crumbs a { color: inherit; text-decoration: none; transition: color .2s; }
.sm-crumbs a:hover { color: var(--sm-accent); }
.sm-crumbs .sep { opacity: .5; }
.sm-crumbs [aria-current] { color: var(--sm-ink); }

/* Пагинация */
.sm-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-block: clamp(30px, 4vw, 44px) clamp(50px, 6vw, 80px);
}
.sm-pagination .page-numbers {
  min-width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-inline: 12px;
  border: 1px solid var(--sm-line);
  font-size: .85rem;
  color: var(--sm-ink);
  text-decoration: none;
  transition: background .25s, color .25s, border-color .25s;
}
.sm-pagination .page-numbers:hover { border-color: var(--sm-ink); }
.sm-pagination .page-numbers.current { background: var(--sm-ink); color: #fff; border-color: var(--sm-ink); }
.sm-pagination .dots { border: 0; }

/* ============================== СТАТЬЯ ============================== */
.article-col { max-width: calc(760px + var(--sm-gutter) * 2); }
.sm-article { padding-block: clamp(30px, 4vw, 48px) clamp(50px, 7vw, 90px); }
.sm-article__topline {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px 24px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}
.sm-article__topline .sm-crumbs { margin-bottom: 0; }
.sm-article__meta {
  font-family: var(--sm-font-mono);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sm-muted);
  white-space: nowrap;
}
.sm-article__title {
  font-size: clamp(1.9rem, 4.6vw, 3.2rem);
  line-height: 1.02;
  margin-bottom: clamp(22px, 3vw, 34px);
}
.sm-article__cover { margin-bottom: clamp(24px, 3vw, 38px); }
.sm-article__cover img { width: 100%; height: auto; }
.sm-cover { position: relative; overflow: hidden; }
.sm-cover--brand {
  aspect-ratio: 16 / 9;
  background: repeating-linear-gradient(45deg, var(--sm-hatch) 0 12px, #fff 12px 24px);
  border: 1px solid var(--sm-line);
}
.sm-cover--brand .sm-chip-label,
.sm-cover__brandcat {
  position: absolute;
  left: 14px;
  bottom: 12px;
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--sm-accent);
  background: var(--sm-bg);
  padding: 6px 10px;
  border: 1px solid var(--sm-line);
}

/* --- Контент --- */
.entry-content { font-size: 1.02rem; }
.entry-content > * + * { margin-top: 1.1em; }
.entry-content > p:first-child {
  font-size: 1.16rem;
  color: var(--sm-ink-body);
  line-height: 1.6;
}
.entry-content h2 {
  font-size: clamp(1.4rem, 2.6vw, 1.9rem);
  line-height: 1.08;
  margin: 46px 0 16px;
  padding-top: 22px;
  border-top: 1px solid var(--sm-ink);
}
.entry-content h3 { font-size: 1.25rem; line-height: 1.15; margin: 34px 0 12px; }
.entry-content h4 { font-size: 1.02rem; margin: 26px 0 10px; }
.entry-content a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--sm-accent);
  text-underline-offset: 3px;
  transition: color .2s;
}
.entry-content a:hover { color: var(--sm-accent); }
.entry-content strong { font-weight: 500; }
.entry-content mark {
  background: linear-gradient(transparent 62%, var(--sm-accent-tint) 62%);
  color: inherit;
  padding: 0 .05em;
}
.entry-content ul:not([class]) { list-style: none; padding-left: 2px; margin: 18px 0; }
.entry-content ul:not([class]) > li { position: relative; padding-left: 20px; margin-bottom: 9px; }
.entry-content ul:not([class]) > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .56em;
  width: 6px;
  height: 6px;
  background: var(--sm-accent);
}
.entry-content ol:not([class]) { padding-left: 22px; margin: 18px 0; }
.entry-content ol:not([class]) > li { margin-bottom: 9px; padding-left: 6px; }
.entry-content ol:not([class]) > li::marker {
  font-family: var(--sm-font-mono);
  font-size: .8em;
  color: var(--sm-accent);
}

/* Шаги */
.entry-content .sm-steps { list-style: none; counter-reset: sm-step; padding: 0; margin: 24px 0; }
.entry-content .sm-steps > li {
  position: relative;
  counter-increment: sm-step;
  padding: 0 0 20px 48px;
  margin: 0;
}
.entry-content .sm-steps > li::before {
  content: counter(sm-step, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: .18em;
  font-family: var(--sm-font-mono);
  font-size: .75rem;
  letter-spacing: .08em;
  color: var(--sm-accent);
}
.entry-content .sm-steps > li:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 8px;
  top: 1.7em;
  bottom: .4em;
  width: 1px;
  background: var(--sm-line);
}

/* Чек-лист */
.entry-content .sm-check { list-style: none; padding: 0; margin: 24px 0; }
.entry-content .sm-check > li { position: relative; padding: 6px 0 6px 32px; margin: 0; }
.entry-content .sm-check > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--sm-line-4);
  background: var(--sm-bg);
}
.entry-content .sm-check > li.done { color: var(--sm-muted); text-decoration: line-through; }
.entry-content .sm-check > li.done::before { background: var(--sm-ink); border-color: var(--sm-ink); }
.entry-content .sm-check > li.done::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 14px;
  width: 8px;
  height: 4px;
  border-left: 1.6px solid #fff;
  border-bottom: 1.6px solid #fff;
  transform: rotate(-45deg);
}

/* Коллауты: плоские, линия слева */
.entry-content .sm-callout {
  border-left: 3px solid var(--cc, var(--sm-ink));
  padding: 20px 24px;
  margin: 28px 0;
}
.entry-content .sm-callout > :first-child { margin-top: 0; }
.entry-content .sm-callout > :last-child { margin-bottom: 0; }
.entry-content .sm-callout__title {
  display: block;
  font-family: var(--sm-font-mono);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 8px;
  color: var(--cc, var(--sm-ink));
}
.entry-content .sm-callout p { font-size: .95rem; color: var(--sm-ink-body); }
/* Инфо: серая плоскость, чернильная линия */
.entry-content .sm-callout--info {
  --cc: var(--sm-ink);
  background: var(--sm-surface-soft);
}
/* Совет: бледно-красная плоскость, красная линия */
.entry-content .sm-callout--tip {
  --cc: var(--sm-accent);
  background: var(--sm-accent-tint);
}
/* Заметка: белая, пунктирная рамка + чернильная линия */
.entry-content .sm-callout--note {
  --cc: var(--sm-ink);
  border-top: 1px dashed var(--sm-line-4);
  border-right: 1px dashed var(--sm-line-4);
  border-bottom: 1px dashed var(--sm-line-4);
}
/* Предупреждение: инверсия — чернильная плоскость, красная линия */
.entry-content .sm-callout--warning {
  --cc: var(--sm-accent);
  background: var(--sm-ink);
  color: #fff;
}
.entry-content .sm-callout--warning p { color: rgba(255, 255, 255, .8); }

/* In short */
.entry-content .sm-keypoints {
  border-block: 1px solid var(--sm-ink);
  background: var(--sm-surface-soft);
  padding: 22px 26px 18px;
  margin: 30px 0;
}
.entry-content .sm-keypoints__title {
  display: block;
  font-family: var(--sm-font-mono);
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--sm-accent);
  margin-bottom: 12px;
}
.entry-content .sm-keypoints ul { margin: 0; }
.entry-content .sm-keypoints li { font-size: .95rem; }

/* Цитаты */
.entry-content blockquote:not([class]) {
  margin: 28px 0;
  padding: 4px 0 4px 20px;
  border-left: 2px solid var(--sm-accent);
}
.entry-content blockquote:not([class]) p { font-size: 1.06rem; line-height: 1.55; }
.entry-content blockquote cite {
  display: block;
  margin-top: 10px;
  font-style: normal;
  font-family: var(--sm-font-mono);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sm-muted);
}
.entry-content .sm-pullquote {
  margin: 38px 0;
  padding: clamp(24px, 3vw, 34px) 0;
  border-block: 1px solid var(--sm-ink);
  background: none;
}
.entry-content .sm-pullquote p {
  font-family: var(--sm-font-head);
  font-weight: 700;
  font-size: clamp(1.25rem, 2.6vw, 1.7rem);
  line-height: 1.15;
  letter-spacing: -.02em;
  margin: 0;
}
.entry-content .sm-pullquote cite { margin-top: 14px; }
.entry-content .sm-quote-photo {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  margin: 30px 0;
  padding: 20px;
  border: 1px solid var(--sm-line);
}
.entry-content .sm-quote-photo img {
  width: 56px;
  height: 56px;
  object-fit: cover;
  filter: grayscale(1);
  margin: 0;
  flex: none;
}
.entry-content .sm-quote-photo blockquote { margin: 0; padding: 0; border: 0; }
.entry-content .sm-quote-photo p { font-size: .98rem; }

/* Таблицы */
.entry-content table { width: 100%; border-collapse: collapse; font-size: .92rem; margin: 28px 0; }
.entry-content th,
.entry-content td {
  text-align: left;
  padding: 11px 14px 11px 0;
  border-bottom: 1px solid var(--sm-line);
  vertical-align: top;
}
.entry-content thead th { border-bottom-color: var(--sm-ink); }
.entry-content th {
  font-family: var(--sm-font-mono);
  font-weight: 400;
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--sm-muted);
}
.entry-content td:first-child { font-weight: 400; }

/* Код */
.entry-content code {
  font-family: var(--sm-font-mono);
  font-size: .82em;
  background: var(--sm-surface-soft);
  padding: 2px 7px;
}
.entry-content pre {
  background: var(--sm-ink);
  color: #fff;
  padding: 18px 20px;
  overflow-x: auto;
  margin: 26px 0;
}
.entry-content pre code { background: none; padding: 0; font-size: .85rem; }

/* FAQ */
.entry-content details:not(.sm-toc) {
  border-bottom: 1px solid var(--sm-line);
  padding: 0;
  margin: 0;
}
.entry-content details:not(.sm-toc):first-of-type { border-top: 1px solid var(--sm-ink); }
.entry-content details:not(.sm-toc) summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  font-weight: 400;
  font-size: 1rem;
  padding: 16px 34px 16px 0;
}
.entry-content details:not(.sm-toc) summary::-webkit-details-marker { display: none; }
.entry-content details:not(.sm-toc) summary::after {
  content: "+";
  position: absolute;
  right: 2px;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--sm-font-mono);
  color: var(--sm-accent);
  transition: transform .25s var(--sm-ease);
}
.entry-content details:not(.sm-toc)[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.entry-content details:not(.sm-toc) p { font-size: .95rem; padding-bottom: 18px; margin: 0; max-width: 66ch; }

/* Оглавление */
.sm-toc {
  border-block: 1px solid var(--sm-line);
  padding: 16px 0;
  margin: 28px 0;
}
.sm-toc__summary {
  cursor: pointer;
  list-style: none;
  font-family: var(--sm-font-mono);
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--sm-muted);
}
.sm-toc__summary::-webkit-details-marker { display: none; }
.sm-toc__list { margin: 14px 0 0; padding-left: 0; list-style: none; counter-reset: toc; }
.sm-toc__list li { counter-increment: toc; margin-bottom: 8px; padding-left: 34px; position: relative; }
.sm-toc__list li::before {
  content: counter(toc, decimal-leading-zero);
  position: absolute;
  left: 0;
  font-family: var(--sm-font-mono);
  font-size: .7rem;
  color: var(--sm-accent);
}
.sm-toc__list a { text-decoration: none; color: var(--sm-ink-body); }
.sm-toc__list a:hover { color: var(--sm-accent); }

/* Медиа в контенте */
.entry-content img { max-width: 100%; height: auto; }
.entry-content figure { margin: 28px 0; }
.entry-content figcaption {
  margin-top: 10px;
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sm-muted);
}
.entry-content .sm-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.entry-content .sm-gallery--3 { grid-template-columns: repeat(3, 1fr); }
.entry-content .sm-gallery img { aspect-ratio: 1; object-fit: cover; }
.entry-content .sm-gallery figcaption { grid-column: 1 / -1; }
.entry-content .sm-gallery > br,
.entry-content .sm-slider__track > br,
.entry-content .sm-quote-photo > br,
.entry-content .sm-inline-related > br,
.entry-content .sm-keypoints > br { display: none; }
@media (max-width: 640px) {
  .entry-content .sm-gallery--3 { grid-template-columns: repeat(2, 1fr); }
}

/* Слайдер */
.entry-content .sm-slider { position: relative; margin: 30px 0; }
.entry-content .sm-slider__track {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.entry-content .sm-slider__track::-webkit-scrollbar { display: none; }
.entry-content .sm-slider__slide { flex: 0 0 100%; margin: 0; scroll-snap-align: start; }
.entry-content .sm-slider__slide img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.sm-slider__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--sm-ink);
  background: var(--sm-bg);
  color: var(--sm-ink);
  cursor: pointer;
  transition: background .25s, color .25s, opacity .25s;
}
.sm-slider__btn:hover { background: var(--sm-ink); color: #fff; }
.sm-slider__btn--prev { left: 10px; }
.sm-slider__btn--next { right: 10px; }
.sm-slider__btn[disabled] { opacity: .3; cursor: default; }

/* Видео-эмбеды */
.entry-content .wp-block-embed,
.entry-content iframe { max-width: 100%; }
.entry-content .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; }
.entry-content .wp-block-embed__wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* Врезка Read next */
.entry-content .sm-inline-related { margin: 30px 0; }
.entry-content .sm-inline-related a {
  display: block;
  background: transparent;
  border-block: 1px solid var(--sm-ink);
  padding: 18px 34px 18px 0;
  position: relative;
  text-decoration: none;
  transition: padding-left .3s var(--sm-ease);
}
.entry-content .sm-inline-related a:hover { padding-left: 8px; }
.entry-content .sm-inline-related a::after {
  content: "→";
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--sm-accent);
}
.entry-content .sm-inline-related__label {
  display: block;
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--sm-accent);
  margin-bottom: 8px;
}
.entry-content .sm-inline-related__title {
  font-family: var(--sm-font-head);
  font-weight: 700;
  font-size: 1.12rem;
  letter-spacing: -.02em;
  color: var(--sm-ink);
}

/* Кнопки в контенте */
.entry-content .sm-btn,
.entry-content .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 14px 24px;
  background: var(--sm-accent);
  color: #fff;
  font-size: .82rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .3s;
}
.entry-content .sm-btn:hover,
.entry-content .wp-block-button__link:hover { background: var(--sm-ink); color: #fff; }

/* Разделитель, сноски */
.entry-content hr { border: 0; border-top: 1px solid var(--sm-ink); margin: 44px 0; }
.entry-content .sm-footnotes {
  margin-top: 44px;
  padding-top: 18px;
  border-top: 1px solid var(--sm-ink);
  font-size: .85rem;
  color: var(--sm-muted);
}
.entry-content .sm-footnotes li:target { background: var(--sm-accent-tint); }
.sm-fn-ref a { color: var(--sm-accent); text-decoration: none; }
.sm-fn-back { text-decoration: none; }

/* Метки записи, автор, поделиться, related */
.sm-article__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: clamp(28px, 4vw, 40px);
}
.sm-article__tags a {
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sm-muted);
  border: 1px solid var(--sm-line);
  padding: 7px 12px;
  text-decoration: none;
  transition: color .2s, border-color .2s;
}
.sm-article__tags a:hover { color: var(--sm-accent); border-color: var(--sm-accent); }

.sm-authorbox {
  display: flex;
  gap: 22px;
  align-items: flex-start;
  border-top: 1px solid var(--sm-ink);
  border-bottom: 1px solid var(--sm-ink);
  padding: 26px 0;
  margin-top: clamp(30px, 4vw, 44px);
}
.sm-authorbox__photo { flex: none; }
.sm-authorbox__photo img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  filter: grayscale(1) contrast(1.05);
  transition: filter .5s var(--sm-ease);
}
.sm-authorbox:hover .sm-authorbox__photo img { filter: none; }
.sm-authorbox__label {
  display: block;
  color: var(--sm-accent);
  margin-bottom: 8px;
}
.sm-authorbox__name {
  display: block;
  font-family: var(--sm-font-head);
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: -.02em;
}
.sm-authorbox__bio {
  margin: 10px 0 0;
  font-size: .95rem;
  color: var(--sm-ink-body);
  max-width: 60ch;
}
.sm-authorbox__foot {
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 14px 22px;
  flex-wrap: wrap;
}
.sm-authorbox__social { display: flex; gap: 8px; flex-wrap: wrap; }
.sm-authorbox__social a {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--sm-line);
  color: var(--sm-ink);
  transition: border-color .2s, color .2s, background .2s;
}
.sm-authorbox__social a:hover {
  border-color: var(--sm-accent);
  color: #fff;
  background: var(--sm-accent);
}
@media (max-width: 560px) {
  .sm-authorbox { flex-direction: column; gap: 16px; }
}

.sm-share { margin-top: clamp(26px, 3vw, 36px); display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.sm-share__label {
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--sm-muted);
  margin-right: 6px;
}
.sm-share a,
.sm-share button {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--sm-line);
  color: var(--sm-ink);
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
.sm-share a:hover,
.sm-share button:hover { border-color: var(--sm-accent); color: var(--sm-accent); }

.sm-related { margin-top: clamp(34px, 5vw, 52px); }
.sm-related__label {
  font-family: var(--sm-font-mono);
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--sm-muted);
  display: block;
  margin-bottom: 8px;
}
.sm-related .post { border-top: 1px solid var(--sm-ink); }

/* Комментарии */
.sm-comments { margin-top: clamp(34px, 5vw, 52px); border-top: 1px solid var(--sm-ink); padding-top: 24px; }
.sm-comments input:not([type="checkbox"]),
.sm-comments textarea {
  width: 100%;
  border: 1px solid var(--sm-line-2);
  padding: 13px 14px;
  font: inherit;
  background: var(--sm-bg);
}
.sm-comments input:focus,
.sm-comments textarea:focus { outline: none; border-color: var(--sm-ink); }
.sm-comments .submit {
  background: var(--sm-ink);
  color: #fff;
  border: 0;
  padding: 14px 26px;
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .25s;
}
.sm-comments .submit:hover { background: var(--sm-accent); }

/* Кнопка «наверх» */
.sm-totop {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 40;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--sm-ink);
  background: var(--sm-bg);
  color: var(--sm-ink);
  cursor: pointer;
  transition: background .25s, color .25s, opacity .3s, visibility .3s;
}
.sm-totop:hover { background: var(--sm-ink); color: #fff; }
.sm-totop[hidden] { display: flex; opacity: 0; visibility: hidden; pointer-events: none; }

/* Поиск (страница выдачи) */
.sm-searchform {
  display: flex;
  gap: 0;
  border: 1px solid var(--sm-ink);
  max-width: 560px;
}
.sm-searchform input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  padding: 14px 16px;
  font: inherit;
  background: var(--sm-bg);
}
.sm-searchform input[type="search"]:focus { outline: none; }
.sm-searchform__submit {
  background: var(--sm-ink);
  color: #fff;
  border: 0;
  padding: 0 22px;
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
}
.sm-searchform__submit:hover { background: var(--sm-accent); }
.sm-searchform__icon { display: none; }

/* Карта сайта */
.sm-sitemap__section { margin-top: 40px; }
.sm-sitemap__heading {
  font-size: 1.4rem;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--sm-ink);
  margin-bottom: 18px;
}
.sm-sitemap__chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sm-sitemap__chip {
  display: inline-block;
  padding: 9px 14px;
  border: 1px solid var(--sm-line);
  font-size: .88rem;
  color: var(--sm-ink);
  text-decoration: none;
  transition: background .25s, color .25s, border-color .25s;
}
.sm-sitemap__chip:hover { background: var(--sm-ink); border-color: var(--sm-ink); color: #fff; }
.sm-sitemap__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 26px 34px; }
.sm-sitemap__cardhead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--sm-ink);
}
.sm-sitemap__cat {
  font-family: var(--sm-font-head);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: -.02em;
  color: var(--sm-ink);
  text-decoration: none;
}
.sm-sitemap__cat:hover { color: var(--sm-accent); }
.sm-sitemap__count { font-family: var(--sm-font-mono); font-size: .66rem; color: var(--sm-muted); }
.sm-sitemap__posts { list-style: none; margin: 12px 0 0; padding: 0; }
.sm-sitemap__posts li {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 7px 0;
  border-bottom: 1px solid var(--sm-line);
}
.sm-sitemap__posts a { font-size: .92rem; color: var(--sm-ink-body); text-decoration: none; }
.sm-sitemap__posts a:hover { color: var(--sm-accent); }
.sm-sitemap__date { font-family: var(--sm-font-mono); font-size: .64rem; color: var(--sm-muted); flex: none; }
.sm-sitemap__intro { margin-bottom: 10px; max-width: 60ch; }

/* Пустые состояния */
.sm-empty { padding-block: 26px; max-width: 60ch; color: var(--sm-ink-body); }

/* ============================== АДАПТИВ ============================== */
@media (max-width: 1000px) {
  .stream { grid-template-columns: 1fr; }
  .rail { position: static; }
  .rail ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
  .lead-post { grid-template-columns: 1fr; }
  .lead-figure { order: -1; aspect-ratio: 16 / 9; }
  .letter .in { grid-template-columns: 1fr; }
  .start-grid { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .nav,
  .site-head .langs { display: none; }
  .menu-btn { display: flex; }
}
@media (max-width: 560px) {
  .rail ul { grid-template-columns: 1fr; }
  .hero-meta { gap: 14px; flex-direction: column; }
  .post:hover { padding-left: 0; }
  .sm-article__topline { flex-direction: column; align-items: flex-start; }
}

/* Печать */
@media print {
  .site-head, .site-foot, .letter, .sm-totop, .sm-share, .sm-comments, .mobile-nav { display: none !important; }
  body { font-size: 12pt; }
}


/* ============================================================================
   v0.18.2 · ХВОСТ СТАТЬИ: КОПИ-КНОПКА, СВЯЗАННОЕ, КОММЕНТАРИИ
   ========================================================================= */

/* «Скопировать ссылку» — плоская кнопка с моно-текстом (не квадрат) */
.sm-share .sm-share__copy {
  width: auto;
  padding: 0 16px;
  gap: 8px;
}
.sm-share__copy-default,
.sm-share__copy-done {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sm-font-mono);
  font-size: .64rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
}
.sm-share__copy-done { color: var(--sm-accent); }

/* Связанное: строка ленты с чернильной линией сверху */
.sm-related .posts { border-top: 0; }
.sm-related .post { border-top: 1px solid var(--sm-ink); }
.sm-related .post p { display: none; } /* только рубрика · дата · заголовок */

/* ---- Комментарии ---- */
.sm-comments { margin-top: clamp(38px, 5vw, 56px); border-top: 0; padding-top: 0; }
.sm-comments__toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 0;                                   /* никаких UA-рамок по бокам */
  border-top: 1px solid var(--sm-ink);
  border-bottom: 1px solid var(--sm-ink);
  background: none;
  padding: 16px 0;
  cursor: pointer;
  transition: color .2s;
}
.sm-comments__toggle:hover { color: var(--sm-accent); }
.sm-comments__toggle-left { display: inline-flex; align-items: center; gap: 12px; }
.sm-comments__toggle-left svg { width: 18px; height: 18px; }
.sm-comments__title {
  font-family: var(--sm-font-head);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: -.02em;
}
.sm-comments__count {
  font-family: var(--sm-font-mono);
  font-size: .7rem;
  color: var(--sm-muted);
}
.sm-comments__chevron { transition: transform .25s var(--sm-ease); }
.sm-comments__toggle[aria-expanded="true"] .sm-comments__chevron { transform: rotate(180deg); }
.sm-comments__panel { padding-top: 26px; }

.sm-comments .comment-reply-title,
.sm-comments .comments-title {
  font-size: 1.25rem;
  color: var(--sm-ink);
  margin: 0 0 14px;
}
.sm-comments .comment-reply-title a { color: var(--sm-muted); font-size: .8rem; }
.sm-comments .logged-in-as,
.sm-comments .comment-notes {
  font-size: .88rem;
  color: var(--sm-muted);
  margin: 0 0 16px;
}
.sm-comments .logged-in-as a { color: var(--sm-ink); }
.sm-comments .comment-form label {
  display: block;
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--sm-muted);
  margin-bottom: 8px;
}
.sm-comments .comment-form p { margin: 0 0 16px; }
.sm-comments .comment-form-cookies-consent { display: flex; gap: 10px; align-items: baseline; }
.sm-comments .comment-form-cookies-consent label {
  display: inline;
  font-family: var(--sm-font-body);
  font-size: .85rem;
  letter-spacing: 0;
  text-transform: none;
}
.sm-comments .form-submit { margin: 4px 0 0; }
.sm-comments .form-submit .submit {
  width: auto;
  background: var(--sm-ink);
  color: #fff;
  border: 0;
  padding: 15px 30px;
  font-family: var(--sm-font-body);
  font-size: .82rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .25s;
}
.sm-comments .form-submit .submit:hover { background: var(--sm-accent); }

.sm-comments__list { list-style: none; margin: 0 0 26px; padding: 0; }
.sm-comments__list .comment { border-bottom: 1px solid var(--sm-line); padding: 18px 0; }
.sm-comments__list .comment-author { display: flex; align-items: center; gap: 10px; font-weight: 400; }
.sm-comments__list .comment-author img { filter: grayscale(1); }
.sm-comments__list .comment-metadata {
  font-family: var(--sm-font-mono);
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.sm-comments__list .comment-metadata a { color: var(--sm-muted); text-decoration: none; }
.sm-comments__list .comment-content { margin-top: 10px; font-size: .95rem; }
.sm-comments__list .reply a {
  font-family: var(--sm-font-mono);
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sm-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--sm-ink);
}
.sm-comments__list .reply a:hover { color: var(--sm-accent); border-color: var(--sm-accent); }
.sm-comments__list .children { list-style: none; margin: 12px 0 0; padding-left: 22px; border-left: 1px solid var(--sm-line); }
.sm-comments__closed { color: var(--sm-muted); font-size: .9rem; }


/* ============================================================================
   v0.19 · ПРОГРЕСС ЧТЕНИЯ, ЗАКЛАДКА/КОНТАКТ, СОЦСЕТИ В ПОДВАЛЕ
   ========================================================================= */

/* Красная полоска статуса прочтения — поверх шапки */
.read-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 120;
  pointer-events: none;
  background: transparent;
}
.read-progress span {
  display: block;
  height: 100%;
  background: var(--sm-accent);
  transform: scaleX(0);
  transform-origin: left;
  will-change: transform;
}

/* Закладка и контакт — та же пластика, что копи-кнопка */
.sm-share .sm-share__bookmark,
.sm-share .sm-share__contact {
  width: auto;
  padding: 0 16px;
  gap: 8px;
  text-decoration: none;
}
.sm-share__contact {
  font-family: var(--sm-font-mono);
  font-size: .64rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.sm-share__bookmark .sm-share__copy-done {
  color: var(--sm-accent);
  font-family: var(--sm-font-mono);
}

/* Соцсети в подвале */
.foot-social {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.foot-social a {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .25);
  color: rgba(255, 255, 255, .8);
  transition: border-color .2s, color .2s, background .2s;
}
.foot-social a:hover {
  border-color: var(--sm-accent);
  color: #fff;
  background: var(--sm-accent);
}


/* ============================================================================
   v0.19.2 · МОДАЛКА «В ЗАКЛАДКИ»
   ========================================================================= */

.sm-modal { position: fixed; inset: 0; z-index: 130; }
.sm-modal[hidden] { display: none; }
.sm-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 10, .28);
  -webkit-backdrop-filter: blur(9px) saturate(.95);
  backdrop-filter: blur(9px) saturate(.95);
}
@supports not (backdrop-filter: blur(1px)) {
  .sm-modal__overlay { background: rgba(10, 10, 10, .55); }
}
.sm-modal__panel {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(460px, 92vw);
  background: var(--sm-bg);
  padding: clamp(28px, 4vw, 40px);
  outline: none;
}
.sm-modal__close {
  position: absolute;
  top: 0;
  right: 0;
  padding: 18px 20px;
  color: var(--sm-muted);
  letter-spacing: .12em;
  transition: color .2s;
}
.sm-modal__close:hover { color: var(--sm-accent); }
.sm-modal__tag { display: block; color: var(--sm-accent); margin-bottom: 12px; }
.sm-modal__title {
  font-size: clamp(1.35rem, 3vw, 1.7rem);
  line-height: 1.08;
  margin-bottom: 14px;
}
.sm-modal__text { color: var(--sm-ink-body); font-size: .98rem; }
.sm-modal__text kbd {
  display: inline-block;
  font-family: var(--sm-font-mono);
  font-size: .8rem;
  border: 1px solid var(--sm-ink);
  padding: 3px 9px;
  margin: 0 2px;
  vertical-align: baseline;
}
.sm-modal__plus { margin: 0 2px; color: var(--sm-muted); }
.sm-modal__divider { border-top: 1px solid var(--sm-line); margin: 22px 0 16px; }
.sm-modal__alt { color: var(--sm-muted); margin-bottom: 12px; }
.sm-modal__social { display: flex; gap: 8px; flex-wrap: wrap; }
.sm-modal__social a {
  border: 1px solid var(--sm-ink);
  padding: 11px 16px;
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--sm-ink);
  text-decoration: none;
  transition: background .25s, color .25s;
}
.sm-modal__social a:hover { background: var(--sm-ink); color: #fff; }


/* ============================================================================
   v0.19.5 · СТРАНИЦА 404
   ========================================================================= */

.err { padding-top: clamp(48px, 8vw, 96px); }
.err__code {
  display: block;
  color: var(--sm-accent);
  margin-bottom: 16px;
}
.err__title {
  font-size: clamp(2.2rem, 6vw, 4rem);
  max-width: 14ch;
}
.err__text {
  margin-top: 18px;
  color: var(--sm-muted);
  max-width: 54ch;
}
.err__search {
  margin: 30px 0 26px;
  max-width: 560px;
}
.err-posts { padding-top: clamp(40px, 6vw, 64px); }
.err-posts__label {
  display: block;
  color: var(--sm-muted);
  margin-bottom: 4px;
}


/* ============================================================================
   v0.21 · ПИКСЕЛЬНАЯ АНИМАЦИЯ ХИРО
   ========================================================================= */

.hero-grid {
  display: grid;
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}
@media (min-width: 1000px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(300px, 420px); }
}
.hero-anim {
  width: min(420px, 80vw);
  aspect-ratio: 1;
  height: auto;
  justify-self: center;
  cursor: pointer;
  touch-action: manipulation;
}
@media (min-width: 1000px) {
  .hero-anim { justify-self: end; }
}
@media (max-width: 999px) {
  .hero-anim { display: none; } /* на узких экранах хиро остаётся текстовым */
}


/* ============================================================================
   v0.22 · КУКИ-БАННЕР
   ========================================================================= */

.cookie-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 125;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: var(--sm-ink);
  color: rgba(255, 255, 255, .85);
  padding: 14px clamp(20px, 4.5vw, 56px);
  transition: transform .3s var(--sm-ease), opacity .3s;
}
.cookie-bar.hide { transform: translateY(100%); opacity: 0; }
.cookie-bar__text { font-size: .85rem; max-width: 72ch; }
.cookie-bar__text a {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: var(--sm-accent);
  text-underline-offset: 3px;
}
.cookie-bar__text a:hover { color: var(--sm-accent); }
.cookie-bar__ok {
  flex: none;
  background: var(--sm-accent);
  color: var(--sm-ink);
  font-family: var(--sm-font-mono);
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 12px 26px;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.cookie-bar__ok:hover { background: #fff; }
@media (max-width: 640px) {
  .cookie-bar { flex-direction: column; align-items: flex-start; }
  .cookie-bar__ok { align-self: stretch; text-align: center; }
}


/* ============================================================================
   BEZVIZ 1.0 · КАРТА, ДОВІДНИК КРАЇН, КАРТКА ФАКТІВ, ТАБЛИЦІ
   Кольори режимів — токени --bz-* у style.css (єдине джерело).
   ========================================================================= */

/* Бренд: синьо-жовтий квадрат */
.brand .dot,
.foot-brand .dot {
  background: linear-gradient(180deg, var(--sm-accent) 0 50%, var(--sm-sun) 50% 100%);
}

/* ---------- Бейдж режиму ---------- */
.bz-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sm-font-mono);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sm-ink);
  white-space: nowrap;
}
.bz-badge i {
  width: 11px;
  height: 11px;
  flex: none;
  background: var(--bz-c, var(--bz-none));
}
.bz-badge--bez-vizy           { --bz-c: var(--bz-free); }
.bz-badge--elektronnyi-dozvil { --bz-c: var(--bz-eta); }
.bz-badge--viza-po-prybuttiu  { --bz-c: var(--bz-voa); }
.bz-badge--elektronna-viza    { --bz-c: var(--bz-evisa); }
.bz-badge--potribna-viza      { --bz-c: var(--bz-visa); }
.bz-badge--obmezheno          { --bz-c: var(--bz-closed); }
.bz-badge-link { text-decoration: none; color: inherit; }
.bz-badge-link:hover .bz-badge { color: var(--sm-accent); }

/* ---------- Хіро головної ---------- */
.hero--map { padding-block: clamp(40px, 6vw, 84px) clamp(22px, 3vw, 34px); }
.hero--map h1 { max-width: 15ch; }
.hero--map h1 span {
  color: var(--sm-ink);
  background: linear-gradient(transparent 64%, var(--sm-sun) 64% 92%, transparent 92%);
}
.hero-row {
  display: grid;
  gap: clamp(24px, 4vw, 56px);
  align-items: end;
}
@media (min-width: 1000px) {
  .hero-row { grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); }
}
.hero-lead {
  margin-top: clamp(18px, 2.4vw, 28px);
  max-width: 58ch;
  font-size: 1.05rem;
  color: var(--sm-ink-body);
}
.hero-stats { margin: 0; border-top: 1px solid var(--sm-ink); }
.hero-stat {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 16px;
  padding: 12px 0 12px 20px;
  border-bottom: 1px solid var(--sm-line);
  position: relative;
}
.hero-stat::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 10px;
  height: 10px;
  transform: translateY(-50%);
  background: var(--bz-c);
}
.hero-stat--free  { --bz-c: var(--bz-free); }
.hero-stat--evisa { --bz-c: var(--bz-evisa); }
.hero-stat--visa  { --bz-c: var(--bz-visa); }
.hero-stat dt { font-size: .86rem; color: var(--sm-ink-body); line-height: 1.35; }
.hero-stat dd {
  margin: 0;
  font-family: var(--sm-font-head);
  font-weight: 700;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

/* ---------- Пошук ---------- */
.bz-search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: clamp(24px, 3vw, 36px);
  border: 1px solid var(--sm-ink);
  background: var(--sm-bg);
  padding: 0 16px;
  max-width: 720px;
}
.bz-search .icon { width: 20px; height: 20px; flex: none; color: var(--sm-muted); }
.bz-search input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 16px 0;
  font-size: 1.02rem;
  outline: none;
}
.bz-search:focus-within { box-shadow: 0 0 0 3px var(--sm-accent-tint); border-color: var(--sm-accent); }
.bz-search__hint { color: var(--sm-muted); white-space: nowrap; }
.bz-search--inline { margin: 0 0 18px; max-width: 460px; }
@media (max-width: 640px) { .bz-search__hint { display: none; } }

/* ---------- Карта ---------- */
.bz-mapwrap { padding-bottom: clamp(20px, 3vw, 30px); }
.bzmap { position: relative; }
.bzmap__stage {
  position: relative;
  background: var(--bz-sea);
  border: 1px solid var(--sm-line);
  overflow: hidden;
  aspect-ratio: 1000 / 435;
}
.bzmap--md .bzmap__stage { aspect-ratio: 1000 / 435; }
.bzmap--sm .bzmap__stage { aspect-ratio: 4 / 3; }
.bzmap__svg {
  display: block;
  width: 100%;
  height: 100%;
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}
.bzmap.is-zoomed .bzmap__svg { touch-action: none; }
.bzmap.is-dragging .bzmap__svg { cursor: grabbing; }
.bzc {
  fill: var(--bz-none);
  stroke: #fff;
  stroke-width: .6;
  vector-effect: non-scaling-stroke;
  stroke-linejoin: round;
  transition: opacity .25s, fill .25s;
  cursor: pointer;
}
.bzc--bez-vizy           { fill: var(--bz-free); }
.bzc--elektronnyi-dozvil { fill: var(--bz-eta); }
.bzc--viza-po-prybuttiu  { fill: var(--bz-voa); }
.bzc--elektronna-viza    { fill: var(--bz-evisa); }
.bzc--potribna-viza      { fill: var(--bz-visa); }
.bzc--obmezheno          { fill: var(--bz-closed); }
.bzc--home               { fill: var(--bz-home); cursor: default; }
.bzc--none               { cursor: default; }
.bzc--dot                { stroke: #fff; stroke-width: 1; }
.bzc.is-hover,
.bzc.is-sel { stroke: var(--sm-ink); stroke-width: 1.6; }
.bzc.is-focus { stroke: var(--sm-ink); stroke-width: 2; }
.bzmap.is-filtered .bzc.is-dim,
.bzc.is-out { opacity: .18; }
.bzmap--sm .bzc:not(.is-focus):not(.bzc--home) { opacity: .55; }

.bzmap__status {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 20px;
  text-align: center;
  color: var(--sm-muted);
}
.bzmap:not(.is-ready) .bzmap__stage {
  background-image: repeating-linear-gradient(45deg, var(--sm-line-3) 0 1px, transparent 1px 12px);
}
.bzmap__tip {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 3;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 9px 12px;
  background: var(--sm-ink);
  color: #fff;
  font-size: .86rem;
  line-height: 1.3;
  max-width: 260px;
}
.bzmap__tipr,
.bzmap__cr {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--sm-font-mono);
  font-size: .64rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.bzmap__tipr { color: rgba(255, 255, 255, .75); }
.bzmap__tipr i,
.bzmap__cr i { width: 9px; height: 9px; flex: none; }
.bzmap__card {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 4;
  width: min(300px, calc(100% - 24px));
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 18px;
  background: var(--sm-bg);
  border: 1px solid var(--sm-ink);
}
.bzmap__cn { font-family: var(--sm-font-head); font-weight: 700; font-size: 1.25rem; line-height: 1.1; }
.bzmap__cs { color: var(--sm-muted); }
.bzmap__cl {
  align-self: flex-start;
  margin-top: 4px;
  padding: 10px 16px;
  background: var(--sm-accent);
  color: #fff;
  font-size: .82rem;
  font-weight: 500;
  text-decoration: none;
}
.bzmap__cl:hover { background: var(--sm-ink); }
.bzmap__x {
  position: absolute;
  top: 4px;
  right: 8px;
  font-size: 1.4rem;
  line-height: 1;
  padding: 6px;
  color: var(--sm-muted);
}
.bzmap__zoom {
  position: absolute;
  right: 12px;
  top: 12px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--sm-ink);
  background: var(--sm-bg);
}
.bzmap__zoom button {
  width: 36px;
  height: 36px;
  font-size: 1.05rem;
  line-height: 1;
  color: var(--sm-ink);
  transition: background .2s, color .2s;
}
.bzmap__zoom button + button { border-top: 1px solid var(--sm-line); }
.bzmap__zoom button:hover { background: var(--sm-ink); color: #fff; }
.bzmap--sm .bzmap__zoom button { width: 30px; height: 30px; }

.bzmap__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin-top: 12px;
}
.bzlg {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid var(--sm-line);
  background: var(--sm-bg);
  font-size: .84rem;
  color: var(--sm-ink);
  transition: border-color .2s, background .2s, opacity .2s;
}
.bzlg i { width: 12px; height: 12px; flex: none; background: var(--bz-c); }
.bzlg b {
  font-family: var(--sm-font-mono);
  font-weight: 400;
  font-size: .7rem;
  color: var(--sm-muted);
}
button.bzlg:hover { border-color: var(--sm-ink); }
.bzlg[aria-pressed="true"] { border-color: var(--sm-ink); background: var(--sm-surface-soft); }
.bzmap.is-filtered button.bzlg[aria-pressed="false"] { opacity: .55; }
.bzlg--bez-vizy           { --bz-c: var(--bz-free); }
.bzlg--elektronnyi-dozvil { --bz-c: var(--bz-eta); }
.bzlg--viza-po-prybuttiu  { --bz-c: var(--bz-voa); }
.bzlg--elektronna-viza    { --bz-c: var(--bz-evisa); }
.bzlg--potribna-viza      { --bz-c: var(--bz-visa); }
.bzlg--obmezheno          { --bz-c: var(--bz-closed); }
.bzlg--home               { --bz-c: var(--bz-home); border-style: dashed; }
.bz-note { margin-top: 10px; color: var(--sm-muted); }

/* ---------- Заголовок секції ---------- */
.bz-sechead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px 24px;
  flex-wrap: wrap;
  padding-top: clamp(26px, 3vw, 40px);
  border-top: 1px solid var(--sm-ink);
  margin-bottom: clamp(18px, 2.4vw, 28px);
}
.bz-sechead h2 { font-size: clamp(1.5rem, 3vw, 2.3rem); }

/* ---------- Довідник за режимами ---------- */
.bz-dir { padding-block: clamp(30px, 5vw, 60px); }
.bz-group { padding-block: 18px 22px; border-bottom: 1px solid var(--sm-line); }
.bz-group__head {
  display: flex;
  align-items: center;
  gap: 10px 18px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.bz-group__head .bz-badge { font-size: .74rem; }
.bz-group__head > .mono { color: var(--sm-muted); }
.bz-group__more { margin-left: auto; color: var(--sm-accent); text-decoration: none; }
.bz-group__more:hover { text-decoration: underline; }
.bz-chips {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.bz-chips a {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 7px 11px;
  border: 1px solid var(--sm-line);
  font-size: .9rem;
  color: var(--sm-ink);
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s;
}
.bz-chips a span {
  font-family: var(--sm-font-mono);
  font-size: .64rem;
  color: var(--sm-muted);
}
.bz-chips a:hover { background: var(--sm-ink); border-color: var(--sm-ink); color: #fff; }
.bz-chips a:hover span { color: rgba(255, 255, 255, .7); }
.bz-empty { padding: 22px 0; color: var(--sm-muted); }

/* ---------- Регіони ---------- */
.bz-regions {
  background: var(--sm-surface-soft);
  padding-block: clamp(40px, 6vw, 80px);
}
.bz-regions h2 { font-size: clamp(1.5rem, 3vw, 2.3rem); margin-bottom: clamp(20px, 3vw, 32px); }
.bz-regions__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 1px;
  background: var(--sm-line-2);
  border: 1px solid var(--sm-line-2);
}
.bz-region {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 22px;
  background: var(--sm-bg);
  color: var(--sm-ink);
  text-decoration: none;
  transition: background .3s;
}
.bz-region b { font-family: var(--sm-font-head); font-size: 1.15rem; letter-spacing: -.02em; }
.bz-region .mono { color: var(--sm-muted); }
.bz-region:hover { background: var(--sm-accent-tint); }
.bz-region__bar { display: flex; height: 8px; gap: 1px; }
.bz-region__bar i { display: block; min-width: 3px; }
.bzbar--bez-vizy           { background: var(--bz-free); }
.bzbar--elektronnyi-dozvil { background: var(--bz-eta); }
.bzbar--viza-po-prybuttiu  { background: var(--bz-voa); }
.bzbar--elektronna-viza    { background: var(--bz-evisa); }
.bzbar--potribna-viza      { background: var(--bz-visa); }
.bzbar--obmezheno          { background: var(--bz-closed); }

.bz-guides { padding-block: clamp(40px, 6vw, 80px) clamp(20px, 3vw, 40px); }
.bz-about { padding-block: clamp(30px, 5vw, 70px); }

/* ---------- Сторінка країни ---------- */
.bz-country__head { padding-top: clamp(28px, 4vw, 48px); }
.bz-country__top {
  display: flex;
  align-items: center;
  gap: 10px 22px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.bz-country__top .bz-badge { font-size: .74rem; }
.bz-checked { color: var(--sm-muted); }
.bz-country__title {
  font-size: clamp(2rem, 5vw, 3.6rem);
  line-height: 1.02;
  max-width: 20ch;
}
.bz-country__lead {
  margin-top: clamp(16px, 2vw, 24px);
  max-width: 62ch;
  font-size: clamp(1.05rem, 1.8vw, 1.2rem);
  color: var(--sm-ink-body);
}
.bz-country__grid {
  display: grid;
  gap: clamp(20px, 3vw, 40px);
  padding-block: clamp(26px, 3.4vw, 44px);
  align-items: start;
}
@media (min-width: 900px) {
  .bz-country__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
}
.bz-facts { margin: 0; border-top: 1px solid var(--sm-ink); }
.bz-facts__row {
  display: grid;
  grid-template-columns: minmax(130px, 38%) 1fr;
  gap: 14px;
  padding: 13px 0;
  border-bottom: 1px solid var(--sm-line);
}
.bz-facts dt {
  font-family: var(--sm-font-mono);
  font-size: .66rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sm-muted);
  padding-top: .25em;
}
.bz-facts dd { margin: 0; font-size: .98rem; color: var(--sm-ink); }
.bz-facts__row--main dd .bz-badge { font-size: .8rem; }
.bz-ext { color: var(--sm-accent); text-underline-offset: 3px; word-break: break-word; }
.bz-ext::after { content: " ↗"; font-size: .85em; }
.bz-country__map .bzmap__stage { aspect-ratio: 4 / 3; }

.bz-warn {
  margin-bottom: 28px;
  padding: 18px 22px;
  background: var(--sm-ink);
  color: #fff;
  border-left: 4px solid var(--bz-visa);
}
.bz-warn .mono { color: #FF9A8F; display: block; margin-bottom: 6px; }
.bz-warn p { color: rgba(255, 255, 255, .88); }

.bz-sources {
  margin-top: clamp(34px, 5vw, 50px);
  padding: 22px 0;
  border-block: 1px solid var(--sm-ink);
}
.bz-sources > .mono { display: block; color: var(--sm-muted); margin-bottom: 10px; }
.bz-sources p { font-size: .92rem; color: var(--sm-ink-body); }
.bz-sources ul { list-style: none; padding: 0; margin: 12px 0 16px; display: flex; flex-direction: column; gap: 6px; }
.bz-sources a:not(.link-line) { color: var(--sm-accent); font-size: .92rem; text-underline-offset: 3px; }
.bz-near { padding-block: clamp(30px, 5vw, 64px); }

/* ---------- Таблиця країн ---------- */
.bz-table__scroll { overflow-x: auto; }
.bz-table table { width: 100%; border-collapse: collapse; font-size: .94rem; }
.bz-table th,
.bz-table td {
  text-align: left;
  vertical-align: top;
  padding: 12px 16px 12px 0;
  border-bottom: 1px solid var(--sm-line);
}
.bz-table thead th {
  font-family: var(--sm-font-mono);
  font-weight: 400;
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--sm-muted);
  border-bottom-color: var(--sm-ink);
}
.bz-table tbody th { font-weight: 500; }
.bz-table tbody th a { color: var(--sm-ink); text-decoration: none; }
.bz-table tbody th a:hover { color: var(--sm-accent); text-decoration: underline; }
.bz-table tbody tr:hover { background: var(--sm-surface-tint2); }
.bz-table td:nth-child(4) { color: var(--sm-ink-body); max-width: 48ch; }
.mono-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 720px) { .bz-hide-sm { display: none; } }

/* ---------- Архіви ---------- */
.bz-archhead h1 { margin-top: 10px; max-width: 22ch; }
.bz-archhead .page-head__row { gap: 12px 20px; align-items: center; }
.bz-archhead .bz-badge { font-size: .74rem; }
.bz-archlist { padding-block: clamp(20px, 3vw, 36px) clamp(30px, 4vw, 50px); }
.bz-othertax { padding-block: 10px clamp(40px, 6vw, 70px); }
.bz-othertax > .mono { display: block; color: var(--sm-muted); margin-bottom: 12px; }

/* ---------- Підвал: колонки ---------- */
.foot-grid {
  padding-block: clamp(44px, 6vw, 72px);
  display: grid;
  gap: 32px 40px;
  grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
}
.foot-col { display: flex; flex-direction: column; gap: 9px; }
.foot-col a:not(.foot-brand) {
  color: rgba(255, 255, 255, .7);
  text-decoration: none;
  font-size: .9rem;
  transition: color .2s;
}
.foot-col a:not(.foot-brand):hover { color: #fff; }
.foot-col a .mono { color: rgba(255, 255, 255, .4); font-size: .62rem; }
.foot-h { color: rgba(255, 255, 255, .45); margin-bottom: 6px; }
.foot-about { color: rgba(255, 255, 255, .6); font-size: .9rem; max-width: 40ch; margin: 6px 0 12px; }
@media (max-width: 1000px) { .foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px)  { .foot-grid { grid-template-columns: 1fr; } }
@media print { .bzmap, .bz-search { display: none !important; } }

/* =========================================================================
 * 1.1: перелінковка, калькулятор 90/180, мовний перемикач
 * ====================================================================== */

/* ---------- Корисно перед поїздкою ---------- */
.bz-guides { margin-top: clamp(28px, 4vw, 40px); }
.bz-guides__title { font-size: 1.15rem; margin-bottom: 12px; }
.bz-guides ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.bz-guides a {
  display: flex; flex-direction: column; gap: 4px; height: 100%;
  padding: 14px 16px; border: 1px solid var(--sm-line); color: var(--sm-ink); text-decoration: none;
  transition: border-color .2s, background .2s;
}
.bz-guides a strong { font-weight: 500; line-height: 1.3; }
.bz-guides a span { font-size: .86rem; color: var(--sm-muted); }
.bz-guides a:hover { border-color: var(--sm-ink); background: var(--sm-surface-soft, #F6F6F6); }
.bz-same { padding-bottom: clamp(30px, 5vw, 64px); }
.entry-content a.bz-autolink { text-decoration-style: dotted; }

/* ---------- Калькулятор 90/180 ---------- */
.bz-calc { margin: 28px 0 36px; border: 1px solid var(--sm-ink); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.bz-calc__panel { padding: 22px; border-right: 1px solid var(--sm-line); }
.bz-calc__result { padding: 22px; background: var(--sm-surface-soft, #F6F6F6); }
.bz-calc label, .bz-calc legend { display: block; font-size: .82rem; color: var(--sm-ink-soft, #444); margin-bottom: 6px; }
.bz-calc input[type=date] {
  font: inherit; font-size: .95rem; padding: 9px 10px; border: 1px solid var(--sm-line-2); background: #fff; color: var(--sm-ink); min-width: 0; width: 100%;
}
.bz-calc input[type=date]:focus { outline: 2px solid var(--sm-accent); outline-offset: 1px; }
.bz-calc__control { margin-bottom: 20px; }
.bz-calc__hint { font-size: .82rem; color: var(--sm-muted); margin-top: 6px; }
.bz-calc fieldset { border: 0; margin: 0; padding: 0; }
.bz-calc__trips ol { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.bz-calc__trip { display: grid; grid-template-columns: 22px 1fr 1fr 32px; grid-template-areas: "n la lb x" "n a b x" "e e e e"; gap: 2px 8px; align-items: end; }
.bz-calc__trip .bz-calc__n { grid-area: n; align-self: center; color: var(--sm-muted); }
.bz-calc__trip label:nth-of-type(1) { grid-area: la; margin: 0; }
.bz-calc__trip label:nth-of-type(2) { grid-area: lb; margin: 0; }
.bz-calc__trip input:nth-of-type(1) { grid-area: a; }
.bz-calc__trip input:nth-of-type(2) { grid-area: b; }
.bz-calc__rm { grid-area: x; height: 40px; border: 1px solid var(--sm-line-2); background: #fff; font-size: 1.2rem; cursor: pointer; color: var(--sm-ink); }
.bz-calc__rm:hover { border-color: var(--bz-visa); color: var(--bz-visa); }
.bz-calc__err { grid-area: e; color: #B3261E; font-size: .82rem; }
.bz-calc__add { font: inherit; font-size: .9rem; padding: 9px 14px; border: 1px dashed var(--sm-ink); background: transparent; cursor: pointer; color: var(--sm-ink); }
.bz-calc__add:hover { background: var(--sm-ink); color: #fff; }
.bz-calc__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.bz-calc__stats div { background: #fff; padding: 12px 14px; border: 1px solid var(--sm-line); }
.bz-calc__stats .mono { display: block; font-size: .64rem; color: var(--sm-muted); margin-bottom: 4px; }
.bz-calc__stats b { font-family: var(--sm-font-head); font-size: 2.2rem; line-height: 1; }
.bz-calc__stats .is-ok b { color: #157A45; }
.bz-calc__stats .is-over b { color: #B3261E; }
.bz-calc__verdict { padding: 12px 14px; border-left: 4px solid #1E9E5A; background: #fff; font-size: .95rem; }
.bz-calc__verdict.is-over { border-left-color: var(--bz-visa); }
.bz-calc__bar { display: grid; grid-template-columns: repeat(60, 1fr); gap: 2px; margin-top: 16px; }
.bz-calc__bar i { display: block; height: 10px; background: var(--sm-line-2); }
.bz-calc__bar i.on { background: var(--sm-accent); }
.bz-calc__axis { display: flex; justify-content: space-between; font-size: .62rem; color: var(--sm-muted); margin-top: 6px; }
.bz-calc__note, .bz-calc__empty { font-size: .8rem; color: var(--sm-muted); margin-top: 10px; }
.bz-calc__empty { margin: 0 0 12px; }
@media (max-width: 760px) {
  .bz-calc { grid-template-columns: 1fr; }
  .bz-calc__panel { border-right: 0; border-bottom: 1px solid var(--sm-line); padding: 16px; }
  .bz-calc__result { padding: 16px; }
}

/* ---------- Сортування таблиці ---------- */
.bz-table th[data-sort] { cursor: pointer; user-select: none; white-space: nowrap; }
.bz-table th[data-sort]::after { content: " ↕"; color: var(--sm-muted); font-size: .8em; }
.bz-table th[aria-sort=ascending]::after { content: " ↑"; color: var(--sm-ink); }
.bz-table th[aria-sort=descending]::after { content: " ↓"; color: var(--sm-ink); }
.bz-calc ol > li::before, .bz-calc ol li::before { content: none !important; display: none !important; }
.bz-calc ol > li { padding-left: 0 !important; margin: 0 !important; }
