/* SOTSCOVA — темы: Пресс · Благородный · Аврора · Газета · Меридиан · Империя */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ── Theme: Пресс (default) ── */
.theme-press {
    --bg: #ebe6dc;
    --canvas: #faf7f2;
    --surface: #ffffff;
    --ink: #1f1a17;
    --ink-soft: #4a443c;
    --muted: #8a8278;
    --line: #e4ddd2;
    --accent: #8b2e4a;
    --accent-2: #1a3d5c;
    --header-bg: rgba(255,255,255,.92);
    --shadow: 0 8px 32px rgba(31,26,23,.08);
    --serif: 'Cormorant Garamond', Georgia, serif;
    --sans: 'Onest', system-ui, sans-serif;
    --footer-bg: #2a3238;
}

/* ── Theme: Благородный ── */
.theme-noble {
    --bg: #1a2744;
    --canvas: #f4f6f9;
    --surface: #ffffff;
    --ink: #0f1c2e;
    --ink-soft: #3d4f63;
    --muted: #6b7c90;
    --line: #d8dfe8;
    --accent: #0f2847;
    --accent-2: #b8860b;
    --header-bg: rgba(255,255,255,.96);
    --shadow: 0 10px 40px rgba(15,40,71,.12);
    --serif: 'Fraunces', Georgia, serif;
    --sans: 'Onest', system-ui, sans-serif;
    --footer-bg: #0a1628;
}

/* ── Theme: Аврора ── */
.theme-aurora {
    --bg: #3d4f5f;
    --canvas: #f0f3f6;
    --surface: #ffffff;
    --ink: #1e2a36;
    --ink-soft: #445566;
    --muted: #6e7f8f;
    --line: #d5dde5;
    --accent: #e85d4c;
    --accent-2: #2d5a7b;
    --header-bg: rgba(255,255,255,.94);
    --shadow: 0 8px 28px rgba(30,42,54,.1);
    --serif: 'Fraunces', Georgia, serif;
    --sans: 'Outfit', system-ui, sans-serif;
    --footer-bg: #243040;
}

/* ── Theme: Газета ── */
.theme-gazette {
    --bg: #ebe7e0;
    --canvas: #fdfcfa;
    --surface: #ffffff;
    --ink: #141414;
    --ink-soft: #4a4640;
    --muted: #8a847a;
    --line: #e6e0d6;
    --accent: #141414;
    --accent-2: #9b1c1c;
    --header-bg: #ffffff;
    --shadow: 0 4px 28px rgba(20,20,20,.04);
    --serif: 'Playfair Display', Georgia, serif;
    --sans: 'IBM Plex Sans', system-ui, sans-serif;
    --footer-bg: #faf9f6;
    --radius: 2px;
}

/* ── Theme: Меридиан ── */
.theme-meridian {
    --bg: #e4e9ec;
    --canvas: #ffffff;
    --surface: #ffffff;
    --ink: #0d1f17;
    --ink-soft: #3a5248;
    --muted: #6b8278;
    --line: #dce5e0;
    --accent: #1b4332;
    --accent-2: #bc6c25;
    --header-bg: rgba(255,255,255,.98);
    --shadow: 0 12px 48px rgba(27,67,50,.08);
    --serif: 'Newsreader', Georgia, serif;
    --sans: 'IBM Plex Sans', system-ui, sans-serif;
    --footer-bg: #0d2818;
    --radius: 6px;
}

/* ── Theme: Империя ── */
.theme-imperial {
    --bg: #2a2624;
    --canvas: #f8f5ef;
    --surface: #fffcf7;
    --ink: #1e1a17;
    --ink-soft: #4a433c;
    --muted: #7a7268;
    --line: #e0d9ce;
    --accent: #9b2335;
    --accent-2: #b8943f;
    --header-bg: #1c1c1c;
    --shadow: 0 16px 48px rgba(28,28,28,.18);
    --serif: 'Cormorant Garamond', Georgia, serif;
    --sans: 'Onest', system-ui, sans-serif;
    --footer-bg: #121212;
    --radius: 4px;
}

:root {
    --bg: #ebe7e0;
    --canvas: #fdfcfa;
    --surface: #ffffff;
    --ink: #141414;
    --ink-soft: #4a4640;
    --muted: #8a847a;
    --line: #e6e0d6;
    --accent: #141414;
    --accent-2: #9b1c1c;
    --header-bg: #ffffff;
    --shadow: 0 4px 28px rgba(20,20,20,.04);
    --serif: 'Playfair Display', Georgia, serif;
    --sans: 'IBM Plex Sans', system-ui, sans-serif;
    --footer-bg: #faf9f6;
    --wrap: 1140px;
    --radius: 2px;
}

html {
    font-size: 16px;
    overflow-x: clip;
}
body.site {
    font-family: var(--sans);
    color: var(--ink);
    background: var(--bg);
    line-height: 1.55;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
    overflow-x: clip;
}
a { color: var(--accent-2); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; display: block; }
.wrap { width: min(100% - 1.5rem, var(--wrap)); margin-inline: auto; }

.site-canvas {
    background: var(--canvas);
    box-shadow: var(--shadow);
    margin: 0 auto;
    width: 100%;
    max-width: calc(var(--wrap) + 3rem);
    overflow: visible;
}
.theme-gazette .site-canvas {
    background:
        linear-gradient(180deg, #fff 0%, rgba(255,255,255,.55) 160px, transparent 280px),
        var(--canvas);
    box-shadow: 0 4px 32px rgba(20,20,20,.03);
}
.theme-meridian .site-canvas {
    background: linear-gradient(180deg, #fafffe 0%, var(--canvas) 200px);
}
.theme-imperial .site-canvas {
    border-radius: 0 0 6px 6px;
    overflow: visible;
}

/* ── Header ── */
.site-header {
    background: var(--header-bg);
    border-bottom: 1px solid var(--line);
}
.header-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1.25rem;
    align-items: center;
    padding: 1rem 0 .75rem;
}
.site-logo {
    display: flex;
    align-items: center;
    gap: .65rem;
    text-decoration: none;
}
.site-logo:hover { text-decoration: none; }
.site-logo-emblem {
    flex-shrink: 0;
    width: 40px;
    height: 44px;
    overflow: hidden;
    display: flex;
    align-items: center;
}
.site-logo-emblem img {
    width: auto;
    height: 48px;
    max-width: none;
    display: block;
}
.site-logo-wordmark {
    display: flex;
    align-items: baseline;
    gap: .1rem;
}
.site-logo-name {
    font-family: var(--serif);
    font-size: 1.85rem;
    font-weight: 700;
    letter-spacing: -.03em;
    color: var(--accent);
    line-height: 1;
}
.site-logo-tld { font-size: .9rem; font-weight: 700; color: var(--accent-2); }
.site-identity p {
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--ink-soft);
    line-height: 1.35;
    max-width: 38ch;
}

