/*
Theme Name: Petrov Journal
Theme URI: https://blog.petrov.re/
Author: Cowork session
Description: Строгая журнальная тема для многоязычного блога на Polylang. Широкая колонка текста, крупная серифная гарнитура, минимум декора, аккуратная типографика. Светлая и тёмная темы, переключатель языков, плашка «читать на своём языке».
Version: 1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: petrov-journal
Tags: blog, translation-ready, two-columns, custom-menu, editor-style
*/

:root{
  --paper:#f8f5ef; --paper-2:#f2eee5; --ink:#1b1a17; --ink-2:#4a463e;
  --muted:#6e6759; --rule:#ded6c6; --accent:#8c2f23; --accent-soft:#f0e4e1;
  --serif: Georgia,"Iowan Old Style","Palatino Linotype","Book Antiqua","Noto Serif",serif;
  --sans: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --measure: 37rem;
}
html[data-theme="dark"]{
  --paper:#171612; --paper-2:#1e1d18; --ink:#ece7db; --ink-2:#c3bcac;
  --muted:#938b7a; --rule:#332f27; --accent:#d98d76; --accent-soft:#2a201c;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);
  font-size:19px;line-height:1.62;font-kerning:normal;text-rendering:optimizeLegibility}
a{color:inherit}
img{max-width:100%;height:auto}
.wrap{max-width:var(--measure);margin:0 auto;padding:0 22px}
.wide{max-width:64rem;margin:0 auto;padding:0 22px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--paper-2);padding:8px 14px;z-index:99}

/* ---------- шапка ---------- */
header.site{border-bottom:1px solid var(--rule);background:var(--paper)}
.bar{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:20px 0 14px}
.mark{font-size:22px;letter-spacing:.01em;text-decoration:none;font-weight:700}
.mark span{color:var(--muted);font-weight:400;font-size:16px}
.langs{font-family:var(--sans);font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;
  display:flex;gap:2px;align-items:center;list-style:none;margin:0;padding:0}
.langs a{padding:4px 7px;text-decoration:none;color:var(--muted);border-radius:3px;display:block}
.langs .current-lang a,.langs li.current-lang{color:var(--paper);background:var(--ink);border-radius:3px}
.langs .current-lang a{color:var(--paper)}
.langs a:hover{color:var(--ink);background:var(--paper-2)}
.langs .no-translation span{padding:4px 7px;display:block;color:var(--muted);opacity:.42;
  cursor:default;text-decoration:line-through;text-decoration-thickness:1px}
nav.cats{font-family:var(--sans);font-size:13.5px;padding:0 0 16px;color:var(--muted)}
nav.cats ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 20px}
nav.cats a{text-decoration:none;padding:3px 0;border-bottom:1px solid transparent;display:inline-block}
nav.cats a:hover,nav.cats .current-menu-item a{color:var(--ink);border-bottom-color:var(--accent)}

/* ---------- статья ---------- */
article.post{padding:56px 0 0}
.kicker{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);margin:0 0 18px}
.kicker a{text-decoration:none}
h1.title{font-size:2.35rem;line-height:1.16;letter-spacing:-.015em;margin:0 0 18px;font-weight:700}
.byline{font-family:var(--sans);font-size:13.5px;color:var(--muted);margin:0 0 40px;
  padding-bottom:22px;border-bottom:1px solid var(--rule)}
.byline b{color:var(--ink-2);font-weight:600}
.entry p{margin:0 0 1.15em}
.entry h2{font-size:1.5rem;line-height:1.25;margin:1.9em 0 .5em;letter-spacing:-.01em}
.entry h3{font-size:1.22rem;margin:1.6em 0 .4em}
.entry ul,.entry ol{padding-left:1.4em}
.entry li{margin:.3em 0}
.entry blockquote{margin:2em 0;padding:0 0 0 1.15em;border-left:2px solid var(--accent);
  font-size:1.1em;line-height:1.5;color:var(--ink-2);font-style:italic}
.entry blockquote cite{display:block;font-style:normal;font-family:var(--sans);font-size:12.5px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:.7em}
.entry figure{margin:2.4em 0}
.entry figcaption,.wp-caption-text{font-family:var(--sans);font-size:13px;color:var(--muted);
  margin-top:.7em;line-height:1.45}
.entry table{width:100%;border-collapse:collapse;font-size:.92em;margin:1.8em 0}
.entry th,.entry td{border-bottom:1px solid var(--rule);padding:8px 10px;text-align:left}
.entry pre{overflow:auto;background:var(--paper-2);padding:14px;border-radius:4px;font-size:.8em}
.entry hr{border:0;text-align:center;margin:2.6em 0}
.entry hr::before{content:"\25C6";color:var(--rule);font-size:14px;letter-spacing:.7em}
.entry .alignleft{float:left;margin:.3em 1.4em 1em 0}
.entry .alignright{float:right;margin:.3em 0 1em 1.4em}
.entry .aligncenter{display:block;margin:1.6em auto}
.tags{font-family:var(--sans);font-size:13px;color:var(--muted);margin:3em 0 0;
  padding-top:20px;border-top:1px solid var(--rule)}
.tags a{display:inline-block;text-decoration:none;border:1px solid var(--rule);
  border-radius:999px;padding:3px 11px;margin:0 6px 6px 0;color:var(--ink-2)}
.tags a:hover{border-color:var(--accent);color:var(--accent)}

