@import url("https://fonts.googleapis.com/css2?family=PT+Sans:wght@400;700&family=PT+Sans+Narrow:wght@400;700&display=swap");

/* zaderzhka-reysov.ru — общее оформление.
   Один файл на все страницы. Разметка и тексты страниц не меняются:
   стили навешиваются на существующие классы (.wrap, .verdict, .section,
   table.airports, details, .callout, ul.airport-links, footer). */

:root {
  --navy: #0f3470;
  --navy-deep: #0a2757;
  --blue: #1a6fd4;
  --link: #103a75;
  --ink: #1d1f20;
  --ink-2: #424244;
  --muted: #5d5d60;
  --muted-2: #7a7a7d;
  --bg: #f7f7f8;
  --bar: #f2f2f3;
  --bar-2: #e9e9ea;
  --tint: #eef6ff;
  --line: rgba(29, 31, 32, 0.12);
  --line-2: rgba(29, 31, 32, 0.22);
  --line-3: rgba(29, 31, 32, 0.28);
  --dot-off: #b7b7ba;
  --wrap: 960px;

  --font-heading: "PT Sans Narrow", "Arial Narrow", system-ui, sans-serif;
  --font-body: "PT Sans", system-ui, -apple-system, sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--link); }
a:hover { color: var(--navy); }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
::selection { background: #d6ebff; }

.wrap {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 26px 20px 56px;
}

/* ---------- шапка ---------- */

.site-header { background: var(--bar); border-bottom: 1px solid var(--line-2); }

.site-header__bar {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 20px;
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.site-header__logo { display: flex; align-items: center; padding: 12px 0; }
.site-header__logo img { display: block; height: 45px; width: auto; }

.site-nav {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  font-family: var(--font-heading);
  font-size: 15px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.site-nav a {
  color: var(--ink-2);
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 2px solid transparent;
}
.site-nav a:hover { color: var(--ink); border-bottom-color: #b5d9fd; }
.site-nav a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--blue); }

.site-strip { border-top: 1px solid var(--line); background: var(--bar-2); }
.site-strip__inner {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  flex-wrap: wrap;
}
.site-strip a {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 13px;
  border-right: 1px solid var(--line);
  font-size: 12.5px;
  color: var(--ink-2);
  text-decoration: none;
}
.site-strip a:hover { background: var(--tint); color: var(--ink); }
.site-strip b {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.1em;
}
.site-strip i { width: 5px; height: 5px; background: var(--dot-off); font-style: normal; }
.site-strip .on i { background: var(--blue); }
.site-strip span { color: var(--muted); font-variant-numeric: tabular-nums; }

/* ---------- содержание страницы ---------- */

nav.breadcrumb { font-size: 12.5px; color: var(--muted); letter-spacing: 0.05em; margin-bottom: 16px; }
nav.breadcrumb a { color: var(--muted); text-decoration: none; }
nav.breadcrumb a:hover { text-decoration: underline; }

h1 {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 40px;
  line-height: 1.06;
  margin: 0 0 20px;
  text-wrap: pretty;
}

h2.section {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 24px;
  margin: 40px 0 0;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line-2);
}

p.lead { color: var(--muted); font-size: 14px; margin: 12px 0 16px; }

/* вердикт — чертёжная плита, без скруглений */
.verdict {
  border: 1px solid var(--line-3);
  border-radius: 0;
  background: none;
  padding: 22px 24px;
  margin-bottom: 34px;
}
.verdict.delayed, .verdict.ok { border-color: var(--line-3); background: none; }
.verdict .badge {
  display: inline-block;
  border-radius: 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 3px 9px;
}
.verdict.delayed .badge { background: var(--navy); color: #fff; border: 1px solid var(--navy); }
.verdict.ok .badge { background: none; color: var(--muted); border: 1px solid var(--line-3); }
.verdict h2 {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 27px;
  line-height: 1.15;
  margin: 14px 0 10px;
}
.verdict .stats { font-size: 15.5px; margin: 8px 0; }
.verdict .stats b { font-family: var(--font-heading); font-size: 26px; font-variant-numeric: tabular-nums; }
.verdict .worst { font-size: 15.5px; margin-top: 10px; }
.verdict .worst a { color: var(--link); font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(16, 58, 117, 0.4); }
.verdict .updated, .updated { color: var(--muted); font-size: 13px; margin-top: 14px; }

/* таблицы */
table.airports { width: 100%; border-collapse: collapse; font-size: 15px; }
table.airports th {
  text-align: left;
  padding: 9px 8px;
  background: var(--bar-2);
  border-bottom: 1px solid var(--line-2);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
table.airports td { padding: 11px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; }
table.airports tbody tr:hover { background: var(--tint); }
table.airports td.num { text-align: right; font-variant-numeric: tabular-nums; }
table.airports td.num.hi { color: var(--navy); font-weight: 700; }
table.airports td.num .pct { color: var(--muted); font-weight: 400; font-size: 12px; }
table.airports a.name { color: var(--ink); font-weight: 600; text-decoration: none; }
table.airports a.name:hover { color: var(--link); }
table.airports .city, table.airports .iata { color: var(--muted); font-size: 13px; }
table.airports .status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 0;
  background: none;
  padding: 0;
  font-size: 12.5px;
  font-weight: 400;
  color: var(--ink-2);
}
table.airports .status-badge::before { content: ""; width: 6px; height: 6px; background: var(--dot-off); }
table.airports .status-badge.problem { background: none; color: var(--ink-2); }
table.airports .status-badge.problem::before { background: var(--blue); }
table.airports .status-badge.ok { background: none; color: var(--muted); }

/* аккордеоны */
details {
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  margin: 0;
  padding: 13px 2px;
}
details:first-of-type { border-top: 1px solid var(--line); }
details[open] { background: none; }
details summary { cursor: pointer; font-weight: 600; font-size: 15px; }
details p { margin: 10px 0 0; font-size: 14.5px; color: var(--ink-2); }

/* врезка */
.callout {
  background: var(--tint);
  border: 1px solid rgba(26, 111, 212, 0.5);
  border-left-width: 1px;
  border-radius: 0;
  padding: 16px 20px;
  margin: 18px 0;
  font-size: 15px;
}
.callout b {
  display: block;
  margin-bottom: 8px;
  font-family: var(--font-heading);
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--navy);
}

ul.airport-links {
  list-style: none;
  padding: 0;
  margin: 16px 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 2px 24px;
}
ul.airport-links li { padding: 5px 0; font-size: 15px; border-bottom: 1px solid var(--line); }
ul.airport-links a { color: var(--link); text-decoration: none; }
ul.airport-links a:hover { text-decoration: underline; }

/* ---------- подвал ---------- */

.site-footer { border-top: 1px solid var(--line-3); background: var(--bar); margin-top: 48px; }
.site-footer__cols {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 32px 20px 26px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 28px;
}
.site-footer__brand img { display: block; height: 36px; width: auto; }
.site-footer__brand p { font-size: 13.5px; line-height: 1.6; margin: 12px 0 0; color: var(--muted); max-width: 32ch; }
.site-footer__col { display: flex; flex-direction: column; gap: 7px; }
.site-footer__col > span {
  font-family: var(--font-heading);
  font-size: 11.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 3px;
}
.site-footer__col a { color: var(--ink-2); text-decoration: none; font-size: 14px; }
.site-footer__col a:hover { color: var(--ink); }
.site-footer__fine { border-top: 1px solid rgba(29, 31, 32, 0.16); }
.site-footer__fine div {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 13px 20px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
}

/* старый inline-подвал в контенте страницы, если он остаётся */
.wrap > footer {
  color: var(--muted);
  font-size: 12px;
  margin-top: 40px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.wrap > footer a { color: var(--muted); }

/* ---------- страница аэропорта (live) ---------- */

/* причина ограничений — синяя врезка */
.cause {
  background: var(--tint);
  border: 1px solid rgba(26, 111, 212, 0.5);
  padding: 14px 18px;
  margin: 16px 0 24px;
  font-size: 15px;
  color: var(--ink);
}
.cause a { color: var(--link); }

/* поиск по таблице рейсов */
.search { margin: 18px 0 12px; }
.search input {
  width: 100%;
  padding: 10px 12px;
  font-size: 15px;
  font-family: var(--font-body);
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line-2);
  border-radius: 0;
}
.search input:focus { border-color: var(--blue); outline: none; }

/* табы «вылеты / прилёты» */
.tabs { display: flex; gap: 0; margin: 0 0 14px; border-bottom: 1px solid var(--line-2); }
.tabs button {
  padding: 9px 16px;
  border: 0;
  background: none;
  cursor: pointer;
  font-family: var(--font-heading);
  font-size: 14px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.tabs button:hover { color: var(--ink); }
.tabs button.active { color: var(--ink); border-bottom-color: var(--blue); }

/* таблицы рейсов — общий стиль (без префикса .airports) */
.wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14.5px;
}
.wrap table th {
  text-align: left;
  padding: 9px 8px;
  background: var(--bar-2);
  border-bottom: 1px solid var(--line-2);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.wrap table td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}
.wrap table tbody tr:hover { background: var(--tint); }
.wrap table .flt { font-weight: 700; font-variant-numeric: tabular-nums; }
.wrap table .flt a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line-2); }
.wrap table .flt a:hover { color: var(--link); border-bottom-color: var(--blue); }