.header-aside { text-align: right; font-size: .72rem; font-weight: 600; color: var(--muted); }
.lang-switch a { margin-left: .35rem; color: var(--muted); text-decoration: none; }
.lang-switch a.on { color: var(--accent); font-weight: 700; }

.nav-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .55rem 1rem;
    padding: .55rem 0 .65rem;
    border-top: 1px solid var(--line);
}
.site-nav {
    display: flex;
    flex-direction: column;
    gap: .42rem;
    min-width: 0;
}
.site-nav-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .55rem;
}
.site-nav-line--extra {
    padding-top: .1rem;
}
.site-nav a {
    font-size: .74rem;
    font-weight: 500;
    letter-spacing: .01em;
    text-transform: none;
    padding: .18rem 0;
    border-radius: 0;
    color: var(--ink-soft);
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    transition: color .15s ease, border-color .15s ease;
}
.site-nav a:hover {
    color: var(--ink);
    border-bottom-color: color-mix(in srgb, var(--line) 70%, var(--ink));
}
.site-nav a.on {
    color: var(--ink);
    font-weight: 600;
    border-bottom-color: var(--ink);
}
.theme-noble .site-nav a.on {
    color: var(--accent);
    border-bottom-color: var(--accent);
}
.site-nav a.nav-admin {
    color: var(--muted);
    font-weight: 500;
}
.site-nav a.nav-admin:hover {
    color: var(--ink-soft);
}

.site-search {
    display: flex;
    align-self: center;
    flex-shrink: 0;
    border: 1px solid var(--line);
    border-radius: 22px;
    overflow: hidden;
    background: var(--surface);
    min-width: 0;
}
.site-search input {
    border: 0;
    padding: .42rem .75rem;
    font: inherit;
    font-size: .8rem;
    width: min(240px, 30vw);
    min-width: 150px;
    outline: none;
    background: transparent;
}
.site-search button {
    border: 0;
    background: transparent;
    padding: 0 .75rem;
    font-size: 1rem;
    cursor: pointer;
    color: var(--muted);
}

.theme-switch {
    display: flex;
    gap: .35rem;
    padding: .4rem 0 .55rem;
    border-top: 1px dashed var(--line);
}
.theme-switch a {
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: .25rem .55rem;
    border-radius: 4px;
    border: 1px solid var(--line);
    color: var(--muted);
    text-decoration: none;
    transition: all .15s;
}
.theme-switch a:hover { border-color: var(--accent); color: var(--accent); }
.theme-switch a.on {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}
.theme-noble .theme-switch a.on { background: var(--accent-2); border-color: var(--accent-2); color: var(--accent); }

.nav-burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    gap: 5px;
    width: 40px;
    height: 40px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    cursor: pointer;
    flex-shrink: 0;
    -webkit-tap-highlight-color: transparent;
    transition: border-color .15s ease, background .15s ease;
}
.nav-burger:hover,
.nav-burger:focus-visible {
    border-color: color-mix(in srgb, var(--line) 50%, var(--ink));
    background: color-mix(in srgb, var(--surface) 80%, var(--line));
    outline: none;
}
.nav-burger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--ink);
    border-radius: 1px;
    flex-shrink: 0;
    transform-origin: center;
    transition: transform .2s ease, opacity .2s ease;
}
.nav-burger.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.nav-burger.is-open span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}
.nav-burger.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ── Layout ── */
.site-main { padding: 1.5rem 0 2.5rem; }
.site-grid {
    display: grid;
    grid-template-columns: 1fr 310px;
    gap: 1.75rem;
    align-items: start;
}
.site-content,
.site-aside {
    min-width: 0;
}


.agency-strip {
    display: flex;
    align-items: center;
    padding: .9rem 1.15rem;
    margin-bottom: 1.25rem;
    background: var(--surface);
    border-radius: var(--radius);
    border-left: 4px solid var(--accent);
    box-shadow: 0 2px 12px rgba(0,0,0,.04);
    font-size: .86rem;
    color: var(--ink-soft);
    line-height: 1.45;
}
.home-tagline-grid {
    display: grid;
    grid-template-columns: 1fr 310px;
    gap: 1.75rem;
    align-items: center;
    border-top: 1px solid var(--line);
    padding: .7rem 0 .85rem;
}
.home-tagline-aside {
    min-width: 0;
}
.agency-strip--home {
    margin: 0;
    justify-content: flex-start;
    text-align: left;
    min-width: 0;
}
.agency-strip--home .agency-strip__text {
    max-width: none;
}