/* плашка «читать на своём языке» */
.nudge{margin:36px 0 0;background:var(--accent-soft);border:1px solid var(--rule);
  border-radius:4px;padding:13px 16px;font-family:var(--sans);font-size:14px;
  display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.nudge a.go{color:var(--accent);text-decoration:none;font-weight:600;white-space:nowrap}
.nudge button{background:none;border:0;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 4px}

/* ---------- лента ---------- */
.feed{padding-top:34px}
.feed h1.arch{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-weight:600;margin:26px 0}
.item{padding:26px 0;border-bottom:1px solid var(--rule);display:grid;
  grid-template-columns:5.5rem 1fr;gap:24px;align-items:baseline}
.item .d{font-family:var(--sans);font-size:12.5px;color:var(--muted);letter-spacing:.03em;padding-top:.45em}
.item h2{margin:0 0 .35em;font-size:1.32rem;line-height:1.25;font-weight:700;letter-spacing:-.01em}
.item h2 a{text-decoration:none}
.item h2 a:hover{color:var(--accent)}
.item p{margin:0;color:var(--ink-2);font-size:.94em}
.item .c{font-family:var(--sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);margin:0 0 .5em}
.item .c a{text-decoration:none}
.pager{display:flex;justify-content:space-between;font-family:var(--sans);font-size:14px;
  margin:34px 0 0;gap:16px}
.pager a{text-decoration:none;color:var(--accent)}

footer.site{margin-top:80px;border-top:1px solid var(--rule);padding:26px 0 70px;
  font-family:var(--sans);font-size:13px;color:var(--muted)}
footer.site a{color:var(--muted)}
.toggle{position:fixed;right:16px;bottom:16px;font-family:var(--sans);font-size:12.5px;
  background:var(--paper-2);border:1px solid var(--rule);color:var(--ink-2);
  padding:8px 13px;border-radius:999px;cursor:pointer;letter-spacing:.04em;z-index:50}
.searchform{margin:20px 0}
.searchform input[type=search]{font:inherit;font-size:16px;padding:8px 12px;width:100%;
  border:1px solid var(--rule);background:var(--paper-2);color:var(--ink);border-radius:3px}

@media (max-width:640px){
  body{font-size:18px}
  h1.title{font-size:1.85rem}
  .item{grid-template-columns:1fr;gap:6px}
  .item .d{padding-top:0}
  .bar{flex-wrap:wrap;gap:8px}
}
@media print{
  header.site,footer.site,.toggle,.nudge,.tags{display:none}
  body{background:#fff;color:#000;font-size:12pt}
}

/* ---------- главная: витрина рубрик ---------- */
.sections{padding-top:38px}
.sect-h{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-weight:600;margin:0 0 18px}
.sect-h.in-feed{margin:44px 0 4px}
.sections .grid{list-style:none;margin:0;padding:0;display:grid;gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden;
  grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}
.sections .grid li{background:var(--paper)}
.sections .grid a{display:block;padding:15px 17px;text-decoration:none;height:100%;
  box-sizing:border-box;transition:background .12s}
.sections .grid a:hover{background:var(--paper-2)}
.sections .grid .n{display:block;font-size:1.05rem;font-weight:700;letter-spacing:-.01em;
  line-height:1.25;color:var(--ink)}
.sections .grid a:hover .n{color:var(--accent)}
.sections .grid .k{display:block;font-family:var(--sans);font-size:12px;color:var(--muted);
  margin-top:5px;letter-spacing:.03em}
.sections .grid .dsc{display:block;font-size:.86em;color:var(--ink-2);margin-top:7px;line-height:1.4}
@media (max-width:640px){
  .sections .grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr))}
  .sections .grid a{padding:12px 13px}
  .sections .grid .n{font-size:.98rem}
}

/* ---------- поиск ---------- */
.bar>.langs{margin-left:auto}
.qs{display:flex;align-items:center;gap:0;order:3;align-self:center}
.qs input[type=search]{font:inherit;font-family:var(--sans);font-size:13px;width:8.5rem;
  padding:5px 9px;border:1px solid var(--rule);border-right:0;border-radius:3px 0 0 3px;
  background:var(--paper-2);color:var(--ink);transition:width .18s;-webkit-appearance:none}
.qs input[type=search]:focus{width:14rem;outline:0;border-color:var(--accent)}
.qs button{display:flex;align-items:center;justify-content:center;padding:0 9px;height:29px;
  border:1px solid var(--rule);border-radius:0 3px 3px 0;background:var(--paper-2);
  color:var(--muted);cursor:pointer}
.qs button:hover{color:var(--accent);border-color:var(--accent)}
.searchform{margin:20px 0;display:flex;gap:8px}
.searchform button{font:inherit;font-family:var(--sans);font-size:14px;padding:8px 16px;
  border:1px solid var(--rule);border-radius:3px;background:var(--paper-2);color:var(--ink-2);cursor:pointer}
.searchform button:hover{border-color:var(--accent);color:var(--accent)}
.item mark{background:var(--accent-soft);color:inherit;padding:0 .12em;border-radius:2px}
nav.cats.nores{margin-top:26px;border-top:1px solid var(--rule);padding-top:18px}
@media (max-width:640px){
  .bar{align-items:center}
  .qs{order:9;width:100%;margin:6px 0 0}
  .qs input[type=search]{width:100%;flex:1}
  .qs input[type=search]:focus{width:100%}
}