/* индикатор задержки — без цветной плашки, точка + текст */
.delay-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  font-variant-numeric: tabular-nums;
  color: var(--ink-2);
}
.delay-badge::before {
  content: "";
  width: 6px;
  height: 6px;
  background: var(--blue);
}

/* отменённый рейс — акцентно тёмно-синим */
.cancelled { color: var(--navy); font-weight: 700; }

/* блок отменённых рейсов */
.cancel-block {
  margin: 26px 0;
  padding: 18px 20px;
  background: none;
  border: 1px solid var(--line-3);
}
.cancel-block h2.section { margin-top: 0; }
.cancel-block h3.section-sub {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 16px;
  margin: 18px 0 6px;
}
.cancel-block p { margin: 8px 0; font-size: 14.5px; }
.cancel-block table { margin: 6px 0 4px; }
.cancel-block .cancel-note {
  font-size: 13px;
  color: var(--muted);
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.cancel-block .cancel-note a { color: var(--muted); text-decoration: underline; }

/* пустой блок */
.empty {
  color: var(--muted);
  font-style: italic;
  padding: 22px;
  text-align: center;
  border: 1px dashed var(--line-2);
}

/* блок «см. также / история / другие аэропорты» */
.related {
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid var(--line-2);
}
.related + .related { margin-top: 20px; }
.related h2 {
  font-family: var(--font-heading);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 12px;
}
.related ul { list-style: none; padding: 0; margin: 0; }
.related li { padding: 5px 0; font-size: 14.5px; border-bottom: 1px solid var(--line); }
.related li:last-child { border-bottom: 0; }
.related a { color: var(--link); text-decoration: none; }
.related a:hover { text-decoration: underline; }
.related p.muted { color: var(--muted); font-size: 14px; margin: 0; }

/* функциональный класс — скрытая таба, не переопределять */
.hidden { display: none; }

/* ---------- страницы прав пассажира (legal / legal_subpage / kompensaciya / spravka) ---------- */

/* лид-абзац */
.lead {
  color: var(--ink);
  font-size: 16px;
  margin: 8px 0 20px;
  padding: 14px 18px;
  background: var(--tint);
  border-left: 3px solid var(--blue);
}
.lead b { color: var(--ink); }

/* подзаголовок под h1 */
.subtitle { color: var(--muted); font-size: 15px; margin: 0 0 20px; }

/* внутристатейные h2/h3 (когда без class="section") */
.wrap h2 {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 22px;
  margin: 36px 0 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--line-2);
  scroll-margin-top: 16px;
}
.wrap h3 {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 17px;
  margin: 22px 0 8px;
}