/* ── Feature story ── */
.story-feature {
    background: var(--surface);
    border-radius: var(--radius);
    padding: 1.35rem 1.4rem 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 24px rgba(0,0,0,.06);
    border-top: 3px solid hsl(var(--rub, 220), 45%, 45%);
}
.story-kicker {
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--accent);
}
.story-rub {
    margin-left: .5rem;
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--accent-2);
    text-decoration: none;
}
.story-feature h1, .article-single h1, .page-head h1 {
    font-family: var(--serif);
    font-size: clamp(1.5rem, 3vw, 2.05rem);
    font-weight: 700;
    line-height: 1.18;
    margin: .5rem 0 .55rem;
}
.story-feature h1 a { color: var(--ink); text-decoration: none; }
.story-feature h1 a:hover { color: var(--accent); }
.story-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem .6rem;
    font-size: .76rem;
    color: var(--muted);
}
.badge-icon { display: inline; vertical-align: middle; }
.story-feature-photo { margin: 1rem 0; border-radius: calc(var(--radius) - 2px); overflow: hidden; }
.story-feature-photo img { width: 100%; max-height: 220px; object-fit: cover; }
.story-feature-body--lead {
    margin-top: .5rem;
    line-height: 1.72;
    text-align: left;
    overflow: hidden;
}
.story-feature-body--lead::after {
    content: '';
    display: table;
    clear: both;
}
figure.story-feature-photo--side {
    float: left;
    box-sizing: content-box;
    width: min(34%, 295px);
    margin: .15rem 1.25rem 1.35rem 0;
    padding: 0 2rem 0 0;
    border: 0;
    background: transparent;
    border-radius: var(--radius);
    overflow: hidden;
    line-height: 0;
}
figure.story-feature-photo--side img {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    object-fit: cover;
    display: block;
    vertical-align: top;
}
.story-feature-body--lead > p {
    margin: 0 0 1rem;
}
.story-feature-body--lead > p:first-of-type,
.story-feature-body--lead p:first-of-type {
    margin-top: .1rem;
}
.story-feature-lead {
    font-size: 1.02rem;
    color: var(--ink-soft, #3a3a3a);
    margin: 0 0 1rem;
}
.story-feature-body--lead .prose-img {
    float: left;
    clear: none;
    width: min(36%, 240px);
    margin: .15rem 1.5rem .75rem 0;
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    overflow: hidden;
    object-fit: cover;
    background: transparent;
}

/* ── Feed ── */
.content-block { margin-bottom: 1.5rem; }
.block-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .65rem;
}
.block-head h2 {
    font-family: var(--serif);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--accent);
}
.block-head--alert h2 { color: var(--accent); }
.theme-aurora .block-head--alert h2 { color: var(--accent); }
.block-head a {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.feed-list {
    background: var(--surface);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: 0 2px 16px rgba(0,0,0,.05);
}
.feed-item { border-bottom: 1px solid var(--line); }
.feed-item:last-child { border-bottom: 0; }
.feed-item a {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: .85rem 1rem;
    text-decoration: none;
    color: inherit;
    transition: background .15s, transform .15s;
    border-left: 3px solid transparent;
}
.feed-item a:hover {
    background: linear-gradient(90deg, hsla(var(--rub, 220), 40%, 50%, .06), transparent);
    border-left-color: hsl(var(--rub, 220), 45%, 48%);
}
.feed-item--marker a { background: linear-gradient(90deg, hsla(0, 60%, 50%, .05), transparent); }
.feed-item-media {
    flex-shrink: 0;
    width: 120px;
    height: 76px;
    border-radius: 4px;
    overflow: hidden;
    background: var(--line);
}
.feed-item-media img { width: 100%; height: 100%; object-fit: cover; }
.feed-item-content { min-width: 0; flex: 1; }
.feed-item-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    font-size: .68rem;
    color: var(--muted);
    margin-bottom: .2rem;
}
.feed-item-rub {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-size: .6rem;
    color: hsl(var(--rub, 220), 40%, 38%);
}
.feed-item-title {
    display: block;
    font-family: var(--serif);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--ink);
    transition: color .12s;
}
.feed-item a:hover .feed-item-title { color: var(--accent-2); }
.feed-item-lead {
    display: block;
    margin-top: .3rem;
    font-size: .8rem;
    line-height: 1.45;
    color: var(--ink-soft);
}
.feed-item--static a { border-left: 0; }

/* ── Sidebar ── */
.site-aside {
    position: static;
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
}
.aside-card {
    background: var(--surface);
    border-radius: var(--radius);
    padding: 1rem 1.1rem;
    margin-bottom: 1rem;
    box-shadow: 0 2px 14px rgba(0,0,0,.05);
    border: 1px solid var(--line);
}
.aside-card h3 {
    font-family: var(--serif);
    font-size: 1rem;
    font-weight: 600;
    color: var(--accent);
    margin-bottom: .65rem;
    padding-bottom: .45rem;
    border-bottom: 2px solid var(--line);
}
.aside-card--search {
    border-top: 3px solid var(--accent-2);
    padding: .9rem 1rem 1rem;
}
.aside-card--search h3 {
    font-family: var(--serif);
    font-size: 1.05rem;
    font-weight: 700;
    text-align: center;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink);
    border-bottom: none;
    padding-bottom: .35rem;
    margin-bottom: .15rem;
}
.aside-card--search h3::after {
    content: '';
    display: block;
    height: 1px;
    margin-top: .45rem;
    background: var(--accent-2);
}
.aside-search-row {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--line);
    background: var(--canvas);
}
.aside-search-row input {
    flex: 1;
    min-width: 0;
    padding: .58rem .75rem;
    border: 0;
    border-radius: 0;
    font: inherit;
    font-size: .84rem;
    background: transparent;
    color: var(--ink);
}
.aside-search-row input::placeholder { color: var(--muted); }
.aside-search-row input:focus {
    outline: none;
    background: var(--surface);
}
.aside-search-row button {
    flex-shrink: 0;
    width: auto;
    padding: 0 .95rem;
    border: 0;
    border-left: 1px solid var(--line);
    border-radius: 0;
    background: var(--accent-2);
    color: #fff;
    font-size: 1.05rem;
    line-height: 1;
    cursor: pointer;
    transition: filter .15s ease;
}
.aside-search-row button:hover { filter: brightness(1.1); }
.inline-search button, .btn {
    width: 100%;
    padding: .5rem;
    border: 0;
    border-radius: 4px;
    background: var(--accent);
    color: #fff;
    font: inherit;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    cursor: pointer;
    transition: background .15s, transform .1s;
}
.btn:hover { filter: brightness(1.08); }
.theme-noble .btn { background: var(--accent); color: #fff; }

.aside-card--rubrics {
    background: var(--surface);
    border: 1px solid var(--line);
    border-top: 3px solid var(--accent-2);
}
.aside-card--rubrics h3 {
    font-family: var(--serif);
    font-size: 1.05rem;
    font-weight: 700;
    text-align: center;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ink);
    border-bottom: none;
    padding-bottom: .35rem;
    margin-bottom: .15rem;
}
.aside-card--rubrics h3::after {
    content: '';
    display: block;
    height: 1px;
    margin-top: .45rem;
    background: var(--accent-2);
}

.rubric-block {
    padding: .55rem 0 0;
    border-left: none;
}
.rubric-block--main {
    padding-top: .15rem;
}
.rubric-block + .rubric-block {
    margin-top: .65rem;
    padding-top: .65rem;
    border-top: 1px dashed var(--line);
}

