/*
Theme Name: Тетрадь
Theme URI: https://notemedia.live
Author: Тетрадь
Description:
Version: 4.4
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: tetrad
*/

/* ---------- Design tokens ---------- */
:root{
  --paper: #EFEAD9;
  --paper-line: #DFD8C2;
  --ink: #111110;
  --ink-soft: #4A4740;
  --mint: #00FFA3;
  --mint-deep: #06875A;
  --rule: #C63C2E;
  --forest: #0E3B2B;
  --forest-line: #1E5A44;

  --font-display: "Unbounded", "Arial Narrow", sans-serif;
  --font-body: "PT Serif", Georgia, serif;
  --font-mono: "JetBrains Mono", "Courier New", monospace;

  --margin: 76px;
  --margin-mobile: 44px;
  --maxw: 920px;
}

/* ---------- Reset-ish ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; }
body{
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.55;
}
img{ max-width: 100%; display: block; }
a{ color: inherit; }
ul{ margin: 0; padding: 0; list-style: none; }
h1,h2,h3,h4{ font-family: var(--font-display); margin: 0 0 .5em; line-height: 1.15; font-weight: 600; }
p{ margin: 0 0 1.1em; }
:focus-visible{ outline: 3px solid var(--mint-deep); outline-offset: 2px; }

.wrap{ max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }

/* The notebook margin rule — appears once, as the site's structural signature */
.paper{
  position: relative;
  padding-left: var(--margin);
  border-left: 2px solid var(--rule);
}
@media (max-width: 640px){
  .paper{ padding-left: var(--margin-mobile); margin-left: 12px; }
}