/* оглавление */
nav.toc {
  margin: 16px 0 28px;
  padding: 16px 20px;
  background: var(--bar);
  border: 1px solid var(--line-2);
}
nav.toc ol { list-style: none; padding: 0; margin: 0; counter-reset: toc; }
nav.toc li { counter-increment: toc; margin: 0; padding: 0; }
nav.toc li a {
  display: block;
  padding: 8px 0 8px 32px;
  font-size: 15.5px;
  color: var(--link);
  text-decoration: none;
  position: relative;
  border-bottom: 1px solid var(--line);
}
nav.toc li:last-child a { border-bottom: 0; }
nav.toc li a::before {
  content: counter(toc) ".";
  position: absolute;
  left: 0;
  width: 24px;
  text-align: right;
  color: var(--muted);
  font-weight: 700;
  font-family: var(--font-heading);
}
nav.toc li a:hover { color: var(--ink); text-decoration: underline; }

/* коробка ключевой цифры выплаты (kompensaciya) */
.payout-box {
  padding: 16px 20px;
  background: var(--tint);
  border-left: 3px solid var(--navy);
  margin: 16px 0 24px;
  font-size: 15.5px;
}
.payout-box b { color: var(--navy); font-family: var(--font-heading); font-size: 20px; }

/* калькулятор */
.calc {
  padding: 16px 20px;
  background: var(--bar);
  border: 1px solid var(--line-2);
  margin: 16px 0 24px;
}
.calc h3 { margin: 0 0 12px; font-size: 16px; }
.calc-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 16px;
  align-items: end;
}
.calc-fields label {
  display: block;
  font-family: var(--font-heading);
  font-size: 11.5px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 4px;
  font-weight: 600;
}
.calc-fields input {
  width: 100%;
  padding: 9px 12px;
  font-size: 15px;
  font-family: var(--font-body);
  color: var(--ink);
  border: 1px solid var(--line-2);
  border-radius: 0;
  background: #fff;
}
.calc-fields input:focus { outline: none; border-color: var(--blue); }
.calc-result {
  margin-top: 14px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid var(--line-2);
  font-size: 14.5px;
}
.calc-result .row {
  display: flex;
  justify-content: space-between;
  padding: 4px 0;
}
.calc-result .row.total {
  border-top: 1px solid var(--line-2);
  margin-top: 6px;
  padding-top: 8px;
  font-weight: 600;
  font-size: 15.5px;
  color: var(--ink);
}
.calc-result .row.total b { color: var(--navy); }
.calc-note { margin-top: 10px; font-size: 12.5px; color: var(--muted); font-style: italic; }