.rubric-block-title {
    font-family: var(--sans);
    font-size: .58rem;
    font-weight: 700;
    font-style: normal;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--accent-2);
    margin: 0 0 .5rem;
    padding: 0 0 .35rem;
    border-bottom: 1px solid var(--ink);
    background: none;
}
.rubric-block-title a {
    color: inherit;
    text-decoration: none;
}
.rubric-block-title a:hover {
    color: var(--ink);
}
.rubric-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.rubric-link {
    display: grid;
    grid-template-columns: 12px 1fr;
    align-items: start;
    gap: .5rem;
    font-size: .79rem;
    font-weight: 500;
    line-height: 1.42;
    padding: .34rem 0;
    color: var(--ink-soft);
    text-decoration: none;
    border-top: 1px dotted var(--line);
    transition: color .12s ease;
}
.rubric-list li:first-child .rubric-link { border-top: none; }
.rubric-link-dot {
    font-family: var(--serif);
    font-size: .95rem;
    line-height: 1.2;
    margin-top: .08rem;
    color: var(--accent-2);
    text-align: center;
}
.rubric-link-dot::before { content: '·'; }
.rubric-link-text { min-width: 0; }
.rubric-link:hover,
.rubric-link:focus-visible {
    color: var(--ink);
    text-decoration: none;
    background: color-mix(in srgb, var(--line) 55%, transparent);
    border-radius: 4px;
    margin-inline: -.25rem;
    padding-inline: .25rem;
}

.aside-ranked { list-style: none; }
.aside-ranked a {
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: .5rem;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.35;
    padding: .45rem 0;
    border-bottom: 1px solid var(--line);
    color: var(--ink-soft);
    text-decoration: none;
}
.aside-ranked a span { font-weight: 800; color: var(--accent); }
.aside-ranked a:hover { color: var(--accent-2); }

.aside-card--partners h3 {
    margin-bottom: .85rem;
}
.aside-partners {
    display: flex;
    flex-direction: column;
    gap: .85rem;
    align-items: flex-start;
}
.aside-partners-divider {
    border: none;
    border-top: 1px solid var(--line);
    margin: 0;
    width: 100%;
}
.aside-partners a {
    display: block;
    line-height: 0;
    text-decoration: none;
    transition: opacity .15s ease;
}
.aside-partners a:hover {
    opacity: 1;
    text-decoration: none;
}
.aside-partners img {
    display: block;
    width: 100%;
    max-width: 220px;
    height: auto;
    opacity: .82;
    transition: opacity .15s ease;
}
.aside-partners a:hover img {
    opacity: 1;
}

.aside-card--editor { text-align: center; }
.aside-card--editor img {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 50%;
    margin: 0 auto .5rem;
    border: 2px solid var(--line);
}
.aside-card--editor span { display: block; font-size: .72rem; color: var(--muted); }
.aside-card--editor a {
    display: inline-block;
    margin-top: .4rem;
    font-size: .66rem;
    font-weight: 700;
    text-transform: uppercase;
}

/* ── Pages ── */
.page-head {
    margin-bottom: 1.25rem;
    padding-bottom: .85rem;
    border-bottom: 2px solid var(--line);
}
.page-head h1 { margin-top: .15rem; }
.page-head p { font-size: .86rem; color: var(--muted); margin-top: .25rem; }
.crumbs { font-size: .68rem; font-weight: 600; color: var(--muted); text-transform: uppercase; }
.crumbs a { font-weight: 700; }