/* ---------- Buttons ---------- */
.btn-support{
  display: inline-flex;
  align-items: center;
  gap: .5em;
  background: var(--mint);
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .95rem;
  padding: .8em 1.3em;
  border-radius: 4px;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .12s ease, background .12s ease;
}
.btn-support:hover{ background: var(--mint-deep); color: #fff; transform: translateY(-1px); }
.btn-support .mark{ font-family: var(--font-display); }

.btn-support--hero{
  font-size: 1.1rem;
  padding: 1em 1.6em;
}

/* ---------- Header ---------- */
.site-header{
  background: var(--paper);
  border-bottom: 2px solid var(--ink);
}
.site-header .wrap{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 22px;
  padding-bottom: 22px;
  flex-wrap: wrap;
}
.site-branding{
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}
.site-branding img{ height: 34px; width: auto; }
.site-branding .name{
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: .01em;
}
.primary-nav ul{ display: flex; gap: 22px; flex-wrap: wrap; }
.primary-nav a{
  text-decoration: none;
  font-family: var(--font-mono);
  font-size: .9rem;
  border-bottom: 2px solid transparent;
  padding-bottom: 2px;
}
.primary-nav a:hover{ border-bottom-color: var(--rule); }
.header-actions{ display:flex; align-items:center; gap: 18px; }

.menu-toggle{ display:none; }
@media (max-width: 780px){
  .primary-nav{ order: 3; width: 100%; }
  .primary-nav ul{ gap: 14px; }
}

/* ---------- Image cards ---------- */
.card{
  position: relative;
  display: block;
  border-radius: 4px;
  overflow: hidden;
  background-color: var(--forest);
  background-image: linear-gradient(155deg, #123A2C 0%, #0B0B0B 100%);
  background-size: cover;
  background-position: center;
  text-decoration: none;
  color: #fff;
}
.card::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6,8,7,.62) 0%, rgba(6,8,7,.78) 100%);
}
.card-content{
  position: relative;
  z-index: 1;
  padding: 22px 24px;
  min-height: 100%;
  display: flex;
  flex-direction: column;
}
.card-top{ display: block; }
.card-middle{ flex: 1; display: flex; flex-direction: column; justify-content: center; }
.card .post-cat{ color: var(--mint); }
.card .post-date{
  font-family: var(--font-mono);
  font-size: .78rem;
  color: #C9DCD3;
  margin-bottom: .4em;
}
.card h2, .card h1{ color: #fff; margin-bottom: .3em; }
.card .excerpt{ color: #E4E9E6; font-size: .95rem; }

.card--featured{ min-height: 420px; margin-bottom: 40px; }
.card--featured .card-content{ padding: 40px; }
.card--featured .eyebrow-mark{ font-family: var(--font-display); color: var(--mint); display:inline-block; margin-right: 12px; }
.card--featured h1{ font-size: clamp(1.9rem, 4.6vw, 3rem); max-width: 16ch; }
.card--featured .excerpt{ font-size: 1.1rem; max-width: 58ch; margin-top: 10px; }

/* ---------- Sections by category ---------- */
.section{ padding: 8px 0 44px; }
.section-title{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
  border-bottom: 2px solid var(--ink);
  padding-bottom: 10px;
}
.section-title h2{ font-size: 1.2rem; margin: 0; }
.section-title a{
  font-family: var(--font-mono);
  font-size: .82rem;
  text-decoration: none;
  color: var(--mint-deep);
  white-space: nowrap;
}
.card-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.card-grid .card{ min-height: 260px; }
@media (max-width: 900px){
  .card-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px){
  .card-grid{ grid-template-columns: 1fr; }
  .card--featured{ min-height: 320px; }
  .card--featured .card-content{ padding: 26px; }
}

/* ---------- Single post ---------- */
.article-header{ padding: 48px 0 8px; }
.article-header .post-cat{ font-size: .85rem; }
.article-header h1{ font-size: clamp(1.8rem, 4vw, 2.6rem); }
.article-meta{
  font-family: var(--font-mono);
  font-size: .85rem;
  color: var(--ink-soft);
  margin: 10px 0 30px;
}
.translation-credit{
  font-family: var(--font-mono);
  font-size: .82rem;
  color: var(--ink-soft);
  background: var(--paper-line);
  display: inline-block;
  padding: 6px 12px;
  border-radius: 3px;
  margin: -14px 0 24px;
}
.translation-credit a{ color: var(--mint-deep); }
.article-body{ padding-bottom: 40px; font-size: 1.08rem; }
.article-body p{ margin-bottom: 1.3em; }
.article-body h2{ font-size: 1.4rem; margin-top: 1.6em; }
.article-body h3{ font-size: 1.15rem; margin-top: 1.4em; }
.article-body img{ margin: 1.4em 0; border-radius: 2px; }
.article-thumb{ margin: 0 0 8px; }
.article-thumb img{ width: 100%; height: auto; display: block; border-radius: 4px; margin: 0; }
.article-thumb figcaption{
  font-family: var(--font-mono);
  font-size: .82rem;
  color: var(--ink-soft);
  border-left: 2px solid var(--rule);
  padding: 4px 0 0 10px;
  margin: 8px 0 0;
}
.article-body blockquote{
  border-left: 3px solid var(--mint-deep);
  margin: 1.6em 0;
  padding: .2em 0 .2em 1.2em;
  font-style: italic;
  color: var(--ink-soft);
}
.article-body a{ color: var(--mint-deep); text-decoration-thickness: 1.5px; }

.article-support{
  background: var(--ink);
  color: var(--paper);
  padding: 28px 32px;
  margin: 8px 0 40px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.article-support p{ margin: 0; max-width: 42ch; }

/* ---------- Glossary tooltip ---------- */
.glossary-term{
  border-bottom: 1px dashed var(--mint-deep);
  cursor: help;
  position: relative;
}
.glossary-popup{
  position: absolute;
  left: 0;
  top: 100%;
  margin-top: 8px;
  z-index: 5;
  background: var(--ink);
  color: #fff;
  font-family: var(--font-mono);
  font-size: .82rem;
  line-height: 1.45;
  padding: 10px 14px;
  border-radius: 4px;
  max-width: 260px;
  white-space: normal;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.glossary-popup::before{
  content: "";
  position: absolute;
  top: -5px; left: 14px;
  border: 5px solid transparent;
  border-bottom-color: var(--ink);
}

/* ---------- Ad banner ---------- */
.ad-banner{ margin: 8px 0 32px; }
.ad-banner .ad-label{
  display: block;
  font-family: var(--font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--ink-soft);
  margin-bottom: 6px;
}
.ad-banner img{ width: 100%; border-radius: 4px; }

/* ---------- Author page & byline ---------- */
.author-header{
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 48px 0 32px;
  flex-wrap: wrap;
}
.author-avatar{ width: 84px; height: 84px; border-radius: 50%; object-fit: cover; }
.author-header h1{ font-size: 1.6rem; margin-bottom: .2em; }
.author-bio{ color: var(--ink-soft); max-width: 60ch; margin: 6px 0 10px; }
.author-socials{ display: flex; gap: 14px; flex-wrap: wrap; }
.author-socials a{
  font-family: var(--font-mono);
  font-size: .82rem;
  color: var(--mint-deep);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

.entry-author-link{ text-decoration: none; border-bottom: 1px dotted currentColor; }

.author-bio-box{
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: var(--paper-line);
  border-radius: 4px;
  padding: 20px;
  margin: 8px 0 40px;
}
.author-bio-box .author-avatar{ width: 56px; height: 56px; flex-shrink: 0; }
.author-bio-box .name{ font-family: var(--font-display); font-weight: 600; margin-bottom: 4px; display:block; }
.author-bio-box .bio{ font-size: .95rem; color: var(--ink-soft); margin: 0 0 8px; }
.author-bio-box .author-socials a{ font-size: .78rem; }

/* ---------- Homepage slider ---------- */
.hero-slider{ position: relative; min-height: 420px; margin-bottom: 40px; }
.hero-slider .card--featured{
  position: absolute;
  inset: 0;
  margin-bottom: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity .5s ease;
}
.hero-slider .card--featured.is-active{ opacity: 1; visibility: visible; position: relative; }
.slider-dots{
  position: absolute;
  z-index: 3;
  bottom: 18px;
  right: 24px;
  display: flex;
  gap: 8px;
}
.slider-dots button{
  width: 9px; height: 9px;
  border-radius: 50%;
  border: none;
  padding: 0;
  background: rgba(255,255,255,.4);
  cursor: pointer;
}
.slider-dots button.is-active{ background: var(--mint); }
@media (max-width: 620px){
  .hero-slider{ min-height: 320px; }
}

/* ---------- Page ---------- */
.page-header{ padding: 48px 0 8px; }
.page-body{ padding-bottom: 48px; font-size: 1.05rem; }

/* ---------- Footer ---------- */
.site-footer{
  background: var(--forest);
  color: #DCEDE5;
  padding: 48px 0 30px;
  margin-top: 24px;
}
.site-footer .wrap{
  display: flex;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.footer-brand{ display:flex; align-items:center; gap: 10px; }
.footer-brand img{ height: 26px; }
.footer-nav ul{ display:flex; gap: 18px; flex-wrap: wrap; }
.footer-nav a{ text-decoration: none; font-family: var(--font-mono); font-size: .85rem; color: #B8D8C8; }
.footer-nav a:hover{ color: var(--mint); }
.footer-fine{
  font-family: var(--font-mono);
  font-size: .75rem;
  color: #7FA694;
  margin-top: 22px;
  width: 100%;
}

/* ---------- Misc ---------- */
.pagination{ display:flex; gap: 14px; padding: 20px 0 60px; font-family: var(--font-mono); font-size: .9rem; }
.pagination a, .pagination span{ text-decoration: none; padding: 6px 10px; border: 1px solid var(--paper-line); border-radius: 3px; }
.pagination .current{ background: var(--ink); color: var(--paper); }
.not-found{ padding: 60px 0; }
.screen-reader-text{ position:absolute; left:-9999px; }


/* ---------- Social links ---------- */
.social-links{ display:flex; flex-wrap:wrap; gap:10px; }
.social-links a{
  display:inline-flex; align-items:baseline; gap:.6em;
  font-family: var(--font-mono); font-size:.88rem;
  text-decoration:none; padding:.55em .9em;
  border:2px solid var(--ink); border-radius:4px;
  transition: background .12s ease, color .12s ease, transform .12s ease;
}
.social-links a:hover{ background:var(--mint); transform: translateY(-1px); }
.social-name{ font-weight:500; }
.social-handle{ color: var(--ink-soft); font-size:.8rem; }
.social-arrow{ font-size:.8rem; }

/* ---------- Homepage: latest feed ---------- */
.latest-list{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1fr 1fr; column-gap:36px;
}
.latest-list li{ border-bottom:1px solid var(--paper-line); }
.latest-list a{ display:block; text-decoration:none; padding:14px 0; }
.latest-list a:hover .latest-title{ text-decoration:underline; text-decoration-color:var(--rule); text-decoration-thickness:2px; text-underline-offset:3px; }
.latest-meta{ display:flex; gap:12px; align-items:baseline; font-family:var(--font-mono); font-size:.78rem; color:var(--ink-soft); margin-bottom:4px; }
.latest-meta .post-cat{ color:var(--mint-deep); }
.latest-title{ font-family:var(--font-display); font-weight:600; font-size:1rem; line-height:1.3; }

/* ---------- Homepage: mosaic (one big card + two) ---------- */
.card-grid--mosaic, .card-grid--mosaic-rev{
  grid-template-columns: 1.7fr 1fr;
  grid-template-rows: repeat(2, minmax(230px, auto));
}
.card-grid--mosaic .card:first-child,
.card-grid--mosaic-rev .card:first-child{ grid-row: span 2; }
.card-grid--mosaic .card:first-child h2,
.card-grid--mosaic-rev .card:first-child h2{ font-size: clamp(1.4rem, 3vw, 2rem); max-width: 18ch; }
.card-grid--mosaic .card, .card-grid--mosaic-rev .card{ min-height: 230px; }
.card-grid--mosaic-rev{ grid-template-columns: 1fr 1.7fr; }
.card-grid--mosaic-rev .card:first-child{ grid-column: 2; grid-row: 1 / span 2; }
.card-grid--mosaic-rev .card:nth-child(2){ grid-column: 1; grid-row: 1; }
.card-grid--mosaic-rev .card:nth-child(3){ grid-column: 1; grid-row: 2; }
.card-grid--mosaic .card:first-child .card-middle,
.card-grid--mosaic-rev .card:first-child .card-middle{ justify-content:flex-end; }

/* ---------- Homepage: news rows ---------- */
.news-rows{ list-style:none; margin:0; padding:0; }
.news-rows li{ border-bottom:1px solid var(--paper-line); }
.news-rows a{ display:grid; grid-template-columns: 110px 1fr; gap:18px; padding:16px 0; text-decoration:none; align-items:baseline; }
.news-rows .post-date{ font-family:var(--font-mono); font-size:.8rem; color:var(--ink-soft); }
.news-row-title{ display:block; font-family:var(--font-display); font-weight:600; font-size:1.05rem; line-height:1.3; margin-bottom:4px; }
.news-row-excerpt{ display:block; font-size:.92rem; color:var(--ink-soft); }
.news-rows a:hover .news-row-title{ text-decoration:underline; text-decoration-color:var(--rule); text-decoration-thickness:2px; text-underline-offset:3px; }

/* ---------- Homepage: opinion voices ---------- */
.voices{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.voice{
  display:flex; flex-direction:column; gap:12px;
  background:var(--paper-line); border-radius:4px; padding:20px;
  text-decoration:none; border-left:3px solid var(--mint-deep);
  transition: transform .12s ease;
}
.voice:hover{ transform: translateY(-2px); }
.voice-author{ display:flex; align-items:center; gap:10px; font-family:var(--font-mono); font-size:.85rem; }
.voice-author .author-avatar{ width:44px; height:44px; }
.voice-title{ font-family:var(--font-display); font-weight:600; font-size:1.05rem; line-height:1.3; flex:1; }
.voice .post-date{ font-family:var(--font-mono); font-size:.78rem; color:var(--ink-soft); }

/* ---------- Homepage: social band ---------- */
.social-band{
  background:var(--ink); color:var(--paper);
  border-radius:4px; padding:30px 32px; margin:8px 0 44px;
  display:flex; flex-direction:column; gap:20px;
}
.social-band h2{ font-size:1.25rem; margin:0 0 .3em; }
.social-band p{ margin:0; max-width:52ch; color:#CFCBBB; font-size:.98rem; }
.social-links--band a{ border-color:var(--paper); color:var(--paper); }
.social-links--band a:hover{ background:var(--mint); border-color:var(--mint); color:var(--ink); }
.social-links--band .social-handle{ color:#A9A594; }
.social-links--band a:hover .social-handle{ color:var(--ink); }

/* ---------- Homepage: about ---------- */
.about-grid{ display:grid; grid-template-columns: 1.2fr 1fr; gap:36px; align-items:start; }
.about-lead{ font-size:1.12rem; max-width:52ch; }
.about-facts{ margin:0; font-size:.95rem; }
.about-facts dt{ font-family:var(--font-mono); font-size:.78rem; color:var(--ink-soft); margin-top:12px; }
.about-facts dd{ margin:2px 0 0; }
.about-facts a{ color:var(--mint-deep); text-decoration-thickness:1.5px; }
.team{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.team a{
  display:grid; grid-template-columns:48px 1fr; column-gap:14px; align-items:center;
  padding:10px 0; border-bottom:1px solid var(--paper-line); text-decoration:none;
}
.team .author-avatar{ width:48px; height:48px; grid-row: span 2; }
.team-name{ font-family:var(--font-display); font-weight:600; font-size:.95rem; }
.team-role{ font-family:var(--font-mono); font-size:.78rem; color:var(--ink-soft); }
.team a:hover .team-name{ text-decoration:underline; text-decoration-color:var(--rule); text-decoration-thickness:2px; }

/* ---------- Footer links ---------- */
.footer-links{ width:100%; display:flex; flex-direction:column; gap:16px; padding-top:22px; border-top:1px solid var(--forest-line); }
.footer-pages{ display:flex; gap:18px; flex-wrap:wrap; }
.footer-pages a{ text-decoration:none; font-family:var(--font-mono); font-size:.85rem; color:#B8D8C8; }
.footer-pages a:hover{ color:var(--mint); }
.social-links--footer a{ border-width:1px; border-color:var(--forest-line); color:#B8D8C8; font-size:.82rem; }
.social-links--footer a:hover{ background:var(--mint); border-color:var(--mint); color:var(--ink); }

@media (max-width: 900px){
  .about-grid{ grid-template-columns:1fr; }
  .voices{ grid-template-columns:1fr; }
}
@media (max-width: 780px){
  .latest-list{ grid-template-columns:1fr; }
  .card-grid--mosaic, .card-grid--mosaic-rev{ grid-template-columns:1fr; grid-template-rows:none; }
  .card-grid--mosaic .card:first-child,
  .card-grid--mosaic-rev .card:first-child,
  .card-grid--mosaic-rev .card:nth-child(2),
  .card-grid--mosaic-rev .card:nth-child(3){ grid-column:auto; grid-row:auto; }
  .card-grid--mosaic .card:first-child, .card-grid--mosaic-rev .card:first-child{ min-height:300px; }
}
@media (max-width: 620px){
  .news-rows a{ grid-template-columns:1fr; gap:4px; }
  .social-band{ padding:24px 22px; }
}


/* ---------- Homepage hero: compact slider + "Свежее" column ---------- */
.hero-layout{
  display:grid;
  grid-template-columns: minmax(0,1.9fr) minmax(0,1fr);
  gap:18px;
  align-items:stretch;
  margin-bottom:40px;
}
.hero-layout .hero-slider{ min-height:340px; margin-bottom:0; }
.hero-layout .card--featured{ min-height:340px; margin-bottom:0; }
.hero-layout .card--featured .card-content{ padding:26px 28px; }
.hero-layout .card--featured h1{
  font-size: clamp(1.35rem, 2.6vw, 1.85rem);
  line-height:1.2;
  max-width:26ch;
}
.hero-layout .card--featured .excerpt{ font-size:.95rem; max-width:48ch; margin-top:6px; }
.hero-layout .card--featured .card-middle{ justify-content:flex-end; }
.hero-layout .slider-dots{ bottom:16px; right:18px; }

.hero-latest{
  background:var(--paper-line);
  border-radius:4px;
  padding:18px 20px 6px;
  border-top:3px solid var(--mint-deep);
}
.hero-latest-title{ font-size:1rem; margin:0 0 6px; }
.hero-latest ol{ list-style:none; margin:0; padding:0; }
.hero-latest li{ border-bottom:1px solid rgba(17,17,16,.14); }
.hero-latest li:last-child{ border-bottom:0; }
.hero-latest a{ display:block; text-decoration:none; padding:11px 0; }
.hero-latest .latest-meta{ display:flex; gap:10px; align-items:baseline; font-family:var(--font-mono); font-size:.74rem; color:var(--ink-soft); margin-bottom:3px; }
.hero-latest .latest-meta .post-cat{ color:var(--mint-deep); font-size:.74rem; }
.hero-latest .latest-title{ font-family:var(--font-display); font-weight:600; font-size:.88rem; line-height:1.3; display:block; }
.hero-latest a:hover .latest-title{ text-decoration:underline; text-decoration-color:var(--rule); text-decoration-thickness:2px; text-underline-offset:3px; }

@media (max-width: 860px){
  .hero-layout{ grid-template-columns:1fr; }
  .hero-layout .hero-slider, .hero-layout .card--featured{ min-height:300px; }
}
@media (max-width: 620px){
  .hero-layout .card--featured .excerpt{ display:none; }
  .hero-layout .card--featured .card-content{ padding:22px; }
}


/* ---------- Opinion cards: cover under a translucent paper veil ---------- */
.voice{
  position:relative; overflow:hidden; isolation:isolate;
  background-color:var(--paper-line); background-size:cover; background-position:center;
}
.voice::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(223,216,194,.84);
  transition: background .15s ease;
}
.voice:hover::before{ background:rgba(223,216,194,.78); }

/* ---------- Author on opinion card covers (category pages etc.) ---------- */
.card-author{
  display:flex; align-items:center; gap:10px; margin-top:12px;
  font-family:var(--font-mono); font-size:.82rem; color:#fff;
}
.card-author .author-avatar{ width:36px; height:36px; border:2px solid var(--mint); }

/* ---------- Article hero: full-bleed cover darkened from below ---------- */
.article-hero{
  position:relative; overflow:hidden; isolation:isolate;
  width:100%; margin:0;
  min-height: clamp(480px, 78vh, 780px);
  display:flex; align-items:flex-end;
  color:#fff;
  background-color:var(--forest);
  background-image:linear-gradient(155deg,#123A2C 0%,#0B0B0B 100%);
  background-size:cover; background-position:center;
}
.article-hero--dark::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(6,8,7,.74) 0%, rgba(6,8,7,.80) 45%, rgba(6,8,7,.92) 100%);
}
/* без затемнения — текст читается за счёт тени */
.article-hero:not(.article-hero--dark):not(.article-hero--bottom) .article-hero-content{ text-shadow:0 2px 14px rgba(0,0,0,.65), 0 0 2px rgba(0,0,0,.5); }
.article-hero-content{
  width:100%; max-width:1180px; margin:0 auto;
  padding:60px 32px 56px;
  text-align:center;
}
.article-hero .post-cat{ color:var(--mint); display:inline-block; margin-bottom:16px; font-size:.95rem; }
.article-hero h1{
  color:#fff; line-height:1.12;
  max-width:none; margin:0 auto .5em;
  font-size:clamp(1.6rem, 5vw, 2.45rem);   /* по умолчанию; ниже — по длине заголовка */
}
.article-hero h1.entry-title--xs { font-size:clamp(2.2rem, 7vw, 4.2rem); }
.article-hero h1.entry-title--s  { font-size:clamp(2rem, 6vw, 3.5rem); }
.article-hero h1.entry-title--m  { font-size:clamp(1.8rem, 5.2vw, 2.9rem); }
.article-hero h1.entry-title--l  { font-size:clamp(1.6rem, 4.4vw, 2.45rem); }
.article-hero h1.entry-title--xl { font-size:clamp(1.45rem, 3.8vw, 2.1rem); }
.article-hero h1.entry-title--xxl{ font-size:clamp(1.3rem, 3.2vw, 1.8rem); }
.article-hero-excerpt{
  font-style:italic; font-size:clamp(1.05rem,2vw,1.4rem); line-height:1.45;
  color:#EEF2EF; max-width:46em; margin:0 auto 22px;
}
.article-hero .article-meta{ color:#C9DCD3; margin:0; font-size:.9rem; justify-content:center; }
.article-hero .entry-author-link{ color:#fff; }

/* ---------- Article: reading column ---------- */
.wrap--read{ max-width:900px; padding-top:0; }
.read-col{ max-width:720px; }
.read-col > .article-header:not(.article-header--after-hero){ padding-top:40px; }
.article-hero-caption{
  font-family:var(--font-mono); font-size:.8rem; color:var(--ink-soft);
  border-left:2px solid var(--rule); padding:2px 0 0 10px; margin:14px 0 0;
}
.article-header--after-hero{ padding:0; }
.article-header--after-hero .translation-credit{ margin:28px 0 0; }

.read-col .article-body{ font-size:1.3rem; line-height:1.72; padding:40px 0 48px; }
.read-col .article-body > :first-child{ margin-top:0; }
.read-col .article-body p{ margin-bottom:1.35em; }
.read-col .article-body > p:first-of-type{ font-size:1.38rem; }
.read-col .article-body h2{ font-size:1.7rem; margin-top:1.9em; }
.read-col .article-body h3{ font-size:1.35rem; margin-top:1.6em; }
.read-col .article-body ul,
.read-col .article-body ol{ margin:0 0 1.35em 1.3em; }
.read-col .article-body ul{ list-style:disc; }
.read-col .article-body ol{ list-style:decimal; }
.read-col .article-body li{ margin-bottom:.4em; }
.read-col .article-body blockquote{ font-size:1.3rem; }
.read-col .article-body img{ width:100%; height:auto; margin:1.8em 0; }
.read-col .article-body figcaption{ font-family:var(--font-mono); font-size:.8rem; color:var(--ink-soft); }

@media (max-width:640px){
  .article-hero{ min-height:clamp(420px, 68vh, 560px); }
  .article-hero-content{ padding:36px 20px 34px; }
  .read-col .article-body{ font-size:1.15rem; padding-top:24px; }
  .read-col .article-body > p:first-of-type{ font-size:1.2rem; }
  .read-col .article-body h2{ font-size:1.45rem; }
}


/* ---------- Article lead (вторая цитата внутри материала) ---------- */
.article-lead{
  margin:0; padding:34px 0 30px;
  border-bottom:2px solid var(--ink);
}
.article-lead-text{
  margin:0; font-size:1.6rem; line-height:1.5; font-weight:500;
  letter-spacing:-.005em;
}
.read-col .article-lead{ padding-top:44px; }
.read-col .article-lead + .article-body,
.read-col .article-lead ~ .article-body{ padding-top:36px; }
.article-lead + .ad-banner, .article-lead + .article-body{ margin-top:0; }
@media (max-width:640px){
  .article-lead{ padding:26px 0 22px; }
  .article-lead-text{ font-size:1.3rem; }
}

.article-lead-meta{ margin:22px 0 0; display:block; }
.article-lead--meta-only .article-lead-meta{ margin-top:0; }
.article-lead-meta .post-cat{ text-decoration:none; }

/* ---------- Transparent header over a big cover ---------- */
.has-big-cover .site-header{
  position:absolute; top:0; left:0; right:0; z-index:30;
  background:transparent; border-bottom:0;
}
.admin-bar.has-big-cover .site-header{ top:32px; }
@media (max-width:782px){ .admin-bar.has-big-cover .site-header{ top:46px; } }
.has-big-cover .article-hero{ padding-top:110px; }

/* шапка: тон выбирается по обложке (body.header-tone-light / -dark) */
.has-big-cover .site-header::before{
  content:""; position:absolute; left:0; right:0; top:0; height:190px;
  z-index:-1; pointer-events:none;
}
.header-tone-light .site-header .site-branding,
.header-tone-light .site-header .primary-nav a{
  color:#fff; text-shadow:0 1px 10px rgba(0,0,0,.5);
}
.header-tone-light .site-header .primary-nav a:hover{ border-bottom-color:var(--mint); }
.header-tone-light .site-header::before{
  background:linear-gradient(180deg, rgba(6,8,7,.55) 0%, rgba(6,8,7,.28) 55%, rgba(6,8,7,0) 100%);
}
.header-tone-dark .site-header .site-branding,
.header-tone-dark .site-header .primary-nav a{
  color:var(--ink); text-shadow:0 1px 12px rgba(255,255,255,.6);
}
.header-tone-dark .site-header::before{
  background:linear-gradient(180deg, rgba(255,255,255,.62) 0%, rgba(255,255,255,.3) 55%, rgba(255,255,255,0) 100%);
}
/* при полном затемнении верх уже тёмный — дополнительная подложка не нужна */
.cover-dark .site-header::before{ display:none; }

/* рубрика · дата · автор на обложке (когда нет второй цитаты) */
.article-hero .article-hero-meta{ margin:0; font-size:.95rem; color:#E3ECE7; }
.article-hero .article-hero-meta .post-cat{ margin:0; font-size:inherit; text-decoration:none; }
.article-hero .article-hero-meta a{ color:#fff; }
.article-hero .article-hero-meta .post-cat{ color:var(--mint); }

/* Затемнение только снизу: от низа обложки до верха заголовка, на всю ширину */
.article-hero--bottom .article-hero-content{ position:relative; padding-top:170px; }
.article-hero--bottom .article-hero-content::before{
  content:""; position:absolute; top:0; bottom:0; left:50%;
  width:100vw; transform:translateX(-50%); z-index:-1;
  background:linear-gradient(to top, rgba(6,8,7,.94) 0%, rgba(6,8,7,.88) 55%, rgba(6,8,7,0) 100%);
}
@media (max-width:640px){ .article-hero--bottom .article-hero-content{ padding-top:120px; } }


/* ---------- Side ads on the homepage (left / right, independent) ---------- */
.side-ad{
  position:absolute; top:0; bottom:0;
  width:min(300px, calc(50vw - 460px - 48px));
  pointer-events:none;
}
.side-ad--left{ right:100%; margin-right:24px; text-align:right; }
.side-ad--right{ left:100%; margin-left:24px; text-align:left; }
.side-ad-inner{ position:sticky; top:24px; pointer-events:auto; padding-top:8px; }
.admin-bar .side-ad-inner{ top:56px; }
.side-ad .ad-label{
  display:block; font-family:var(--font-mono); font-size:.7rem;
  text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft);
  margin-bottom:6px;
}
.side-ad a{ display:inline-block; max-width:100%; transition:transform .15s ease; }
.side-ad a:hover{ transform:translateY(-2px); }
.side-ad img{
  display:block; width:auto; height:auto; max-width:100%;
  max-height:calc(100vh - 110px);   /* высокая картинка уменьшается, чтобы влезть в экран */
  background:transparent; border:0;
}
.side-ad--left img{ margin-left:auto; }
@media (max-width:1239px){ .side-ad{ display:none; } }


/* ---------- Hero image as a real <img> (нужно для Telegram Instant View и SEO) ---------- */
.article-hero .article-hero-media{
  position:absolute; inset:0; z-index:-2;
  margin:0; padding:0;
}
.article-hero .article-hero-media img{
  display:block; width:100%; height:100%;
  object-fit:cover; object-position:center;
  margin:0; border-radius:0;
}


/* ---------- Вводка внутри блока с текстом (чтобы попадала в Instant View) ---------- */
.article-body > .article-lead{ padding-top:8px; margin:0 0 36px; }
.read-col .article-body > .article-lead{ padding-top:0; }
.article-body .article-lead p{ margin:0; }
.article-body .article-lead .article-lead-meta{ margin:22px 0 0; }


/* ==========================================================================
   Школы (inc/schools.php): плашки, блок «Ещё об этой школе», страница школы, /shkoly/
   ========================================================================== */
.school-chips{ display:inline-flex; flex-wrap:wrap; gap:6px; margin-left:.6em; vertical-align:baseline; }
.school-chip{
  display:inline-block; font-family:var(--font-mono); font-size:.78rem; line-height:1.4; font-weight:500;
  background:var(--mint); color:var(--ink) !important; text-decoration:none !important; text-shadow:none;
  padding:.12em .55em; border-radius:3px; transition:background .12s ease, color .12s ease;
}
.school-chip:hover{ background:var(--ink); color:var(--mint) !important; }
.article-hero .school-chip:hover{ background:#fff; color:var(--ink) !important; }

/* Блок под статьёй */
.school-more{ border-top:2px solid var(--ink); padding:20px 0 4px; margin:0 0 36px; }
.school-more-head{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.school-more-count{ font-family:var(--font-mono); font-size:.8rem; color:var(--ink-soft); }
.school-more-title{ font-size:1.25rem; margin:.7em 0 .3em; }
.school-more-list a{ grid-template-columns:96px 1fr; }
.school-more-empty{ color:var(--ink-soft); max-width:56ch; }
.school-more-all{
  display:inline-block; margin-top:14px; font-family:var(--font-mono); font-size:.85rem;
  color:var(--mint-deep); text-decoration:none; border-bottom:1.5px solid currentColor;
}
.school-more-all:hover{ color:var(--ink); }

/* Страница школы */
.school-header{ display:grid; grid-template-columns:1fr auto; gap:24px; align-items:start; padding:48px 0 28px; }
.school-header h1{ font-size:clamp(2rem,6vw,3.2rem); margin:.25em 0 .3em; letter-spacing:-.01em; }
.school-back{ font-family:var(--font-mono); font-size:.82rem; color:var(--mint-deep); text-decoration:none; }
.school-back:hover{ color:var(--ink); }
.school-meta{ font-family:var(--font-mono); font-size:.85rem; color:var(--ink-soft); margin:0 0 .8em; }
.school-desc{ max-width:60ch; }
.school-badge{
  font-family:var(--font-display); font-weight:600; font-size:clamp(2.2rem,7vw,4rem); line-height:1;
  background:var(--mint); border:2px solid var(--ink); border-radius:4px; box-shadow:5px 5px 0 var(--ink);
  padding:.28em .42em .32em; transform:rotate(-3deg); margin:8px 8px 0 0; text-align:center;
}
.school-badge span{ display:block; font-family:var(--font-mono); font-weight:500; font-size:.8rem; letter-spacing:.04em; margin-bottom:.35em; }
.school-tip{ margin:36px 0 56px; border-left:3px solid var(--mint-deep); padding:.3em 0 .3em 1em; max-width:60ch; }
.school-tip p{ margin:0; }
.school-tip a{ color:var(--mint-deep); text-decoration-thickness:1.5px; }

/* Все школы */
.school-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:18px; margin:8px 0 0; }
.school-tile{
  display:flex; flex-direction:column; gap:4px; min-height:178px; height:100%; text-decoration:none;
  background:#F7F3E6; border:2px solid var(--ink); border-radius:4px; box-shadow:4px 4px 0 var(--ink);
  padding:16px 18px; transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.school-tile:hover{ background:var(--mint); transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--ink); }
.school-tile-kind{ font-family:var(--font-mono); font-size:.75rem; color:var(--ink-soft); }
.school-tile-num{ font-family:var(--font-display); font-weight:600; font-size:2.4rem; line-height:1.05; }
.school-tile-count{ font-family:var(--font-mono); font-size:.8rem; color:var(--mint-deep); }
.school-tile:hover .school-tile-count{ color:var(--ink); }
.school-tile-last{ margin-top:auto; padding-top:10px; font-size:.86rem; line-height:1.35; color:var(--ink-soft); }

@media (max-width:620px){
  .school-header{ grid-template-columns:1fr; padding-top:36px; }
  .school-badge{ justify-self:start; order:-1; font-size:2rem; }
  .school-grid{ grid-template-columns:1fr 1fr; gap:14px; }
  .school-tile{ min-height:150px; padding:14px; }
  .school-tile-num{ font-size:2rem; }
  .school-more-list a{ grid-template-columns:1fr; }
}

/* ==========================================================================
   Рассылка (inc/newsletter): блок подписки, служебные страницы, веб-версия выпуска
   ========================================================================== */
.nl-box{
  background:var(--mint); color:var(--ink); border:2px solid var(--ink); border-radius:4px;
  box-shadow:5px 5px 0 var(--ink); padding:26px 28px; margin:8px 0 40px; scroll-margin-top:24px;
}
.nl-box-kicker{ display:block; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.04em; margin-bottom:.5em; }
.nl-box-title{ font-family:var(--font-display); font-weight:600; font-size:clamp(1.15rem,2.8vw,1.45rem); line-height:1.22; margin:0 0 .45em; max-width:30ch; }
.nl-box-desc{ margin:0 0 1.1em; font-size:.98rem; max-width:56ch; }
.nl-box-note{ background:#F7F3E6; border-left:3px solid var(--ink); padding:.7em 1em; margin:0 0 1.1em; font-size:.95rem; }
.nl-box-note--bad,.nl-box-note--slow{ border-left-color:var(--rule); }
.nl-step{ font-family:var(--font-mono); font-size:.8rem; font-weight:500; margin:1.1em 0 .55em; }

.nl-authors{ display:flex; flex-wrap:wrap; gap:8px; }
.nl-author{ position:relative; cursor:pointer; }
.nl-author input{ position:absolute; opacity:0; width:1px; height:1px; }
.nl-author-card{
  display:inline-flex; align-items:center; gap:8px; padding:4px 14px 4px 4px;
  background:#F7F3E6; border:2px solid var(--ink); border-radius:999px;
  font-family:var(--font-display); font-weight:600; font-size:.86rem; line-height:1.2;
  transition:background .12s ease, color .12s ease;
}
.nl-author-card img{ width:32px; height:32px; border-radius:50%; object-fit:cover; background:var(--paper-line); }
.nl-author:hover .nl-author-card{ background:#fff; }
.nl-author input:checked + .nl-author-card{ background:var(--ink); color:var(--mint); }
.nl-author input:focus-visible + .nl-author-card{ outline:3px solid var(--ink); outline-offset:2px; }

.nl-channels{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 12px; }
.nl-tg, .nl-email button, .nl-submit{
  display:inline-flex; align-items:center; gap:.45em; white-space:nowrap; cursor:pointer;
  background:var(--ink); color:var(--mint) !important; text-decoration:none !important; border:2px solid var(--ink);
  font-family:var(--font-display); font-weight:600; font-size:.95rem; padding:.78em 1.2em; border-radius:4px;
  transition:transform .12s ease;
}
.nl-tg:hover, .nl-email button:hover, .nl-submit:hover{ transform:translate(-1px,-1px); }
.nl-or{ font-family:var(--font-mono); font-size:.8rem; }
.nl-email{ display:inline-flex; flex:1 1 300px; min-width:0; }
.nl-email input{
  flex:1; min-width:0; font:inherit; font-size:.98rem; padding:.72em .9em; color:var(--ink);
  background:#fff; border:2px solid var(--ink); border-right:0; border-radius:4px 0 0 4px;
}
.nl-email input:focus{ outline:none; box-shadow:inset 0 0 0 2px var(--mint-deep); }
.nl-email button{ border-radius:0 4px 4px 0; }
.nl-hp{ position:absolute !important; left:-9999px; }
.nl-fine{ font-family:var(--font-mono); font-size:.74rem; line-height:1.5; margin:1.1em 0 0; opacity:.85; }
.nl-fine a{ color:inherit; }

.nl-page .page-body{ max-width:60ch; }
.nl-page .nl-box{ margin-top:28px; }
.nl-page .nl-authors{ margin-bottom:1em; }

/* Веб-версия выпуска */
.nl-issue{ padding-bottom:24px; }
.nl-issue-header{ padding:48px 0 12px; }
.nl-issue-header .post-cat{ font-family:var(--font-mono); font-size:.82rem; color:var(--mint-deep); }
.nl-issue-header h1{ font-size:clamp(1.8rem,5vw,2.7rem); margin:.35em 0 .6em; max-width:22ch; }
.nl-issue-author{ display:flex; align-items:center; gap:12px; font-family:var(--font-mono); font-size:.82rem; color:var(--ink-soft); }
.nl-issue-author img{ width:52px; height:52px; border-radius:50%; object-fit:cover; border:2px solid var(--mint); }
.nl-issue-author a{ font-family:var(--font-display); font-weight:600; font-size:1rem; color:var(--ink); text-decoration:none; }
.nl-issue-intro{ padding:18px 0 0; max-width:66ch; }
.nl-issue-items{ list-style:none; margin:20px 0 40px; padding:0; counter-reset:nl; }
.nl-issue-items li{ counter-increment:nl; border-top:2px solid var(--ink); padding:16px 0 18px 3.2rem; position:relative; }
.nl-issue-items li::before{
  content:counter(nl); position:absolute; left:0; top:12px; font-family:var(--font-display); font-weight:600;
  font-size:2rem; line-height:1; color:var(--mint-deep);
}
.nl-issue-meta{ display:block; font-family:var(--font-mono); font-size:.78rem; color:var(--ink-soft); margin-bottom:4px; }
.nl-issue-title{ font-family:var(--font-display); font-weight:600; font-size:1.2rem; line-height:1.3; color:var(--ink); text-decoration:none; }
.nl-issue-title:hover{ text-decoration:underline; text-decoration-color:var(--rule); text-decoration-thickness:2px; text-underline-offset:3px; }
.nl-issue-note{ margin:.5em 0 0; max-width:62ch; }

.nl-letter{
  background:#F7F3E6; border:2px solid var(--ink); border-radius:4px; box-shadow:5px 5px 0 var(--mint-deep);
  padding:26px 28px; margin:0 0 40px;
}
.nl-letter-kicker{ display:block; font-family:var(--font-mono); font-size:.78rem; color:var(--rule); margin-bottom:.5em; }
.nl-letter h2{ font-size:1.4rem; margin:0 0 .7em; }
.nl-letter-body{ font-size:1.08rem; max-width:62ch; }
.nl-letter-sign{ font-style:italic; }
.nl-letter-about{ font-family:var(--font-mono); font-size:.82rem; }
.nl-letter-about a{ color:var(--mint-deep); }
.nl-letter-thanks{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 24px; border-top:1px solid var(--paper-line); padding-top:16px; margin-top:16px; }
.nl-letter-thanks p{ margin:0; max-width:46ch; font-size:.95rem; }

@media (max-width:620px){
  .nl-box, .nl-letter{ padding:22px 20px; }
  .nl-channels{ flex-direction:column; flex-wrap:nowrap; align-items:stretch; }
  .nl-tg{ justify-content:center; }
  .nl-or{ text-align:center; }
  .nl-email{ flex:auto; }
  .nl-issue-items li{ padding-left:2.4rem; }
  .nl-issue-items li::before{ font-size:1.6rem; }
}

/* Форма комментариев: поля не шире колонки на телефоне */
.comment-respond textarea, .comment-respond input[type="text"], .comment-respond input[type="email"], .comment-respond input[type="url"]{ width:100%; max-width:100%; }

/* ---------- Соавторы: заголовок над карточками авторов ---------- */
.author-bio-heading{ font-family:var(--font-mono); font-size:.8rem; color:var(--ink-soft); margin:8px 0 10px; }
.author-bio-heading + .author-bio-box{ margin-top:0; }
.author-bio-box + .author-bio-box{ margin-top:-28px; }