/* таблица выплат */
table.payouts { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 12px 0; }
table.payouts th {
  text-align: left;
  padding: 9px 10px;
  background: var(--bar-2);
  border-bottom: 1px solid var(--line-2);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
table.payouts td {
  padding: 10px;
  border-bottom: 1px solid var(--line);
}
table.payouts td.num { text-align: right; font-variant-numeric: tabular-nums; }

/* пошаговые инструкции (spravka / kompensaciya) */
.steps { counter-reset: step; list-style: none; padding: 0; margin: 14px 0; }
.steps > li {
  counter-increment: step;
  padding: 14px 16px 14px 52px;
  margin: 8px 0;
  background: var(--bar);
  border: 1px solid var(--line);
  position: relative;
}
.steps > li::before {
  content: counter(step);
  position: absolute;
  left: 14px;
  top: 14px;
  width: 26px;
  height: 26px;
  background: var(--navy);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 14px;
}
.steps .step-title { font-weight: 600; margin-bottom: 4px; }

/* образец текста заявления/претензии (Georgia + monospace-подобно) */
.sample {
  background: #fdfdfd;
  border-left: 3px solid var(--blue);
  padding: 14px 18px;
  margin: 12px 0;
  font-family: Georgia, "Times New Roman", serif;
  white-space: pre-wrap;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ink);
}
.sample-caption {
  color: var(--muted);
  font-family: var(--font-heading);
  font-size: 11.5px;
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 600;
  white-space: normal;
}

/* «подводные камни» — акцентный блок */
.gotcha {
  background: var(--tint);
  border: 1px solid rgba(26, 111, 212, 0.4);
  border-left: 3px solid var(--navy);
  padding: 12px 16px;
  margin: 12px 0;
  font-size: 14.5px;
}
.gotcha .g-title {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 4px;
}
.gotcha .g-source { color: var(--muted); font-size: 12px; margin-top: 6px; font-style: italic; }

/* судебные кейсы (kompensaciya) */
.case {
  background: var(--bar);
  border: 1px solid var(--line-2);
  border-left: 3px solid var(--blue);
  padding: 14px 18px;
  margin: 12px 0;
}
.case .case-title { font-weight: 600; margin-bottom: 6px; font-size: 15.5px; }
.case .case-source {
  color: var(--muted);
  font-size: 12.5px;
  margin-top: 8px;
  font-style: italic;
}
.case .case-source a { color: var(--muted); text-decoration: underline; }

/* TL;DR (spravka) */
.tldr {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 24px;
  margin: 16px 0;
  padding: 14px 18px;
  background: var(--tint);
  border-left: 3px solid var(--blue);
  font-size: 14.5px;
}
.tldr b {
  display: block;
  color: var(--muted);
  font-family: var(--font-heading);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 2px;
  font-weight: 600;
}
.tldr .item { padding: 2px 0; }

/* цитата первоисточника (legal_subpage) */
blockquote {
  margin: 12px 0;
  padding: 14px 18px;
  background: #fdfdfd;
  border-left: 3px solid var(--blue);
  font-family: Georgia, "Times New Roman", serif;
  white-space: pre-wrap;
  color: var(--ink);
  font-size: 14.5px;
}