.tabs-back { display: block; font-size: .7rem; font-weight: 700; margin-bottom: .4rem; text-transform: uppercase; }
.tabs-row { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: 1rem; }
.tabs-row a {
    font-size: .7rem;
    font-weight: 600;
    padding: .3rem .6rem;
    border-radius: 20px;
    border: 1px solid var(--line);
    text-decoration: none;
    color: var(--ink-soft);
}
.tabs-row a.on, .tabs-row a:hover { background: var(--accent); color: #fff; border-color: var(--accent); }

.search-hint {
    margin: .35rem 0 0;
    font-size: .82rem;
    color: var(--muted);
    max-width: 52ch;
}
.inline-search { display: flex; gap: .5rem; margin-top: .75rem; max-width: 400px; }
.inline-search--wide { max-width: min(100%, 640px); }
.inline-search input {
    flex: 1;
    padding: .72rem .9rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    font: inherit;
    font-size: 1rem;
}
.inline-search button { width: auto; padding: .72rem 1.35rem; font-size: .82rem; }

.archive-years {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .55rem;
    margin: .85rem 0 0;
    font-size: .82rem;
}
.archive-years__label {
    color: var(--muted);
    margin-right: .15rem;
}
.archive-years__link {
    display: inline-block;
    padding: .18rem .55rem;
    border-radius: 999px;
    text-decoration: none;
    color: var(--ink);
    background: #f3efe8;
    border: 1px solid #e6dfd3;
}
.archive-years__link:hover { color: var(--accent); border-color: #d8cbb8; }
.archive-years__link.is-active {
    color: #fff;
    background: var(--accent-2);
    border-color: var(--accent-2);
}
.archive-years__link--slot1.is-active { background: #c0392b; border-color: #c0392b; }
.archive-years__link--slot2.is-active { background: #d4a017; border-color: #d4a017; }
.archive-years__link--slot3.is-active { background: #27ae60; border-color: #27ae60; }
.archive-years__link--slot4.is-active { background: #2980b9; border-color: #2980b9; }
.archive-years__link--slot5.is-active { background: #2c3e9f; border-color: #2c3e9f; }
.archive-years__link--slot6.is-active { background: #7d3c98; border-color: #7d3c98; }
.page-head--search { padding-bottom: .25rem; }

.article-single, .static-body {
    background: var(--surface);
    border-radius: var(--radius);
    padding: 1.35rem 1.4rem;
    box-shadow: 0 4px 20px rgba(0,0,0,.05);
}
.article-sub { font-family: var(--serif); font-style: italic; color: var(--ink-soft); margin-bottom: .5rem; }
.static-photo { max-width: 180px; border-radius: var(--radius); margin-bottom: .75rem; }
.about-intro { margin-bottom: 1.25rem; }
.about-intro h1 {
    font-family: var(--serif);
    font-size: clamp(1.45rem, 3vw, 1.9rem);
    margin-bottom: .85rem;
    padding-bottom: .55rem;
    border-bottom: 1px solid var(--line);
}
.about-body::after {
    content: '';
    display: table;
    clear: both;
}
.about-photo--wrap {
    float: left;
    width: min(38%, 280px);
    margin: .15rem 2.5rem 1rem 0;
    padding: 0;
    border: 0;
    background: transparent;
    line-height: 0;
    overflow: hidden;
    border-radius: var(--radius);
    shape-margin: 1.1rem;
}
.about-photo--wrap img {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    object-fit: cover;
    object-position: top center;
    display: block;
    vertical-align: top;
}
.about-name {
    font-family: var(--serif);
    font-size: 1.2rem;
    font-weight: 600;
    margin: 0 0 .75rem;
    color: var(--ink);
}
.about-intro p {
    margin-bottom: .85rem;
    line-height: 1.65;
    color: var(--ink-soft);
}
.theme-gazette .about-intro.static-body {
    border-radius: 0;
    box-shadow: none;
    border: 1px solid var(--line);
    border-top: 4px solid var(--accent-2);
}
.hub-banner { margin-bottom: 1rem; border-radius: var(--radius); overflow: hidden; }
.hub-banner img { max-height: 200px; width: 100%; object-fit: cover; }

/* ── Хабы рубрик (внутри) ── */
.hub-head--palitra h1,
.hub-head--malye_goroda h1 {
    font-family: var(--serif);
    font-size: clamp(1.75rem, 3.5vw, 2.35rem);
    line-height: 1.1;
}
.hub-intro {
    max-width: 52ch;
    font-size: .95rem;
    line-height: 1.6;
    color: var(--ink-soft);
}
.hub-banner--palitra img { max-height: 160px; object-position: center; }
.hub-banner--malye_goroda {
    border-radius: 0;
    box-shadow: 0 8px 28px rgba(20, 20, 20, .08);
}
.hub-banner--malye_goroda img { max-height: 240px; }

.hub-mosaic {
    display: grid;
    gap: .85rem;
    margin-top: .5rem;
}
.hub-mosaic--palitra {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.hub-mosaic--malye_goroda {
    grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
}
.hub-mosaic--default {
    grid-template-columns: 1fr;
    gap: 0;
    border: 1px solid var(--line);
    background: var(--surface);
}

.hub-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease;
}
.hub-card:hover { text-decoration: none; }

.hub-card--palitra {
    border-radius: 4px;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 3px 14px rgba(20, 20, 20, .06);
}
.hub-card--palitra:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 28px hsla(var(--rub, 280), 42%, 42%, .16);
    border-color: hsl(var(--rub, 280) 40% 70%);
}
.hub-card--palitra .hub-card-media {
    margin: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: hsl(var(--rub, 280) 35% 90%);
}
.hub-card--palitra .hub-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .22s ease;
}
.hub-card--palitra:hover .hub-card-media img { transform: scale(1.04); }
.hub-card--palitra .hub-card-body {
    padding: .75rem .85rem .85rem;
    background: linear-gradient(180deg, #fff 0%, hsl(var(--rub, 280) 42% 97%) 100%);
    border-top: 3px solid hsl(var(--rub, 280) 45% 52%);
}
.hub-card--palitra .hub-card-title {
    display: block;
    font-family: var(--serif);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.28;
    color: hsl(var(--rub, 280) 28% 20%);
}

.hub-card--malye_goroda {
    position: relative;
    min-height: 11.5rem;
    border-radius: 4px;
    background: linear-gradient(
        165deg,
        hsl(var(--rub, 32) 50% 92%) 0%,
        hsl(var(--rub, 32) 40% 80%) 50%,
        hsl(var(--rub, 32) 34% 70%) 100%
    );
    box-shadow: 0 4px 16px hsla(var(--rub, 32), 38%, 38%, .12);
    border: 1px solid hsl(var(--rub, 32) 35% 82%);
}
.hub-card--malye_goroda:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 26px hsla(var(--rub, 32), 40%, 36%, .2);
}
.hub-card--malye_goroda .hub-card-media {
    position: absolute;
    inset: 0;
    margin: 0;
    z-index: 0;
}
.hub-card--malye_goroda .hub-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .88;
    transition: opacity .2s ease, transform .25s ease;
}
.hub-card--malye_goroda:hover .hub-card-media img {
    opacity: .95;
    transform: scale(1.03);
}
.hub-card-skyline {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 2.8rem;
    height: 2rem;
    background: hsl(var(--rub, 32) 25% 24%);
    opacity: .2;
    clip-path: polygon(
        0% 100%, 0% 50%, 6% 50%, 6% 30%, 12% 30%, 12% 58%,
        20% 58%, 20% 22%, 28% 22%, 28% 44%, 36% 44%, 36% 14%,
        44% 14%, 44% 54%, 52% 54%, 52% 28%, 60% 28%, 60% 64%,
        68% 64%, 68% 18%, 76% 18%, 76% 48%, 84% 48%, 84% 34%,
        92% 34%, 92% 58%, 100% 58%, 100% 100%
    );
    z-index: 1;
    pointer-events: none;
}
.hub-card--malye_goroda .hub-card-body {
    position: relative;
    z-index: 2;
    margin-top: auto;
    padding: .85rem .8rem .75rem;
    background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,.92) 35%, #fff 100%);
}
.hub-card--malye_goroda .hub-card-title {
    display: block;
    font-family: var(--serif);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.2;
    color: hsl(var(--rub, 32) 25% 16%);
}

.hub-card-count {
    display: block;
    margin-top: .3rem;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
}
.hub-card-count--empty { color: var(--accent-2); opacity: .85; }

.hub-mosaic--default .hub-card {
    flex-direction: row;
    align-items: center;
    gap: 1rem;
    padding: .85rem 1rem;
    border-bottom: 1px solid var(--line);
}
.hub-mosaic--default .hub-card:last-child { border-bottom: 0; }
.hub-mosaic--default .hub-card:hover { background: rgba(155, 28, 28, .04); }
.hub-mosaic--default .hub-card-media {
    flex-shrink: 0;
    width: 120px;
    height: 76px;
    margin: 0;
    overflow: hidden;
    background: var(--line);
}
.hub-mosaic--default .hub-card-media img { width: 100%; height: 100%; object-fit: cover; }
.hub-mosaic--default .hub-card-title {
    font-family: var(--serif);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--ink);
}

.prose {
    font-size: 1rem;
    line-height: 1.72;
    color: var(--ink-soft);
    overflow: hidden;
}
.prose::after { content: ''; display: table; clear: both; }
.prose p { margin-bottom: 1rem; }
.prose .prose-highlight,
.prose table.prose-highlight {
    background: #efe8dc !important;
    border: 1px solid var(--line);
    border-left: 4px solid var(--accent-2);
    padding: .85rem 1rem !important;
    margin: 1rem 0;
}
.prose table.prose-highlight {
    width: 100%;
    border-collapse: collapse;
}
.prose table.prose-highlight td,
.prose table.prose-highlight p {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 0 .65rem;
}
.prose .prose-accent,
.prose .prose-accent b,
.prose .prose-accent strong,
.prose .prose-accent i {
    color: var(--accent-2) !important;
}
.prose h2, .prose h3 { font-family: var(--serif); color: var(--ink); margin: 1.2rem 0 .5rem; clear: both; }
.prose img,
.prose .prose-img {
    display: block;
    float: none;
    clear: both;
    max-width: 320px;
    width: 100%;
    max-height: 200px;
    height: auto;
    margin: 1rem 0;
    padding: 0;
    border: 0;
    object-fit: cover;
    border-radius: var(--radius);
    background: transparent;
}
figure.article-photo--side img,
.article-single .prose .prose-img--float,
.story-feature-body--lead .prose-img,
figure.story-feature-photo--side img {
    max-width: none;
    max-height: none;
}
.prose .prose-img--icon {
    display: inline-block;
    float: none;
    clear: none;
    width: auto;
    max-width: none;
    max-height: none;
    margin: 0 .2rem;
    vertical-align: middle;
    border-radius: 0;
}
.article-prose {
    overflow: hidden;
}
.article-prose p {
    margin: 0 0 1rem;
}
.article-prose p:last-child {
    margin-bottom: 0;
}
.article-prose::after {
    content: '';
    display: table;
    clear: both;
}
figure.article-photo--side {
    float: left;
    box-sizing: content-box;
    width: min(34%, 295px);
    margin: .15rem 1.25rem 1.35rem 0;
    padding: 0 2rem 0 0;
    border: 0;
    background: transparent;
    line-height: 0;
    overflow: hidden;
    border-radius: var(--radius);
}
figure.article-photo--side img {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    object-fit: cover;
    display: block;
    vertical-align: top;
}
.article-prose > p {
    margin: 0 0 1rem;
}
.article-prose > p:first-of-type {
    margin-top: .1rem;
}
.article-single .prose .prose-img--float {
    float: left;
    clear: none;
    box-sizing: content-box;
    width: min(34%, 260px);
    max-width: 260px;
    margin: .15rem 1.5rem 1rem 0;
    padding-right: 3rem;
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    overflow: hidden;
    object-fit: cover;
    background: transparent;
    shape-margin: 2rem;
    shape-outside: margin-box;
}
.article-single .prose .prose-img--float:nth-of-type(even) {
    float: right;
    margin: .15rem 0 1rem 1.5rem;
    padding-right: 0;
    padding-left: 3rem;
}
.prose figure:not(.article-photo--wrap) { margin: 1.1rem 0; clear: both; }
.prose figure img { margin: 0; border: 0; border-radius: 0; background: transparent; }
.prose a { color: var(--accent-2); }
.prose table { width: 100%; border-collapse: collapse; margin: 1rem 0; clear: both; }
.prose td, .prose th { padding: .4rem .55rem; border: 1px solid var(--line); vertical-align: top; }

.empty-state { text-align: center; padding: 2.5rem; color: var(--muted); background: var(--surface); border-radius: var(--radius); }

.pagination {
    display: flex;
    justify-content: center;
    gap: 1rem;
    padding: 1rem;
    font-size: .78rem;
}
.pagination a { font-weight: 700; text-decoration: none; }

/* ── Design picker ── */
.design-page { padding-bottom: 2rem; }
.design-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.25rem;
}
.design-card {
    background: var(--surface);
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
}
.design-preview {
    padding: 1rem;
    min-height: 200px;
    background: var(--canvas);
}
.design-preview-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: .75rem;
    font-family: var(--serif);
    font-size: 1.1rem;
    color: var(--accent);
}
.design-preview-head span { font-family: var(--sans); font-size: .58rem; color: var(--muted); }
.design-preview-story {
    background: var(--surface);
    padding: .65rem .75rem;
    border-radius: 4px;
    margin-bottom: .5rem;
    border-left: 3px solid var(--accent);
}
.design-preview-story small { font-size: .58rem; text-transform: uppercase; color: var(--accent); font-weight: 700; }
.design-preview-story p { font-family: var(--serif); font-weight: 600; font-size: .9rem; margin-top: .15rem; }
.design-preview-line {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: .5rem;
    font-size: .72rem;
    padding: .35rem 0;
    border-bottom: 1px solid var(--line);
    color: var(--ink-soft);
}
.design-preview-line time { font-weight: 700; color: var(--muted); }
.design-card-body { padding: 1rem 1.1rem 1.15rem; }
.design-card-body h2 { font-family: var(--serif); font-size: 1.2rem; color: var(--accent); margin-bottom: .35rem; }
.design-card-body p { font-size: .82rem; color: var(--ink-soft); margin-bottom: .75rem; line-height: 1.45; }
.design-apply {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    padding: .45rem .85rem;
    background: var(--accent);
    color: #fff !important;
    border-radius: 4px;
    text-decoration: none !important;
    margin-right: .5rem;
}
.design-demo { font-size: .72rem; font-weight: 600; color: var(--muted); }

/* ── Юридический подвал (оригинал) ── */
.site-footer {
    margin-top: .5rem;
    padding: 1.35rem 0 1.75rem;
    border-top: 1px solid var(--ink);
    background: var(--surface);
}
.site-footer-inner {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.site-footer-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .85rem 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line);
}
.site-footer-social,
.site-footer-badges {
    display: flex;
    align-items: center;
    gap: .55rem;
}
.site-footer-social img {
    height: 22px;
    width: auto;
    display: block;
    border-radius: 2px;
}
.site-footer-badges img {
    display: block;
    height: auto;
    max-height: 31px;
}
.site-footer-meta {
    margin: 0;
    font-size: .78rem;
    font-weight: 500;
    color: var(--ink-soft);
    text-align: center;
    flex: 1 1 12rem;
}
.site-footer-cert {
    margin: 0;
    text-align: center;
    color: var(--muted);
    line-height: 1.55;
}
.site-footer-legal {
    max-width: 52em;
    margin: 0 auto;
    text-align: center;
    color: var(--muted);
    line-height: 1.62;
}
#footer a:link,
#footer a:visited {
    color: var(--accent-2);
    text-decoration: underline;
    text-underline-offset: 2px;
}
#footer a:hover,
#footer a:active {
    color: var(--ink);
}
#footer small {
    font-size: .68rem;
}
#footer b {
    font-weight: 700;
    color: var(--ink-soft);
}

