
:root{--bg:#f4f7fb;--paper:#fff;--ink:#0b1833;--muted:#5d6b81;--line:#d7e1ee;--blue:#063b7a;--deep:#001f57;--orange:#ff7a1a;--max:1380px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,sans-serif;line-height:1.55}a{text-decoration:none;color:inherit}
.site-header,.header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.site-header-inner,.header-inner{max-width:var(--max);margin:0 auto;padding:10px 22px;display:grid;grid-template-columns:360px auto 330px;gap:20px;align-items:center}
.header-inner{grid-template-columns:1fr auto}
.brand{display:flex;gap:11px;align-items:center}.brand-mark{width:34px;height:34px;border-radius:8px;background:var(--deep);color:#fff;display:grid;place-items:center;font-family:Georgia,serif;font-weight:900}.brand-title{font-weight:900;line-height:1.05}.brand-title span{display:block;margin-top:4px;color:var(--muted);font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
.site-nav,.nav{display:flex;gap:24px;justify-content:center;font-weight:700;color:#4d5c72}.site-nav a:hover,.site-nav a.active,.nav a:hover,.nav a.active{color:var(--ink)}
.global-search{position:relative}.global-search input{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 14px 10px 38px;outline:none}.global-search span{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted)}
.breadcrumbs{max-width:var(--max);margin:0 auto;padding:11px 22px;color:var(--muted);font-size:13px}
.hero{background:var(--deep);color:#fff}.hero-inner{max-width:var(--max);margin:0 auto;padding:54px 22px 56px;display:grid;grid-template-columns:minmax(0,1fr)420px;gap:44px;align-items:center}
.site-home .hero-inner{grid-template-columns:1fr 360px}
.issue-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}.issue-tag{border:1px solid rgba(255,255,255,.28);color:rgba(255,255,255,.78);border-radius:6px;padding:5px 10px;font-size:12px;letter-spacing:.13em;text-transform:uppercase}
.hero h1{margin:0;font-family:Georgia,serif;font-weight:400;font-size:clamp(39px,5vw,64px);line-height:1.04;letter-spacing:-.045em;max-width:820px}.site-home .hero h1{font-size:clamp(42px,5vw,70px)}
.hero-lead,.hero p{margin:24px 0 0;max-width:720px;color:rgba(255,255,255,.82);font-size:18px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.btn{display:inline-flex;align-items:center;gap:9px;border-radius:9px;padding:13px 19px;font-weight:900;border:1px solid rgba(255,255,255,.24)}.btn.primary{background:var(--orange);border-color:var(--orange);color:#fff}.btn.secondary{background:rgba(255,255,255,.06);color:#fff}.btn.light{background:#fff;color:var(--blue);border-color:var(--line)}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:38px;border:1px solid rgba(255,255,255,.22);border-radius:10px;overflow:hidden;max-width:760px}.hero-stat{padding:16px 20px;border-right:1px solid rgba(255,255,255,.18)}.hero-stat:last-child{border-right:0}.hero-stat span{display:block;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:5px}.hero-stat strong{display:block;font-family:Georgia,serif;font-weight:400;font-size:31px;line-height:1}
.hero-visual{border-radius:10px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.06);overflow:hidden;box-shadow:0 28px 58px rgba(0,0,0,.22)}.visual-image{height:320px;background:linear-gradient(135deg,rgba(0,31,87,.18),rgba(255,122,26,.16)),radial-gradient(circle at 34% 44%,#ff7a1a 0 12%,transparent 13%),radial-gradient(circle at 55% 54%,#ff7a1a 0 9%,transparent 10%),radial-gradient(circle at 72% 66%,#063b7a 0 16%,transparent 17%),linear-gradient(135deg,#fff3d8 0 52%,#0d456d 52% 100%);position:relative}.visual-image:after{content:attr(data-issue);position:absolute;right:30px;bottom:22px;color:rgba(255,255,255,.84);font-family:Georgia,serif;font-size:58px}.visual-caption{background:rgba(255,255,255,.08);padding:18px 20px 20px}.visual-caption small{display:block;color:var(--orange);letter-spacing:.16em;text-transform:uppercase;font-weight:900;margin-bottom:7px}.visual-caption strong{display:block;font-size:18px;line-height:1.35}
.editorial{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;background:#d7e0eb}.editorial-card{padding:30px 32px 32px;border-left:4px solid var(--blue);min-height:190px}.editorial-card.signal{border-left-color:var(--orange);background:#eef3f8}.editorial-card.editor{background:#d9e3ee}.label{color:var(--blue);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:900;margin-bottom:15px}.signal .label{color:var(--orange)}.editorial-card h2{margin:0 0 12px;font-family:Georgia,serif;font-weight:400;font-size:25px;line-height:1.28}.editorial-card p{margin:0;color:#526174;font-size:16px}
.main-area,.wrap{max-width:var(--max);margin:0 auto;padding:48px 22px 58px}.section-kicker,.kicker{color:var(--orange);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:900;margin-bottom:8px}.section-title{margin:0;font-family:Georgia,serif;font-weight:400;font-size:31px;line-height:1.15}.section-subtitle{margin:6px 0 0;color:var(--muted);font-size:16px}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:20px}.section-head h2{margin:0;font-family:Georgia,serif;font-weight:400;font-size:34px}.section-head p{margin:6px 0 0;color:var(--muted)}
.map-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:24px}.map-grid{background:#d8e2ed;border:1px solid var(--line);border-radius:10px;padding:17px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px 18px}.map-item{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;min-height:44px;color:#10213f;border-radius:8px;padding:7px 8px}.map-item:hover{background:rgba(255,255,255,.45)}.map-item b{color:#5b6d83;font-family:monospace;font-size:12px}.map-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}.map-item em{background:#eef6ff;color:var(--blue);min-width:28px;height:24px;border-radius:8px;display:grid;place-items:center;font-style:normal;font-weight:900;font-size:12px}
.top-section,.help-section{border-top:1px solid var(--line);margin-top:56px;padding-top:46px}.top-grid,.grid{margin-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid{grid-template-columns:repeat(2,1fr)}
.top-card,.issue-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;transition:.16s;box-shadow:0 10px 28px rgba(0,42,84,.05)}.top-card{min-height:180px}.issue-card{padding:0;overflow:hidden}.top-card:hover,.issue-card:hover{border-color:var(--blue);box-shadow:0 18px 44px rgba(0,35,80,.10);transform:translateY(-1px)}.top-card small{color:var(--orange);font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.top-card h3{margin:16px 0;font-family:Georgia,serif;font-weight:400;font-size:22px;line-height:1.25}.top-card strong{color:var(--blue);text-align:right}
.help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}.help-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;min-height:160px}.help-num{width:34px;height:34px;border-radius:8px;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:900;margin-bottom:18px}.help-card h3{margin:0 0 10px;font-family:Georgia,serif;font-weight:400;font-size:21px}.help-card p{margin:0;color:var(--muted)}
.materials-wrap{max-width:var(--max);margin:0 auto;padding:26px 22px 70px;border-top:1px solid var(--line)}.materials-title{margin:0 0 20px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.materials-title h2{margin:0;font-family:Georgia,serif;font-weight:400;font-size:34px}
.layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px;align-items:start}.sidebar{position:sticky;top:72px;display:grid;gap:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 28px rgba(0,42,84,.05);overflow:hidden}.panel-head{padding:15px 16px;border-bottom:1px solid var(--line);color:var(--blue);font-size:13px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.toc{max-height:calc(100vh - 180px);overflow:auto;padding:8px}.toc a{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:12px;color:var(--muted);font-size:14px;line-height:1.35}.toc a:hover{background:#edf4fb;color:var(--blue)}.toc span{color:var(--orange);font-weight:800;min-width:26px}.search{padding:14px}.search input{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 13px;outline:none;background:#fff;color:var(--ink)}.search input:focus{border-color:rgba(0,51,102,.45);box-shadow:0 0 0 4px rgba(0,51,102,.08)}
.content{display:grid;gap:18px}.content-section{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 10px 28px rgba(0,42,84,.05);overflow:hidden;scroll-margin-top:86px}.section-heading{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:20px 22px;background:linear-gradient(90deg,#f7fbff,#fff);border-bottom:1px solid var(--line)}.section-number{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:800}.section-heading h2{margin:0;font-size:clamp(22px,3vw,32px);line-height:1.15;color:var(--blue)}.section-count{color:var(--muted);font-size:14px;white-space:nowrap}.articles{padding:16px;display:grid;gap:14px}.article-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px 18px;transition:.16s}.article-card:hover{border-color:rgba(0,51,102,.25);box-shadow:0 12px 30px rgba(0,42,84,.07)}.article-meta{color:var(--orange);font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;margin-bottom:8px}.authors-line{color:var(--blue);font-weight:800;margin-bottom:7px}.article-card h3{margin:0 0 10px;font-size:20px;line-height:1.3}.summary p{margin:0 0 10px;color:#31394b;text-align:left}.summary p:last-child{margin-bottom:0}.plain-block{border:1px dashed var(--line);border-radius:16px;padding:14px;background:#f8fbff;color:var(--muted)}.hidden{display:none!important}.empty-state{display:none;padding:24px;text-align:center;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:18px;margin-bottom:18px}.empty-state.open{display:block}
.issue-top{background:linear-gradient(135deg,#001f57,#063b7a);color:#fff;padding:24px}.issue-top small{display:block;color:var(--orange);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:900;margin-bottom:10px}.issue-top h3{margin:0;font-family:Georgia,serif;font-weight:400;font-size:34px;line-height:1.05}.issue-body{padding:22px}.meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.meta div{background:#f5f8fc;border:1px solid var(--line);border-radius:12px;padding:12px}.meta strong{display:block;color:var(--blue);font-size:23px;line-height:1}.meta span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.top-list{display:grid;gap:7px;margin:18px 0}.top-list div{display:grid;grid-template-columns:1fr auto;gap:8px;border-bottom:1px solid var(--line);padding:8px 0;color:#243456}.top-list b{color:var(--orange)}.card-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.card-actions a{border-radius:9px;padding:11px 15px;font-weight:900}.open{background:var(--blue);color:#fff}.ghost{background:#edf4fb;color:var(--blue);border:1px solid var(--line)}
.archive-table{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-bottom:26px}.row{display:grid;grid-template-columns:110px 1fr 130px 130px 120px;gap:12px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row.head{background:#edf4fb;color:var(--blue);font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.08em}.row a{color:var(--blue);font-weight:900}.year-title{margin:34px 0 14px;font-family:Georgia,serif;font-size:32px;font-weight:400}
.summary-card,.note{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:22px}.summary-card strong{display:block;font-family:Georgia,serif;font-size:44px;font-weight:400;line-height:1}.summary-card span{display:block;margin-top:6px;color:rgba(255,255,255,.7)}.note{background:#fff;color:var(--muted);border-color:var(--line);margin-top:28px}
.footer,.bottom-footer{background:var(--deep);color:rgba(255,255,255,.82);padding:20px 0}.footer-inner,.bottom-footer-inner{max-width:var(--max);margin:0 auto;padding:0 22px;display:flex;justify-content:space-between;gap:18px;font-size:14px}
@media(max-width:1180px){.site-header-inner{grid-template-columns:1fr;gap:12px}.site-nav{justify-content:flex-start;flex-wrap:wrap}.hero-inner,.site-home .hero-inner{grid-template-columns:1fr}.map-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-grid,.help-grid,.grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.header-inner,.editorial{grid-template-columns:1fr}.nav{flex-wrap:wrap}.hero-stats{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:1fr}.sidebar{position:static}.toc{max-height:none}.row{grid-template-columns:1fr}.row.head{display:none}.meta{grid-template-columns:1fr}}
@media(max-width:680px){.hero-inner,.main-area,.materials-wrap,.site-header-inner,.header-inner,.breadcrumbs,.wrap{padding-left:14px;padding-right:14px}.hero h1{font-size:38px}.visual-image{height:240px}.map-grid,.top-grid,.help-grid,.grid,.hero-stats{grid-template-columns:1fr}.hero-stat{border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}.hero-stat:last-child{border-bottom:0}.footer-inner,.bottom-footer-inner{flex-direction:column}}


/* Быстрая навигация внутри страницы выпуска */
.quick-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(0,42,84,.05);
  overflow: hidden;
}

.quick-links {
  padding: 10px;
  display: grid;
  gap: 8px;
}

.quick-links a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  border-radius: 12px;
  padding: 10px 11px;
  background: #f7fbff;
  color: var(--blue);
  font-weight: 800;
  font-size: 14px;
  border: 1px solid transparent;
}

.quick-links a:hover {
  background: #edf4fb;
  border-color: var(--line);
}

.float-nav {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 80;
  display: grid;
  gap: 8px;
}

.float-nav a {
  width: 46px;
  height: 46px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #fff;
  color: var(--blue);
  border: 1px solid var(--line);
  box-shadow: 0 12px 30px rgba(0,42,84,.16);
  font-weight: 900;
  font-size: 18px;
}

.float-nav a:hover {
  background: var(--blue);
  color: #fff;
}

@media(max-width:680px){
  .float-nav {
    right: 12px;
    bottom: 12px;
  }
  .float-nav a {
    width: 42px;
    height: 42px;
    font-size: 16px;
  }
}


/* Финальная логика режимов: archive / new */
.new-editorial-zone {
  max-width: var(--max);
  margin: 0 auto;
  padding: 34px 22px 0;
}

.new-editorial-grid {
  display: grid;
  grid-template-columns: 1.25fr .9fr;
  gap: 18px;
}

.main-theme-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(0,35,80,.10);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  min-height: 310px;
}

.main-theme-text {
  padding: 30px 32px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.main-theme-text h2 {
  margin: 0 0 14px;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 36px;
  line-height: 1.1;
  letter-spacing: -.025em;
}

.main-theme-text p {
  margin: 0;
  color: var(--muted);
  font-size: 17px;
}

.main-theme-image-link {
  display: block;
  min-height: 100%;
  position: relative;
}

.main-theme-image {
  min-height: 100%;
  background:
    linear-gradient(135deg, rgba(0,31,87,.28), rgba(255,122,26,.18)),
    radial-gradient(circle at 35% 45%, #ff7a1a 0 12%, transparent 13%),
    radial-gradient(circle at 63% 57%, #063b7a 0 18%, transparent 19%),
    linear-gradient(135deg, #fff3d8 0 52%, #0d456d 52% 100%);
  position: absolute;
  inset: 0;
}

.main-theme-image::after {
  content: "ТЕМА";
  position: absolute;
  right: 24px;
  bottom: 20px;
  color: rgba(255,255,255,.86);
  font-family: Georgia, serif;
  font-size: 46px;
  letter-spacing: -.04em;
}

.main-theme-image::before {
  content: "Открыть главную тему →";
  position: absolute;
  left: 22px;
  bottom: 22px;
  z-index: 2;
  background: rgba(255,255,255,.92);
  color: var(--blue);
  border-radius: 999px;
  padding: 9px 13px;
  font-weight: 900;
  font-size: 13px;
}

.editorial-side {
  display: grid;
  gap: 18px;
}

.signal-card,
.editor-note-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 24px 26px;
  box-shadow: 0 12px 34px rgba(0,35,80,.07);
  min-height: 145px;
  border-left: 5px solid var(--orange);
}

.editor-note-card {
  border-left-color: var(--blue);
}

.block-label {
  color: var(--orange);
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 900;
  margin-bottom: 12px;
}

.editor-note-card .block-label {
  color: var(--blue);
}

.signal-card h3,
.editor-note-card h3 {
  margin: 0 0 10px;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 24px;
  line-height: 1.24;
}

.signal-card p,
.editor-note-card p {
  margin: 0 0 18px;
  color: var(--muted);
}

.editorial-page {
  background: #fff;
}

.editorial-page-main {
  max-width: 980px;
  margin: 0 auto;
  padding: 56px 22px 80px;
}

.editorial-page-main h1 {
  margin: 0 0 20px;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: clamp(40px,5vw,68px);
  line-height: 1.04;
  letter-spacing: -.045em;
}

.editorial-page-main .lead {
  color: #3d4b62;
  font-size: 22px;
  line-height: 1.42;
  margin: 0 0 34px;
}

.editorial-text {
  display: grid;
  gap: 18px;
  font-size: 18px;
  color: #26364f;
}

.editorial-text p {
  margin: 0;
}

.theme-hero-image {
  height: 360px;
  border-radius: 22px;
  margin: 28px 0 34px;
  border: 1px solid var(--line);
  background:
    linear-gradient(135deg, rgba(0,31,87,.25), rgba(255,122,26,.18)),
    radial-gradient(circle at 36% 44%, #ff7a1a 0 12%, transparent 13%),
    radial-gradient(circle at 62% 56%, #063b7a 0 18%, transparent 19%),
    linear-gradient(135deg, #fff3d8 0 52%, #0d456d 52% 100%);
  position: relative;
  overflow: hidden;
}

.theme-hero-image::after {
  content: "№18";
  position: absolute;
  right: 34px;
  bottom: 24px;
  color: rgba(255,255,255,.86);
  font-family: Georgia, serif;
  font-size: 62px;
}

.editorial-links {
  margin-top: 34px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.issue-card.new-mode .issue-top {
  background: linear-gradient(135deg,#001f57,#063b7a 70%,#9b410b);
}

.issue-card.new-mode .issue-top small::after {
  content: " · новый выпуск";
}

.new-mode-row {
  background: #fffaf3;
}

@media(max-width:1180px) {
  .new-editorial-grid {
    grid-template-columns: 1fr;
  }
}

@media(max-width:760px) {
  .main-theme-card {
    grid-template-columns: 1fr;
  }
  .main-theme-image-link {
    min-height: 240px;
  }
  .main-theme-image {
    position: relative;
    min-height: 240px;
  }
}


/* Логотип НТБ в шапке и системной карточке */
.brand {
  min-width: 0;
}

.brand-logo {
  display: block;
  height: 42px;
  width: auto;
  max-width: 255px;
  object-fit: contain;
  border-radius: 6px;
  background: #fff;
}

.brand.with-logo {
  gap: 12px;
}

.brand.with-logo .brand-mark,
.brand.with-logo .brand-title {
  display: none;
}

.system-logo-chip {
  position: absolute;
  left: 22px;
  top: 22px;
  z-index: 3;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 12px;
  padding: 9px 12px;
  box-shadow: 0 12px 26px rgba(0,0,0,.18);
}

.system-logo-chip img {
  display: block;
  height: 38px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
}

.visual-image,
.theme-hero-image,
.main-theme-image {
  position: relative;
}

.visual-image::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,0)),
    radial-gradient(circle at 22% 20%, rgba(255,255,255,.18), transparent 30%);
  pointer-events: none;
}

@media(max-width:680px) {
  .brand-logo {
    height: 34px;
    max-width: 205px;
  }

  .system-logo-chip {
    left: 14px;
    top: 14px;
    padding: 7px 9px;
  }

  .system-logo-chip img {
    height: 30px;
    max-width: 145px;
  }
}


/* ===== style_overrides.css (project-level) ===== */

/* === НТБ overrides: main page redesign === */

/* Token: --orange-rgb — компоненты --orange (#ff7a1a) для rgba()-композиций
   с alpha-каналом. Базовый шаблон не задаёт --orange-rgb, поэтому объявляем
   здесь в нашем :root. Должен соответствовать --orange покомпонентно. */
:root {
  --orange-rgb: 255, 122, 26;
}

/* Header: НТБ wide logo + library name text next to it. */
.brand-logo {
  height: 64px;
  width: auto;
  max-width: 190px;
  object-fit: contain;
  background: transparent;
  border-radius: 0;
}

.brand,
.brand.brand-with-text,
.brand.with-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.brand .brand-mark,
.brand .brand-title {
  display: none;
}

.brand .brand-text {
  display: block;
  font-weight: 800;
  line-height: 1.2;
  color: var(--deep);
  font-size: 14px;
  letter-spacing: .005em;
  max-width: 260px;
}

.brand .brand-text small {
  display: block;
  margin-top: 4px;
  color: #5b6d83;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

/* Taller header so the wider logo + text both have room to breathe. */
.header .header-inner,
.site-header .site-header-inner {
  padding-top: 12px;
  padding-bottom: 12px;
  min-height: 96px;
  align-items: center;
}

/* Unified flex layout — brand left, nav middle, search (when present) right. */
.header .header-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 18px;
  grid-template-columns: none;
}

.header .header-inner .brand { flex: 0 0 auto; }
.header .header-inner .nav {
  flex: 1 1 auto;
  justify-content: flex-end;
  gap: 22px;
}
.header .header-inner .global-search {
  flex: 0 0 260px;
}

@media (max-width: 1180px) {
  .header .header-inner { flex-wrap: wrap; }
  .header .header-inner .nav { flex-basis: 100%; justify-content: flex-start; }
  .header .header-inner .global-search { flex-basis: 100%; }
}

@media (max-width: 680px) {
  .brand-logo { height: 40px; max-width: 180px; }
  .brand,
  .brand.brand-with-text { gap: 10px; }
  .brand .brand-text { font-size: 12px; max-width: 200px; }
  .header .header-inner,
  .site-header .site-header-inner { min-height: 70px; }
}

/* Hero: smaller h1 and calmer subtitle */
.site-home .hero h1 {
  font-size: clamp(28px, 3.4vw, 44px);
  max-width: 720px;
  letter-spacing: -.02em;
}

.site-home .hero .hero-lead,
.site-home .hero p.hero-lead {
  font-size: 16px;
  max-width: 640px;
  margin-top: 14px;
}

.site-home .hero .kicker {
  color: var(--orange);
  margin-bottom: 14px;
}

/* Compact issue cover on the main page (new-mode hero, right column).
   Separate class so the theme page's editorial-image-hero is untouched. */
.site-home .hero-inner {
  grid-template-columns: minmax(0, 1fr) 320px;
}

.home-issue-cover {
  width: 320px;
  max-width: 100%;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 18px 38px rgba(0, 0, 0, .22);
  text-decoration: none;
  transition: transform .18s, box-shadow .18s;
}

.home-issue-cover:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 48px rgba(0, 0, 0, .28);
}

.home-issue-cover .home-issue-cover-image {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
  object-position: left center;
  margin: 0;
}

.home-issue-cover .visual-caption {
  padding: 14px 16px 16px;
  background: rgba(255, 255, 255, .06);
}

.home-issue-cover .visual-caption small {
  display: block;
  color: var(--orange);
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 900;
  font-size: 11px;
  margin-bottom: 6px;
}

.home-issue-cover .visual-caption strong {
  display: block;
  font-size: 14px;
  line-height: 1.4;
  color: #fff;
  font-weight: 600;
}

@media (max-width: 1180px) {
  .site-home .hero-inner { grid-template-columns: 1fr; }
  .home-issue-cover { margin-left: 0; }
}

/* Featured (latest) issue area */
.featured-issue-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0 16px;
}

.featured-issue-meta .issue-tag {
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .26);
  border-radius: 999px;
  padding: 6px 13px;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 700;
  color: #fff;
}

.featured-theme {
  background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 14px;
  padding: 22px 24px;
  margin: 14px 0 4px;
  max-width: 720px;
}

.featured-theme .block-label {
  color: var(--orange);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 900;
  margin-bottom: 10px;
}

.featured-theme h2 {
  margin: 0 0 8px;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.2;
  color: #fff;
}

.featured-theme p {
  margin: 0;
  color: rgba(255, 255, 255, .78);
  font-size: 15px;
  line-height: 1.5;
}

.featured-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 18px 0 6px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 10px;
  overflow: hidden;
  max-width: 600px;
}

.featured-stats > div {
  padding: 14px 18px;
  border-right: 1px solid rgba(255, 255, 255, .18);
}

.featured-stats > div:last-child { border-right: 0; }

.featured-stats strong {
  display: block;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 28px;
  line-height: 1;
  color: #fff;
}

.featured-stats span {
  display: block;
  margin-top: 5px;
  color: rgba(255, 255, 255, .58);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* Service block — test build statistics */
.service-stats {
  background: #f3f7fc;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 16px 22px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 22px;
  margin: 0 0 28px;
}

.service-stats-title {
  margin: 0;
  flex: 0 0 auto;
  font-family: 'Source Serif 4', Georgia, serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.2;
  color: var(--blue);
  letter-spacing: -.01em;
}

.service-stats-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  align-items: baseline;
}

.service-stats-grid div {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.service-stats-grid strong {
  font-family: Georgia, serif;
  font-weight: 400;
  color: var(--blue);
  font-size: 22px;
  line-height: 1;
}

.service-stats-grid span {
  color: var(--muted);
  font-size: 13px;
}

/* ===== New mode: editorial block on the issue page ===== */

.editorial-hero {
  max-width: var(--max);
  margin: 0 auto;
  padding: 36px 22px 24px;
}

.editorial-hero-header {
  margin-bottom: 24px;
}

.editorial-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 22px;
  align-items: stretch;
}

@media (max-width: 980px) {
  .editorial-grid { grid-template-columns: 1fr; }
}

.editorial-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 26px 28px;
  box-shadow: 0 12px 32px rgba(0,42,84,.05);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.editorial-card-main {
  border-left: 4px solid var(--blue);
}

.editorial-card-signal {
  border-left: 4px solid var(--orange);
}

.editorial-card-editor {
  border-left: 4px solid #6f86a9;
}

.editorial-card .block-label {
  color: var(--orange);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 900;
}

.editorial-card-signal .block-label { color: var(--orange); }
.editorial-card-editor .block-label { color: #6f86a9; }
.editorial-card-main .block-label { color: var(--blue); }

.editorial-card h2 {
  margin: 0;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.2;
  color: var(--deep);
}

.editorial-card h3 {
  margin: 0;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: clamp(18px, 1.8vw, 22px);
  line-height: 1.25;
  color: var(--deep);
}

.editorial-subtitle {
  margin: 0;
  color: var(--blue);
  font-weight: 700;
  font-size: 15px;
}

.editorial-teaser {
  margin: 0;
  color: #31394b;
  font-size: 15px;
  line-height: 1.55;
}

.editorial-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.editorial-image-link {
  display: block;
  margin-top: 18px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--line);
}

.editorial-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.editorial-image-caption {
  background: #f3f7fc;
  color: var(--muted);
  padding: 10px 14px;
  font-size: 13px;
  border-top: 1px solid var(--line);
}

.editorial-side {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.editorial-side .editorial-card { padding: 22px 24px; }

.anchor-article {
  background: #f5f8fc;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px 16px;
  font-size: 14px;
  color: #31394b;
}

.anchor-article-label {
  color: var(--orange);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 11px;
  font-weight: 900;
  margin-bottom: 6px;
}

.anchor-article p {
  margin: 0;
  line-height: 1.55;
}

.anchor-article-link {
  color: var(--blue);
  text-decoration: none;
  border-bottom: 1px dashed rgba(0, 51, 102, .35);
  transition: border-color .14s, color .14s;
}

.anchor-article-link:hover {
  color: var(--deep);
  border-bottom-color: var(--orange);
}

.anchor-article-role {
  display: inline-block;
  background: var(--blue);
  color: #fff;
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 800;
  margin-bottom: 8px;
}

/* Key lines list / cards. */
.editorial-lines {
  margin-top: 32px;
}

.editorial-lines-title {
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: clamp(22px, 2.2vw, 28px);
  margin: 0 0 16px;
  color: var(--deep);
}

.editorial-lines-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.editorial-line-card {
  background: #fff;
  border: 1px solid var(--line);
  border-left: 3px solid var(--orange);
  border-radius: 12px;
  padding: 16px 18px;
}

.editorial-line-card h4 {
  margin: 0 0 6px;
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.25;
  color: var(--deep);
}

.editorial-line-card p {
  margin: 0;
  color: #31394b;
  font-size: 14px;
  line-height: 1.5;
}

/* ===== New mode: editorial pages (theme / signal / editor) ===== */

body.editorial-page .editorial-page-main {
  max-width: 860px;
  margin: 0 auto;
  padding: 36px 22px 56px;
}

body.editorial-page .editorial-page-main h1 {
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: clamp(28px, 3.6vw, 44px);
  line-height: 1.15;
  margin: 6px 0 14px;
  color: var(--deep);
}

body.editorial-page .editorial-page-main .lead {
  margin: 0 0 20px;
  font-size: 17px;
  color: #31394b;
  line-height: 1.55;
}

body.editorial-page .editorial-page-main .editorial-subtitle {
  margin: 4px 0 14px;
  color: var(--blue);
  font-weight: 700;
}

body.editorial-page .editorial-section {
  margin-top: 24px;
}

body.editorial-page .editorial-text p {
  margin: 0 0 16px;
  color: #1d263a;
  font-size: 16px;
  line-height: 1.65;
}

.editorial-theme-figure {
  margin: 18px 0 22px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--line);
}

.editorial-theme-figure figcaption {
  padding: 10px 14px;
  background: #f3f7fc;
  color: var(--muted);
  font-size: 13px;
  border-top: 1px solid var(--line);
}

.editorial-image-hero {
  width: 100%;
  height: auto;
  display: block;
}

.anchor-article-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.anchor-article-item .anchor-article {
  background: #fff;
}

.editorial-return-links {
  margin-top: 36px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}

.anchor-target {
  display: block;
  position: relative;
  top: -90px;
  height: 0;
  visibility: hidden;
}

/* Smooth scroll + anchor offset so hash links don't tuck under the sticky
   header. Header is ~96 px tall; 130 px gives a small breathing gap. */
html {
  scroll-behavior: smooth;
}

#editorial,
#sections,
#materials,
#top-sections,
#main-theme,
#signal-week,
#editor-word,
.content-section,
.article-card,
.editorial-section {
  scroll-margin-top: 130px;
}

/* Sticky left sidebar (TOC + passport + quick links) needs to start below
   the fixed header so the passport block is fully visible. */
.layout .sidebar {
  top: 130px;
}

.layout .sidebar .toc {
  max-height: calc(100vh - 230px);
}

/* ===== Compact hero for issue pages ===== */
/* The home hero (.site-home .hero) keeps its own bigger sizing; the issue
   hero is a working page header — smaller h1 and tighter padding. */

.issue-page .hero,
.issue-hero {
  background: var(--deep);
  color: #fff;
}

.issue-page .hero .hero-inner,
.issue-hero .hero-inner {
  padding-top: 30px;
  padding-bottom: 30px;
  gap: 30px;
  grid-template-columns: minmax(0, 1fr) 320px;
}

.issue-page .hero h1,
.issue-hero h1 {
  font-size: clamp(28px, 3.4vw, 48px);
  line-height: 1.08;
  letter-spacing: -.02em;
  max-width: 720px;
}

.issue-page .hero .hero-lead,
.issue-hero .hero-lead {
  font-size: 15px;
  margin-top: 14px;
  max-width: 640px;
}

.issue-page .hero .issue-tags,
.issue-hero .issue-tags {
  margin-bottom: 12px;
}

.issue-page .hero .hero-stats,
.issue-hero .hero-stats {
  margin-top: 22px;
  max-width: 640px;
}

.issue-page .hero .hero-stat strong,
.issue-hero .hero-stat strong {
  font-size: 24px;
}

.issue-page .hero .hero-stat,
.issue-hero .hero-stat {
  padding: 12px 16px;
}

.issue-page .hero .visual-image,
.issue-hero .visual-image {
  height: 220px;
}

@media (max-width: 1180px) {
  .issue-page .hero .hero-inner,
  .issue-hero .hero-inner {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .issue-page .hero h1,
  .issue-hero h1 { font-size: 26px; }
  .issue-page .hero .hero-inner,
  .issue-hero .hero-inner {
    padding-top: 22px;
    padding-bottom: 22px;
  }
}

/* Compact issue passport above the TOC in the left sidebar. */
.issue-passport {
  background: #fff;
  border: 1px solid var(--line);
  border-left: 3px solid var(--blue);
  border-radius: 12px;
  padding: 10px 14px;
  box-shadow: 0 6px 18px rgba(0, 42, 84, .05);
}

.issue-passport-label {
  color: var(--deep);
  font-family: Georgia, serif;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: .02em;
  line-height: 1.2;
}

.issue-passport-period {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .04em;
  line-height: 1.35;
}


/* ============================================================
 * v3 (17 мая 2026): главная страница — типографика + двухколоночный hero.
 * Группы Г1–Г6 добавляются последовательно. Подключение Google Fonts
 * (Source Serif 4 + IBM Plex Sans) выполняет render_index.py в <head>.
 * ============================================================ */


/* === Г1. Типографика — IBM Plex Sans для тела, Source Serif 4 для
       заголовков. Размеры/межстрочные интервалы — в группах ниже. ============ */

body,
.site-home,
.site-home body {
  font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  font-feature-settings: 'kern' 1, 'liga' 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4,
.section-head h2,
.brand-text small,
.issue-top h3,
.editorial-card h2,
.editorial-card h3 {
  font-family: 'Source Serif 4', Georgia, serif;
  font-feature-settings: 'kern' 1, 'liga' 1;
}

/* Меньше агрессии в кернинге на кириллических заголовках hero. Бьёт
   .site-home .hero h1 на стр. 92 (там -.02em) по source order. */
.hero h1,
.site-home .hero h1,
.theme-title {
  letter-spacing: -.015em;
}

/* Шапка и навигация — sans-serif. */
.brand .brand-text {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0;
  line-height: 1.3;
}

.brand .brand-text small {
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 10px;
  letter-spacing: .16em;
  font-weight: 500;
  margin-top: 5px;
}

.nav,
.site-nav {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 500;
  font-size: 14px;
}

/* Карточки архива под hero — серифный h3, плексовая мета. */
.issue-card .issue-top h3 {
  font-family: 'Source Serif 4', Georgia, serif;
  font-weight: 400;
  letter-spacing: -.01em;
}

.issue-card .issue-top small {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 600;
  letter-spacing: .14em;
}

.section-head h2 {
  font-weight: 400;
  letter-spacing: -.015em;
}

.meta strong {
  font-family: 'Source Serif 4', Georgia, serif;
}


/* === Г2. Hero-grid: двухколоночная сетка для new-mode hero.
       Селектор .site-home .hero-inner.home-hero-grid (специфичность 0,3,0)
       перебивает существующий .site-home .hero-inner на стр. 112 (0,2,0). ========= */

.site-home .hero-inner.home-hero-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 32px;
  align-items: start;
  padding-top: 44px;
  padding-bottom: 48px;
}

.home-hero-left {
  min-width: 0;
}

.home-hero-right {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}


/* === Г3. Левая колонка hero: kicker (override), project-title/lead,
       theme-title/lead, hero-actions, btn.primary override, text-link.
       Селектор .site-home .hero .theme-title (0,3,0) перебивает существующий
       .site-home .hero h1 (стр. 92, 0,2,1) по font-size и letter-spacing —
       иначе размер заголовка темы зажимался бы до clamp(28px, 3.4vw, 44px). === */

.site-home .hero .kicker {
  color: var(--orange);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 28px;
  font-family: 'IBM Plex Sans', sans-serif;
}

.project-title {
  font-family: 'Source Serif 4', Georgia, serif;
  font-weight: 400;
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.15;
  color: rgba(255, 255, 255, .82);
  letter-spacing: -.01em;
  margin: 0 0 14px;
}

.project-lead {
  margin: 0 0 36px;
  max-width: 540px;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255, 255, 255, .58);
}

.site-home .hero .theme-title {
  margin: 0 0 18px;
  font-family: 'Source Serif 4', Georgia, serif;
  font-weight: 400;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.08;
  letter-spacing: -.018em;
  color: #fff;
  max-width: 720px;
}

.theme-lead {
  margin: 0 0 32px;
  font-size: 17px;
  line-height: 1.55;
  color: rgba(255, 255, 255, .78);
  max-width: 640px;
  font-weight: 400;
}

.site-home .hero-actions {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.site-home .btn.primary {
  padding: 14px 26px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .01em;
  font-family: 'IBM Plex Sans', sans-serif;
  background: transparent;
  border: 1px solid var(--orange);
  color: var(--orange);
  transition: background 0.2s ease;
}

.site-home .btn.primary:hover {
  background: rgba(var(--orange-rgb), 0.12);
}

.text-link {
  color: rgba(255, 255, 255, .72);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, .2);
  padding-bottom: 2px;
  transition: color .15s, border-color .15s;
}

.text-link:hover {
  color: var(--orange);
  border-color: var(--orange);
}


/* === Г4. Passport-stack (правая колонка): обёртка ps-card, типографская
       обложка ps-cover-typo, паспорт выпуска (издательская строка),
       редакционная пара ps-signal + ps-editor. Все классы — собственные,
       коллизий со специфичностью существующих правил нет. =================== */

.ps-card {
  display: block;
  background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 14px;
  padding: 18px 20px;
  color: #fff;
  text-decoration: none;
  transition: background .18s, border-color .18s, transform .18s;
}

a.ps-card:hover {
  background: rgba(255, 255, 255, .11);
  border-color: rgba(255, 255, 255, .32);
  transform: translateY(-1px);
}

.ps-card-label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--orange);
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-weight: 900;
  margin-bottom: 12px;
}

.ps-label-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.ps-card-cta {
  display: inline-block;
  margin-top: 12px;
  color: var(--orange);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
}

/* Типографская обложка — большой №, дата, тег, геометрический акцент. */
.ps-cover {
  padding: 0;
  overflow: hidden;
}

.ps-cover-typo-media {
  position: relative;
  width: 100%;
  min-height: 200px;
  padding: 24px 22px 28px;
  background:
    radial-gradient(circle at 85% 12%, rgba(255, 122, 26, .18), transparent 55%),
    linear-gradient(135deg, #001a4a 0%, #0a2e6e 70%, #082c5f 100%);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
}

.ps-cover-typo-media::after {
  content: "";
  position: absolute;
  right: -40px;
  top: -40px;
  width: 160px;
  height: 160px;
  border: 1px solid rgba(255, 122, 26, .22);
  border-radius: 50%;
  pointer-events: none;
}

.ps-cover-typo-media::before {
  content: "";
  position: absolute;
  right: 18px;
  top: 18px;
  width: 64px;
  height: 64px;
  border: 1px solid rgba(255, 122, 26, .38);
  border-radius: 50%;
  pointer-events: none;
}

.ps-cover-typo-meta {
  color: var(--orange);
  font-size: 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 700;
  position: relative;
  z-index: 2;
}

.ps-cover-typo-num {
  font-family: 'Source Serif 4', Georgia, serif;
  font-weight: 400;
  font-size: 88px;
  line-height: .9;
  color: #fff;
  letter-spacing: -.04em;
  margin: 18px 0 6px;
  position: relative;
  z-index: 2;
}

.ps-cover-typo-date {
  color: rgba(255, 255, 255, .82);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .04em;
  margin-bottom: 14px;
  position: relative;
  z-index: 2;
}

/* Журнальная подстрока обложки. Опциональный элемент: рендерится только если
   editorial.main_theme.cover_line непустой (render_index.py, conditional html).
   text-transform: none явно — защита от потенциального наследования caps от
   соседних .ps-cover-typo-* при будущих правках. */
.ps-cover-line {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .78);
  text-transform: none;
  position: relative;
  z-index: 2;
}

.ps-cover-typo-tag {
  color: rgba(255, 255, 255, .42);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 600;
  position: relative;
  z-index: 2;
}

.ps-cover-foot {
  padding: 14px 18px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  border-top: 1px solid rgba(255, 255, 255, .12);
}

.ps-cover-foot .ps-card-label {
  margin-bottom: 0;
}

.ps-cover-cta {
  color: var(--orange);
  font-size: 13px;
  font-weight: 800;
}

/* Паспорт выпуска — издательская выходная строка. Две текстовые строки
   вместо прежней приборной панели. Класс .ps-card снят в HTML (правка 3a),
   поэтому color задаётся явно. Разделитель ::before и margin-top — в правиле
   .home-hero-left .ps-passport ниже (правка 7 предыдущего пакета). */
.ps-passport-line {
  margin: 0 0 4px;
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .78);
}

.ps-passport-meta {
  margin: 0;
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 400;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .78);
}

/* Редакционная пара — сигнал недели + слово редактора. */
.ps-editorial-row {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 14px;
}

.ps-signal {
  background: rgba(255, 122, 26, .08);
  border-color: rgba(255, 122, 26, .42);
  border-left: 3px solid var(--orange);
  padding-left: 22px;
  position: relative;
  overflow: hidden;
}

.ps-signal::after {
  content: "";
  position: absolute;
  right: -20px;
  bottom: -10px;
  width: 130px;
  height: 90px;
  background:
    linear-gradient(45deg, transparent 48%, rgba(255, 122, 26, .55) 49%, rgba(255, 122, 26, .55) 51%, transparent 52%),
    radial-gradient(circle at 80% 30%, rgba(255, 122, 26, .25), transparent 60%);
  pointer-events: none;
  opacity: .9;
}

a.ps-signal:hover {
  background: rgba(255, 122, 26, .14);
  border-color: rgba(255, 122, 26, .65);
}

.ps-signal-title,
.ps-editor-title {
  margin: 0 0 8px;
  font-family: 'Source Serif 4', Georgia, serif;
  font-weight: 400;
  font-size: 17px;
  line-height: 1.25;
  letter-spacing: -.01em;
  color: #fff;
}

.ps-signal-title {
  position: relative;
  z-index: 1;
  color: var(--orange);
}

.ps-signal-lead {
  margin: 0;
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .78);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.ps-editor .ps-card-label {
  color: #8aa3c4;
}

.ps-editor-text {
  margin: 0;
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .78);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}


.home-hero-left .ps-passport {
  margin-top: 18px;
}


/* === Г6. Mobile breakpoints для main-page hero.
       1180px — сетка hero сворачивается в один столбец;
       селектор .site-home .hero-inner.home-hero-grid (0,3,0) перебивает
       существующий .site-home .hero-inner (стр. 168, 0,2,0).
       680px — паспортная сетка переходит на 3 колонки, редакционная пара —
       в столбик. Правило для .ps-cover-media из hand-CSS пропущено:
       класс не используется (обложка теперь .ps-cover-typo-media). ========= */

@media (max-width: 1180px) {
  .site-home .hero-inner.home-hero-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .home-hero-right {
    max-width: 560px;
  }
}

@media (max-width: 680px) {
  .ps-editorial-row {
    grid-template-columns: 1fr;
  }
}


/* === Г8. Аватарка hero на странице выпуска — общий override для ОБОИХ
       режимов (new-mode hero №17/18 с theme-ссылкой <a>, archive-mode hero
       без ссылки <div>). Переиспользует .ps-cover-typo-media из главной.
       Декоративные круги (::before/::after) уместны на главной с
       асимметричной композицией, но не на центрированной аватарке выпуска —
       скрываем в контексте .hero-visual. Номер центрируется локально; на
       главной выравнивание остаётся стандартным. Селектор универсальный —
       обслуживает обе ветки render_issue.py:hero_visual. ================== */

.hero-visual .ps-cover-typo-media::before,
.hero-visual .ps-cover-typo-media::after {
  display: none;
}

.hero-visual .ps-cover-typo-num {
  text-align: center;
}


/* === Г9. Навигация по годам в .summary-card на archive.html.
       Три chip-ссылки ведут к якорям #y-YYYY у h2.year-title (render_archive.py).
       Стиль вторит outline-кнопке .site-home .btn.primary: прозрачный
       фон, оранжевая обводка, оранжевый текст, мягкий hover-tint. Сериф
       перекликается с .ps-cover-typo-num на обложках выпусков. Горизонтальный
       flex с wrap — на узких экранах переносится во вторую строку. =========== */

.year-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.year-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 64px;
  padding: 8px 14px;
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: -.01em;
  color: var(--orange);
  background: transparent;
  border: 1px solid var(--orange);
  border-radius: 8px;
  text-decoration: none;
  transition: background 0.2s ease;
}

.year-chip:hover {
  background: rgba(var(--orange-rgb), 0.12);
}


/* === Г10. Кредитная строка авторов-составителей на archive.html.
       Расположение: между h1 и .hero-actions. Перекликается с kicker
       "АРХИВ" сверху страницы. ============================================= */

.credits {
  margin: 6px 0 18px;
}

.credits .kicker {
  margin-bottom: 4px;
}

.credits p {
  margin: 0;
  font-size: 15px;
  line-height: 1.45;
  color: rgba(255,255,255,0.78);
  max-width: 640px;
}


/* === Г11. Floating "наверх" в правом нижнем углу archive.html.
       Появляется при скролле > 400px вниз через JS-сниппет в render_archive.py
       (inline в конце <body>). Тёмно-синий фон --deep с оранжевой стрелкой,
       круглая. На мобильных уменьшается до 42px и сдвигается ближе к краю. */

.back-to-top {
  position: fixed;
  bottom: 28px;
  right: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  background: var(--deep);
  color: var(--orange);
  border: 1px solid var(--orange);
  border-radius: 8px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .02em;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, background 0.2s ease;
  z-index: 100;
}

.back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.back-to-top:hover {
  background: rgba(var(--orange-rgb), 0.18);
}

@media (max-width: 640px) {
  .back-to-top {
    bottom: 20px;
    right: 20px;
    padding: 10px 16px;
    font-size: 13px;
  }
}


/* === Г12. Scroll offset для anchor-навигации по годам на archive.html.
       Header sticky сверху (~70px), без offset якорь скроллит h2.year-title
       впритык под header — пользователь не видит сам заголовок года.
       scroll-margin-top сдвигает целевой элемент вниз при якорной прокрутке. */

.year-title {
  scroll-margin-top: 90px;
}