/* список услуг при задержке (legal_subpage) */
.services-list { list-style: none; padding: 0; margin: 14px 0; }
.services-list li {
  padding: 10px 14px;
  background: var(--bar);
  border: 1px solid var(--line);
  border-left: 3px solid var(--blue);
  margin: 6px 0;
  font-size: 14.5px;
}
.services-list .extra { display: block; color: var(--muted); font-size: 13px; margin-top: 2px; }

/* блок источников — мелким */
.sources, .cite-sources { font-size: 12.5px; color: var(--muted); margin: 12px 0; }
.sources a, .cite-sources a { color: var(--muted); text-decoration: underline; }

/* таблица услуг при задержке (legal) */
table.svc { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 15px; }
table.svc th {
  text-align: left;
  padding: 10px 8px;
  background: var(--bar-2);
  border-bottom: 1px solid var(--line-2);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
table.svc td {
  text-align: left;
  padding: 11px 8px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
table.svc td.wait {
  white-space: nowrap;
  font-family: var(--font-heading);
  font-weight: 700;
  color: var(--navy);
}
table.svc td.note { color: var(--muted); font-size: 13px; }

/* карточки тем (legal — hub) */
.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 10px;
  margin: 14px 0 8px;
}
.cards a.card {
  display: block;
  padding: 14px 16px;
  border: 1px solid var(--line-2);
  text-decoration: none;
  color: var(--ink);
  background: #fff;
}
.cards a.card:hover { border-color: var(--blue); background: var(--tint); }
.cards a.card b {
  display: block;
  color: var(--link);
  margin-bottom: 4px;
  font-size: 15.5px;
  font-family: var(--font-heading);
  font-weight: 600;
}
.cards a.card span { color: var(--muted); font-size: 13px; }

/* сетка аэропортов «часы работы» (legal) */
.hours-grid { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.hours-grid a {
  padding: 6px 12px;
  background: var(--bar);
  border: 1px solid var(--line-2);
  color: var(--link);
  text-decoration: none;
  font-size: 14px;
}
.hours-grid a:hover { border-color: var(--blue); background: var(--tint); }

/* дисклеймер (legal) */
.disclaimer {
  background: var(--tint);
  border-left: 3px solid var(--navy);
  padding: 12px 18px;
  margin: 16px 0 32px;
  font-size: 14px;
  color: var(--ink);
}
.disclaimer b {
  display: block;
  margin-bottom: 4px;
  font-family: var(--font-heading);
  font-size: 12.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--navy);
}

/* .callout уже определён выше, но здесь варианты — предупреждение / юрисдикция */
.callout.warning {
  background: var(--tint);
  border-color: var(--navy);
}
.callout.warning b { color: var(--navy); }
.callout.jurisdiction {
  background: var(--bar);
  border-color: var(--line-3);
}
.callout.jurisdiction b { color: var(--ink-2); }

/* ---------- страница авиакомпании (airline) ---------- */

/* таблица рейсов авиакомпании — берёт общий .wrap table стиль */
table.flights { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 12px 0; }
table.flights th {
  text-align: left;
  padding: 9px 8px;
  background: var(--bar-2);
  border-bottom: 1px solid var(--line-2);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
table.flights td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--line);
}
table.flights tbody tr:hover { background: var(--tint); }
table.flights .flt { font-weight: 700; font-variant-numeric: tabular-nums; }

.airport-link { color: var(--link); text-decoration: none; }
.airport-link:hover { color: var(--navy); text-decoration: underline; }

/* вердикт «есть ли задержки в авиакомпании сейчас» — в стиле verdict без цвета фона */
.wrap .verdict h3 {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 20px;
  margin: 12px 0 6px;
  padding: 0;
  border: 0;
}

/* ---------- страница рейса (flight) ---------- */