/* ── Admin ── */
.admin-body { background: #e5e7eb; font-family: system-ui, sans-serif; }
.admin-header { background: #1a2744; color: #fff; padding: 1rem 2rem; }
.admin-header-inner { max-width: 1100px; margin: 0 auto; display: flex; justify-content: space-between; }
.admin-nav a { color: rgba(255,255,255,.65); margin-left: 1rem; }
.admin-main { max-width: 1100px; margin: 2rem auto; padding: 0 1.5rem; }
.admin-card { background: #fff; padding: 1.5rem; margin-bottom: 1.5rem; border: 1px solid var(--line); border-radius: 8px; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: .6rem; border-bottom: 1px solid #e5e7eb; text-align: left; }
.admin-form label { display: block; font-weight: 600; margin-bottom: .3rem; }
.admin-form input, .admin-form select, .admin-form textarea {
    width: 100%; padding: .55rem; border: 1px solid #e5e7eb; margin-bottom: 1rem; border-radius: 4px;
}
.admin-form textarea { min-height: 200px; }
.admin-stats { display: flex; gap: 1rem; }
.stat-box { flex: 1; padding: 1rem; background: #f5f5f5; text-align: center; border-radius: 6px; }
.stat-num { font-size: 2rem; font-weight: 700; color: #1a3d5c; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.link-btn { background: none; border: 0; color: #b42330; cursor: pointer; text-decoration: underline; }

/* ── Theme accents ── */
.theme-gazette .site-header { border-bottom: 1px solid var(--line); }
.theme-gazette .site-footer { border-top-color: var(--line); background: var(--footer-bg); }
.theme-gazette .aside-card {
    border-radius: 0;
    box-shadow: none;
    background: var(--surface);
    border-color: var(--line);
}
.theme-gazette .aside-card--editor {
    background: linear-gradient(180deg, #fff 0%, #faf9f6 100%);
}
.theme-gazette .site-nav a {
    font-size: .8rem;
    font-weight: 500;
    color: var(--muted);
}
.theme-gazette .site-nav a:hover {
    color: var(--ink);
    border-bottom-color: var(--line);
}
.theme-gazette .site-nav a.on {
    color: var(--ink);
    font-weight: 600;
    border-bottom-color: var(--ink);
}
.theme-gazette .site-nav-line--extra {
    border-top: 1px solid var(--line);
    padding-top: .45rem;
}
.theme-gazette .site-nav a.nav-admin { color: var(--muted); }
.theme-gazette .theme-switch a.on { background: var(--accent-2); border-color: var(--accent-2); }
.theme-gazette .agency-strip {
    background: #fff;
    border-left-width: 5px;
    border-left-color: var(--accent-2);
    border-radius: 0;
    box-shadow: none;
    border: 1px solid var(--line);
    border-left: 5px solid var(--accent-2);
}
.theme-gazette .story-feature { border-radius: 0; box-shadow: none; border: 1px solid var(--line); border-top: 4px solid var(--accent-2); }
.theme-gazette .feed-list { border-radius: 0; box-shadow: none; border: 1px solid var(--line); }
.theme-gazette .feed-item a { border-left: 0; padding-left: 1.15rem; }
.theme-gazette .feed-item a:hover { border-left: 0; background: rgba(155,28,28,.04); }
.theme-gazette .feed-item-meta time { font-weight: 700; font-variant-numeric: tabular-nums; min-width: 3.2rem; }
.theme-gazette .feed-item-title { font-size: 1.05rem; }
.theme-gazette .aside-card--rubrics {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0 0 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--line);
}
.theme-gazette .aside-card--rubrics h3 {
    font-family: var(--sans);
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    text-align: left;
    color: var(--muted);
    border-bottom: 1px solid var(--line);
    padding-bottom: .45rem;
    margin-bottom: .65rem;
}
.theme-gazette .aside-card--rubrics h3::after {
    display: none;
}
.theme-gazette .rubric-block-title {
    color: var(--ink-soft);
    border-bottom-color: var(--line);
    letter-spacing: .12em;
}
.theme-gazette .rubric-link {
    color: var(--muted);
    border-top-color: rgba(230, 224, 214, .9);
    font-size: .76rem;
    font-weight: 500;
}
.theme-gazette .rubric-link-dot { color: var(--muted); opacity: .85; }
.theme-gazette .rubric-link:hover,
.theme-gazette .rubric-link:focus-visible {
    color: var(--ink);
    background: rgba(230, 224, 214, .45);
}
.theme-gazette .rubric-block + .rubric-block {
    margin-top: 1rem;
    padding-top: .85rem;
}
.theme-gazette .hub-head--palitra,
.theme-gazette .hub-head--malye_goroda {
    border-bottom: 2px solid var(--line);
    padding-bottom: 1rem;
    margin-bottom: 1.25rem;
}
.theme-gazette .hub-card--palitra,
.theme-gazette .hub-card--malye_goroda { border-radius: 0; }
.theme-gazette .article-single {
    border-radius: 0;
    box-shadow: none;
    border: 1px solid var(--line);
    border-top: 4px solid var(--accent-2);
}
.theme-gazette .site-logo-name { color: var(--ink); }

.theme-meridian .site-logo-name { color: var(--accent); }
.theme-meridian .site-nav a { border-radius: 4px; }
.theme-meridian .site-nav a.on { background: var(--accent); }
.theme-meridian .theme-switch a.on { background: var(--accent); border-color: var(--accent); }
.theme-meridian .agency-strip { border-left-color: var(--accent); background: linear-gradient(135deg, #f8fbf9, #fff); }
.theme-meridian .story-feature { border-top-color: var(--accent); box-shadow: 0 8px 40px rgba(27,67,50,.06); }
.theme-meridian .block-head h2 { color: var(--accent); }
.theme-meridian .feed-list { border: 1px solid var(--line); }
.theme-meridian .feed-item a:hover { border-left-color: var(--accent); }
.theme-meridian .feed-item-rub { color: var(--accent); }
.theme-meridian .aside-search button, .theme-meridian .btn { background: var(--accent); }
.theme-meridian .aside-ranked a span { color: var(--accent-2); }

.theme-imperial .site-header { color: #f0ebe3; border-bottom-color: #333; }
.theme-imperial .site-logo-name { color: #f5f0e8; }
.theme-imperial .site-logo-tld { color: var(--accent-2); }
.theme-imperial .site-logo-emblem img { filter: invert(1) brightness(1.15); }
.theme-imperial .site-identity p { color: rgba(240,235,227,.85); }
.theme-imperial .site-identity span, .theme-imperial .header-aside { color: rgba(240,235,227,.55); }
.theme-imperial .lang-switch a { color: rgba(240,235,227,.5); }
.theme-imperial .lang-switch a.on { color: var(--accent-2); }
.theme-imperial .site-nav a { color: rgba(240,235,227,.75); }
.theme-imperial .site-nav a:hover { background: rgba(255,255,255,.08); color: #fff; }
.theme-imperial .site-nav a.on { background: var(--accent); color: #fff; }
.theme-imperial .site-search { border-color: #444; background: #2a2a2a; }
.theme-imperial .site-search input { color: #eee; }
.theme-imperial .site-search button { color: rgba(240,235,227,.6); }
.theme-imperial .nav-burger { border-color: #444; background: #2a2a2a; }
.theme-imperial .nav-burger span { background: #eee; }
.theme-imperial .theme-switch { border-top-color: #333; }
.theme-imperial .theme-switch a { border-color: #444; color: rgba(240,235,227,.55); }
.theme-imperial .theme-switch a:hover { border-color: var(--accent-2); color: var(--accent-2); }
.theme-imperial .theme-switch a.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.theme-imperial .agency-strip { border-left-color: var(--accent); background: var(--surface); }
.theme-imperial .story-feature { border-top: 3px solid var(--accent); box-shadow: 0 6px 32px rgba(155,35,53,.08); }
.theme-imperial .story-kicker { color: var(--accent); }
.theme-imperial .block-head h2 { color: var(--accent); }
.theme-imperial .feed-item a:hover { border-left-color: var(--accent); }
.theme-imperial .feed-item a:hover .feed-item-title { color: var(--accent); }
.theme-imperial .aside-card h3 { color: var(--accent); border-bottom-color: var(--accent-2); }
.theme-imperial .aside-search button, .theme-imperial .btn { background: var(--accent); }

.theme-press .site-canvas,
.theme-noble .site-canvas,
.theme-aurora .site-canvas {
    border-radius: 0 0 4px 4px;
}

@media (max-width: 960px) {
    .site-grid { grid-template-columns: 1fr; }
    .home-tagline-grid { grid-template-columns: 1fr; }
    .home-tagline-aside { display: none; }
    .site-aside { position: static; }
    .header-inner {
        grid-template-columns: 1fr;
        text-align: center;
        gap: .65rem;
        padding: .85rem 0 .6rem;
    }
    .header-aside { text-align: center; }
    .site-logo { justify-content: center; }
    .site-identity p {
        max-width: none;
        margin-inline: auto;
    }
    .nav-row {
        position: relative;
        grid-template-columns: 1fr auto;
        align-items: center;
        gap: .5rem;
        padding-bottom: .75rem;
    }
    .site-nav {
        display: none;
        position: absolute;
        top: calc(100% + .35rem);
        left: 0;
        right: 0;
        z-index: 40;
        background: var(--surface);
        padding: .75rem;
        gap: .65rem;
        border: 1px solid var(--line);
        border-radius: var(--radius);
        box-shadow: var(--shadow);
    }
    .site-nav.open {
        display: flex;
        grid-column: 1 / -1;
    }
    .site-nav-line {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }
    .site-nav-line--extra {
        border-top: 1px solid var(--line);
        padding-top: .5rem;
        margin-top: .15rem;
    }
    .site-nav a {
        padding: .55rem .15rem;
        border-bottom: 0;
        border-left: 2px solid transparent;
        white-space: normal;
    }
    .site-nav a.on {
        border-left-color: var(--ink);
        padding-left: .55rem;
    }
    .theme-gazette .site-nav a.on {
        border-bottom: 0;
        border-left-color: var(--ink);
    }
    .theme-imperial .site-nav.open { background: #1c1c1c; }
    .site-search {
        display: flex;
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
        width: 100%;
    }
    .site-search input {
        width: 100%;
        min-width: 0;
        flex: 1;
    }
    .nav-burger {
        display: flex;
        grid-column: 2;
        grid-row: 1;
        align-self: center;
        justify-self: end;
    }
    figure.story-feature-photo--side,
    figure.article-photo--side {
        float: none;
        box-sizing: border-box;
        width: 100%;
        max-width: none;
        margin: 0 0 1.15rem;
        padding: 0;
    }
    figure.story-feature-photo--side img,
    figure.article-photo--side img {
        max-height: 280px;
        object-fit: cover;
    }
    .story-feature-body--lead .prose-img {
        float: none;
        width: 100%;
        max-width: none;
        margin: 0 0 1rem;
    }
}
@media (max-width: 720px) {
    .wrap { width: min(100% - 1rem, var(--wrap)); }
    .site-main { padding: 1rem 0 1.75rem; }
    .story-feature,
    .article-single,
    .static-body {
        padding: 1rem .95rem 1.1rem;
    }
    .agency-strip {
        padding: .75rem .85rem;
        font-size: .82rem;
    }
    .article-single .prose .prose-img--float,
    .article-single .prose .prose-img--float:nth-of-type(even),
    .prose img,
    .prose .prose-img {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 0 1rem !important;
        padding: 0 !important;
        clear: both;
    }
    .prose iframe,
    .prose video,
    .prose embed,
    .prose object {
        max-width: 100%;
        height: auto;
    }
    .prose table {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .about-photo--wrap {
        float: none;
        width: 100%;
        max-width: 280px;
        margin: 0 auto 1rem;
    }
    .about-photo--wrap img { max-height: 320px; }
    .feed-item a {
        align-items: flex-start;
        gap: .65rem;
        padding: .7rem .75rem;
    }
    .feed-item-media { width: 72px; height: 52px; }
    .feed-item-title { font-size: .94rem; }
    .feed-item-lead { font-size: .76rem; }
    .block-head {
        flex-direction: column;
        align-items: flex-start;
        gap: .35rem;
    }
    .theme-switch { flex-wrap: wrap; }
    .site-footer-top {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .site-footer-meta { flex-basis: auto; }
    .site-footer-social,
    .site-footer-badges {
        flex-wrap: wrap;
        justify-content: center;
    }
    .hub-mosaic--palitra,
    .hub-mosaic--malye_goroda {
        grid-template-columns: 1fr;
        gap: .6rem;
    }
    .hub-card--malye_goroda { min-height: 9.5rem; }
    .hub-card--palitra .hub-card-title { font-size: .88rem; }
    .inline-search,
    .inline-search--wide {
        flex-direction: column;
        max-width: 100%;
    }
    .inline-search button { width: 100%; }
}
@media (max-width: 420px) {
    .site-logo-name { font-size: 1.15rem; }
    .site-identity p { font-size: .66rem; }
    .feed-item a {
        flex-direction: column;
    }
    .feed-item-media {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
    }
    .feed-item-media img {
        width: 100%;
        height: 100%;
    }
}