/* сетка карточек статистики */
.stat-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 16px 0 24px;
}
.stat-card {
  padding: 14px 16px;
  background: var(--bar);
  border: 1px solid var(--line-2);
  text-align: center;
}
.stat-card .val {
  font-family: var(--font-heading);
  font-size: 26px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.stat-card .lbl {
  font-family: var(--font-heading);
  font-size: 11px;
  text-transform: uppercase;
  color: var(--muted);
  letter-spacing: 0.14em;
  margin-top: 6px;
  font-weight: 600;
}
.stat-card.delayed .val { color: var(--navy); }
.stat-card.cancelled .val { color: var(--navy); }
.stat-card.ok .val { color: var(--ink); }

/* последнее наблюдение по рейсу */
.latest {
  padding: 14px 18px;
  background: var(--bar);
  border: 1px solid var(--line-2);
  border-left: 3px solid var(--blue);
  margin: 16px 0;
}
.latest.delayed { border-left-color: var(--navy); }
.latest.cancelled { border-left-color: var(--navy); background: var(--tint); }
.latest .l-status {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 17px;
}
.latest .l-meta { color: var(--muted); font-size: 13px; margin-top: 4px; }

.status-delayed { color: var(--ink-2); font-weight: 600; }
.status-cancelled { color: var(--navy); font-weight: 700; }
.status-ok { color: var(--muted); }

/* ---------- индекс рейсов (flight_index) ---------- */

/* сетка кнопок с номерами рейсов */
.flights-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 6px 10px;
  margin: 10px 0 14px;
}
.flights-grid a {
  display: block;
  padding: 8px 10px;
  background: var(--bar);
  border: 1px solid var(--line);
  text-align: center;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  color: var(--link);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.03em;
}
.flights-grid a:hover { background: var(--tint); border-color: var(--blue); }
.flights-grid a.hidden, h2.hidden, .airline-section.hidden { display: none; }

/* поиск (общий с .search input) */
.search-box { margin: 16px 0 24px; }
.search-box input {
  width: 100%;
  padding: 10px 14px;
  font-size: 15px;
  font-family: var(--font-body);
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line-2);
  border-radius: 0;
}
.search-box input:focus { outline: none; border-color: var(--blue); }
.search-empty { color: var(--muted); font-style: italic; margin: 24px 0; display: none; }
.search-empty.active { display: block; }

/* ---------- страница месяца (month) ---------- */

.totals {
  border: 1px solid var(--line-2);
  padding: 16px 20px;
  margin-bottom: 24px;
  background: #fff;
}
.totals-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 16px;
}
.fact b {
  display: block;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 24px;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
}
.fact .accent { color: var(--navy); }
.fact span {
  color: var(--muted);
  font-size: 12.5px;
  font-family: var(--font-heading);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 600;
  margin-top: 4px;
  display: block;
}

/* ссылка-дата в таблице */
a.date-link { color: var(--link); text-decoration: none; font-weight: 600; }
a.date-link:hover { color: var(--navy); text-decoration: underline; }

/* панель «другие месяцы» */
.months { display: flex; gap: 8px; flex-wrap: wrap; margin: 20px 0; align-items: center; }
.months a {
  padding: 6px 12px;
  background: var(--bar);
  border: 1px solid var(--line-2);
  color: var(--ink);
  text-decoration: none;
  font-size: 14px;
}
.months a:hover { border-color: var(--blue); background: var(--tint); }

/* ---------- страница-дата (archive) ---------- */

.facts {
  border: 1px solid var(--line-2);
  padding: 16px 20px;
  margin-bottom: 24px;
  background: #fff;
}
.facts h2 {
  font-family: var(--font-heading);
  font-size: 12.5px;
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  text-transform: uppercase;
  color: var(--muted);
  letter-spacing: 0.14em;
  font-weight: 600;
}
.facts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 16px;
}

/* ---------- мобильные ---------- */

@media (max-width: 720px) {
  h1 { font-size: 30px; }
  .verdict h2 { font-size: 22px; }
  .verdict .stats b { font-size: 22px; }
  h2.section { font-size: 21px; }
  .site-header__bar { min-height: 0; padding: 12px 16px; }
  .site-header__logo { padding: 0; }
  .site-header__logo img { height: 36px; }
  .site-nav { gap: 14px; font-size: 14px; }
  .wrap { padding: 18px 16px 48px; }
  table.airports th, table.airports td { padding: 8px 4px; font-size: 14px; }
  table.airports .col-updated, table.airports .col-city, table.airports .col-max { display: none; }
  .verdict { padding: 18px 16px; }
  .wrap table th, .wrap table td { padding: 8px 4px; font-size: 13.5px; }
  .wrap table .col-airline, .wrap table .col-terminal { display: none; }
  .cancel-block { padding: 14px 14px; }
  .tabs button { padding: 8px 12px; font-size: 12.5px; }
  .wrap h2 { font-size: 20px; }
  .wrap h3 { font-size: 16px; }
  .stat-cards { grid-template-columns: repeat(2, 1fr); }
  .calc-fields { grid-template-columns: 1fr; }
  .tldr { grid-template-columns: 1fr; }
  table.flights .col-airline, table.flights .col-terminal { display: none; }
  table.svc th, table.svc td { padding: 8px 6px; font-size: 14px; }
  table.payouts th, table.payouts td { padding: 8px 6px; }
}
