/* ─── Главдело theme — based on Claude Design handoff (2026-05-04) ─── */

/* ── Onest variable, self-hosted (4 subsets, browser auto-picks по unicode-range) ── */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/themes/glavdelo/fonts/onest-cyrillic.woff2') format('woff2-variations');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/themes/glavdelo/fonts/onest-cyrillic-ext.woff2') format('woff2-variations');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/themes/glavdelo/fonts/onest-latin.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/themes/glavdelo/fonts/onest-latin-ext.woff2') format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ─── Tokens (light = base) ─── */
:root {
  --color-bg: #F8F9FA;
  --color-surface: #FFFFFF;
  --color-surface-2: #F1F3F5;
  --color-text-primary: #1A1F2E;
  --color-text-secondary: #5B6478;
  --color-text-muted: #8B94A7;
  --color-text-inverse: #FFFFFF;
  --color-primary: #FFC857;
  --color-primary-hover: #E6A93A;
  --color-primary-soft: rgba(255, 200, 87, 0.14);
  --color-primary-line: rgba(255, 200, 87, 0.42);
  --color-primary-deep: #8a6312;
  --color-success: #10B981;
  --color-warning: #F59E0B;
  --color-danger:  #EF4444;
  --color-info:    #3B82F6;
  --color-info-soft: rgba(59, 130, 246, 0.10);
  --color-border: #E5E7EB;
  --color-border-strong: #D1D5DB;
  --color-divider: #F3F4F6;

  /* Совместимостные алиасы для виджетов, которые ссылаются на старые имена.
     ВАЖНО: эти алиасы автоматически наследуют значение из dark-override
     `--color-text-primary` в `[data-theme="dark"]`. Не делать hardcoded fallback
     `#1c1917` или `#fff` — это и был источник «невидимого текста в dark». */
  --color-text: var(--color-text-primary);
  --color-text-strong: var(--color-text-primary);
  --color-text-base: var(--color-text-primary);
  --color-bg-card: var(--color-surface);
  --color-bg-soft: #faf6ec;

  --text-xs: 12px; --text-sm: 14px; --text-base: 17px; --text-lg: 20px;
  --text-xl: 24px; --text-2xl: 30px; --text-3xl: 36px; --text-4xl: 44px; --text-5xl: 60px;

  --r-sm: 6px; --r-md: 8px; --r-lg: 12px; --r-xl: 16px;

  --shadow-card: 0 1px 3px rgba(15, 22, 36, 0.06);
  --shadow-card-hover: 0 4px 14px rgba(15, 22, 36, 0.08);

  --container: 1280px;
  --sidebar-w: 220px;
  --right-sidebar-w: 280px;
  --header-h: 64px;
}

[data-theme="dark"] {
  --color-bg: #0C1017;
  --color-surface: #161B26;
  --color-surface-2: #1F2533;
  --color-text-primary: #E8EAF0;
  --color-text-secondary: #B0B8C8;
  --color-text-muted: #8B94A7;
  --color-text-inverse: #0C1017;
  --color-primary-soft: rgba(255, 200, 87, 0.16);
  --color-primary-line: rgba(255, 200, 87, 0.45);
  --color-primary-deep: #FFE6A8;
  --color-border: #232938;
  --color-border-strong: #2E3547;
  --color-divider: #1B2130;
  --color-info-soft: rgba(59, 130, 246, 0.16);

  /* Алиасы перекрываются под dark — fallback цвета :root были hardcoded под light */
  --color-bg-card: var(--color-surface);
  --color-bg-soft: var(--color-surface-2);

  --shadow-card: 0 1px 3px rgba(0,0,0,0.3);
  --shadow-card-hover: 0 4px 14px rgba(0,0,0,0.4);
}

/* ─── Base ─── */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: 'Onest', system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  color: var(--color-text-primary);
  background:
    radial-gradient(1200px 700px at 88% 4%, rgba(255,200,87,.08) 0%, rgba(255,200,87,.03) 40%, transparent 70%),
    radial-gradient(900px 600px at 6% 94%, rgba(255,200,87,.06) 0%, rgba(255,200,87,.02) 45%, transparent 72%),
    radial-gradient(1400px 900px at 50% 50%, rgba(255,235,180,.025) 0%, transparent 65%),
    var(--color-bg);
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
  line-height: 1.55;
  font-size: var(--text-base);
}
[data-theme="dark"] body {
  background:
    radial-gradient(1200px 700px at 88% 4%, rgba(255,200,87,.07) 0%, rgba(255,200,87,.025) 40%, transparent 70%),
    radial-gradient(900px 600px at 6% 94%, rgba(255,200,87,.05) 0%, rgba(255,200,87,.018) 45%, transparent 72%),
    radial-gradient(1400px 900px at 50% 50%, rgba(255,235,180,.02) 0%, transparent 65%),
    var(--color-bg);
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
ul { padding: 0; margin: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; font-weight: 600; letter-spacing: -0.015em; line-height: 1.2; color: var(--color-text-primary); }
p { margin: 0; }
img { max-width: 100%; display: block; }

/* ─── Buttons ─── */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; line-height: 1; white-space: nowrap;
  border-radius: var(--r-md); border: 1px solid transparent;
  padding: 12px 20px; font-size: var(--text-base);
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.btn-primary { background: var(--color-primary); color: #1A1F2E; }
.btn-primary:hover { background: var(--color-primary-hover); }
.btn-secondary { background: transparent; color: var(--color-text-primary); border-color: var(--color-border-strong); }
.btn-secondary:hover { border-color: var(--color-text-primary); }
.btn-ghost { background: transparent; color: var(--color-text-primary); }
.btn-ghost:hover { background: var(--color-surface-2); }
.btn-sm { padding: 8px 14px; font-size: var(--text-sm); }

/* ─── Chips ─── */
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: var(--text-xs); font-weight: 500; line-height: 1.4; }
.chip-outline { border: 1px solid var(--color-primary-line); color: var(--color-primary-deep); background: var(--color-primary-soft); }
.chip-soft { background: var(--color-surface-2); color: var(--color-text-secondary); }
.chip-caps { text-transform: uppercase; letter-spacing: 0.06em; font-size: 11px; font-weight: 600; }

/* ─── Cards ─── */
.card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--r-lg); box-shadow: var(--shadow-card); }
.card-padded { padding: 24px; }
a.card { color: inherit; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
a.card:hover { border-color: var(--color-border-strong); box-shadow: var(--shadow-card-hover); }

/* ─── Eyebrow ─── */
.eyebrow { text-transform: uppercase; letter-spacing: 0.08em; font-size: 11px; font-weight: 600; color: var(--color-text-muted); }

/* --- Header (warm-glass, Style B-aligned with sidebar plates) --- */
.gd-header {
    position: sticky;
    top: 0;
    z-index: 20;
    isolation: isolate;
    height: var(--header-h);
    border-bottom: none;
    background:
        radial-gradient(ellipse 70% 140% at 50% -10%,
            rgba(255,255,255,.65) 0%,
            transparent 55%),
        linear-gradient(180deg, #fdfcf6 0%, #fbf6e6 100%);
    backdrop-filter: blur(22px) saturate(140%);
    -webkit-backdrop-filter: blur(22px) saturate(140%);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.95),
        inset 0 -1px 0 rgba(192,146,10,.10),
        0 6px 24px rgba(156,116,6,.07),
        0 2px 4px rgba(28,25,23,.03);
}
.gd-header::after {
    content: '';
    position: absolute;
    inset: auto 0 0 0;
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(210,162,14,.20) 18%,
        rgba(243,201,76,.50) 50%,
        rgba(210,162,14,.20) 82%,
        transparent 100%
    );
    pointer-events: none;
}
[data-theme="dark"] .gd-header {
    background:
        radial-gradient(ellipse 70% 140% at 50% -10%,
            rgba(255,255,255,.05) 0%,
            transparent 55%),
        linear-gradient(180deg, #1A1F2E 0%, #14192A 100%);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.06),
        inset 0 -1px 0 rgba(255,200,87,.14),
        0 8px 36px rgba(0,0,0,.32),
        0 2px 6px rgba(0,0,0,.20);
}
[data-theme="dark"] .gd-header::after {
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(255,200,87,.22) 18%,
        rgba(255,200,87,.55) 50%,
        rgba(255,200,87,.22) 82%,
        transparent 100%
    );
}

.gd-header__inner { max-width: var(--container); margin: 0 auto; height: 100%; padding: 0 28px; display: flex; align-items: center; gap: 32px; position: relative; }

.gd-brand {
    display: inline-flex; align-items: center; gap: 10px;
    flex: none;
    letter-spacing: .2px;
    transition: transform .24s cubic-bezier(.2,.8,.2,1);
}
.gd-brand:hover { text-decoration: none; transform: translateY(-1px); }

.gd-mark { display: inline-block; position: relative; width: 28px; height: 28px; flex: none; filter: drop-shadow(0 2px 4px rgba(156,116,6,.18)); }
.gd-mark__rect { position: absolute; width: 18px; height: 18px; border-radius: 4px; }
.gd-mark__rect--1 { left: 0; top: 10px; background: #DDE1E8; }
.gd-mark__rect--2 { left: 5px; top: 5px; background: #B6BDCB; }
.gd-mark__rect--3 { left: 10px; top: 0; background: var(--color-primary); box-shadow: inset 0 1px 0 rgba(255,255,255,.55); }
[data-theme="dark"] .gd-mark { filter: drop-shadow(0 2px 6px rgba(0,0,0,.50)); }
[data-theme="dark"] .gd-mark__rect--1 { background: #2E3547; }
[data-theme="dark"] .gd-mark__rect--2 { background: #4A5366; }

.gd-wordmark {
    font-weight: 800;
    font-size: 19px;
    letter-spacing: -0.02em;
    color: #2A1F08;
    background: linear-gradient(180deg, #B07D0E 0%, #2A1F08 100%);
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 1px 0 rgba(255,255,255,.65));
}
[data-theme="dark"] .gd-wordmark {
    background: linear-gradient(180deg, #FFEFC6 0%, #B07D0E 100%);
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 1px 0 rgba(0,0,0,.45));
}

.gd-nav { display: flex; align-items: center; gap: 6px; flex: 1; justify-content: center; padding: 4px; }
.gd-nav__item {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 8px 12px;
    border-radius: var(--r-lg);
    border: 1px solid transparent;
    font-size: var(--text-sm); font-weight: 700;
    letter-spacing: .02em;
    color: rgba(28,22,0,.68);
    transition: color .24s cubic-bezier(.2,.8,.2,1),
                background .24s cubic-bezier(.2,.8,.2,1),
                border-color .24s cubic-bezier(.2,.8,.2,1),
                box-shadow .24s cubic-bezier(.2,.8,.2,1),
                transform .24s cubic-bezier(.2,.8,.2,1);
}
.gd-nav__item:hover {
    color: var(--color-text-primary);
    text-decoration: none;
    background: rgba(243,185,18,.16);
    border-color: rgba(210,162,14,.22);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.55),
        0 6px 18px rgba(156,116,6,.10);
}
.gd-nav__item:hover .gd-nav__icon { color: rgba(28,25,23,.62); }
.gd-nav__item:active { transform: scale(.98); }
.gd-nav__item.is-active {
    color: var(--color-text-primary);
    background: rgba(243,185,18,.22);
    border-color: rgba(210,162,14,.36);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.65),
        0 6px 18px rgba(156,116,6,.12);
    font-weight: 700;
}
.gd-nav__item.is-active .gd-nav__icon { color: rgba(28,25,23,.72); }
.gd-nav__icon { display: inline-flex; width: 18px; height: 18px; flex: none; color: rgba(100,72,0,.46); transition: color .24s cubic-bezier(.2,.8,.2,1); }
.gd-nav__icon svg { width: 18px; height: 18px; display: block; }
[data-theme="dark"] .gd-nav__item { color: rgba(255,235,180,.72); }
[data-theme="dark"] .gd-nav__item:hover {
    color: var(--color-text-primary);
    background: rgba(255,200,87,.10);
    border-color: rgba(255,200,87,.22);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.06),
        0 6px 18px rgba(0,0,0,.32);
}
[data-theme="dark"] .gd-nav__item:hover .gd-nav__icon { color: rgba(255,235,180,.85); }
[data-theme="dark"] .gd-nav__item.is-active {
    background: rgba(255,200,87,.16);
    border-color: rgba(255,200,87,.36);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.08),
        0 6px 18px rgba(0,0,0,.36);
}
[data-theme="dark"] .gd-nav__icon { color: rgba(255,235,180,.55); }

.gd-header__right { display: flex; gap: 6px; align-items: center; flex: none; margin-left: auto; }
.gd-iconbtn {
    width: 36px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 999px;
    color: rgba(28,22,0,.68);
    border: 1px solid transparent;
    background: transparent;
    padding: 0;
    transition: color .24s cubic-bezier(.2,.8,.2,1),
                background .24s cubic-bezier(.2,.8,.2,1),
                border-color .24s cubic-bezier(.2,.8,.2,1),
                box-shadow .24s cubic-bezier(.2,.8,.2,1),
                transform .24s cubic-bezier(.2,.8,.2,1);
}
.gd-iconbtn:hover {
    color: var(--color-text-primary);
    background: rgba(243,185,18,.16);
    border-color: rgba(210,162,14,.22);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.55),
        0 6px 18px rgba(156,116,6,.10);
}
.gd-iconbtn:active { transform: scale(.96); }
.gd-iconbtn--profile { border-color: rgba(210,162,14,.36); background: rgba(255,255,255,.55); }
.gd-iconbtn .theme-icon[hidden] { display: none; }
[data-theme="dark"] .gd-iconbtn { color: rgba(255,235,180,.72); }
[data-theme="dark"] .gd-iconbtn:hover {
    color: var(--color-text-primary);
    background: rgba(255,200,87,.10);
    border-color: rgba(255,200,87,.22);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.06),
        0 6px 18px rgba(0,0,0,.32);
}
[data-theme="dark"] .gd-iconbtn--profile { border-color: rgba(255,200,87,.36); background: rgba(255,255,255,.04); }

/* ─── Shell: sidebar + main ─── */
.gd-shell { max-width: var(--container); margin: 0 auto; padding: 0 28px; display: flex; align-items: flex-start; gap: 0; }
.gd-sidebar-wrap { position: sticky; top: var(--header-h); align-self: flex-start; flex: none; }
.gd-sidebar { width: var(--sidebar-w); padding: 32px 8px 32px 0; }
.gd-sidebar__eyebrow { padding: 0 12px 10px; }
.gd-sidebar__nav { display: flex; flex-direction: column; gap: 2px; }
.gd-sidebar__item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; font-size: var(--text-sm); font-weight: 500; color: var(--color-text-primary); }
.gd-sidebar__item:hover { background: var(--color-surface-2); }
.gd-sidebar__item.is-active { background: var(--color-primary-soft); font-weight: 600; }
.gd-sidebar__item-icon { width: 20px; height: 20px; flex: none; }
.gd-sidebar__sep { height: 1px; background: var(--color-border); margin: 20px 12px; }
.gd-sidebar__item--theme { padding: 9px 12px; color: var(--color-text-secondary); }
.gd-sidebar__item--theme svg { width: 16px; height: 16px; flex: none; }

.gd-main { flex: 1; padding: 32px 24px; min-width: 0; }

/* ─── Section heads ─── */
.gd-section { margin-bottom: 56px; }
.gd-section__head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 18px; gap: 16px; }
.gd-section__title { font-size: var(--text-2xl); }
.gd-section__more { font-size: var(--text-sm); color: var(--color-text-secondary); display: inline-flex; align-items: center; gap: 6px; }
.gd-section__more:hover { color: var(--color-text-primary); }

/* ─── Hero ─── */
.gd-hero { padding: 8px 0 56px; }
.gd-hero__h1 { font-size: var(--text-4xl); line-height: 1.1; letter-spacing: -0.025em; max-width: 780px; font-weight: 700; }
.gd-hero__lead { margin-top: 18px; font-size: var(--text-lg); color: var(--color-text-secondary); max-width: 640px; line-height: 1.5; }
.gd-hero__cta { margin-top: 28px; display: flex; gap: 12px; flex-wrap: wrap; }
.gd-hero__chips { margin-top: 24px; display: flex; gap: 18px; font-size: var(--text-sm); color: var(--color-text-muted); align-items: center; flex-wrap: wrap; }
.gd-hero__chip { display: inline-flex; align-items: center; gap: 6px; }

/* ─── Cards (atoms) — переиспользуются inline-виджетами tools-grid и docs-grid.
   Сетки (.gd-tools-grid__grid, .gd-docs-grid__grid) определены ниже в виджет-секции. ─── */
.gd-calc-card { padding: 18px; display: flex; align-items: flex-start; gap: 14px; }
.gd-calc-card__icon { width: 36px; height: 36px; border-radius: 8px; background: var(--color-primary-soft); display: inline-flex; align-items: center; justify-content: center; color: var(--color-primary-deep); flex: none; }
.gd-calc-card__title { font-size: var(--text-base); margin-bottom: 4px; font-weight: 600; }
.gd-calc-card__desc { font-size: var(--text-sm); color: var(--color-text-secondary); line-height: 1.45; }

/* Карточка документа: иконка-блок слева (крупная, по центру вертикали),
   справа title + desc стопкой. */
.gd-doc-card { padding: 18px; display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; align-items: center; }
.gd-doc-card__icon {
    grid-row: 1 / -1;
    grid-column: 1;
    align-self: center;
    width: 40px;
    height: 40px;
    padding: 8px;
    box-sizing: border-box;
    color: var(--color-text-secondary);
    background: var(--color-accent-soft, #fff8e6);
    border-radius: 10px;
}
.gd-doc-card > div { grid-column: 2; min-width: 0; }
.gd-doc-card__title { font-size: var(--text-base); font-weight: 600; margin: 0 0 4px; line-height: 1.3; }
.gd-doc-card__desc { font-size: var(--text-sm); color: var(--color-text-muted); margin: 0; }
@media (max-width: 520px) {
    .gd-doc-card { padding: 14px; column-gap: 12px; grid-template-columns: 36px 1fr; }
    .gd-doc-card__icon { width: 36px; height: 36px; padding: 7px; }
}

/* Dark theme: <img>-иконки в карточках инструментов/документов рендерятся как чёрные strokes
   (currentColor не работает у <img>) - инвертируем в светлые через filter. */
[data-theme="dark"] .gd-calc-card__icon img,
[data-theme="dark"] .gd-doc-card__icon {
    filter: brightness(0) invert(0.78);
}

/* ─── Footer ─── */
.gd-footer { margin-top: 80px; border-top: 1px solid var(--color-border); background: var(--color-surface); }
.gd-footer__inner { max-width: var(--container); margin: 0 auto; padding: 32px 28px; display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.gd-footer__nav { display: flex; align-items: center; gap: 24px; font-size: var(--text-sm); color: var(--color-text-secondary); flex-wrap: wrap; }
.gd-footer__nav a:hover { color: var(--color-text-primary); }
.gd-footer__copy { font-size: var(--text-xs); color: var(--color-text-muted); }

/* ─── Responsive (общий shell — виджет-сетки имеют свои правила ниже) ─── */
@media (max-width: 900px) {
  /* На мобильном базовый фон body заменяем с холодного серого на тёплый молочный,
     чтобы не появлялись серые «подложки» в зонах, куда не дотягиваются золотые радиалы */
  body {
    background:
        radial-gradient(1200px 700px at 88% 4%, rgba(255,200,87,.10) 0%, rgba(255,200,87,.03) 40%, transparent 70%),
        radial-gradient(900px 600px at 6% 94%, rgba(255,200,87,.08) 0%, rgba(255,200,87,.02) 45%, transparent 72%),
        #fdfcf6;
  }
  [data-theme="dark"] body {
    background:
        radial-gradient(1200px 700px at 88% 4%, rgba(255,200,87,.08) 0%, rgba(255,200,87,.03) 40%, transparent 70%),
        radial-gradient(900px 600px at 6% 94%, rgba(255,200,87,.06) 0%, rgba(255,200,87,.02) 45%, transparent 72%),
        #14192A;
  }
  .gd-shell { flex-direction: column; padding: 0 16px; background: transparent; }
  .gd-sidebar-wrap { position: static; width: 100%; background: transparent; }
  .gd-sidebar { width: 100%; padding: 8px 0; }
  .gd-sidebar__nav { flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .gd-sidebar__item { padding: 8px 12px; }
  .gd-sidebar__sep { display: none; }
  .gd-main { padding: 0 0 24px; }
  .gd-sidebar { padding-bottom: 0; }
  .gd-hero-simple { padding-top: 0; }
  .gd-nav { display: none; }

  /* eyebrow-pill в hero - одна строка с edge-fade-скроллом текста */
  .gd-hero-simple__eyebrow {
      max-width: 100%;
      align-items: center;
      gap: 8px;
      overflow: hidden;
      padding: 7px 0 7px 11px;
  }
  .gd-hero-simple__eyebrow > span {
      flex: 1; min-width: 0;
      white-space: nowrap;
      overflow-x: auto;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding-right: 14px;
      -webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 28px), transparent 100%);
              mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 28px), transparent 100%);
  }
  .gd-hero-simple__eyebrow > span::-webkit-scrollbar { display: none; }
  .gd-hero-simple__sparkle { flex: none; }
}
@media (max-width: 640px) {
  .gd-hero__h1 { font-size: var(--text-2xl); }
  .gd-hero__lead { font-size: var(--text-base); }
  .gd-fresh-item { grid-template-columns: 1fr auto; }
  .gd-fresh-item__chip { grid-column: 1 / -1; }
  .gd-header__inner { padding: 0 16px; gap: 16px; }
  .gd-section__title { font-size: var(--text-xl); }
}
/* ─── Definition list в контенте (<dl><dt><dd>): термин-определение ─── */
/* :not([class]) исключает dl внутри виджетов (.gd-calc-*__breakdown и т.п.) */
.gd-main dl:not([class]) {
    margin: 1.4em 0;
    display: grid;
    gap: 14px;
}
.gd-main dl:not([class]) dt {
    margin: 0;
    padding: 4px 0 4px 14px;
    border-left: 3px solid var(--color-primary);
    font-weight: 600;
    font-size: 1.05em;
    line-height: 1.4;
    color: var(--color-text-strong, #1c1917);
}
.gd-main dl:not([class]) dd {
    margin: -4px 0 0 17px;
    line-height: 1.6;
    color: var(--color-text-base, #1c1917);
}
.gd-main dl:not([class]) dd > p:first-child { margin-top: 0; }
.gd-main dl:not([class]) dd > p:last-child  { margin-bottom: 0; }

/* ─── Glossary widget (inline-glossary): grid из плашек с accordion ─── */
.gd-glossary {
    margin: 1.6em 0;
}
.gd-glossary__title {
    font-size: var(--text-xl, 22px);
    font-weight: 600;
    margin: 0 0 14px 0;
    color: var(--color-text-primary);
}
.gd-glossary__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    align-items: start;
}
.gd-glossary__item {
    position: relative;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
    overflow: hidden;
}
.gd-glossary__item:hover {
    border-color: var(--color-primary);
    box-shadow: 0 6px 18px rgba(15, 14, 8, 0.06);
    transform: translateY(-1px);
}
.gd-glossary__item[open] {
    border-color: var(--color-primary);
    background: var(--color-primary-soft, rgba(255, 200, 87, 0.08));
    box-shadow: 0 8px 22px rgba(15, 14, 8, 0.08);
    /* Раскрытая плашка занимает всю ширину grid-строки. Остальные плашки
       перетекают вокруг, как в masonry-сетках современных глоссариев
       (паттерн: Notion, Stripe Docs, Linear). */
    grid-column: 1 / -1;
}
/* В развёрнутом состоянии: термин - компактный pill-badge в углу,
   определение разворачивается на всю оставшуюся ширину карточки.
   Без растягивания заголовка на 1100px. */
.gd-glossary__item[open] .gd-glossary__term {
    padding: 14px 16px 8px;
    align-items: flex-start;
}
.gd-glossary__item[open] .gd-glossary__term-text {
    flex: none;
    display: inline-block;
    padding: 4px 12px;
    background: var(--color-primary, #FFC857);
    color: #2A2520;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.4;
}
.gd-glossary__item[open] .gd-glossary__definition {
    border-top: none;
    padding: 0 16px 16px;
}
.gd-glossary__item[open] .gd-glossary__definition p {
    margin-top: 4px;
    font-size: 15px;
}
.gd-glossary__term {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px;
    font-weight: 600;
    font-size: 15px;
    line-height: 1.35;
    color: var(--color-text-primary);
    cursor: pointer;
    user-select: none;
    list-style: none;
}
.gd-glossary__term::-webkit-details-marker { display: none; }
.gd-glossary__term::marker { content: ''; }
.gd-glossary__term-text {
    flex: 1;
    min-width: 0;
}
.gd-glossary__chevron {
    flex: none;
    color: var(--color-primary-deep, #b08300);
    transition: transform 0.2s ease;
}
.gd-glossary__item[open] .gd-glossary__chevron {
    transform: rotate(180deg);
}
.gd-glossary__definition {
    padding: 0 16px 16px;
    border-top: 1px solid rgba(255, 200, 87, 0.35);
    margin-top: 0;
}
.gd-glossary__definition p {
    margin: 12px 0 0 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-text-secondary, var(--color-text));
}
.gd-glossary__definition a {
    color: var(--color-primary-deep, #b08300);
    text-decoration: underline;
    text-decoration-color: rgba(255, 200, 87, 0.5);
    text-underline-offset: 2px;
}
.gd-glossary__definition a:hover {
    text-decoration-color: var(--color-primary);
}

@media (max-width: 480px) {
    .gd-glossary__grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .gd-glossary__term { padding: 12px 14px; font-size: 14px; }
    .gd-glossary__definition { padding: 0 14px 14px; }
}

[data-theme="dark"] .gd-glossary__item {
    background: var(--color-surface-2);
}
[data-theme="dark"] .gd-glossary__item[open] {
    background: rgba(255, 200, 87, 0.08);
}

/* ─── Inline callouts (виджеты редактора: info / warning / tip / quote) ─── */
.gd-callout {
    display: flex;
    gap: 14px;
    padding: 16px 18px;
    margin: 1.5em 0;
    border-radius: var(--r-md);
    border-left: 3px solid var(--color-border-strong);
    background: var(--color-surface-2);
}
.gd-callout__icon { flex: none; width: 18px; height: 18px; display: inline-flex; align-items: flex-start; padding-top: 2px; }
.gd-callout__body { min-width: 0; flex: 1; }
.gd-callout__title { display: block; font-size: var(--text-sm); font-weight: 600; margin-bottom: 4px; }
.gd-callout__body p { font-size: 15px; line-height: 1.55; margin: 0; }

/* Info — нейтральный синий */
.gd-callout--info { border-left-color: var(--color-info); background: var(--color-info-soft); }
.gd-callout--info .gd-callout__icon { color: var(--color-info); }

/* Warning — красный/предупреждающий */
.gd-callout--warning { border-left-color: var(--color-danger); background: rgba(239, 68, 68, 0.08); }
.gd-callout--warning .gd-callout__icon { color: var(--color-danger); }

/* Tip — золотой акцент */
.gd-callout--tip { border-left-color: var(--color-primary); background: var(--color-primary-soft); }
.gd-callout--tip .gd-callout__icon { color: var(--color-primary-deep); }

/* Quote — цитата с золотой границей слева, italic.
   Перебиваем display/padding от базового .gd-callout (display:flex; padding:16px 18px).
   Дочерним blockquote/figcaption принудительно обнуляем margin - <figure> в HTML по
   умолчанию даёт <blockquote> margin: 1em 40px; что съедало отступ слева и подменяло
   собственным жирным margin контейнера. */
.gd-callout.gd-callout--quote {
    display: block;
    border-left: 3px solid var(--color-primary);
    background: var(--color-primary-soft);
    padding: 18px 22px 18px 28px;
    margin: 1.8em 0;
}
.gd-callout--quote .gd-callout__quote {
    margin: 0 0 10px 0;
    padding: 0;
    font-style: italic;
    font-size: var(--text-lg);
    line-height: 1.5;
    color: var(--color-text-primary);
}
.gd-callout--quote .gd-callout__quote p {
    margin: 0;
    padding: 0;
    font-size: inherit;
}
.gd-callout--quote .gd-callout__author {
    margin: 0;
    padding: 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    font-style: normal;
}
@media (max-width: 480px) {
    .gd-callout.gd-callout--quote { padding: 14px 16px 14px 20px; }
}

/* ─── Inline widget: hero-simple ─── */
/* ─── Hero Simple ─── */
.gd-hero-simple { padding: 8px 0 48px; }
/* Когда сразу за hero идёт summary-tldr - визуально один блок, уменьшаем разрыв */
.gd-hero-simple:has(+ .gd-summary-tldr) { padding-bottom: 16px; }
/* После hero сразу callout - убираем лишний воздух: и так margin-top: 1.5em у callout */
.gd-hero-simple:has(+ .gd-callout) { padding-bottom: 12px; }

/* Eyebrow — пилл-плашка с сияющей звездой */
.gd-hero-simple__eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 7px 14px 7px 11px;
    margin-bottom: 22px;
    background: var(--color-primary-soft);
    border: 1px solid var(--color-primary-line);
    border-radius: 999px;
    font-size: 12px; font-weight: 500;
    line-height: 1.2;
    color: var(--color-text-secondary);
    letter-spacing: 0;
    text-transform: none;
}
.gd-hero-simple__sparkle {
    width: 14px; height: 14px; flex: none;
    color: var(--color-primary);
    transform-origin: center;
}
@media (prefers-reduced-motion: no-preference) {
    .gd-hero-simple__sparkle {
        animation: gd-sparkle 2.6s ease-in-out infinite;
    }
}
@keyframes gd-sparkle {
    0%, 100% { transform: scale(1) rotate(0deg);     opacity: 1;   }
    50%      { transform: scale(1.12) rotate(8deg);  opacity: .82; }
}

/* H1 — крупный заголовок */
.gd-hero-simple__title {
    margin: 0;
    font-size: var(--text-3xl);
    line-height: 1.12;
    letter-spacing: -0.025em;
    max-width: 820px;
    font-weight: 700;
    color: var(--color-text-primary);
}

/* Subtitle — лид-абзац с золотой акцентной палочкой слева, визуально привязан к H1 */
.gd-hero-simple__subtitle {
    margin: 18px 0 0;
    padding-left: 16px;
    border-left: 3px solid var(--color-primary);
    font-size: var(--text-lg);
    line-height: 1.5;
    font-weight: 400;
    color: var(--color-text-secondary);
}

/* Intro — обычные body-параграфы под лидом, с увеличенным отступом сверху */
.gd-hero-simple__intro {
    margin: 28px 0 0;
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--color-text-secondary);
}
.gd-hero-simple__intro + .gd-hero-simple__intro {
    margin-top: 14px;
}

@media (max-width: 700px) {
    .gd-hero-simple { padding-bottom: 32px; }
    .gd-hero-simple__subtitle { padding-left: 12px; font-size: var(--text-base); }
    .gd-hero-simple__intro { margin-top: 22px; }
}

/* ─── Inline widget: reference-promo ─── */
.gd-reference-promo { margin: 32px 0; border-color: var(--color-primary-line); }
.gd-reference-promo__title { font-size: var(--text-xl); margin-bottom: 10px; }
.gd-reference-promo__body { font-size: var(--text-base); color: var(--color-text-secondary); line-height: 1.55; margin-bottom: 18px; max-width: 680px; }
.gd-reference-promo__cta { margin-top: 4px; }

/* ─── Inline widget: guides-grid ─── */
.gd-guides-grid__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.gd-guides-grid__card { padding: 18px; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.gd-guides-grid__cardtitle { font-size: var(--text-lg); font-weight: 600; line-height: 1.3; }
.gd-guides-grid__meta { font-size: var(--text-sm); color: var(--color-text-muted); display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 700px) { .gd-guides-grid__list { grid-template-columns: 1fr; } }

/* ─── Inline widget: docs-grid ─── */
.gd-docs-grid__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
@media (max-width: 1100px) { .gd-docs-grid__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px)  { .gd-docs-grid__grid { grid-template-columns: 1fr; } }

/* ─── Inline widget: tools-grid (микс калькуляторы+сравнения, 3×2) ─── */
.gd-tools-grid__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 1100px) { .gd-tools-grid__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px)  { .gd-tools-grid__grid { grid-template-columns: 1fr; } }

/* --- Sidebar status-cards (Style B: warm-glass plates, glavdelo-style-b prototype) --- */
.gd-sidebar { width: 280px; }
.gd-statuscard {
    position: relative;
    display: block; padding: 0; margin-bottom: 12px;
    border: 1px solid var(--color-border); border-radius: var(--r-xl);
    color: inherit;
    overflow: hidden;
    background:
        radial-gradient(520px 260px at 12% 26%,
            rgba(255,255,255,.92) 0%,
            rgba(255,255,255,.62) 38%,
            transparent 72%),
        radial-gradient(980px 520px at 108% 55%,
            rgba(255,200,87,.30) 0%,
            rgba(255,200,87,.18) 34%,
            rgba(255,200,87,.10) 54%,
            transparent 76%),
        linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.76));
    box-shadow:
        0 10px 26px rgba(28,25,23,.06),
        inset 0 1px 0 rgba(255,255,255,.65),
        inset 0 -1px 0 rgba(28,25,23,.03);
    transition: transform .24s cubic-bezier(.2,.8,.2,1),
                box-shadow .24s cubic-bezier(.2,.8,.2,1),
                background .24s cubic-bezier(.2,.8,.2,1),
                border-color .24s cubic-bezier(.2,.8,.2,1);
}
.gd-statuscard:hover {
    transform: translateY(-1px);
    background:
        radial-gradient(560px 280px at 12% 24%,
            rgba(255,255,255,.96) 0%,
            rgba(255,255,255,.66) 40%,
            transparent 74%),
        radial-gradient(1020px 560px at 108% 55%,
            rgba(255,200,87,.34) 0%,
            rgba(255,200,87,.20) 34%,
            rgba(255,200,87,.12) 56%,
            transparent 78%),
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.82));
    box-shadow:
        0 22px 60px rgba(28,25,23,.12),
        inset 0 1px 0 rgba(255,255,255,.65);
}
/* Active state - усиленная золотая подложка + золотой бордер. На hover не реагирует. */
.gd-statuscard.is-active {
    border-color: rgba(255,200,87,.70);
    background:
        radial-gradient(560px 280px at 12% 24%,
            rgba(255,255,255,.94) 0%,
            rgba(255,255,255,.62) 40%,
            transparent 74%),
        radial-gradient(1080px 600px at 108% 55%,
            rgba(255,200,87,.40) 0%,
            rgba(255,200,87,.24) 34%,
            rgba(255,200,87,.14) 56%,
            transparent 78%),
        linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.78));
    box-shadow:
        0 18px 46px rgba(255,200,87,.18),
        inset 0 1px 0 rgba(255,255,255,.65);
}
.gd-statuscard.is-active:hover {
    transform: none;
}
.gd-statuscard__main {
    display: flex; gap: 12px; align-items: flex-start;
    padding: 14px;
    color: inherit; text-decoration: none;
    position: relative;
}
.gd-statuscard__icon-wrap {
    width: 36px; height: 36px;
    border-radius: 14px;
    border: 1px solid rgba(28,25,23,.12);
    background:
        radial-gradient(10px 10px at 30% 30%, rgba(255,255,255,.75), transparent 65%),
        rgba(28,25,23,.04);
    display: grid; place-items: center;
    flex: 0 0 auto;
}
.gd-statuscard__icon {
    display: inline-flex;
    width: 22px; height: 22px;
    color: var(--color-text-primary);
}
.gd-statuscard__icon svg { width: 22px; height: 22px; display: block; }
.gd-statuscard__body {
    display: flex; flex-direction: column; gap: 4px;
    min-width: 0; flex: 1 1 auto;
    position: relative;
}
.gd-statuscard__title { margin: 0; font-size: var(--text-sm); font-weight: 700; line-height: 1.2; }
.gd-statuscard__description {
    margin: 0;
    font-size: 12px; line-height: 1.25;
    color: var(--color-text-muted);
}

/* Dark theme override - тёплое свечение приглушено, тени тёмные */
[data-theme="dark"] .gd-statuscard {
    background:
        radial-gradient(520px 260px at 12% 26%,
            rgba(255,255,255,.06) 0%,
            rgba(255,255,255,.02) 38%,
            transparent 72%),
        radial-gradient(980px 520px at 108% 55%,
            rgba(255,200,87,.18) 0%,
            rgba(255,200,87,.10) 34%,
            rgba(255,200,87,.05) 54%,
            transparent 76%),
        linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
    box-shadow:
        0 10px 26px rgba(0,0,0,.30),
        inset 0 1px 0 rgba(255,255,255,.06),
        inset 0 -1px 0 rgba(0,0,0,.20);
}
[data-theme="dark"] .gd-statuscard:hover {
    background:
        radial-gradient(560px 280px at 12% 24%,
            rgba(255,255,255,.08) 0%,
            rgba(255,255,255,.03) 40%,
            transparent 74%),
        radial-gradient(1020px 560px at 108% 55%,
            rgba(255,200,87,.22) 0%,
            rgba(255,200,87,.12) 34%,
            rgba(255,200,87,.06) 56%,
            transparent 78%),
        linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
    box-shadow:
        0 22px 60px rgba(0,0,0,.50),
        inset 0 1px 0 rgba(255,255,255,.06);
}
[data-theme="dark"] .gd-statuscard.is-active {
    border-color: rgba(255,200,87,.55);
    background:
        radial-gradient(560px 280px at 12% 24%,
            rgba(255,255,255,.08) 0%,
            rgba(255,255,255,.03) 40%,
            transparent 74%),
        radial-gradient(1080px 600px at 108% 55%,
            rgba(255,200,87,.28) 0%,
            rgba(255,200,87,.16) 34%,
            rgba(255,200,87,.08) 56%,
            transparent 78%),
        linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
    box-shadow:
        0 18px 46px rgba(255,200,87,.10),
        inset 0 1px 0 rgba(255,255,255,.06);
}
[data-theme="dark"] .gd-statuscard__icon-wrap {
    border-color: rgba(255,255,255,.10);
    background:
        radial-gradient(10px 10px at 30% 30%, rgba(255,255,255,.18), transparent 65%),
        rgba(255,255,255,.04);
}

/* Children — статически открытые ссылки под карточкой (рендерятся только если в menu есть children).
   Hover-раскрытие убрано — sidebar не должен прыгать. Если children пустые — блок не рендерится. */
.gd-statuscard__links-inner {
    display: flex; flex-direction: column;
    margin: 0 14px;
    padding: 10px 0 12px;
    border-top: 1px solid var(--color-divider);
}
.gd-statuscard__link {
    display: flex; align-items: center; gap: 6px;
    font-size: var(--text-xs); color: var(--color-text-secondary);
    padding: 6px 0; text-decoration: none;
}
.gd-statuscard__link:hover { color: var(--color-text-primary); }
.gd-statuscard__link svg { flex: none; width: 12px; height: 12px; color: var(--color-primary); }

/* ─── Mobile: status-cards = горизонтальный scroll с чипсами ─── */
@media (max-width: 900px) {
    /* Скрываем admin-кнопки на мобильном (адмика только для desktop) */
    .gd-iconbtn--admin { display: none !important; }

    .gd-sidebar-wrap { position: static; width: 100%; }
    .gd-sidebar {
        width: 100%; padding: 8px 0;
        display: flex; flex-direction: row; flex-wrap: nowrap; gap: 8px;
        overflow-x: auto; overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;  /* Firefox */

        /* Edge-fade подсказка про скрытый горизонтальный контент.
           --fade-left / --fade-right переключаются JS-функцией initSidebarFade
           (0px когда scroll в начале/конце соответственно). */
        --fade-left: 0px;
        --fade-right: 32px;
        -webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--fade-left), #000 calc(100% - var(--fade-right)), transparent 100%);
                mask-image: linear-gradient(to right, transparent 0, #000 var(--fade-left), #000 calc(100% - var(--fade-right)), transparent 100%);
        transition: -webkit-mask-image .25s ease, mask-image .25s ease;
    }
    .gd-sidebar::-webkit-scrollbar { display: none; }  /* Chrome/Safari */
    .gd-statuscard {
        flex: 0 0 auto; margin: 0;
        border-radius: 999px;  /* chip shape */
        /* Объём через тёплые тени + glossy inset highlight (вместо серого drop-shadow) */
        box-shadow:
            inset 0 1px 0 rgba(255,255,255,.85),
            inset 0 -1px 0 rgba(192,146,10,.14),
            0 1px 2px rgba(156,116,6,.12),
            0 3px 8px rgba(156,116,6,.08);
    }
    .gd-statuscard:hover {
        box-shadow:
            inset 0 1px 0 rgba(255,255,255,.90),
            inset 0 -1px 0 rgba(192,146,10,.18),
            0 2px 4px rgba(156,116,6,.14),
            0 6px 14px rgba(156,116,6,.12);
    }
    .gd-statuscard:active,
    .gd-statuscard__main:active {
        transform: scale(.97);
        transition-duration: .12s;
    }
    .gd-statuscard:active {
        box-shadow:
            inset 0 1px 1px rgba(28,25,23,.08),
            inset 0 -1px 0 rgba(255,255,255,.30),
            0 1px 1px rgba(156,116,6,.06);
    }
    .gd-statuscard__main { padding: 5px 12px 5px 8px; align-items: center; gap: 8px; }
    .gd-statuscard__icon-wrap { width: 22px; height: 22px; border-radius: 7px; }
    .gd-statuscard__icon { width: 14px; height: 14px; }
    .gd-statuscard__icon svg { width: 14px; height: 14px; }
    .gd-statuscard__description { display: none !important; }
    .gd-statuscard__links { display: none !important; }
}

/* ─── Бургер (mobile only) ─── */
.gd-burger {
    display: none;
    width: 36px; height: 36px;
    background: transparent; border: 1px solid transparent; border-radius: 999px;
    padding: 0; cursor: pointer; position: relative;
    flex-direction: column; align-items: center; justify-content: center; gap: 4px;
}
.gd-burger:hover { background: var(--color-surface-2); }
.gd-burger span { display: block; width: 18px; height: 2px; background: var(--color-text-primary); border-radius: 2px; transition: transform .2s, opacity .2s; }
.gd-burger.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.gd-burger.is-open span:nth-child(2) { opacity: 0; }
.gd-burger.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 900px) {
    .gd-burger { display: inline-flex; }
}

/* ─── Mobile drawer (открывается бургером) ─── */
.gd-mobile-drawer {
    position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0;
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
    z-index: 50;
    overflow-y: auto;
    padding: 16px 20px;
}
.gd-mobile-drawer[hidden] { display: none; }
.gd-mobile-drawer__nav { display: flex; flex-direction: column; gap: 4px; }
.gd-mobile-drawer__item {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 14px; border-radius: var(--r-md);
    font-size: var(--text-base); font-weight: 500; color: var(--color-text-primary);
    transition: background .12s;
}
.gd-mobile-drawer__item:hover { background: var(--color-surface-2); }
.gd-mobile-drawer__item.is-active { background: var(--color-primary-soft); font-weight: 600; }
.gd-mobile-drawer__item img { width: 20px; height: 20px; flex: none; }
.gd-mobile-drawer__icon { display: inline-flex; width: 20px; height: 20px; flex: none; color: var(--color-text-secondary); }
.gd-mobile-drawer__icon svg { width: 20px; height: 20px; display: block; }

body.gd-no-scroll { overflow: hidden; }
/* При открытом drawer `body.gd-no-scroll` снимает прокрутку через `overflow: hidden`,
   из-за чего sticky-шапка теряет sticky-поведение и возвращается в DOM-позицию
   (на самом верху страницы) - её не видно, если скролл был ниже шапки.
   Фиксируем шапку явно поверх drawer (z-index выше 50). */
@media (max-width: 900px) {
    body.gd-no-scroll .gd-header {
        position: fixed;
        top: 0; left: 0; right: 0;
        z-index: 60;
    }
}

/* ===== Breadcrumbs ===== */
.breadcrumbs {
    margin: 0 0 24px;
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}
.breadcrumbs ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.breadcrumbs li {
    display: flex;
    align-items: center;
    gap: 8px;
    line-height: 1.4;
}
.breadcrumbs li:not(:first-child)::before {
    content: "";
    display: inline-block;
    width: 5px;
    height: 5px;
    border-right: 1.5px solid currentColor;
    border-top: 1.5px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.45;
    flex-shrink: 0;
}
.breadcrumbs a {
    color: inherit;
    text-decoration: none;
    transition: color 180ms ease;
}
.breadcrumbs a:hover {
    color: var(--color-primary);
}
.breadcrumbs li[aria-current="page"] {
    color: var(--color-text-secondary);
}
@media (max-width: 900px) {
    .breadcrumbs { margin: 16px 0; }
    /* Жёсткий single-line scroll с правым fade — крошки не переносятся, на узких экранах прокручиваются горизонтально */
    .breadcrumbs ol {
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        -ms-overflow-style: none;
        -webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 28px), transparent 100%);
        mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 28px), transparent 100%);
        padding-right: 28px;
    }
    .breadcrumbs ol::-webkit-scrollbar { display: none; }
    .breadcrumbs li { white-space: nowrap; flex-shrink: 0; }
}

/* ===== Prose typography (нативные блоки в content: h2, h3, p, ul, ol) ===== */
/* Применяется к нативному контенту в .gd-main; виджеты переопределяют через свои селекторы */
.gd-main > h2,
.gd-main > section + h2,
.gd-main > div + h2 {
    margin: 56px 0 18px;
    font-size: var(--text-2xl);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: var(--color-text);
    max-width: 780px;
}
.gd-main > h3 {
    margin: 32px 0 12px;
    font-size: var(--text-lg);
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-text);
    max-width: 780px;
}
.gd-main > p {
    margin: 0 0 18px;
    line-height: 1.65;
    color: var(--color-text-secondary);
    max-width: 720px;
}
.gd-main > h2 + p,
.gd-main > h3 + p {
    margin-top: 0;
}
.gd-main > ul,
.gd-main > ol {
    margin: 0 0 22px 24px;
    line-height: 1.6;
    color: var(--color-text-secondary);
    max-width: 720px;
}
.gd-main > ul li,
.gd-main > ol li { margin-bottom: 6px; }
@media (max-width: 640px) {
    .gd-main > h2 { margin-top: 40px; font-size: var(--text-xl); }
    .gd-main > h3 { margin-top: 24px; font-size: var(--text-base); }
}


/* ===== Summary TL;DR widget (gd-summary-tldr) ===== */
.gd-summary-tldr {
    margin: 8px 0 32px;
    padding: 18px 22px 20px;
    border: 1px solid var(--color-border);
    border-radius: var(--r-xl);
    background: linear-gradient(180deg, #fffdf6, #fbf8ec);
    box-shadow: 0 4px 12px rgba(28,25,23,.04), inset 0 1px 0 rgba(255,255,255,.55);
    position: relative;
    overflow: hidden;
}
.gd-summary-tldr::before {
    /* Тонкая золотая полоса слева - метка "это важная сводка" */
    content: '';
    position: absolute; left: 0; top: 0; bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, var(--color-primary), rgba(255,200,87,.4));
}
.gd-summary-tldr__header {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 10px;
}
.gd-summary-tldr__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px;
    border-radius: 8px;
    background: rgba(255,200,87,.18);
    color: var(--color-primary-deep);
    flex: none;
}
.gd-summary-tldr__icon svg { width: 14px; height: 14px; }
.gd-summary-tldr__label {
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--color-text-muted);
}
.gd-summary-tldr__list {
    list-style: none;
    margin: 0; padding: 0;
    display: flex; flex-direction: column;
    gap: 8px;
}
.gd-summary-tldr__list li {
    position: relative;
    padding-left: 22px;
    font-size: var(--text-base);
    line-height: 1.5;
    color: var(--color-text-primary);
}
.gd-summary-tldr__list li::before {
    /* Маленькая золотая галочка вместо bullet'а */
    content: '';
    position: absolute; left: 4px; top: 9px;
    width: 8px; height: 4px;
    border-left: 2px solid var(--color-primary);
    border-bottom: 2px solid var(--color-primary);
    transform: rotate(-45deg);
}
[data-theme="dark"] .gd-summary-tldr {
    background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
    box-shadow: 0 4px 12px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.05);
}
[data-theme="dark"] .gd-summary-tldr__icon {
    background: rgba(255,200,87,.10);
    color: var(--color-primary-deep);
}
@media (max-width: 600px) {
    .gd-summary-tldr { padding: 14px 16px 16px; }
    .gd-summary-tldr__list li { font-size: var(--text-sm); padding-left: 20px; }
    .gd-summary-tldr__list li::before { left: 2px; top: 8px; }
}

/* ===== Calculator НПД widget (gd-calc-npd) ===== */
.gd-calc-npd { margin: 32px 0; }
.gd-calc-npd__title {
    margin: 0 0 12px;
    font-size: var(--text-2xl); font-weight: 700;
    line-height: 1.2; letter-spacing: -0.015em;
    color: var(--color-text-primary);
}
.gd-calc-npd__intro {
    margin: 0 0 18px;
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: 1.55;
}
.gd-calc-npd__card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--r-xl);
    background: linear-gradient(180deg, #fffdf6, #fbf8ec);
    box-shadow: 0 6px 18px rgba(28,25,23,.06), inset 0 1px 0 rgba(255,255,255,.55);
    overflow: hidden;
}
.gd-calc-npd__form {
    padding: 24px;
    display: flex; flex-direction: column; gap: 18px;
    border-right: 1px solid var(--color-border);
}
.gd-calc-npd__field { display: flex; flex-direction: column; gap: 8px; }
.gd-calc-npd__field-label,
.gd-calc-npd__field > label,
.gd-calc-npd__field > legend {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--color-text-muted);
    padding: 0;
    margin: 0;
}
.gd-calc-npd__field-icon {
    width: 14px; height: 14px;
    color: var(--color-primary-deep);
    flex: none;
}
.gd-calc-npd__field--radio {
    border: 0; padding: 0; margin: 0;
    flex-direction: column;
    gap: 8px;
}
.gd-calc-npd__field--radio[hidden] { display: none !important; }

.gd-calc-npd__split {
    display: none;  /* По умолчанию скрыт. JS добавляет .is-active → выползает */
}
.gd-calc-npd__split.is-active {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    animation: gdCalcSplitReveal .28s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes gdCalcSplitReveal {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.gd-calc-npd__rate-hint {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin-top: 2px;
}
.gd-calc-npd__input-wrap { position: relative; }
.gd-calc-npd__input {
    width: 100%;
    padding: 12px 36px 12px 14px;
    font-size: var(--text-lg);
    font-weight: 700;
    border: 1px solid var(--color-border-strong);
    border-radius: 10px;
    background: var(--color-surface);
    color: var(--color-text-primary);
    font-family: inherit;
    transition: border-color .2s, box-shadow .2s;
}
.gd-calc-npd__input:focus {
    outline: 0;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(255,200,87,.20);
}
.gd-calc-npd__input-suffix {
    position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
    color: var(--color-text-muted); font-weight: 600;
    pointer-events: none;
}

/* Универсальная плашка-выбор (radio + checkbox).
   Native input стилизован напрямую через appearance:none — НЕТ position:absolute
   и НЕТ отдельного mark-span. Чистый flex-flow, padding гарантированно работает.
   Layout: [styled-input] [optional icon-tile] [text-block]. */
.gd-calc-npd__pick {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 18px 22px !important;  /* !important на все случаи: убедиться что нет cascade-перекрытия */
    border: 1px solid var(--color-border-strong);
    border-radius: 12px;
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color .2s, background .2s, box-shadow .2s;
    user-select: none;
    box-sizing: border-box;
}
.gd-calc-npd__pick:hover { border-color: var(--color-primary-line); }
.gd-calc-npd__pick:has(input:checked) {
    border-color: var(--color-primary);
    background: rgba(255,200,87,.10);
}
.gd-calc-npd__pick:has(input:focus-visible) {
    box-shadow: 0 0 0 2px rgba(255,200,87,.40);
}

/* Сам input - стилизован напрямую (radio = круг, checkbox = квадрат с галочкой) */
.gd-calc-npd__pick-input {
    appearance: none;
    -webkit-appearance: none;
    flex: none;
    width: 22px; height: 22px;
    margin: 0; padding: 0;
    border: 2px solid var(--color-border-strong);
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color .2s, background .2s, box-shadow .2s;
}
.gd-calc-npd__pick-input[type="radio"] { border-radius: 50%; }
.gd-calc-npd__pick-input[type="checkbox"] { border-radius: 6px; }

.gd-calc-npd__pick-input[type="radio"]:checked {
    border-color: var(--color-primary);
    background: var(--color-primary);
    /* белая обводка через inset shadow создаёт классический radio-dot */
    box-shadow: inset 0 0 0 4px var(--color-surface);
}
.gd-calc-npd__pick-input[type="checkbox"]:checked {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230C1017' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3,8.2 6.5,11.5 13,4.5'/%3E%3C/svg%3E");
    background-size: 14px 14px;
    background-repeat: no-repeat;
    background-position: center;
}

/* Иконка-плашка (только для radio с label-text). Золотая подложка. */
.gd-calc-npd__pick-icon {
    flex: none;
    width: 38px; height: 38px;
    border-radius: 10px;
    background: rgba(255,200,87,.12);
    color: var(--color-primary-deep);
    display: grid; place-items: center;
    transition: background .2s;
}
.gd-calc-npd__pick-icon svg { width: 20px; height: 20px; display: block; }
.gd-calc-npd__pick:has(input:checked) .gd-calc-npd__pick-icon {
    background: rgba(255,200,87,.22);
}
.gd-calc-npd__pick:hover .gd-calc-npd__pick-input { border-color: var(--color-primary-line); }
.gd-calc-npd__pick-text {
    display: flex; flex-direction: column; gap: 2px;
    font-size: var(--text-sm);
    line-height: 1.35;
    flex: 1 1 auto;
    min-width: 0;
}
.gd-calc-npd__pick-text strong { color: var(--color-text-primary); font-weight: 600; }
.gd-calc-npd__pick-text em { font-style: normal; color: var(--color-text-muted); font-size: var(--text-xs); }

/* Результат */
.gd-calc-npd__result {
    padding: 24px;
    background: linear-gradient(180deg, rgba(255,200,87,.10), rgba(255,200,87,.04));
    display: flex; flex-direction: column; gap: 18px;
}
.gd-calc-npd__result-headline { display: flex; flex-direction: column; gap: 4px; }
.gd-calc-npd__result-label {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--color-text-muted);
}
.gd-calc-npd__result-tax {
    font-size: var(--text-3xl);
    font-weight: 800;
    color: var(--color-text-primary);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.gd-calc-npd__result-rate {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}
.gd-calc-npd__result-rate strong {
    color: var(--color-primary-deep);
    font-weight: 700;
}
.gd-calc-npd__breakdown {
    margin: 0; padding: 14px 0 0;
    border-top: 1px dashed var(--color-border-strong);
    display: flex; flex-direction: column; gap: 8px;
}
.gd-calc-npd__breakdown > div {
    display: flex; justify-content: space-between; align-items: baseline;
    font-size: var(--text-sm);
}
.gd-calc-npd__breakdown dt { color: var(--color-text-muted); margin: 0; }
.gd-calc-npd__breakdown dd {
    text-align: right;
    margin: 0; color: var(--color-text-primary);
    font-weight: 600; font-variant-numeric: tabular-nums;
}
.gd-calc-npd__note {
    margin: 12px 0 0;
    font-size: var(--text-xs);
    line-height: 1.55;
    color: var(--color-text-muted);
}

[data-theme="dark"] .gd-calc-npd__card {
    background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
    box-shadow: 0 6px 18px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.04);
}
[data-theme="dark"] .gd-calc-npd__pick { background: var(--color-surface-2); }
[data-theme="dark"] .gd-calc-npd__pick-input { background: var(--color-surface-2); }
[data-theme="dark"] .gd-calc-npd__pick:has(input:checked) { background: rgba(255,200,87,.08); }
[data-theme="dark"] .gd-calc-npd__pick-input[type="radio"]:checked { box-shadow: inset 0 0 0 4px var(--color-surface-2); }
[data-theme="dark"] .gd-calc-npd__pick-icon { background: rgba(255,200,87,.08); }
[data-theme="dark"] .gd-calc-npd__pick:has(input:checked) .gd-calc-npd__pick-icon { background: rgba(255,200,87,.18); }
[data-theme="dark"] .gd-calc-npd__input { background: var(--color-surface-2); }
[data-theme="dark"] .gd-calc-npd__result {
    background: linear-gradient(180deg, rgba(255,200,87,.06), rgba(255,200,87,.02));
}

@media (max-width: 700px) {
    .gd-calc-npd__card { grid-template-columns: 1fr; }
    .gd-calc-npd__form { border-right: 0; border-bottom: 1px solid var(--color-border); padding: 18px; gap: 14px; }
    .gd-calc-npd__result { padding: 20px; }
    .gd-calc-npd__split.is-active { grid-template-columns: 1fr; gap: 12px; }
    /* На mobile padding чуть меньше, но всё равно щедрый - НЕ раздавливаем содержимое */
    .gd-calc-npd__pick { padding: 16px 18px !important; gap: 12px !important; }
    .gd-calc-npd__pick-icon { width: 32px; height: 32px; }
    .gd-calc-npd__pick-icon svg { width: 18px; height: 18px; }
}

/* ===== Legal-reference widget (gd-legal-ref) ===== */
.gd-legal-ref {
    display: flex; gap: 16px;
    margin: 24px 0;
    padding: 16px 18px;
    border: 1px solid var(--color-border);
    border-radius: var(--r-xl);
    background: var(--color-surface);
    box-shadow: 0 2px 6px rgba(28,25,23,.04);
    align-items: flex-start;
}
.gd-legal-ref__icon {
    flex: none;
    width: 40px; height: 40px;
    border-radius: 10px;
    background: rgba(255,200,87,.16);
    color: var(--color-primary-deep);
    display: grid; place-items: center;
}
.gd-legal-ref__body {
    flex: 1 1 auto; min-width: 0;
    display: flex; flex-direction: column;
    gap: 4px;
}
.gd-legal-ref__label {
    font-size: 11px; font-weight: 600;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--color-text-muted);
}
.gd-legal-ref__meta {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.3;
}
.gd-legal-ref__summary {
    margin: 4px 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: 1.55;
}
.gd-legal-ref__link {
    margin-top: 10px;
    align-self: flex-start;
    display: inline-flex; align-items: center; gap: 6px;
    font-size: var(--text-sm); font-weight: 600;
    color: var(--color-primary-deep);
    text-decoration: none;
    padding: 6px 12px;
    border: 1px solid rgba(255,200,87,.40);
    border-radius: 8px;
    background: rgba(255,200,87,.08);
    transition: background .2s, border-color .2s;
}
.gd-legal-ref__link:hover {
    background: rgba(255,200,87,.18);
    border-color: rgba(255,200,87,.60);
}
.gd-legal-ref__link svg { transition: transform .2s; }
.gd-legal-ref__link:hover svg { transform: translateX(2px); }

[data-theme="dark"] .gd-legal-ref__icon {
    background: rgba(255,200,87,.10);
}
[data-theme="dark"] .gd-legal-ref__link {
    background: rgba(255,200,87,.06);
    border-color: rgba(255,200,87,.30);
    color: var(--color-primary-deep);
}
[data-theme="dark"] .gd-legal-ref__link:hover {
    background: rgba(255,200,87,.14);
    border-color: rgba(255,200,87,.50);
}

@media (max-width: 600px) {
    .gd-legal-ref { padding: 14px; gap: 12px; }
    .gd-legal-ref__icon { width: 34px; height: 34px; }
}

/* ===== Step-list widget (gd-step-list) ===== */
.gd-step-list {
    margin: 32px 0;
}
.gd-step-list__title {
    margin: 0 0 20px;
    font-size: var(--text-2xl);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: var(--color-text-primary);
}
.gd-step-list__list {
    list-style: none;
    margin: 0; padding: 0;
    counter-reset: step;
    position: relative;
}
.gd-step-list__item {
    position: relative;
    display: flex; gap: 18px;
    padding: 0 0 28px 0;
    align-items: flex-start;
}
.gd-step-list__item:last-child { padding-bottom: 0; }
/* Вертикальная линия между шагами - визуальная связка */
.gd-step-list__item:not(:last-child)::before {
    content: '';
    position: absolute;
    left: 19px; top: 44px; bottom: 4px;
    width: 2px;
    background: linear-gradient(180deg, rgba(255,200,87,.55) 0%, rgba(255,200,87,.18) 100%);
    border-radius: 1px;
}
.gd-step-list__num {
    flex: none;
    width: 40px; height: 40px;
    border-radius: 50%;
    display: grid; place-items: center;
    font-size: 16px; font-weight: 700;
    color: var(--color-text-inverse);
    background: linear-gradient(180deg, #FFD27A, var(--color-primary));
    box-shadow:
        0 4px 10px rgba(255,200,87,.35),
        inset 0 1px 0 rgba(255,255,255,.55);
    position: relative; z-index: 1;
}
.gd-step-list__body {
    flex: 1 1 auto;
    min-width: 0;
    padding-top: 4px;
}
.gd-step-list__step-title {
    margin: 0 0 4px;
    font-size: var(--text-base);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: -0.005em;
    color: var(--color-text-primary);
}
/* Если описание шага отсутствует - заголовок берёт роль основного текста.
   Снимаем bold-акцент, делаем шаг ровным абзацем. */
.gd-step-list__item:not(:has(.gd-step-list__step-desc)) .gd-step-list__step-title {
    font-weight: 400;
    color: var(--color-text-secondary, var(--color-text-primary));
}
.gd-step-list__step-desc {
    margin: 0;
    font-size: var(--text-base);
    line-height: 1.6;
    color: var(--color-text-secondary);
}
.gd-step-list__step-link {
    margin-top: 10px;
    display: inline-flex; align-items: center; gap: 6px;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-primary-deep);
    text-decoration: none;
    border-bottom: 1px solid rgba(255,200,87,.45);
    padding-bottom: 1px;
    transition: border-color .2s, color .2s;
}
.gd-step-list__step-link:hover {
    color: var(--color-text-primary);
    border-bottom-color: var(--color-text-primary);
}
.gd-step-list__step-link svg { transition: transform .2s; }
.gd-step-list__step-link:hover svg { transform: translateX(2px); }

[data-theme="dark"] .gd-step-list__num {
    background: linear-gradient(180deg, var(--color-primary), #C99317);
    color: #1A1308;
    box-shadow:
        0 4px 12px rgba(255,200,87,.20),
        inset 0 1px 0 rgba(255,255,255,.40);
}
[data-theme="dark"] .gd-step-list__item:not(:last-child)::before {
    background: linear-gradient(180deg, rgba(255,200,87,.45) 0%, rgba(255,200,87,.10) 100%);
}

@media (max-width: 600px) {
    .gd-step-list__title { font-size: var(--text-xl); }
    .gd-step-list__item { gap: 14px; padding-bottom: 22px; }
    .gd-step-list__num { width: 34px; height: 34px; font-size: 14px; }
    .gd-step-list__item:not(:last-child)::before { left: 16px; top: 38px; }
    .gd-step-list__step-title { font-size: var(--text-base); }
    .gd-step-list__step-desc { font-size: var(--text-sm); }
}

/* ===== FAQ widget (gd-faq) ===== */
.gd-faq {
    margin: 56px 0 0;
}
.gd-faq__title {
    margin: 0 0 18px;
    font-size: var(--text-2xl);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: var(--color-text);
}
.gd-faq__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.gd-faq__item {
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-bg-card, #fff);
    overflow: hidden;
    transition: border-color 200ms ease, box-shadow 200ms ease;
}
.gd-faq__item:hover {
    border-color: var(--color-primary-line, var(--color-primary));
}
.gd-faq__item[open] {
    border-color: var(--color-primary-line, var(--color-primary));
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
.gd-faq__question {
    list-style: none;
    cursor: pointer;
    padding: 18px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-weight: 600;
    font-size: var(--text-base);
    line-height: 1.4;
    color: var(--color-text);
    user-select: none;
}
.gd-faq__question::-webkit-details-marker { display: none; }
.gd-faq__question-text { flex: 1; }
.gd-faq__chevron {
    flex-shrink: 0;
    color: var(--color-text-muted);
    transition: transform 220ms cubic-bezier(.4, 0, .2, 1);
}
.gd-faq__item[open] .gd-faq__chevron {
    transform: rotate(180deg);
    color: var(--color-primary);
}
.gd-faq__answer {
    padding: 0 20px 18px;
    color: var(--color-text-secondary);
    line-height: 1.65;
}
.gd-faq__answer p { margin: 0 0 12px; }
.gd-faq__answer p:last-child { margin-bottom: 0; }
@media (max-width: 640px) {
    .gd-faq__question { padding: 14px 16px; font-size: var(--text-base); }
    .gd-faq__answer   { padding: 0 16px 16px; }
}

/* ===== Narrow page wrapper (хабы и article-страницы) ===== */
.gd-page-narrow {
    max-width: 720px;
}
/* Внутри narrow-страницы все гриды растягиваются в 1 колонку */
.gd-page-narrow .gd-guides-grid__list,
.gd-page-narrow .gd-tools-grid__grid,
.gd-page-narrow .gd-docs-grid__grid {
    grid-template-columns: 1fr !important;
}
.gd-page-narrow .gd-reference-promo,
.gd-page-narrow .gd-faq,
.gd-page-narrow .gd-hero-simple {
    max-width: 100%;
}


/* ===== Prose typography для .gd-page-narrow (хабы, статьи) ===== */
.gd-page-narrow > h2 {
    margin: 56px 0 18px;
    font-size: var(--text-2xl);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: var(--color-text);
}
.gd-page-narrow > h3 {
    margin: 32px 0 12px;
    font-size: var(--text-lg);
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-text);
}
.gd-page-narrow > p {
    margin: 0 0 18px;
    line-height: 1.65;
    color: var(--color-text-secondary);
}
.gd-page-narrow > h2 + p,
.gd-page-narrow > h3 + p {
    margin-top: 0;
}
/* Маркированный список — золотистая точка слева */
.gd-page-narrow > ul {
    list-style: none;
    padding-left: 0;
    margin: 0 0 24px;
}
.gd-page-narrow > ul > li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 10px;
    line-height: 1.6;
    color: var(--color-text-secondary);
}
.gd-page-narrow > ul > li::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 0.65em;
    width: 6px;
    height: 6px;
    background: var(--color-primary);
    border-radius: 50%;
}
.gd-page-narrow > ul > li:last-child { margin-bottom: 0; }

/* Нумерованный список — counter-bubble в primary */
.gd-page-narrow > ol {
    list-style: none;
    counter-reset: gd-step;
    padding-left: 0;
    margin: 0 0 28px;
}
.gd-page-narrow > ol > li {
    position: relative;
    padding-left: 38px;
    margin-bottom: 14px;
    line-height: 1.6;
    color: var(--color-text-secondary);
    counter-increment: gd-step;
    min-height: 26px;
}
.gd-page-narrow > ol > li::before {
    content: counter(gd-step);
    position: absolute;
    left: 0;
    top: 0;
    width: 26px;
    height: 26px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.gd-page-narrow > ol > li:last-child { margin-bottom: 0; }
.gd-page-narrow > ol > li > strong:first-child { color: var(--color-text); }
@media (max-width: 640px) {
    .gd-page-narrow > h2 { margin-top: 40px; font-size: var(--text-xl); }
    .gd-page-narrow > h3 { margin-top: 24px; font-size: var(--text-base); }
}


/* ===== Author byline (gd-author-byline) ===== */
.gd-author-byline {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 8px 16px 8px 8px;
    margin: 0 0 32px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-bg-card, #fff);
    text-decoration: none;
    color: inherit;
    transition: border-color 200ms ease, transform 180ms ease;
}
a.gd-author-byline:hover {
    border-color: var(--color-primary-line, var(--color-primary));
    transform: translateY(-1px);
}
.gd-author-byline__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--color-bg-soft, #f4f0e8);
}
.gd-author-byline__avatar--initials {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: var(--color-primary);
    font-size: 18px;
}
.gd-author-byline__meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.2;
}
.gd-author-byline__name {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-text);
}
.gd-author-byline__role {
    font-size: 12px;
    color: var(--color-text-muted);
}

/* ===== Guides-grid meta (icons + дата + время чтения) ===== */
.gd-guides-grid__metaitem {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.gd-guides-grid__metaitem svg {
    flex-shrink: 0;
    color: var(--color-text-muted);
}


/* ===== Author card (gd-author-card) — full version в конце страницы ===== */
.gd-author-card {
    margin: 56px 0 0;
    padding: 24px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg-card, #fff);
    display: flex;
    align-items: flex-start;
    gap: 20px;
}
.gd-author-card__avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--color-bg-soft, #f4f0e8);
}
.gd-author-card__avatar--initials {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 28px;
    color: var(--color-primary);
}
.gd-author-card__body {
    flex: 1;
    min-width: 0;
}
.gd-author-card__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
}
.gd-author-card__name {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
    transition: color 180ms ease;
}
a.gd-author-card__name:hover {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 2px;
    text-decoration-color: var(--color-primary);
}
.gd-author-card__role-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--color-primary-soft, #fff5dc);
    color: var(--color-primary, #c89738);
    border: 1px solid var(--color-primary-line, rgba(200, 151, 56, 0.3));
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
.gd-author-card__bio {
    margin: 0;
    line-height: 1.6;
    color: var(--color-text-secondary);
    font-size: var(--text-base);
}
@media (max-width: 600px) {
    .gd-author-card { padding: 18px; gap: 14px; flex-direction: column; align-items: stretch; }
    .gd-author-card__avatar { width: 64px; height: 64px; }
}

/* ===== Table в .gd-page-narrow (нативные HTML-таблицы из контента) ===== */
.gd-page-narrow > table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 28px;
    font-size: var(--text-sm);
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(28,25,23,.05), 0 1px 2px rgba(28,25,23,.04);
}
[data-theme="dark"] .gd-page-narrow > table {
    box-shadow: 0 6px 18px rgba(0,0,0,.30), 0 1px 2px rgba(0,0,0,.20);
}
.gd-page-narrow > table th,
.gd-page-narrow > table td {
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid var(--color-border);
    line-height: 1.5;
}
.gd-page-narrow > table th {
    font-weight: 600;
    background: var(--color-bg-soft, #faf6ec);
    color: var(--color-text);
    border-bottom: 2px solid var(--color-border);
}
.gd-page-narrow > table td { color: var(--color-text-secondary); }
.gd-page-narrow > table tr:last-child td { border-bottom: none; }
@media (max-width: 700px) {
    /* Vertical stacked cards вместо горизонтальной прокрутки */
    .gd-page-narrow > table {
        display: block;
        border: none;
        border-radius: 0;
        background: transparent;
        font-size: var(--text-sm);
    }
    .gd-page-narrow > table thead { display: none; }
    .gd-page-narrow > table tbody { display: block; }
    .gd-page-narrow > table tr {
        display: block;
        margin: 0 0 12px;
        padding: 14px 16px;
        border: 1px solid var(--color-border);
        border-radius: 12px;
        background: var(--color-bg-card, #fff);
    }
    .gd-page-narrow > table tr:last-child { margin-bottom: 0; }
    .gd-page-narrow > table td {
        display: block;
        padding: 8px 0;
        border-bottom: 1px solid rgba(0, 0, 0, 0.06);
        color: var(--color-text);
        line-height: 1.5;
    }
    .gd-page-narrow > table td:first-child { padding-top: 0; }
    .gd-page-narrow > table td:last-child  { border-bottom: none; padding-bottom: 0; }
    .gd-page-narrow > table td::before {
        content: attr(data-label);
        display: block;
        font-size: 11px;
        font-weight: 600;
        color: var(--color-text-muted);
        text-transform: uppercase;
        letter-spacing: 0.06em;
        margin-bottom: 3px;
    }
    .gd-page-narrow > table td:not([data-label])::before { content: none; }
}


/* ===== Mobile overflow guard: ничего не должно выползать за viewport ===== */
html, body {
    max-width: 100%;
    overflow-x: clip;
}
img, video, iframe, svg {
    max-width: 100%;
    height: auto;
}
.gd-page-narrow > * {
    max-width: 100%;
}
.gd-page-narrow pre,
.gd-page-narrow code {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
    word-wrap: break-word;
}

/* ===== Inline-ссылки в content (наративные тексты, FAQ-ответы, списки) ===== */
.gd-main > p a,
.gd-main > ul a,
.gd-main > ol a,
.gd-page-narrow > p a,
.gd-page-narrow > ul a,
.gd-page-narrow > ol a,
.gd-faq__answer a,
.gd-callout__body a,
.gd-reference-promo__body a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(200, 151, 56, 0.5);
    transition: text-decoration-color 200ms ease, color 200ms ease;
    word-wrap: break-word;
}
.gd-main > p a:hover,
.gd-main > ul a:hover,
.gd-main > ol a:hover,
.gd-page-narrow > p a:hover,
.gd-page-narrow > ul a:hover,
.gd-page-narrow > ol a:hover,
.gd-faq__answer a:hover,
.gd-callout__body a:hover,
.gd-reference-promo__body a:hover {
    text-decoration-color: var(--color-primary);
    text-decoration-thickness: 2px;
}


/* ===== Главная (.gd-page-home) — override grid layout ===== */
/* Главная использует .gd-page-narrow + .gd-page-home, поэтому базовое 1-col из narrow
   нужно перебить более специфичным селектором с !important */
.gd-page-home .gd-tools-grid__grid  { grid-template-columns: repeat(2, 1fr) !important; }
.gd-page-home .gd-docs-grid__grid   { grid-template-columns: repeat(3, 1fr) !important; }
/* guides-grid и reference-promo на главной = как у хабов (1-col / full-width) */

/* Mobile fallback — на узких экранах все гриды 1-col */
@media (max-width: 700px) {
    .gd-page-home .gd-tools-grid__grid,
    .gd-page-home .gd-docs-grid__grid {
        grid-template-columns: 1fr !important;
    }
}

/* ===== Контентные иллюстрации (figure внутри content) ===== */
.gd-page-narrow > figure,
.gd-main > figure {
    margin: 36px 0;
    padding: 0;
    border-radius: 14px;
    overflow: hidden;
    background: var(--color-bg-soft, #faf6ec);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.gd-page-narrow > figure img,
.gd-main > figure img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}
/* Подпись только для медиа-фигур (картинки/видео); для callout-quote использовать
   .gd-callout__author. Без сужения до .content-media эти стили съедали стиль автора
   у цитаты, рисуя «белую полосу» под цитатой. */
.gd-page-narrow > figure.content-media figcaption,
.gd-main > figure.content-media figcaption {
    margin: 0;
    padding: 12px 18px;
    font-size: 13px;
    color: var(--color-text-muted);
    line-height: 1.5;
    background: var(--color-bg-card, #fff);
    border-top: 1px solid var(--color-border);
}
@media (max-width: 700px) {
    /* Безопасный mobile-вариант: figure строго внутри ширины main, без negative margin.
       Это гарантирует что ничего не выходит за viewport ни при каких условиях. */
    .gd-page-narrow > figure,
    .gd-main > figure {
        margin: 24px 0;
        max-width: 100%;
        width: 100%;
        border-radius: 12px;
        background: transparent;
        box-shadow: none;
    }
    .gd-page-narrow > figure img,
    .gd-main > figure img {
        /* aspect-ratio убран: 4/3 обрезал watermark в правом нижнем углу через object-fit: cover.
           Native 16:10 на mobile занимает чуть меньше места, но watermark виден полностью. */
        max-width: 100%;
        height: auto;
    }
    .gd-page-narrow > figure.content-media figcaption,
    .gd-main > figure.content-media figcaption {
        padding: 8px 12px;
        background: transparent;
        border-top: none;
        margin-top: 0;
    }
}

/* ===== Scroll-to-top кнопка ===== */
.gd-scroll-top {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--color-border);
    background: var(--color-bg-card, #fff);
    color: var(--color-text-muted);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity 220ms ease, transform 220ms ease,
                border-color 200ms ease, color 200ms ease, background 200ms ease;
    z-index: 50;
}
.gd-scroll-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.gd-scroll-top:hover,
.gd-scroll-top:focus-visible {
    border-color: var(--color-primary-line, var(--color-primary));
    color: var(--color-primary);
    background: var(--color-primary-soft, #fff5dc);
    outline: none;
}
.gd-scroll-top svg { display: block; }
@media (max-width: 700px) {
    .gd-scroll-top { right: 14px; bottom: 14px; width: 40px; height: 40px; }
}

/* ===== Жёсткий mobile overflow guard (≤700px) =====
   Никакой элемент .gd-main не может быть шире viewport ни при каких условиях. */
@media (max-width: 700px) {
    .gd-main,
    .gd-main * {
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-wrap: break-word;
        word-wrap: break-word;
    }
    /* Таблицы — guarantee block layout вне зависимости от того, прямой ли они child narrow */
    .gd-page-narrow table,
    .gd-main table {
        display: block !important;
        width: 100% !important;
        word-break: break-word;
    }
    .gd-page-narrow table thead,
    .gd-main table thead { display: none !important; }
    .gd-page-narrow table tbody,
    .gd-main table tbody { display: block !important; width: 100% !important; }
    .gd-page-narrow table tr,
    .gd-main table tr { display: block !important; width: 100% !important; box-sizing: border-box; }
    .gd-page-narrow table td,
    .gd-main table td { display: block !important; width: 100% !important; box-sizing: border-box; }
}

/* ===== Mobile: CTA-кнопки переносятся, не вылезают за карточку ===== */
@media (max-width: 700px) {
    .gd-reference-promo__cta {
        white-space: normal !important;
        max-width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        line-height: 1.35;
        padding: 12px 16px;
    }
}


/* ===== reference-promo CTA: full на desktop, short на mobile ===== */
.gd-cta__short { display: none; }
@media (max-width: 700px) {
    .gd-reference-promo__cta:has(.gd-cta__short) .gd-cta__full { display: none; }
    .gd-reference-promo__cta .gd-cta__short { display: inline; }
}
.gd-cta__arrow { margin-left: 4px; }

/* ===== 404 страница ===== */
.gd-404 {
    text-align: center;
    padding: 56px 0 48px;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 40px;
}
.gd-404__digit {
    display: block;
    font-size: 144px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: -0.04em;
    background: linear-gradient(135deg, var(--color-primary) 0%, #d4a64f 50%, var(--color-primary) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    margin-bottom: 12px;
}
.gd-404__title {
    margin: 0 0 12px;
    font-size: var(--text-2xl);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: var(--color-text);
}
.gd-404__lead {
    margin: 0 auto 28px;
    max-width: 520px;
    line-height: 1.6;
    color: var(--color-text-secondary);
    font-size: var(--text-base);
}
.gd-404__cta {
    margin: 0 auto;
}
.gd-404__navtitle {
    margin: 0 0 20px;
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-text);
}
.gd-404__navlist {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.gd-404__navlist > li::before { display: none !important; content: none !important; }
.gd-404__navlist > li {
    padding-left: 0 !important;
    margin: 0 !important;
}
.gd-404__navcard {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 20px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-bg-card, #fff);
    text-decoration: none;
    transition: border-color 200ms ease, transform 180ms ease, box-shadow 200ms ease;
}
.gd-404__navcard:hover {
    border-color: var(--color-primary-line, var(--color-primary));
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    text-decoration: none;
}
.gd-404__navhead {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-text);
}
.gd-404__navhint {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    line-height: 1.45;
}
@media (max-width: 600px) {
    .gd-404 { padding: 36px 0 32px; }
    .gd-404__digit { font-size: 96px; }
    .gd-404__navlist { grid-template-columns: 1fr; }
}

/* На 404 sidebar скрыт — центрируем narrow-контент в main */
.gd-page-404 {
    margin: 0 auto;
}

/* На 404 sidebar скрыт — центрируем narrow-контент в main */
.gd-page-404 {
    margin: 0 auto;
}
/* ===== Credit-card (gd-credit) — identity + passive meta под hero ===== */
.gd-credit {
    margin: 24px 0 32px;
    padding: 16px 18px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg-card, #fff);
    display: flex;
    align-items: center;
    gap: 14px;
}
.gd-credit__avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--color-bg-soft, #f4f0e8);
}
.gd-credit__avatar--initials {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 22px;
    color: var(--color-primary);
}
.gd-credit__body {
    flex: 1;
    min-width: 0;
}
.gd-credit__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}
.gd-credit__name {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
    transition: color 180ms ease;
}
a.gd-credit__name:hover { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; }
.gd-credit__role {
    font-size: 12px;
    color: var(--color-text-muted);
    font-weight: 500;
}
.gd-credit__role::before { content: '· '; opacity: 0.5; margin-right: 2px; }
.gd-credit__meta {
    font-size: 13px;
    color: var(--color-text-secondary);
    line-height: 1.5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
}
.gd-credit__item { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.gd-credit__ico { opacity: 0.7; flex-shrink: 0; }
.gd-credit__sep { color: var(--color-text-muted); opacity: 0.5; }
@media (max-width: 600px) {
    .gd-credit {
        padding: 14px;
        gap: 12px;
        align-items: flex-start; /* avatar top-aligned, не растягивается по высоте */
    }
    .gd-credit__avatar { width: 44px; height: 44px; }
    .gd-credit__avatar--initials { font-size: 18px; }
    .gd-credit__head {
        margin-bottom: 8px;
        gap: 6px;
        row-gap: 2px;
    }
    .gd-credit__name { font-size: 15px; line-height: 1.3; }
    .gd-credit__role { font-size: 11.5px; }
    .gd-credit__role::before { content: ''; margin: 0; } /* без точки-разделителя на mobile */
    /* Мета — 2 колонки grid (компактно, без разделителей).
       При 5 элементах последний нечётный занимает обе колонки целиком. */
    .gd-credit__meta {
        font-size: 12.5px;
        line-height: 1.4;
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 12px;
        row-gap: 6px;
    }
    .gd-credit__item {
        white-space: normal; /* позволяем переносить если длинно */
        align-items: flex-start;
        gap: 6px;
    }
    .gd-credit__ico { margin-top: 2px; } /* компенсация для line-height */
    .gd-credit__sep { display: none; } /* разделители · не нужны при grid */
    .gd-credit__item:nth-child(odd):last-child { grid-column: 1 / -1; }
}
@media (max-width: 380px) {
    /* очень узкий экран — 1 колонка чтобы текст не сжимался */
    .gd-credit__meta { grid-template-columns: 1fr; }
    .gd-credit__item:nth-child(odd):last-child { grid-column: auto; }
}

/* ===== Page-meta (gd-page-meta) — сетка мета-карточек публикации ===== */
.gd-page-meta {
    margin: 24px 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}
.gd-page-meta__card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--r-xl);
    background: linear-gradient(180deg, #fffdf6, #fbf8ec);
    box-shadow:
        0 4px 12px rgba(28,25,23,.03),
        inset 0 1px 0 rgba(255,255,255,.55);
    transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s cubic-bezier(.2,.8,.2,1);
}
.gd-page-meta__card:hover {
    transform: translateY(-1px);
    box-shadow:
        0 8px 20px rgba(156,116,6,.07),
        inset 0 1px 0 rgba(255,255,255,.65);
}
.gd-page-meta__icon-wrap {
    flex: none;
    width: 36px; height: 36px;
    border-radius: 12px;
    border: 1px solid rgba(255,200,87,.40);
    background:
        radial-gradient(10px 10px at 30% 30%, rgba(255,255,255,.75), transparent 65%),
        rgba(255,200,87,.16);
    display: grid;
    place-items: center;
}
.gd-page-meta__icon {
    width: 20px; height: 20px;
    display: block;
    opacity: .85;
}
.gd-page-meta__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.gd-page-meta__label {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--color-text-muted);
    text-transform: uppercase;
}
.gd-page-meta__value {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.25;
}
.gd-page-meta__suffix {
    font-size: 12px;
    font-weight: 500;
    color: var(--color-text-muted);
    margin-left: 2px;
}
[data-theme="dark"] .gd-page-meta__card {
    background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
    box-shadow:
        0 4px 12px rgba(0,0,0,.25),
        inset 0 1px 0 rgba(255,255,255,.05);
}
[data-theme="dark"] .gd-page-meta__icon-wrap {
    border-color: rgba(255,200,87,.30);
    background:
        radial-gradient(10px 10px at 30% 30%, rgba(255,255,255,.16), transparent 65%),
        rgba(255,200,87,.08);
}
@media (max-width: 600px) {
    .gd-page-meta { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .gd-page-meta__card { padding: 10px 12px; gap: 10px; }
    .gd-page-meta__icon-wrap { width: 30px; height: 30px; border-radius: 10px; }
    .gd-page-meta__icon { width: 16px; height: 16px; }
    .gd-page-meta__label { font-size: 10px; }
    .gd-page-meta__value { font-size: 13px; }
    .gd-page-meta__card:nth-child(odd):last-child { grid-column: 1 / -1; }
}
@media (max-width: 380px) {
    .gd-page-meta { grid-template-columns: 1fr; }
    .gd-page-meta__card:nth-child(odd):last-child { grid-column: auto; }
}

/* ===== Engagement-block (gd-engagement) — звёзды + комменты-якорь ===== */
.gd-engagement {
    margin: 56px 0 32px;
    padding: 28px 24px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg-card, #fff);
    text-align: center;
}
.gd-engagement__title {
    margin: 0 0 6px;
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-text);
}
.gd-engagement__hint {
    margin: 0 0 20px;
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    line-height: 1.5;
}
.gd-engagement__form { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.gd-stars {
    display: inline-flex;
    gap: 6px;
    align-items: center;
}
.gd-stars__btn {
    background: none;
    border: 0;
    padding: 4px;
    cursor: pointer;
    color: var(--color-border-strong, #d8dde6);
    transition: color 120ms ease, transform 120ms ease;
    line-height: 0;
    border-radius: 6px;
}
.gd-stars__btn:hover,
.gd-stars__btn:focus-visible { color: var(--color-primary); transform: scale(1.05); outline: none; }
.gd-stars__btn:focus-visible { box-shadow: 0 0 0 2px var(--color-primary-soft, #fff5dc); }
.gd-stars__btn.is-filled { color: var(--color-primary); }
.gd-stars[data-hover] .gd-stars__btn { color: var(--color-border-strong, #d8dde6); }
.gd-stars[data-hover] .gd-stars__btn.is-hover { color: var(--color-primary); }
.gd-engagement__summary {
    margin: 4px 0 0;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: 1.5;
}
.gd-engagement__summary strong { color: var(--color-text); font-weight: 700; }
.gd-engagement__saved {
    margin: 6px 0 0;
    font-size: var(--text-sm);
    color: var(--color-primary);
    font-weight: 500;
}
.gd-engagement__comments-link {
    display: inline-block;
    margin-top: 18px;
    padding: 10px 18px;
    border-radius: 10px;
    background: var(--color-bg-soft, #f4f0e8);
    color: var(--color-text);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: 500;
    transition: background 150ms ease;
}
.gd-engagement__comments-link:hover { background: var(--color-primary-soft, #fff5dc); }
@media (max-width: 600px) {
    .gd-engagement { padding: 22px 16px; margin-top: 40px; }
    .gd-stars__btn svg { width: 28px; height: 28px; }
}

/* ===== Author-bio (gd-author-bio) — упрощённая в конце статьи ===== */
.gd-author-bio {
    margin: 32px 0;
    padding: 24px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg-card, #fff);
    display: flex;
    align-items: flex-start;
    gap: 20px;
}
.gd-author-bio__avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--color-bg-soft, #f4f0e8);
}
.gd-author-bio__avatar--initials {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 26px;
    color: var(--color-primary);
}
.gd-author-bio__body { flex: 1; min-width: 0; }
.gd-author-bio__head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
.gd-author-bio__name {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
}
a.gd-author-bio__name:hover { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; }
.gd-author-bio__role {
    display: inline-flex;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--color-primary-soft, #fff5dc);
    color: var(--color-primary, #c89738);
    border: 1px solid var(--color-primary-line, rgba(200, 151, 56, 0.3));
    font-size: 12px;
    font-weight: 600;
}
.gd-author-bio__text {
    margin: 0 0 12px;
    line-height: 1.6;
    color: var(--color-text-secondary);
    font-size: var(--text-base);
}
.gd-author-bio__more {
    display: inline-block;
    color: var(--color-primary);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: 500;
}
.gd-author-bio__more:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) {
    .gd-author-bio { padding: 18px; gap: 14px; flex-direction: column; align-items: stretch; }
    .gd-author-bio__avatar { width: 56px; height: 56px; }
}

/* ===== Comments-block (gd-comments) — список + форма ===== */
.gd-comments {
    margin: 40px 0 24px;
    scroll-margin-top: calc(var(--header-h, 64px) + 16px);
}
.gd-comments__title {
    margin: 0 0 18px;
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: 10px;
}
.gd-comments__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border-radius: 999px;
    background: var(--color-bg-soft, #f4f0e8);
    color: var(--color-text-secondary);
    font-size: 13px;
    font-weight: 600;
}
.gd-comments__flash {
    margin: 0 0 16px;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: var(--text-sm);
    line-height: 1.5;
}
.gd-comments__flash--success {
    background: #ecfdf5;
    color: #047857;
    border: 1px solid #a7f3d0;
}
.gd-comments__flash--error {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}
.gd-comments__list {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.gd-comments__item {
    display: flex;
    gap: 14px;
    padding: 16px 18px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-bg-card, #fff);
}
.gd-comments__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--color-primary-soft, #fff5dc);
    color: var(--color-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 16px;
    flex-shrink: 0;
}
.gd-comments__body { flex: 1; min-width: 0; }
.gd-comments__head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 6px;
}
.gd-comments__author { font-weight: 600; color: var(--color-text); font-size: var(--text-sm); }
.gd-comments__time { font-size: 12px; color: var(--color-text-muted); }
.gd-comments__text {
    color: var(--color-text);
    line-height: 1.6;
    font-size: var(--text-base);
    word-break: break-word;
    overflow-wrap: anywhere;
}
.gd-comments__empty {
    margin: 0 0 24px;
    padding: 20px;
    border: 1px dashed var(--color-border);
    border-radius: 12px;
    color: var(--color-text-secondary);
    text-align: center;
    font-size: var(--text-sm);
}
.gd-comments__form-disabled {
    margin: 0;
    padding: 14px 18px;
    border-radius: 10px;
    background: var(--color-bg-soft, #f4f0e8);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    text-align: center;
}

/* ===== Comment-form (gd-comment-form) ===== */
.gd-comment-form {
    margin: 24px 0 0;
    padding: 24px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg-card, #fff);
}
.gd-comment-form__title {
    margin: 0 0 6px;
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-text);
}
.gd-comment-form__hint {
    margin: 0 0 18px;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: 1.5;
}
.gd-comment-form__hp {
    position: absolute;
    left: -9999px;
    top: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.gd-comment-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}
.gd-comment-form__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}
.gd-comment-form__row .gd-comment-form__field { margin-bottom: 0; }
.gd-comment-form__label {
    font-size: 13px;
    color: var(--color-text-secondary);
    font-weight: 500;
}
.gd-comment-form__req { color: var(--color-primary); margin-left: 2px; }
.gd-comment-form input[type="text"],
.gd-comment-form input[type="email"],
.gd-comment-form textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--color-border-strong, #d8dde6);
    border-radius: 10px;
    background: var(--color-bg-card, #fff);
    color: var(--color-text);
    font: inherit;
    font-size: var(--text-base);
    line-height: 1.5;
    transition: border-color 150ms ease, box-shadow 150ms ease;
    box-sizing: border-box;
}
.gd-comment-form input:focus,
.gd-comment-form textarea:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-primary-soft, #fff5dc);
}
.gd-comment-form textarea { resize: vertical; min-height: 110px; }
.gd-comment-form__footer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 4px;
}
.gd-comment-form__submit {
    padding: 11px 22px;
    border: 0;
    border-radius: 10px;
    background: var(--color-primary);
    color: var(--color-on-primary, #1a1a1a);
    font: inherit;
    font-weight: 600;
    font-size: var(--text-sm);
    cursor: pointer;
    transition: background 150ms ease, transform 100ms ease;
}
.gd-comment-form__submit:hover { background: var(--color-primary-strong, #b87f1f); }
.gd-comment-form__submit:active { transform: translateY(1px); }
.gd-comment-form__legal {
    flex: 1;
    min-width: 220px;
    font-size: 12px;
    color: var(--color-text-muted);
    line-height: 1.5;
}
.gd-comment-form__legal a { color: var(--color-text-secondary); text-decoration: underline; text-underline-offset: 2px; }
.gd-comment-form__legal a:hover { color: var(--color-primary); }
@media (max-width: 600px) {
    .gd-comment-form { padding: 18px; }
    .gd-comment-form__row { grid-template-columns: 1fr; }
    .gd-comment-form__footer { flex-direction: column; align-items: stretch; }
    .gd-comment-form__submit { width: 100%; }
}

/* ===== Editorial: коммент от редакции (золотая выделенная карточка) ===== */
.gd-comments__item--editorial {
    border: 1.5px solid var(--color-primary, #c9912b);
    background:
        linear-gradient(180deg, rgba(255, 220, 130, .12) 0%, rgba(255, 220, 130, .04) 100%),
        var(--color-bg-card, #fff);
    box-shadow: 0 1px 0 rgba(201, 145, 43, .08);
}
.gd-comments__avatar--editorial {
    border: 2px solid var(--color-primary, #c9912b);
    background: var(--color-primary-soft, #fff5dc);
    box-sizing: border-box;
}
.gd-comments__avatar--photo {
    object-fit: cover;
    display: block;
    background: var(--color-primary-soft, #fff5dc);
}
.gd-comments__badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--color-primary-soft, #fff5dc);
    color: var(--color-primary-strong, #8a5d10);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    line-height: 1.4;
    border: 1px solid rgba(201, 145, 43, .35);
    flex-shrink: 0;
}
.gd-comments__badge::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-primary, #c9912b);
    box-shadow: 0 0 0 2px rgba(201, 145, 43, .25);
}
.gd-comments__role {
    margin: -2px 0 6px;
    font-size: 12px;
    color: var(--color-text-muted, #6b7280);
    line-height: 1.3;
}

/* ===== Editorial form (форма ответа от редакции) ===== */
.gd-comment-form--editorial {
    border: 1.5px solid var(--color-primary, #c9912b);
    background:
        linear-gradient(180deg, rgba(255, 220, 130, .14) 0%, rgba(255, 220, 130, .04) 100%),
        var(--color-bg-card, #fff);
}
.gd-comment-form--editorial .gd-comment-form__title {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.gd-comment-form__title-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--color-primary, #c9912b);
    color: var(--color-on-primary, #1a1a1a);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    line-height: 1.4;
}
.gd-comment-form__title-badge::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-on-primary, #1a1a1a);
    opacity: .65;
}
.gd-comment-form__as-line {
    margin: 0 0 14px;
    padding: 10px 14px;
    border-radius: 10px;
    background: var(--color-bg-soft, rgba(255, 220, 130, .14));
    font-size: 13px;
    color: var(--color-text-secondary);
    line-height: 1.4;
}
.gd-comment-form__as-line strong {
    color: var(--color-text);
    font-weight: 600;
}
.gd-comment-form__as-role { color: var(--color-text-muted, #6b7280); }
.gd-comment-form__select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--color-border-strong, #d8dde6);
    border-radius: 10px;
    background: var(--color-bg-card, #fff);
    color: var(--color-text);
    font: inherit;
    font-size: var(--text-base);
    line-height: 1.5;
    cursor: pointer;
    box-sizing: border-box;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}
.gd-comment-form__select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-primary-soft, #fff5dc);
}
.gd-comment-form__submit--editorial::before {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    margin-right: 8px;
    vertical-align: -2px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>") center / contain no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg>") center / contain no-repeat;
}

/* Dark theme: editorial-карточка остаётся золотой, но fill полупрозрачнее */
[data-theme="dark"] .gd-comments__item--editorial,
:root[data-theme="dark"] .gd-comments__item--editorial {
    background:
        linear-gradient(180deg, rgba(255, 220, 130, .08) 0%, rgba(255, 220, 130, .03) 100%),
        var(--color-bg-card);
}
[data-theme="dark"] .gd-comments__badge,
:root[data-theme="dark"] .gd-comments__badge {
    background: rgba(255, 220, 130, .14);
    color: var(--color-primary, #e0b85a);
    border-color: rgba(255, 220, 130, .35);
}
[data-theme="dark"] .gd-comment-form--editorial,
:root[data-theme="dark"] .gd-comment-form--editorial {
    background:
        linear-gradient(180deg, rgba(255, 220, 130, .08) 0%, rgba(255, 220, 130, .03) 100%),
        var(--color-bg-card);
}


/* ===== Inline feedback в engagement-block / comments-form (вместо overlay-toast) ===== */
.gd-engagement__feedback,
.gd-comment-form__feedback {
    padding: 10px 16px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--text-sm);
    line-height: 1.4;
    max-width: 100%;
    width: fit-content;
    animation: gd-feedback-in 240ms ease-out;
}
.gd-engagement__feedback { margin: 18px auto 4px; }
.gd-comment-form__feedback { margin: 0 0 16px; }

.gd-engagement__feedback--success,
.gd-comment-form__feedback--success {
    background: var(--color-primary-soft, #fff5dc);
    color: #8b6614;
    border: 1px solid var(--color-primary-line, rgba(200, 151, 56, 0.35));
}
.gd-engagement__feedback--error,
.gd-comment-form__feedback--error {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}
.gd-engagement__feedback-icon,
.gd-comment-form__feedback-icon {
    flex-shrink: 0;
    display: inline-flex;
}
.gd-engagement__feedback-text,
.gd-comment-form__feedback-text {
    line-height: 1.5;
}
@keyframes gd-feedback-in {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ===== Calculator УСН widget (gd-calc-usn) ===== */
.gd-calc-usn { margin: 32px 0; }
.gd-calc-usn__title {
    margin: 0 0 12px;
    font-size: var(--text-2xl); font-weight: 700;
    line-height: 1.2; letter-spacing: -0.015em;
    color: var(--color-text-primary);
}
.gd-calc-usn__intro {
    margin: 0 0 18px;
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: 1.55;
}
.gd-calc-usn__card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--r-xl);
    background: linear-gradient(180deg, #fffdf6, #fbf8ec);
    box-shadow: 0 6px 18px rgba(28,25,23,.06), inset 0 1px 0 rgba(255,255,255,.55);
    overflow: hidden;
}
.gd-calc-usn__form {
    padding: 24px;
    display: flex; flex-direction: column; gap: 18px;
    border-right: 1px solid var(--color-border);
}
.gd-calc-usn__field { display: flex; flex-direction: column; gap: 8px; }
.gd-calc-usn__field-label,
.gd-calc-usn__field > label,
.gd-calc-usn__field > legend {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--color-text-muted);
    padding: 0;
    margin: 0;
}
.gd-calc-usn__field-icon {
    width: 14px; height: 14px;
    color: var(--color-primary-deep);
    flex: none;
}
.gd-calc-usn__field--radio {
    border: 0; padding: 0; margin: 0;
    flex-direction: column;
    gap: 8px;
}
.gd-calc-usn__field--radio[hidden] { display: none !important; }

.gd-calc-usn__split {
    display: none;  /* По умолчанию скрыт. JS добавляет .is-active → выползает */
}
.gd-calc-usn__split.is-active {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    animation: gdCalcSplitReveal .28s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes gdCalcSplitReveal {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.gd-calc-usn__rate-hint {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin-top: 2px;
}
.gd-calc-usn__input-wrap { position: relative; }
.gd-calc-usn__input {
    width: 100%;
    padding: 12px 36px 12px 14px;
    font-size: var(--text-lg);
    font-weight: 700;
    border: 1px solid var(--color-border-strong);
    border-radius: 10px;
    background: var(--color-surface);
    color: var(--color-text-primary);
    font-family: inherit;
    transition: border-color .2s, box-shadow .2s;
}
.gd-calc-usn__input:focus {
    outline: 0;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(255,200,87,.20);
}
.gd-calc-usn__input-suffix {
    position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
    color: var(--color-text-muted); font-weight: 600;
    pointer-events: none;
}

/* Универсальная плашка-выбор (radio + checkbox).
   Native input стилизован напрямую через appearance:none — НЕТ position:absolute
   и НЕТ отдельного mark-span. Чистый flex-flow, padding гарантированно работает.
   Layout: [styled-input] [optional icon-tile] [text-block]. */
.gd-calc-usn__pick {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 18px 22px !important;  /* !important на все случаи: убедиться что нет cascade-перекрытия */
    border: 1px solid var(--color-border-strong);
    border-radius: 12px;
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color .2s, background .2s, box-shadow .2s;
    user-select: none;
    box-sizing: border-box;
}
.gd-calc-usn__pick:hover { border-color: var(--color-primary-line); }
.gd-calc-usn__pick:has(input:checked) {
    border-color: var(--color-primary);
    background: rgba(255,200,87,.10);
}
.gd-calc-usn__pick:has(input:focus-visible) {
    box-shadow: 0 0 0 2px rgba(255,200,87,.40);
}

/* Сам input - стилизован напрямую (radio = круг, checkbox = квадрат с галочкой) */
.gd-calc-usn__pick-input {
    appearance: none;
    -webkit-appearance: none;
    flex: none;
    width: 22px; height: 22px;
    margin: 0; padding: 0;
    border: 2px solid var(--color-border-strong);
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color .2s, background .2s, box-shadow .2s;
}
.gd-calc-usn__pick-input[type="radio"] { border-radius: 50%; }
.gd-calc-usn__pick-input[type="checkbox"] { border-radius: 6px; }

.gd-calc-usn__pick-input[type="radio"]:checked {
    border-color: var(--color-primary);
    background: var(--color-primary);
    /* белая обводка через inset shadow создаёт классический radio-dot */
    box-shadow: inset 0 0 0 4px var(--color-surface);
}
.gd-calc-usn__pick-input[type="checkbox"]:checked {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230C1017' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3,8.2 6.5,11.5 13,4.5'/%3E%3C/svg%3E");
    background-size: 14px 14px;
    background-repeat: no-repeat;
    background-position: center;
}

/* Иконка-плашка (только для radio с label-text). Золотая подложка. */
.gd-calc-usn__pick-icon {
    flex: none;
    width: 38px; height: 38px;
    border-radius: 10px;
    background: rgba(255,200,87,.12);
    color: var(--color-primary-deep);
    display: grid; place-items: center;
    transition: background .2s;
}
.gd-calc-usn__pick-icon svg { width: 20px; height: 20px; display: block; }
.gd-calc-usn__pick:has(input:checked) .gd-calc-usn__pick-icon {
    background: rgba(255,200,87,.22);
}
.gd-calc-usn__pick:hover .gd-calc-usn__pick-input { border-color: var(--color-primary-line); }
.gd-calc-usn__pick-text {
    display: flex; flex-direction: column; gap: 2px;
    font-size: var(--text-sm);
    line-height: 1.35;
    flex: 1 1 auto;
    min-width: 0;
}
.gd-calc-usn__pick-text strong { color: var(--color-text-primary); font-weight: 600; }
.gd-calc-usn__pick-text em { font-style: normal; color: var(--color-text-muted); font-size: var(--text-xs); }

/* Результат */
.gd-calc-usn__result {
    padding: 24px;
    background: linear-gradient(180deg, rgba(255,200,87,.10), rgba(255,200,87,.04));
    display: flex; flex-direction: column; gap: 18px;
}
.gd-calc-usn__result-headline { display: flex; flex-direction: column; gap: 4px; }
.gd-calc-usn__result-label {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--color-text-muted);
}
.gd-calc-usn__result-tax {
    font-size: var(--text-3xl);
    font-weight: 800;
    color: var(--color-text-primary);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.gd-calc-usn__result-rate {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}
.gd-calc-usn__result-rate strong {
    color: var(--color-primary-deep);
    font-weight: 700;
}
.gd-calc-usn__breakdown {
    margin: 0; padding: 14px 0 0;
    border-top: 1px dashed var(--color-border-strong);
    display: flex; flex-direction: column; gap: 8px;
}
.gd-calc-usn__breakdown > div {
    display: flex; justify-content: space-between; align-items: baseline;
    font-size: var(--text-sm);
}
.gd-calc-usn__breakdown dt { color: var(--color-text-muted); margin: 0; }
.gd-calc-usn__breakdown dd {
    text-align: right;
    margin: 0; color: var(--color-text-primary);
    font-weight: 600; font-variant-numeric: tabular-nums;
}
.gd-calc-usn__note {
    margin: 12px 0 0;
    font-size: var(--text-xs);
    line-height: 1.55;
    color: var(--color-text-muted);
}

[data-theme="dark"] .gd-calc-usn__card {
    background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
    box-shadow: 0 6px 18px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.04);
}
[data-theme="dark"] .gd-calc-usn__pick { background: var(--color-surface-2); }
[data-theme="dark"] .gd-calc-usn__pick-input { background: var(--color-surface-2); }
[data-theme="dark"] .gd-calc-usn__pick:has(input:checked) { background: rgba(255,200,87,.08); }
[data-theme="dark"] .gd-calc-usn__pick-input[type="radio"]:checked { box-shadow: inset 0 0 0 4px var(--color-surface-2); }
[data-theme="dark"] .gd-calc-usn__pick-icon { background: rgba(255,200,87,.08); }
[data-theme="dark"] .gd-calc-usn__pick:has(input:checked) .gd-calc-usn__pick-icon { background: rgba(255,200,87,.18); }
[data-theme="dark"] .gd-calc-usn__input { background: var(--color-surface-2); }
[data-theme="dark"] .gd-calc-usn__result {
    background: linear-gradient(180deg, rgba(255,200,87,.06), rgba(255,200,87,.02));
}

@media (max-width: 700px) {
    .gd-calc-usn__card { grid-template-columns: 1fr; }
    .gd-calc-usn__form { border-right: 0; border-bottom: 1px solid var(--color-border); padding: 18px; gap: 14px; }
    .gd-calc-usn__result { padding: 20px; }
    .gd-calc-usn__split.is-active { grid-template-columns: 1fr; gap: 12px; }
    /* На mobile padding чуть меньше, но всё равно щедрый - НЕ раздавливаем содержимое */
    .gd-calc-usn__pick { padding: 16px 18px !important; gap: 12px !important; }
    .gd-calc-usn__pick-icon { width: 32px; height: 32px; }
    .gd-calc-usn__pick-icon svg { width: 18px; height: 18px; }
}
/* ===== Calculator страховых взносов widget (gd-calc-strahovye) ===== */
.gd-calc-strahovye { margin: 32px 0; }
.gd-calc-strahovye__title {
    margin: 0 0 12px;
    font-size: var(--text-2xl); font-weight: 700;
    line-height: 1.2; letter-spacing: -0.015em;
    color: var(--color-text-primary);
}
.gd-calc-strahovye__intro {
    margin: 0 0 18px;
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: 1.55;
}
.gd-calc-strahovye__card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--r-xl);
    background: linear-gradient(180deg, #fffdf6, #fbf8ec);
    box-shadow: 0 6px 18px rgba(28,25,23,.06), inset 0 1px 0 rgba(255,255,255,.55);
    overflow: hidden;
}
.gd-calc-strahovye__form {
    padding: 24px;
    display: flex; flex-direction: column; gap: 18px;
    border-right: 1px solid var(--color-border);
}
.gd-calc-strahovye__field { display: flex; flex-direction: column; gap: 8px; }
.gd-calc-strahovye__field-label,
.gd-calc-strahovye__field > label,
.gd-calc-strahovye__field > legend {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--color-text-muted);
    padding: 0;
    margin: 0;
}
.gd-calc-strahovye__field-icon {
    width: 14px; height: 14px;
    color: var(--color-primary-deep);
    flex: none;
}
.gd-calc-strahovye__field--radio {
    border: 0; padding: 0; margin: 0;
    flex-direction: column;
    gap: 8px;
}
.gd-calc-strahovye__field--radio[hidden] { display: none !important; }

.gd-calc-strahovye__split {
    display: none;  /* По умолчанию скрыт. JS добавляет .is-active → выползает */
}
.gd-calc-strahovye__split.is-active {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    animation: gdCalcSplitReveal .28s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes gdCalcSplitReveal {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.gd-calc-strahovye__rate-hint {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin-top: 2px;
}
.gd-calc-strahovye__input-wrap { position: relative; }
.gd-calc-strahovye__input {
    width: 100%;
    padding: 12px 36px 12px 14px;
    font-size: var(--text-lg);
    font-weight: 700;
    border: 1px solid var(--color-border-strong);
    border-radius: 10px;
    background: var(--color-surface);
    color: var(--color-text-primary);
    font-family: inherit;
    transition: border-color .2s, box-shadow .2s;
}
.gd-calc-strahovye__input:focus {
    outline: 0;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(255,200,87,.20);
}
.gd-calc-strahovye__input-suffix {
    position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
    color: var(--color-text-muted); font-weight: 600;
    pointer-events: none;
}

/* Универсальная плашка-выбор (radio + checkbox).
   Native input стилизован напрямую через appearance:none — НЕТ position:absolute
   и НЕТ отдельного mark-span. Чистый flex-flow, padding гарантированно работает.
   Layout: [styled-input] [optional icon-tile] [text-block]. */
.gd-calc-strahovye__pick {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 18px 22px !important;  /* !important на все случаи: убедиться что нет cascade-перекрытия */
    border: 1px solid var(--color-border-strong);
    border-radius: 12px;
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color .2s, background .2s, box-shadow .2s;
    user-select: none;
    box-sizing: border-box;
}
.gd-calc-strahovye__pick:hover { border-color: var(--color-primary-line); }
.gd-calc-strahovye__pick:has(input:checked) {
    border-color: var(--color-primary);
    background: rgba(255,200,87,.10);
}
.gd-calc-strahovye__pick:has(input:focus-visible) {
    box-shadow: 0 0 0 2px rgba(255,200,87,.40);
}

/* Сам input - стилизован напрямую (radio = круг, checkbox = квадрат с галочкой) */
.gd-calc-strahovye__pick-input {
    appearance: none;
    -webkit-appearance: none;
    flex: none;
    width: 22px; height: 22px;
    margin: 0; padding: 0;
    border: 2px solid var(--color-border-strong);
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color .2s, background .2s, box-shadow .2s;
}
.gd-calc-strahovye__pick-input[type="radio"] { border-radius: 50%; }
.gd-calc-strahovye__pick-input[type="checkbox"] { border-radius: 6px; }

.gd-calc-strahovye__pick-input[type="radio"]:checked {
    border-color: var(--color-primary);
    background: var(--color-primary);
    /* белая обводка через inset shadow создаёт классический radio-dot */
    box-shadow: inset 0 0 0 4px var(--color-surface);
}
.gd-calc-strahovye__pick-input[type="checkbox"]:checked {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230C1017' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3,8.2 6.5,11.5 13,4.5'/%3E%3C/svg%3E");
    background-size: 14px 14px;
    background-repeat: no-repeat;
    background-position: center;
}

/* Иконка-плашка (только для radio с label-text). Золотая подложка. */
.gd-calc-strahovye__pick-icon {
    flex: none;
    width: 38px; height: 38px;
    border-radius: 10px;
    background: rgba(255,200,87,.12);
    color: var(--color-primary-deep);
    display: grid; place-items: center;
    transition: background .2s;
}
.gd-calc-strahovye__pick-icon svg { width: 20px; height: 20px; display: block; }
.gd-calc-strahovye__pick:has(input:checked) .gd-calc-strahovye__pick-icon {
    background: rgba(255,200,87,.22);
}
.gd-calc-strahovye__pick:hover .gd-calc-strahovye__pick-input { border-color: var(--color-primary-line); }
.gd-calc-strahovye__pick-text {
    display: flex; flex-direction: column; gap: 2px;
    font-size: var(--text-sm);
    line-height: 1.35;
    flex: 1 1 auto;
    min-width: 0;
}
.gd-calc-strahovye__pick-text strong { color: var(--color-text-primary); font-weight: 600; }
.gd-calc-strahovye__pick-text em { font-style: normal; color: var(--color-text-muted); font-size: var(--text-xs); }

/* Результат */
.gd-calc-strahovye__result {
    padding: 24px;
    background: linear-gradient(180deg, rgba(255,200,87,.10), rgba(255,200,87,.04));
    display: flex; flex-direction: column; gap: 18px;
}
.gd-calc-strahovye__result-headline { display: flex; flex-direction: column; gap: 4px; }
.gd-calc-strahovye__result-label {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--color-text-muted);
}
.gd-calc-strahovye__result-tax {
    font-size: var(--text-3xl);
    font-weight: 800;
    color: var(--color-text-primary);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.gd-calc-strahovye__result-rate {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}
.gd-calc-strahovye__result-rate strong {
    color: var(--color-primary-deep);
    font-weight: 700;
}
.gd-calc-strahovye__breakdown {
    margin: 0; padding: 14px 0 0;
    border-top: 1px dashed var(--color-border-strong);
    display: flex; flex-direction: column; gap: 8px;
}
.gd-calc-strahovye__breakdown > div {
    display: flex; justify-content: space-between; align-items: baseline;
    font-size: var(--text-sm);
}
.gd-calc-strahovye__breakdown dt { color: var(--color-text-muted); margin: 0; }
.gd-calc-strahovye__breakdown dd {
    text-align: right;
    margin: 0; color: var(--color-text-primary);
    font-weight: 600; font-variant-numeric: tabular-nums;
}
.gd-calc-strahovye__note {
    margin: 12px 0 0;
    font-size: var(--text-xs);
    line-height: 1.55;
    color: var(--color-text-muted);
}

[data-theme="dark"] .gd-calc-strahovye__card {
    background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
    box-shadow: 0 6px 18px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.04);
}
[data-theme="dark"] .gd-calc-strahovye__pick { background: var(--color-surface-2); }
[data-theme="dark"] .gd-calc-strahovye__pick-input { background: var(--color-surface-2); }
[data-theme="dark"] .gd-calc-strahovye__pick:has(input:checked) { background: rgba(255,200,87,.08); }
[data-theme="dark"] .gd-calc-strahovye__pick-input[type="radio"]:checked { box-shadow: inset 0 0 0 4px var(--color-surface-2); }
[data-theme="dark"] .gd-calc-strahovye__pick-icon { background: rgba(255,200,87,.08); }
[data-theme="dark"] .gd-calc-strahovye__pick:has(input:checked) .gd-calc-strahovye__pick-icon { background: rgba(255,200,87,.18); }
[data-theme="dark"] .gd-calc-strahovye__input { background: var(--color-surface-2); }
[data-theme="dark"] .gd-calc-strahovye__result {
    background: linear-gradient(180deg, rgba(255,200,87,.06), rgba(255,200,87,.02));
}

@media (max-width: 700px) {
    .gd-calc-strahovye__card { grid-template-columns: 1fr; }
    .gd-calc-strahovye__form { border-right: 0; border-bottom: 1px solid var(--color-border); padding: 18px; gap: 14px; }
    .gd-calc-strahovye__result { padding: 20px; }
    .gd-calc-strahovye__split.is-active { grid-template-columns: 1fr; gap: 12px; }
    /* На mobile padding чуть меньше, но всё равно щедрый - НЕ раздавливаем содержимое */
    .gd-calc-strahovye__pick { padding: 16px 18px !important; gap: 12px !important; }
    .gd-calc-strahovye__pick-icon { width: 32px; height: 32px; }
    .gd-calc-strahovye__pick-icon svg { width: 18px; height: 18px; }
}

/* ──────────────────────────────────────────────────
   Cookie banner (152-ФЗ / ePrivacy gate)
   ────────────────────────────────────────────────── */
.gd-cookie-banner {
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: 16px;
    z-index: 9000;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .28s ease, transform .28s ease;
    pointer-events: none;
}
.gd-cookie-banner.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.gd-cookie-banner__inner {
    max-width: 920px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 18px;
    padding: 18px 22px;
    background: linear-gradient(180deg, #fffdf6 0%, #fbf6e6 100%);
    border: 1px solid var(--color-primary-line);
    border-radius: var(--r-lg);
    box-shadow:
        0 1px 0 rgba(255,255,255,0.7) inset,
        0 18px 40px rgba(28, 25, 23, 0.10),
        0 4px 12px rgba(176, 125, 14, 0.08);
}
.gd-cookie-banner__icon {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(255,200,87,.22), rgba(255,200,87,.10));
    border: 1px solid var(--color-primary-line);
    color: var(--color-primary-deep);
    box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
}
.gd-cookie-banner__body {
    min-width: 0;
}
.gd-cookie-banner__title {
    margin: 0 0 4px;
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--color-text-primary);
    line-height: 1.3;
}
.gd-cookie-banner__text {
    margin: 0;
    font-size: var(--text-sm);
    line-height: 1.55;
    color: var(--color-text-secondary);
}
.gd-cookie-banner__link {
    color: var(--color-primary-deep);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 500;
}
.gd-cookie-banner__link:hover { color: #6a4a0d; }
.gd-cookie-banner__actions {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}
.gd-cookie-banner__btn {
    padding: 10px 18px;
    font-size: var(--text-sm);
    font-weight: 600;
    border-radius: var(--r-md);
    border: 1px solid transparent;
    line-height: 1.2;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease, transform .08s ease;
    white-space: nowrap;
}
.gd-cookie-banner__btn--primary {
    background: var(--color-primary);
    color: #1A1F2E;
    border-color: var(--color-primary);
}
.gd-cookie-banner__btn--primary:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
}
.gd-cookie-banner__btn--primary:active { transform: scale(0.98); }
.gd-cookie-banner__btn--secondary {
    background: transparent;
    color: var(--color-text-primary);
    border-color: var(--color-border-strong);
}
.gd-cookie-banner__btn--secondary:hover {
    border-color: var(--color-text-primary);
    background: rgba(0, 0, 0, 0.03);
}

[data-theme="dark"] .gd-cookie-banner__inner {
    background: linear-gradient(180deg, #1d2333 0%, #161B26 100%);
    border-color: var(--color-primary-line);
    box-shadow:
        0 1px 0 rgba(255,255,255,0.04) inset,
        0 18px 40px rgba(0, 0, 0, 0.45),
        0 4px 12px rgba(255, 200, 87, 0.08);
}
[data-theme="dark"] .gd-cookie-banner__icon {
    background: linear-gradient(180deg, rgba(255,200,87,.16), rgba(255,200,87,.06));
    color: var(--color-primary-deep);
}
[data-theme="dark"] .gd-cookie-banner__text { color: var(--color-text-secondary); }
[data-theme="dark"] .gd-cookie-banner__link { color: var(--color-primary-deep); }
[data-theme="dark"] .gd-cookie-banner__btn--secondary:hover {
    background: rgba(255, 255, 255, 0.04);
}

@media (max-width: 760px) {
    .gd-cookie-banner { left: 10px; right: 10px; bottom: 10px; }
    .gd-cookie-banner__inner {
        grid-template-columns: auto 1fr;
        gap: 14px;
        padding: 16px 18px;
    }
    .gd-cookie-banner__icon { width: 38px; height: 38px; flex-basis: 38px; }
    .gd-cookie-banner__icon svg { width: 22px; height: 22px; }
    .gd-cookie-banner__actions {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    .gd-cookie-banner__btn { padding: 11px 12px; }
}
@media (max-width: 400px) {
    .gd-cookie-banner__title { font-size: var(--text-sm); }
    .gd-cookie-banner__text { font-size: 13px; }
}

/* ──────────────────────────────────────────────────
   Consent checkbox in comment form (152-ФЗ / 156-ФЗ от 24.06.2025)
   ────────────────────────────────────────────────── */
.gd-comment-form__consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 16px;
    margin: 16px 0 12px;
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: var(--r-md);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.gd-comment-form__consent:hover {
    border-color: var(--color-primary-line);
    background: rgba(255, 200, 87, 0.05);
}
.gd-comment-form__consent:has(input:checked) {
    border-color: var(--color-primary);
    background: rgba(255, 200, 87, 0.08);
}
.gd-comment-form__consent input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    margin-top: 1px;
    border-radius: 4px;
    border: 1.5px solid var(--color-border-strong);
    background: var(--color-surface);
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
    position: relative;
}
.gd-comment-form__consent input[type="checkbox"]:hover {
    border-color: var(--color-primary);
}
.gd-comment-form__consent input[type="checkbox"]:checked {
    background: var(--color-primary);
    border-color: var(--color-primary);
}
.gd-comment-form__consent input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 1px;
    width: 6px;
    height: 11px;
    border: solid #1A1F2E;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.gd-comment-form__consent input[type="checkbox"]:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}
.gd-comment-form__consent-text {
    font-size: var(--text-sm);
    line-height: 1.5;
    color: var(--color-text-secondary);
}
.gd-comment-form__consent-text a {
    color: var(--color-primary-deep);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.gd-comment-form__consent-text a:hover {
    color: #6a4a0d;
}

[data-theme="dark"] .gd-comment-form__consent {
    background: var(--color-surface-2);
}
[data-theme="dark"] .gd-comment-form__consent:hover {
    background: rgba(255, 200, 87, 0.06);
}
[data-theme="dark"] .gd-comment-form__consent:has(input:checked) {
    background: rgba(255, 200, 87, 0.10);
}
[data-theme="dark"] .gd-comment-form__consent input[type="checkbox"] {
    background: var(--color-surface);
}
[data-theme="dark"] .gd-comment-form__consent input[type="checkbox"]:checked {
    background: var(--color-primary);
}
[data-theme="dark"] .gd-comment-form__consent-text a {
    color: var(--color-primary-deep);
}

@media (max-width: 480px) {
    .gd-comment-form__consent {
        padding: 12px 14px;
        gap: 8px;
    }
    .gd-comment-form__consent-text {
        font-size: 13px;
    }
}

/* ============================================================
   Поиск по сайту: форма + результаты (страница /poisk/)
   ============================================================ */
.gd-search-form {
    display: flex;
    gap: 12px;
    align-items: stretch;
    margin: 24px 0;
}
.gd-search-form__field {
    flex: 1;
    display: block;
    position: relative;
}
.gd-search-form__input {
    width: 100%;
    padding: 14px 18px;
    font-family: inherit;
    font-size: 16px;
    line-height: 1.4;
    color: var(--color-text);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.gd-search-form__input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(255, 200, 87, 0.15);
}
.gd-search-form__btn {
    padding: 0 22px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 500;
    color: var(--color-text);
    background: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: 12px;
    cursor: pointer;
    transition: background 0.15s;
}
.gd-search-form__btn:hover {
    background: var(--color-primary-deep, #f0b73a);
}
.gd-search-results { margin-top: 24px; }
.gd-search-results__meta {
    margin: 0 0 18px;
    font-size: 14px;
    color: var(--color-text-muted);
}
.gd-search-results__list { list-style: none; padding: 0; margin: 0; }
.gd-search-results__item {
    padding: 18px 20px;
    margin-bottom: 12px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 14px;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.gd-search-results__item:hover {
    border-color: var(--color-primary);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}
.gd-search-results__link {
    display: block;
    font-size: 17px;
    font-weight: 500;
    color: var(--color-text);
    text-decoration: none;
}
.gd-search-results__link:hover { color: var(--color-primary-deep, #d99a1a); }
.gd-search-results__desc {
    margin: 6px 0 4px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-text-muted);
}
.gd-search-results__url {
    margin: 0;
    font-size: 12px;
    color: var(--color-text-muted);
    opacity: 0.7;
}
.gd-search-results--empty { margin-top: 24px; }
.gd-search-results--empty p {
    margin: 0 0 12px;
    line-height: 1.55;
}
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0;
}
[data-theme="dark"] .gd-search-form__input { background: var(--color-surface-2); }
[data-theme="dark"] .gd-search-results__item { background: var(--color-surface-2); }
@media (max-width: 480px) {
    .gd-search-form { flex-direction: column; }
    .gd-search-form__btn { padding: 12px 22px; }
}


/* ─── Doc Template Form (генератор документов) ─── */
.gd-doc-form {
    margin: 32px 0;
    padding: 24px;
    background: linear-gradient(180deg, #fffdf6, #fbf6e6);
    border: 1px solid var(--color-border);
    border-radius: var(--r-xl);
    box-shadow: 0 4px 14px rgba(28, 25, 23, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.55);
    position: relative;
    overflow: hidden;
}
.gd-doc-form::before {
    content: '';
    position: absolute; left: 0; top: 0; bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, var(--color-primary), rgba(255, 200, 87, 0.4));
}
.gd-doc-form__header { margin-bottom: 20px; }
.gd-doc-form__title {
    margin: 0 0 8px;
    font-size: 22px;
    font-weight: 700;
    color: var(--color-text-strong, #1c1917);
    line-height: 1.25;
}
.gd-doc-form__intro {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-text-muted, #57534e);
}
.gd-doc-form__group {
    margin: 0 0 18px;
    padding: 16px 18px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.65);
}
.gd-doc-form__legend {
    padding: 2px 8px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--color-primary-deep, #d99a1a);
}
.gd-doc-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
    margin-top: 10px;
}
.gd-doc-form__field--full { grid-column: 1 / -1; }
.gd-doc-form__field { display: flex; flex-direction: column; gap: 4px; }
.gd-doc-form__label {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-strong, #1c1917);
}
.gd-doc-form__req {
    color: #d35400;
    margin-left: 2px;
}
.gd-doc-form__field input,
.gd-doc-form__field textarea,
.gd-doc-form__field select {
    width: 100%;
    box-sizing: border-box;
    padding: 9px 12px;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.45;
    color: var(--color-text-base, #1c1917);
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    transition: border-color 0.12s, box-shadow 0.12s;
}
.gd-doc-form__field textarea { min-height: 60px; resize: vertical; }
.gd-doc-form__field input:focus,
.gd-doc-form__field textarea:focus,
.gd-doc-form__field select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(255, 200, 87, 0.18);
}

/* Кастомная стрелка для native-select на сайте: нативная иконка прижата
   к правому краю - заменяем на SVG-chevron с явным отступом 14px от края. */
.gd-doc-form__field select,
.gd-comment-form__select,
.rating-form__select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%2364605c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M3 4.5l3 3 3-3'/></svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 36px;
}
[data-theme="dark"] .gd-doc-form__field select,
[data-theme="dark"] .gd-comment-form__select,
[data-theme="dark"] .rating-form__select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23a8a29e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M3 4.5l3 3 3-3'/></svg>");
}
.gd-doc-form__help {
    margin: 2px 0 0;
    font-size: 12px;
    line-height: 1.4;
    color: var(--color-text-muted, #78716c);
}
.gd-doc-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 20px 0 8px;
}
.gd-doc-form__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 22px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    border: 1px solid transparent;
    border-radius: 10px;
    cursor: pointer;
    transition: transform 0.1s, box-shadow 0.15s, background-color 0.15s;
}
.gd-doc-form__btn--primary {
    color: #1c1917;
    background: var(--color-primary, #FFC857);
    border-color: var(--color-primary-deep, #d99a1a);
    box-shadow: 0 2px 6px rgba(255, 200, 87, 0.35);
}
.gd-doc-form__btn--primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 200, 87, 0.5);
}
.gd-doc-form__btn--secondary {
    color: var(--color-text-strong, #1c1917);
    background: #fff;
    border-color: var(--color-border);
}
.gd-doc-form__btn--secondary:hover {
    border-color: var(--color-primary);
    background: rgba(255, 200, 87, 0.08);
}
.gd-doc-form__note {
    margin: 12px 0 0;
    font-size: 12px;
    line-height: 1.55;
    color: var(--color-text-muted, #78716c);
}
.gd-doc-form__note a { color: var(--color-primary-deep, #d99a1a); }

[data-theme="dark"] .gd-doc-form {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.02));
}
[data-theme="dark"] .gd-doc-form__group { background: rgba(255, 255, 255, 0.03); }
[data-theme="dark"] .gd-doc-form__field input,
[data-theme="dark"] .gd-doc-form__field textarea,
[data-theme="dark"] .gd-doc-form__field select {
    background: var(--color-surface-2, #2a2826);
    color: var(--color-text-base);
}
[data-theme="dark"] .gd-doc-form__btn--secondary {
    background: var(--color-surface-2, #2a2826);
    color: var(--color-text-base);
}

@media (max-width: 640px) {
    .gd-doc-form { padding: 18px; }
    .gd-doc-form__grid { grid-template-columns: 1fr; }
    .gd-doc-form__field--full { grid-column: auto; }
    .gd-doc-form__title { font-size: 19px; }
}
/* ===== Calculator УСН 15 % verdict line (gd-calc-usn15) ===== */
.gd-calc-usn__verdict {
    margin: 0;
    padding: 12px 14px;
    border-radius: var(--r-md);
    background: rgba(255,200,87,.10);
    border: 1px solid rgba(255,200,87,.40);
    font-size: var(--text-sm);
    line-height: 1.55;
    color: var(--color-text-primary);
}
[data-theme="dark"] .gd-calc-usn__verdict {
    background: rgba(255,200,87,.06);
    border-color: rgba(255,200,87,.25);
}

/* ===== Calculator АУСН (gd-calc-ausn) ===== */
.gd-calc-ausn__field-expenses { transition: opacity .15s ease; }

/* ===== Inline-формула в editorial-параграфе (gd-formula) ===== */
.gd-formula {
    margin: 16px 0;
    padding: 14px 18px;
    border-radius: var(--r-md);
    background: var(--color-primary-soft);
    border-left: 3px solid var(--color-primary-deep);
    font-size: var(--text-base);
    color: var(--color-text-primary);
    text-align: center;
}
.gd-formula strong { font-weight: 600; }

/* ===== Calculator "Какой режим выбрать" - таблица сравнения (gd-calc-rezhimy) ===== */
/* Stack-layout: форма сверху, таблица снизу на всю ширину */
.gd-calc-rezhimy .gd-calc-usn__card { grid-template-columns: 1fr; }
.gd-calc-rezhimy .gd-calc-usn__form {
    border-right: none;
    border-bottom: 1px solid var(--color-border);
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 28px;
    align-items: start;
    gap: 0 28px;
}
.gd-calc-rezhimy__col {
    display: flex;
    flex-direction: column;
    gap: 28px;
}
.gd-calc-rezhimy .gd-calc-usn__result { padding: 24px; }
.gd-calc-rezhimy .gd-calc-usn__verdict { margin-bottom: 16px; }
@media (max-width: 640px) {
    .gd-calc-rezhimy .gd-calc-usn__form { grid-template-columns: 1fr; row-gap: 18px; }
}
.gd-calc-rezhimy__table {
    width: 100%;
    margin-top: 16px;
    border-collapse: collapse;
    font-size: var(--text-sm);
}
.gd-calc-rezhimy__table thead th {
    text-align: left;
    padding: 10px 12px;
    font-weight: 600;
    color: var(--color-text-secondary);
    border-bottom: 2px solid var(--color-surface-muted);
    font-size: 13px;
    letter-spacing: .01em;
    text-transform: uppercase;
}
.gd-calc-rezhimy__table thead th:nth-child(n+2) { text-align: right; }
.gd-calc-rezhimy__table tbody td {
    padding: 14px 12px;
    border-bottom: 1px solid var(--color-surface-muted);
    vertical-align: top;
}
.gd-calc-rezhimy__table tbody td:nth-child(n+2) { text-align: right; white-space: nowrap; }
.gd-calc-rezhimy__table tbody td strong { display: block; font-weight: 600; color: var(--color-text-primary); }
.gd-calc-rezhimy__table tbody td em {
    display: block;
    font-style: normal;
    font-size: 12px;
    color: var(--color-text-tertiary);
    margin-top: 2px;
}
.gd-calc-rezhimy__row--unavailable td { opacity: .55; }
.gd-calc-rezhimy__row--best {
    background: rgba(34,197,94,.08);
    box-shadow: inset 3px 0 0 0 rgb(34,197,94);
}
.gd-calc-rezhimy__row--best td:last-child { font-weight: 700; color: rgb(22,140,80); }
[data-theme="dark"] .gd-calc-rezhimy__row--best { background: rgba(34,197,94,.10); }
[data-theme="dark"] .gd-calc-rezhimy__row--best td:last-child { color: rgb(86,222,150); }
@media (max-width: 640px) {
    .gd-calc-rezhimy .gd-calc-usn__form { grid-template-columns: 1fr; row-gap: 18px; }
    .gd-calc-rezhimy .gd-calc-usn__result { padding: 16px 12px; }
    .gd-calc-rezhimy .gd-calc-usn__verdict { margin-bottom: 12px; }
    .gd-calc-rezhimy__table { display: block; margin-top: 0; }
    .gd-calc-rezhimy__table thead { display: none; }
    .gd-calc-rezhimy__table tbody { display: block; }
    .gd-calc-rezhimy__table tbody tr {
        display: block;
        margin-bottom: 10px;
        padding: 14px 16px;
        background: rgba(255,253,246,.85);
        border: 1px solid var(--color-border);
        border-radius: var(--r-md, 12px);
        box-shadow: 0 1px 2px rgba(28,25,23,.03);
    }
    .gd-calc-rezhimy__table tbody tr:last-child { margin-bottom: 0; }
    [data-theme="dark"] .gd-calc-rezhimy__table tbody tr {
        background: rgba(255,255,255,.03);
        border-color: rgba(255,255,255,.10);
    }
    .gd-calc-rezhimy__table tbody td {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        padding: 5px 0;
        border: none;
        text-align: left;
        font-size: 15px;
        line-height: 1.4;
        white-space: normal;
    }
    .gd-calc-rezhimy__table tbody td:first-child {
        display: block;
        padding: 0 0 10px;
        margin-bottom: 4px;
        border-bottom: 1px solid var(--color-surface-muted);
    }
    .gd-calc-rezhimy__table tbody td:first-child strong {
        font-size: 16px;
        line-height: 1.3;
    }
    .gd-calc-rezhimy__table tbody td:first-child em {
        font-size: 13px;
        margin-top: 3px;
    }
    .gd-calc-rezhimy__table tbody td:nth-child(n+2)::before {
        content: attr(data-label);
        color: var(--color-text-tertiary);
        font-size: 13px;
        font-weight: 500;
        flex: 0 0 auto;
        margin-right: 16px;
    }
    .gd-calc-rezhimy__table tbody td:last-child {
        padding-top: 9px;
        margin-top: 4px;
        border-top: 1px solid var(--color-surface-muted);
        font-weight: 700;
        font-size: 16px;
    }
    .gd-calc-rezhimy__table tbody td:last-child::before {
        font-weight: 600;
        color: var(--color-text-secondary);
    }
    /* Подсветка выгодного режима - зелёный фон + рамка */
    .gd-calc-rezhimy__table tbody tr.gd-calc-rezhimy__row--best {
        background: rgba(34,197,94,.10);
        border-color: rgb(34,197,94);
        box-shadow: 0 0 0 1px rgb(34,197,94), 0 2px 8px rgba(34,197,94,.18);
    }
    .gd-calc-rezhimy__table tbody tr.gd-calc-rezhimy__row--best td:first-child { border-bottom-color: rgba(34,197,94,.30); }
    .gd-calc-rezhimy__table tbody tr.gd-calc-rezhimy__row--best td:last-child { border-top-color: rgba(34,197,94,.30); color: rgb(22,140,80); }
    [data-theme="dark"] .gd-calc-rezhimy__table tbody tr.gd-calc-rezhimy__row--best { background: rgba(34,197,94,.14); }
    [data-theme="dark"] .gd-calc-rezhimy__table tbody tr.gd-calc-rezhimy__row--best td:last-child { color: rgb(86,222,150); }
    .gd-calc-rezhimy__row--unavailable td { opacity: .60; }
}


/* ===== Calculator СЗ vs ИП - сравнительные блоки (gd-calc-szip) ===== */
.gd-calc-szip__range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 6px;
    border-radius: 3px;
    background: var(--color-border-soft, #e6e8ee);
    outline: none;
    margin: 8px 0 4px;
}
.gd-calc-szip__range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--color-primary, #2e6bff);
    border: 3px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.18);
    cursor: pointer;
}
.gd-calc-szip__range::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--color-primary, #2e6bff);
    border: 3px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.18);
    cursor: pointer;
}
.gd-calc-szip__share-label {
    display: block;
    font-size: var(--text-sm, 14px);
    font-weight: 600;
    color: var(--color-primary, #2e6bff);
}
.gd-calc-szip__compare {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 24px 24px 0;
    margin: 0;
}
.gd-calc-szip__col {
    background: var(--color-bg-soft, #f6f7fb);
    border: 1px solid var(--color-border-soft, #e6e8ee);
    border-radius: 14px;
    padding: 18px 18px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.gd-calc-szip__col--npd { border-left: 4px solid #18a36e; }
.gd-calc-szip__col--ip  { border-left: 4px solid #2e6bff; }
.gd-calc-szip__col-title {
    margin: 0;
    font-size: var(--text-lg, 17px);
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--color-text-base, #1a1d24);
}
.gd-calc-szip__col-headline {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.gd-calc-szip__col-label {
    font-size: var(--text-sm, 13px);
    color: var(--color-text-muted, #6a7180);
}
.gd-calc-szip__col-value {
    font-size: var(--text-2xl, 26px);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-text-base, #1a1d24);
    line-height: 1.1;
}
.gd-calc-szip__col-breakdown {
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
    font-size: var(--text-sm, 14px);
}
.gd-calc-szip__col-breakdown > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    border-top: 1px dashed var(--color-border-soft, #e6e8ee);
}
.gd-calc-szip__col-breakdown > div:first-child { border-top: 0; padding-top: 2px; }
.gd-calc-szip__col-breakdown dt {
    margin: 0;
    color: var(--color-text-muted, #6a7180);
}
.gd-calc-szip__col-breakdown dd {
    margin: 0;
    font-weight: 600;
    color: var(--color-text-base, #1a1d24);
    text-align: right;
}
.gd-calc-szip__col-warning {
    margin: 4px 0 0;
    padding: 10px 12px;
    background: #fff6e5;
    border: 1px solid #f4c674;
    border-radius: 10px;
    font-size: var(--text-sm, 13px);
    color: #6a4a0a;
    line-height: 1.45;
}
.gd-calc-szip__verdict {
    margin: 16px 24px 24px;
    padding: 16px 18px;
    background: linear-gradient(135deg, #ecf2ff 0%, #e7f7f0 100%);
    border: 1px solid #cfdcff;
    border-radius: 14px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
}
.gd-calc-szip__verdict[data-gd-calc-verdict-mode="ip"] {
    background: linear-gradient(135deg, #ecf2ff 0%, #dde7ff 100%);
    border-color: #b8caf9;
}
.gd-calc-szip__verdict[data-gd-calc-verdict-mode="npd"] {
    background: linear-gradient(135deg, #e7f7f0 0%, #d4efe1 100%);
    border-color: #a4d9bf;
}
.gd-calc-szip__verdict[data-gd-calc-verdict-mode="force-ip"] {
    background: linear-gradient(135deg, #fff6e5 0%, #ffe9c2 100%);
    border-color: #f4c674;
}
.gd-calc-szip__verdict-icon {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    color: var(--color-primary, #2e6bff);
}
.gd-calc-szip__verdict[data-gd-calc-verdict-mode="npd"] .gd-calc-szip__verdict-icon { color: #18a36e; }
.gd-calc-szip__verdict[data-gd-calc-verdict-mode="force-ip"] .gd-calc-szip__verdict-icon { color: #b07604; }
.gd-calc-szip__verdict-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    line-height: 1.45;
}
.gd-calc-szip__verdict-body strong {
    font-size: var(--text-lg, 17px);
    font-weight: 700;
    color: var(--color-text-base, #1a1d24);
}
.gd-calc-szip__verdict-body span {
    font-size: var(--text-sm, 14px);
    color: var(--color-text-muted, #4b5260);
}
@media (max-width: 640px) {
    .gd-calc-szip__compare { grid-template-columns: 1fr; }
}

/* ===== Terms cloud widget (gd-terms-cloud) =====
   Облако ссылок-плашек: flex-wrap с flex: 1 1 auto - плашки растягиваются
   до ширины ряда, не превышая её. Подходит для словарей терминов, наборов
   узких справочных ссылок. */
.gd-terms-cloud {
    margin: 32px 0;
}
.gd-terms-cloud__title {
    font-size: var(--text-2xl, 24px);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 16px;
    color: var(--color-text-base, #1a1d24);
}
.gd-terms-cloud__list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.gd-terms-cloud__item {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
}
/* [hidden] перекрывает display:flex/grid на flex-children. Иначе фильтр в site.js
   не сможет скрыть item через attr hidden. То же для .gd-faq-pages > li. */
.gd-terms-cloud__item[hidden],
.gd-faq-pages__list > li[hidden] {
    display: none;
}
.gd-terms-cloud__chip {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 18px;
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 10px;
    color: var(--color-text-base, #1a1d24);
    font-size: var(--text-base, 16px);
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.1s ease;
    white-space: nowrap;
}
.gd-terms-cloud__chip:hover {
    border-color: var(--color-accent, #ffc857);
    background: var(--color-accent-soft, #fff8e6);
}
.gd-terms-cloud__chip:active {
    transform: translateY(1px);
}
.gd-terms-cloud__chip-text {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
@media (max-width: 520px) {
    .gd-terms-cloud__chip { padding: 10px 14px; font-size: var(--text-sm, 14px); }
    .gd-terms-cloud__list { gap: 8px; }
}

/* ===== FAQ-pages widget (gd-faq-pages) =====
   Список ссылок в стиле FAQ-блоков, но без collapsible - каждый item
   уводит на отдельную QAPage. Визуально совместим с .gd-faq для
   консистентности UX. */
.gd-faq-pages {
    margin: 32px 0;
}
.gd-faq-pages__title {
    font-size: var(--text-2xl, 24px);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 16px;
    color: var(--color-text-base, #1a1d24);
}
.gd-faq-pages__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.gd-faq-pages__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 12px;
    color: var(--color-text-base, #1a1d24);
    font-size: var(--text-base, 17px);
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.gd-faq-pages__item:hover {
    border-color: var(--color-accent, #ffc857);
    background: var(--color-accent-soft, #fff8e6);
}
.gd-faq-pages__item-text {
    flex: 1 1 auto;
    min-width: 0;
}
.gd-faq-pages__item-arrow {
    flex: 0 0 auto;
    color: var(--color-text-muted, #4b5260);
    transition: transform 0.15s ease, color 0.15s ease;
}
.gd-faq-pages__item:hover .gd-faq-pages__item-arrow {
    color: var(--color-text-base, #1a1d24);
    transform: translateX(3px);
}
@media (max-width: 640px) {
    .gd-faq-pages__item { padding: 14px 16px; font-size: var(--text-base, 16px); }
}

/* Narrowed page-wrapper consistency: те же отступы что у .gd-faq и .gd-guides-grid */
.gd-page-narrow .gd-terms-cloud,
.gd-page-narrow .gd-faq-pages {
    max-width: 100%;
}

/* ===== Section cards widget (gd-section-cards) =====
   Сетка карточек-разделов: иконка-блок слева (accent-soft фон), title + desc
   в центре, стрелка справа. Используется как навигационное оглавление крупных
   хабов. На мобиле - 1 колонка, на десктопе - 2. */
.gd-section-cards {
    margin: 24px 0;
}
.gd-section-cards__title {
    font-size: var(--text-2xl, 24px);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 16px;
    color: var(--color-text-base, #1a1d24);
}
.gd-section-cards__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.gd-section-cards__item { min-width: 0; }
.gd-section-cards__card {
    display: grid;
    grid-template-columns: 48px 1fr auto;
    align-items: center;
    column-gap: 14px;
    padding: 18px 20px;
    height: 100%;
    box-sizing: border-box;
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 12px;
    color: var(--color-text-base, #1a1d24);
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.1s ease;
}
.gd-section-cards__card:hover {
    border-color: var(--color-accent, #ffc857);
    background: var(--color-accent-soft, #fff8e6);
}
.gd-section-cards__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: var(--color-accent-soft, #fff8e6);
    border-radius: 10px;
    flex: none;
}
.gd-section-cards__icon img { width: 22px; height: 22px; }
.gd-section-cards__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.gd-section-cards__title-text {
    font-size: var(--text-lg, 18px);
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-text-base, #1a1d24);
}
.gd-section-cards__desc {
    font-size: var(--text-sm, 14px);
    color: var(--color-text-muted, #4b5260);
    line-height: 1.4;
}
.gd-section-cards__arrow {
    color: var(--color-text-muted, #4b5260);
    transition: transform 0.15s ease, color 0.15s ease;
    flex: none;
}
.gd-section-cards__card:hover .gd-section-cards__arrow {
    color: var(--color-text-base, #1a1d24);
    transform: translateX(2px);
}
/* Перебиваем глобальный декор .gd-page-narrow > ul > li::before */
.gd-page-narrow > .gd-section-cards .gd-section-cards__item {
    padding-left: 0;
    margin-bottom: 0;
    line-height: inherit;
    color: inherit;
}
.gd-page-narrow > .gd-section-cards .gd-section-cards__item::before {
    content: none;
    display: none;
}
@media (max-width: 700px) {
    .gd-section-cards__list { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .gd-section-cards__card { padding: 14px 16px; column-gap: 12px; grid-template-columns: 40px 1fr auto; }
    .gd-section-cards__icon { width: 40px; height: 40px; }
    .gd-section-cards__icon img { width: 20px; height: 20px; }
    .gd-section-cards__title-text { font-size: var(--text-base, 16px); }
}

/* ===== OKVD sections widget (gd-okvd-sections) =====
   Обёртка вокруг .okvd-sections-list для виджета okvd-sections с опциональным
   заголовком и подзаголовком. Сам список наследует стили ниже. */
.gd-okvd-sections { margin: 28px 0 8px; }
.gd-okvd-sections__title {
    font-size: var(--text-xl, 20px);
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 8px;
    color: var(--color-text-base, #1a1d24);
}
.gd-okvd-sections__subtitle {
    margin: 0 0 14px;
    color: var(--color-text-muted, #4b5260);
    line-height: 1.5;
}
.gd-okvd-sections > .okvd-sections-list { margin-top: 8px; }

/* ===== OKVD sections list (хаб /spravochnik/okvd/) =====
   Дерево 21 раздела A-U: буква в badge'е слева, название справа. */
.okvd-sections-list,
.okvd-sections-list > li {
    list-style: none;
}
.okvd-sections-list > li::marker {
    content: '';
}
.okvd-sections-list {
    padding: 0;
    margin: 16px 0 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
/* Перебиваем глобальный декор .gd-page-narrow > ul > li::before (жёлтые точки) */
.gd-page-narrow > .okvd-sections-list > li {
    padding-left: 0;
    margin-bottom: 0;
    line-height: inherit;
    color: inherit;
}
.gd-page-narrow > .okvd-sections-list > li::before {
    content: none;
    display: none;
}
.okvd-sections-list > li > a {
    display: grid;
    grid-template-columns: 48px 1fr;
    align-items: center;
    column-gap: 16px;
    padding: 12px 18px;
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 10px;
    color: var(--color-text-base, #1a1d24);
    font-size: var(--text-base, 16px);
    line-height: 1.35;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.1s ease;
}
.okvd-sections-list > li > a:hover {
    border-color: var(--color-accent, #ffc857);
    background: var(--color-accent-soft, #fff8e6);
}
.okvd-sections-list .okvd-letter {
    /* Унифицирован с .gd-okvd-children__code--letter */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: var(--color-primary, #FFC857);
    color: #1A1F2E;
    border-radius: 10px;
    font-weight: 700;
    font-size: var(--text-lg, 20px);
    letter-spacing: 0.02em;
}
.okvd-sections-list .okvd-desc {
    min-width: 0;
    font-weight: 500;
    line-height: 1.35;
}
@media (max-width: 520px) {
    .okvd-sections-list > li > a { padding: 10px 14px; column-gap: 14px; font-size: var(--text-sm, 14px); }
}

/* ===== OKVD children tree (gd-okvd-children) =====
   Список прямых дочерних кодов ОКВЭД на странице раздела/класса/подкласса.
   Один файл-партиал, авто-подключение для subtype IN ('okvd','okvd-published'). */
.gd-okvd-children {
    margin: 32px 0 0;
}
.gd-okvd-children__title {
    font-size: var(--text-xl, 20px);
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 14px;
    color: var(--color-text-base, #1a1d24);
}
.gd-okvd-children__list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.gd-okvd-children__item {
    display: grid;
    grid-template-columns: minmax(70px, auto) 1fr;
    align-items: center;
    gap: 14px;
    padding: 12px 18px;
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 10px;
    color: var(--color-text-base, #1a1d24);
    font-size: var(--text-base, 16px);
    line-height: 1.35;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.gd-okvd-children__item:hover {
    border-color: var(--color-accent, #ffc857);
    background: var(--color-accent-soft, #fff8e6);
}
.gd-okvd-children__code {
    /* Кубик высотой 48 и шириной от 48: «A» и «01» получают квадрат,
       длинные «01.11.11» аккуратно растягиваются по содержимому.
       Цвет фона задают модификаторы --letter / --numeric. */
    min-width: 48px;
    height: 48px;
    box-sizing: border-box;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: ui-monospace, "SF Mono", "Cascadia Code", "Roboto Mono", Consolas, monospace;
    font-size: var(--text-base, 16px);
    font-weight: 700;
    color: #1A1F2E;
    border-radius: 10px;
    text-align: center;
    white-space: nowrap;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}
.gd-okvd-children__code--letter {
    background: var(--color-primary, #FFC857);
    font-size: var(--text-lg, 20px);
    font-family: inherit;
    width: 48px;
    padding: 0;
}
.gd-okvd-children__code--numeric {
    background: rgba(255, 200, 87, 0.45);
}
.gd-okvd-children__item {
    grid-template-columns: auto 1fr;
    gap: 16px;
}
.gd-okvd-children__name {
    flex: 1 1 auto;
    min-width: 0;
}
@media (max-width: 520px) {
    .gd-okvd-children__item { padding: 10px 14px; gap: 12px; font-size: var(--text-sm, 14px); }
}

/* ===== OKVD search (хаб /spravochnik/okvd/) =====
   Специализированный поиск по каталогу ОКВЭД 2: форма + AJAX-выдача.
   Делает fetch /api/okvd-search?q=…, рендерит результаты выше списка разделов. */
.gd-okvd-search {
    margin: 28px 0 8px;
}
.gd-okvd-search__form {
    display: flex;
    gap: 12px;
    align-items: stretch;
}
.gd-okvd-search__field {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 12px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.gd-okvd-search__field:focus-within {
    border-color: var(--color-primary, #FFC857);
    box-shadow: 0 0 0 3px rgba(255, 200, 87, 0.18);
}
.gd-okvd-search__field-icon {
    flex-shrink: 0;
    margin-left: 16px;
    color: var(--color-text-muted, #4b5260);
}
.gd-okvd-search__input {
    flex: 1;
    min-width: 0;
    padding: 14px 14px;
    font-family: inherit;
    font-size: 16px;
    line-height: 1.4;
    color: var(--color-text, #1a1d24);
    background: transparent;
    border: 0;
    outline: none;
}
.gd-okvd-search__input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
}
.gd-okvd-search__clear {
    flex-shrink: 0;
    margin-right: 8px;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.04);
    border: 0;
    border-radius: 999px;
    color: var(--color-text-muted, #4b5260);
    cursor: pointer;
    padding: 0;
    transition: background 0.15s ease;
}
.gd-okvd-search__clear:hover {
    background: rgba(0,0,0,0.08);
    color: var(--color-text, #1a1d24);
}
.gd-okvd-search__btn {
    flex-shrink: 0;
    padding: 0 26px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    color: #1A1F2E;
    background: var(--color-primary, #FFC857);
    border: 1px solid var(--color-primary, #FFC857);
    border-radius: 12px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.gd-okvd-search__btn:hover {
    background: var(--color-primary-deep, #f0b73a);
    border-color: var(--color-primary-deep, #f0b73a);
}
.gd-okvd-search__results {
    margin-top: 18px;
    padding: 18px 20px 20px;
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 14px;
}
.gd-okvd-search__results[hidden] {
    display: none;
}
.gd-okvd-search__meta {
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-text-muted, #4b5260);
}
.gd-okvd-search__status {
    margin: 0;
    font-size: 14px;
    color: var(--color-text-muted, #4b5260);
}
.gd-okvd-search__status--error {
    color: #c0392b;
}
.gd-okvd-search__empty {
    margin: 0 0 8px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-text, #1a1d24);
}
.gd-okvd-search__hint {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-text-muted, #4b5260);
}
.gd-okvd-search__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.gd-okvd-search__item {
    margin: 0;
    padding: 0;
}
.gd-page-narrow > .gd-okvd-search__results .gd-okvd-search__item {
    padding-left: 0;
    margin-bottom: 0;
    line-height: inherit;
    color: inherit;
}
.gd-page-narrow > .gd-okvd-search__results .gd-okvd-search__item::before {
    content: none;
    display: none;
}
.gd-okvd-search__link {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 14px;
    padding: 10px 14px;
    background: var(--color-surface-2, #fafbfc);
    border: 1px solid transparent;
    border-radius: 10px;
    color: var(--color-text-base, #1a1d24);
    font-size: var(--text-base, 16px);
    line-height: 1.35;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.gd-okvd-search__link:hover {
    border-color: var(--color-accent, #ffc857);
    background: var(--color-accent-soft, #fff8e6);
}
.gd-okvd-search__code {
    min-width: 44px;
    height: 36px;
    box-sizing: border-box;
    padding: 0 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: ui-monospace, "SF Mono", "Cascadia Code", "Roboto Mono", Consolas, monospace;
    font-size: 14px;
    font-weight: 700;
    color: #1A1F2E;
    border-radius: 8px;
    white-space: nowrap;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}
.gd-okvd-search__code--letter {
    background: var(--color-primary, #FFC857);
    font-size: 16px;
    width: 36px;
    padding: 0;
}
.gd-okvd-search__code--numeric {
    background: rgba(255, 200, 87, 0.45);
}
.gd-okvd-search__name {
    min-width: 0;
    font-weight: 500;
}
.gd-okvd-search__name mark {
    background: rgba(255, 200, 87, 0.55);
    color: inherit;
    padding: 0 2px;
    border-radius: 3px;
}
.gd-okvd-search__badge {
    flex-shrink: 0;
    color: var(--color-primary-deep, #d99a1a);
    font-size: 10px;
    line-height: 1;
}
[data-theme="dark"] .gd-okvd-search__field { background: var(--color-surface-2); }
[data-theme="dark"] .gd-okvd-search__results { background: var(--color-surface-2); }
[data-theme="dark"] .gd-okvd-search__link { background: var(--color-surface); }
@media (max-width: 520px) {
    .gd-okvd-search__form { flex-direction: column; }
    .gd-okvd-search__btn { padding: 12px 22px; }
    .gd-okvd-search__results { padding: 14px 14px 16px; }
    .gd-okvd-search__link { padding: 10px 12px; gap: 12px; font-size: var(--text-sm, 14px); }
}

/* ===== Widget search filter (gd-widget-search) =====
   Поле поиска внутри terms-cloud / faq-pages: лупа + input. Client-side
   фильтр в site.js по data-filter-text при ≥3 символах. */
.gd-widget-search {
    position: relative;
    margin: 0 0 16px;
}
.gd-widget-search__icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-text-muted, #4b5260);
    pointer-events: none;
}
.gd-widget-search__input {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 16px 12px 44px;
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 10px;
    color: var(--color-text-base, #1a1d24);
    font-family: inherit;
    font-size: var(--text-base, 16px);
    line-height: 1.4;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.gd-widget-search__input::placeholder {
    color: var(--color-text-muted, #4b5260);
    opacity: 0.85;
}
.gd-widget-search__input:focus {
    outline: none;
    border-color: var(--color-accent, #ffc857);
    box-shadow: 0 0 0 3px var(--color-accent-soft, #fff8e6);
}
.gd-widget-search__input:focus ~ .gd-widget-search__icon,
.gd-widget-search:focus-within .gd-widget-search__icon {
    color: var(--color-text-base, #1a1d24);
}
/* native clear button у type=search: показываем на focus, прячем в idle */
.gd-widget-search__input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b5260' stroke-width='2.4' stroke-linecap='round'><line x1='6' y1='6' x2='18' y2='18'/><line x1='18' y1='6' x2='6' y2='18'/></svg>") center / contain no-repeat;
    cursor: pointer;
    opacity: 0.7;
}
.gd-widget-search__input::-webkit-search-cancel-button:hover { opacity: 1; }
.gd-widget-search__empty {
    margin: 12px 0 0;
    padding: 14px 18px;
    background: var(--color-surface, #ffffff);
    border: 1px dashed var(--color-border, #e5e7eb);
    border-radius: 10px;
    color: var(--color-text-muted, #4b5260);
    font-size: var(--text-sm, 14px);
    text-align: center;
}
@media (max-width: 520px) {
    .gd-widget-search__input { padding: 11px 14px 11px 40px; font-size: var(--text-sm, 14px); }
    .gd-widget-search__icon { left: 12px; width: 16px; height: 16px; }
}

/* ===== Prev/Next nav (gd-prev-next) =====
   Две плашки внизу term/qa-страницы со ссылками на соседние записи.
   Левая - предыдущая (стрелка ←), правая - следующая (стрелка →).
   Длинные title сокращаются многоточием. Циклично: после последнего → первый. */
.gd-prev-next {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 40px 0 0;
}
.gd-prev-next__item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    min-width: 0;
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 10px;
    color: var(--color-text-base, #1a1d24);
    font-size: var(--text-base, 16px);
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.1s ease;
}
.gd-prev-next__item--next {
    justify-content: flex-end;
    text-align: right;
}
.gd-prev-next__item:hover {
    border-color: var(--color-accent, #ffc857);
    background: var(--color-accent-soft, #fff8e6);
}
.gd-prev-next__item:hover .gd-prev-next__icon {
    color: var(--color-text-base, #1a1d24);
}
.gd-prev-next__item--prev:hover .gd-prev-next__icon {
    transform: translateX(-2px);
}
.gd-prev-next__item--next:hover .gd-prev-next__icon {
    transform: translateX(2px);
}
.gd-prev-next__icon {
    flex: 0 0 auto;
    color: var(--color-text-muted, #4b5260);
    transition: transform 0.15s ease, color 0.15s ease;
}
.gd-prev-next__title {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.gd-prev-next__item:only-child {
    grid-column: 1 / -1;
}
@media (max-width: 520px) {
    .gd-prev-next { gap: 8px; }
    .gd-prev-next__item { padding: 12px 14px; font-size: var(--text-sm, 14px); gap: 8px; }
}

/* ===== Mobile tuning pass (2026-05-13 phase 0.94.3) ============
   1) Sentence-case headings: shrink H1 ~1.5x on phone-width so длинные
      слова не ломаются по слогам ("индивидуальны х предпринимате лей").
      H2/H3 уменьшены пропорционально - H1 остаётся самым крупным.
   2) OKVD дерево детей: code-плашка превращается в квадрат-кубик 52x52,
      название коду рядом - как красивый desktop-вариант не растягивался.
   3) Cookie-banner: компактнее на узких экранах, чтобы не перекрывал H1
      и intro основной страницы. */

/* По умолчанию (desktop / широкий tablet) длинный вариант видим, короткий скрыт.
   ВАЖНО: эти базовые правила должны идти ВЫШЕ @media-override, иначе
   при равной специфичности последнее правило перебивает media-query. */
.gd-section__more-long { display: inline; }
.gd-section__more-short { display: none; }

@media (max-width: 640px) {
    .gd-hero__h1 { font-size: var(--text-xl); line-height: 1.18; }
    .gd-hero-simple__title { font-size: var(--text-xl); line-height: 1.2; }
    .gd-hero-simple__subtitle { font-size: var(--text-base); }
    .gd-section__title { font-size: var(--text-lg); }
    .gd-okvd-children__title { font-size: var(--text-lg, 20px); }
    .gd-reference-promo__title { font-size: var(--text-lg); }
    .gd-guides-grid__cardtitle { font-size: var(--text-base); }
    /* На мобильном ссылка становится короткой «Все →» - заголовок и ссылка
       снова умещаются в одну строку без переноса по слогам. */
    .gd-section__more-long { display: none; }
    .gd-section__more-short { display: inline; }
    .gd-section__head { margin-bottom: 14px; }
}

@media (max-width: 480px) {
    .gd-cookie-banner { left: 8px; right: 8px; bottom: 8px; }
    .gd-cookie-banner__inner {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 12px 14px;
    }
    .gd-cookie-banner__icon { display: none; }
    .gd-cookie-banner__title { font-size: var(--text-sm); margin-bottom: 2px; }
    .gd-cookie-banner__text { font-size: var(--text-xs); line-height: 1.45; }
    .gd-cookie-banner__actions {
        grid-column: 1 / -1;
        grid-template-columns: 1fr 1fr;
        gap: 6px;
    }
    .gd-cookie-banner__btn { padding: 9px 8px; font-size: var(--text-sm); }
}
/**
 * Виджет partner-offer-native - стили публичного фронта.
 * Подключается через theme.json:inline_widget_styles или прямой <link> в layout.
 * Brand-цвета берутся из CSS-переменных темы glavdelo.
 */

.gd-partner-offer {
    --gd-po-border: var(--color-border, #e6e2dc);
    --gd-po-bg: var(--color-bg-card, #ffffff);
    --gd-po-accent: var(--color-accent, #d9a41e);
    --gd-po-text: var(--color-text, #1c1c1c);
    --gd-po-muted: var(--color-text-muted, #6b7280);
    --gd-po-plus: #16a34a;
    --gd-po-minus: #be3a3a;

    position: relative;
    margin: 24px 0;
    padding: 18px 20px 16px;
    background: var(--gd-po-bg);
    border: 1px solid var(--gd-po-border);
    border-left: 4px solid var(--gd-po-accent);
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
}

.gd-po__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px 12px;
    flex-wrap: wrap;
    padding-top: 10px;
    margin-top: 12px;
    border-top: 1px dashed var(--gd-po-border);
    font-size: 10px;
    line-height: 1.4;
    color: var(--gd-po-muted);
}

.gd-po__ad-marker {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--gd-po-muted);
    font-size: 10px;
    /* Разрешаем разрывать длинный ERID-токен в любом месте, если он
       не помещается на одну строку. Размер 10px - безопасная граница
       читаемости по практике ФАС (ниже - риск признания «нечитаемым»). */
    overflow-wrap: anywhere;
    word-break: break-word;
    flex: 1 1 auto;
    min-width: 0;
}
.gd-po__ad-erid {
    text-transform: none;
    letter-spacing: -0.02em;
    font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
    font-size: 10px;
    user-select: all;
    word-break: break-all;
}

.gd-po__disclaimer-link {
    color: var(--gd-po-muted);
    text-decoration: underline;
    text-decoration-color: rgba(0, 0, 0, .15);
    text-underline-offset: 2px;
    font-size: 10px;
}
.gd-po__disclaimer-link:hover { color: var(--gd-po-accent); }

/* gd-po__main был сеткой logo|body; новая компоновка - логотип на отдельной
   плашке сверху, всё остальное под ним на полную ширину. Класс остаётся для
   обратной совместимости (старый markup всё ещё может встретиться). */
.gd-po__main {
    display: block;
}

/* Шапка с лого и рейтингом - flex-строка: лого слева, рейтинг прижат к правому
   краю. Контент ниже идёт на полную ширину, не «огибает» лого. */
.gd-po__brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.gd-po__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid var(--gd-po-border);
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0;
}
.gd-po__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* Единый стандартный слот 96×60 - тот же что у comparison-table.
   Любой логотип (square/wide) центрируется через object-fit: contain в padding. */
.gd-po__logo--wide,
.gd-po__logo--square {
    width: 96px;
    height: 60px;
    padding: 6px 10px;
}

.gd-po__name {
    margin: 0 0 4px;
    font-size: 20px;
    line-height: 1.3;
    color: var(--gd-po-text);
    font-weight: 700;
}

.gd-po__rating {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    font-size: 14px;
    color: var(--gd-po-muted);
}
.gd-po__stars { display: inline-flex; gap: 1px; }
.gd-po__star {
    color: #d6d2cc;
    font-size: 16px;
    line-height: 1;
}
.gd-po__star--full {
    color: var(--gd-po-accent);
}
.gd-po__star--half {
    background: linear-gradient(90deg, var(--gd-po-accent) 50%, #d6d2cc 50%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.gd-po__rating-num {
    font-weight: 600;
    color: var(--gd-po-text);
    margin-left: 2px;
}

.gd-po__tagline {
    margin: 4px 0 10px;
    font-size: 15px;
    color: var(--gd-po-text);
    font-weight: 500;
    line-height: 1.45;
}

.gd-po__context {
    margin: 8px 0 12px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--gd-po-muted);
}

.gd-po__bullets {
    list-style: none;
    margin: 12px 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.gd-po__bullet {
    position: relative;
    padding-left: 22px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--gd-po-text);
}
.gd-po__bullet::before {
    position: absolute;
    left: 0;
    top: 0;
    width: 16px;
    height: 20px;
    font-weight: 700;
    text-align: center;
    line-height: 20px;
}
.gd-po__bullet--plus::before {
    content: '+';
    color: var(--gd-po-plus);
    font-size: 16px;
}
.gd-po__bullet--minus::before {
    content: '–';
    color: var(--gd-po-minus);
    font-size: 16px;
}

.gd-po__cta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 16px;
}

.gd-po__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 22px;
    background: var(--gd-po-accent);
    color: #1a1404;
    border-radius: 10px;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .2s ease;
    border: 1px solid rgba(0, 0, 0, .05);
}
.gd-po__cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(217, 164, 30, .35);
}
.gd-po__cta:focus-visible {
    outline: 3px solid #ffc960;
    outline-offset: 2px;
}
.gd-po__arrow {
    font-size: 16px;
    transition: transform .15s ease;
}
.gd-po__cta:hover .gd-po__arrow {
    transform: translateX(3px);
}

/* .gd-po__cta-note удалён - раньше дублировал «Партнёрская ссылка» под кнопкой,
   теперь маркер «Реклама. ERID. ...» в footer'е блока. */

/* Компактный режим - для сайдбара или внизу статьи */
/* Compact-режим: компактнее всё, лого меньше. Не меняем grid - его больше нет. */
.gd-partner-offer--compact {
    padding: 14px 16px 12px;
    margin: 18px 0;
}
.gd-partner-offer--compact .gd-po__brand {
    gap: 12px;
    margin-bottom: 10px;
}
.gd-partner-offer--compact .gd-po__logo--wide,
.gd-partner-offer--compact .gd-po__logo--square {
    width: 84px;
    height: 52px;
    padding: 6px 8px;
}
.gd-partner-offer--compact .gd-po__logo--wide-deprecated {
    width: 124px;
    height: 48px;
    padding: 8px 12px;
}
.gd-partner-offer--compact .gd-po__logo--square-deprecated {
    width: 60px;
    height: 60px;
    padding: 6px;
}
.gd-partner-offer--compact .gd-po__name {
    font-size: 17px;
}
.gd-partner-offer--compact .gd-po__tagline {
    font-size: 13px;
}
.gd-partner-offer--compact .gd-po__cta {
    padding: 10px 18px;
    font-size: 14px;
}

/* Адаптивная мобильная вёрстка */
@media (max-width: 640px) {
    .gd-partner-offer { padding: 14px 14px 12px; border-radius: 12px; }
    .gd-po__brand {
        gap: 12px;
        margin-bottom: 12px;
    }
    .gd-po__logo--wide,
    .gd-po__logo--square {
        width: 84px;
        height: 52px;
        padding: 6px 8px;
    }
    .gd-po__name { font-size: 17px; }
    .gd-po__tagline { font-size: 14px; }
    .gd-po__rating { font-size: 13px; }
    .gd-po__star { font-size: 14px; }
    .gd-po__cta { padding: 11px 16px; font-size: 14px; width: 100%; justify-content: center; }
    .gd-po__cta-note { width: 100%; text-align: center; }
}

/* Dark theme - инверсия цветов через CSS-переменные темы */
[data-theme="dark"] .gd-partner-offer,
.theme-dark .gd-partner-offer {
    --gd-po-bg: var(--color-bg-card, #1a1f2e);
    --gd-po-border: var(--color-border, #2d3548);
    --gd-po-text: var(--color-text, #e8eaf0);
    --gd-po-muted: var(--color-text-muted, #94a3b8);
    --gd-po-plus: #34d399;
    --gd-po-minus: #f87171;
}
[data-theme="dark"] .gd-po__logo,
.theme-dark .gd-po__logo {
    background: #f5f3ef;
}

/* ──────────────────────────────────────────────────────────────────────────
   comparison-table - карточная сетка для сравнения банков, сервисов, тарифов.
   Виджет /admin/widgets/structured/comparison-table.
   ────────────────────────────────────────────────────────────────────────── */
.gd-cmp {
    margin: 40px 0;
    --gd-cmp-accent: #6366F1;
    --gd-cmp-accent-soft: rgba(99, 102, 241, 0.10);
}
.gd-cmp__title {
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--color-text-primary);
    letter-spacing: -0.02em;
    margin: 0 0 12px;
}
.gd-cmp__intro {
    font-size: var(--text-base);
    color: var(--color-text-secondary);
    line-height: 1.55;
    margin: 0 0 24px;
    max-width: 720px;
}

/* ─── Toolbar: view-toggle + filter dropdown (одна строка) ─── */
.gd-cmp__toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 24px;
    flex-wrap: nowrap;
}
.gd-cmp__view-toggle {
    display: inline-flex;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 3px;
    gap: 2px;
}
.gd-cmp__view-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border: 0;
    background: transparent;
    color: var(--color-text-secondary);
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    border-radius: 7px;
    cursor: pointer;
    transition: background .14s ease, color .14s ease;
    font-family: inherit;
}
.gd-cmp__view-btn:hover { color: var(--color-text-primary); }
.gd-cmp__view-btn.is-active {
    background: var(--color-text-primary);
    color: var(--color-text-inverse);
}
.gd-cmp__view-btn svg { flex-shrink: 0; }

.gd-cmp__filter-wrap {
    position: relative;
    margin-left: auto;
}
.gd-cmp__filter-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text-primary);
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color .14s ease, background .14s ease;
    font-family: inherit;
}
.gd-cmp__filter-toggle:hover { border-color: var(--color-border-strong); }
.gd-cmp__filter-toggle.is-open {
    background: var(--color-surface-2);
    border-color: var(--color-border-strong);
}
.gd-cmp__filter-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 6px;
    background: var(--color-primary);
    color: var(--color-primary-deep);
    border-radius: 9px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}
/* HTML `[hidden]` атрибут перекрывается inline-flex - нужен явный override. */
.gd-cmp__filter-badge[hidden] { display: none; }
.gd-cmp__filter-chevron {
    margin-left: 2px;
    transition: transform .18s ease;
}
.gd-cmp__filter-toggle.is-open .gd-cmp__filter-chevron { transform: rotate(180deg); }

.gd-cmp__filter-panel {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 20;
    min-width: 280px;
    max-width: 320px;
    max-height: 60vh;
    overflow-y: auto;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(15, 22, 36, 0.12);
    padding: 12px;
    animation: gd-cmp-panel-in .14s ease-out;
}
@keyframes gd-cmp-panel-in {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}
.gd-cmp__filter-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
    padding: 4px 6px 8px;
    border-bottom: 1px solid var(--color-divider);
}
.gd-cmp__filter-panel-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.gd-cmp__filter-clear {
    background: none;
    border: 0;
    color: var(--color-text-secondary);
    font-size: 12px;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 6px;
    font-family: inherit;
}
.gd-cmp__filter-clear:hover { color: var(--color-text-primary); background: var(--color-surface-2); }
.gd-cmp__filter-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.gd-cmp__filter-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 8px;
    border-radius: 7px;
    cursor: pointer;
    font-size: 14px;
    color: var(--color-text-primary);
    transition: background .12s ease;
}
.gd-cmp__filter-item:hover { background: var(--color-surface-2); }
.gd-cmp__filter-checkbox {
    width: 16px;
    height: 16px;
    accent-color: var(--color-primary);
    cursor: pointer;
    flex-shrink: 0;
    margin: 0;
}
.gd-cmp__filter-item-label { flex: 1; }
.gd-cmp__filter-item-count {
    font-size: 12px;
    font-weight: 500;
    color: var(--color-text-muted);
    background: var(--color-surface-2);
    padding: 2px 7px;
    border-radius: 8px;
    line-height: 1.4;
    min-width: 22px;
    text-align: center;
}
.gd-cmp__filter-item:has(.gd-cmp__filter-checkbox:checked) {
    background: var(--color-primary-soft);
}

/* ─── Deprecated old filter chips (на случай legacy markup) ─── */
.gd-cmp__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 24px;
    padding: 6px 0;
}
.gd-cmp__filter {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text-secondary);
    font-size: var(--text-sm);
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
    transition: all .16s ease;
    font-family: inherit;
}
.gd-cmp__filter:hover {
    border-color: var(--color-border-strong);
    color: var(--color-text-primary);
}
.gd-cmp__filter.is-active {
    background: var(--color-text-primary);
    border-color: var(--color-text-primary);
    color: var(--color-text-inverse);
}
.gd-cmp__filter-count {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-muted);
    background: var(--color-surface-2);
    padding: 2px 7px;
    border-radius: 999px;
    line-height: 1.4;
    min-width: 22px;
    text-align: center;
}
.gd-cmp__filter.is-active .gd-cmp__filter-count {
    background: rgba(255, 255, 255, 0.18);
    color: var(--color-text-inverse);
}

/* ─── Сетка карточек ─── */
.gd-cmp__grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.gd-cmp__grid--cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* ─── Карточка ─── */
.gd-cmp-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--r-xl);
    padding: 22px 22px 20px;
    box-shadow: var(--shadow-card);
    transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
    overflow: hidden;
}
.gd-cmp-card:hover {
    box-shadow: var(--shadow-card-hover);
    border-color: var(--color-border-strong);
}
/* `!important` нужен, так как `.gd-cmp--view-table .gd-cmp-card { display: grid }`
   имеет higher specificity и перекрывает обычное `[hidden]` (filtering ломалось). */
.gd-cmp-card[hidden] { display: none !important; }

/* Выделенная (Наш выбор) - тонкая золотая обводка + soft фон + лента сверху */
.gd-cmp-card--featured {
    border-color: var(--color-primary-line);
    box-shadow: 0 0 0 1px var(--color-primary-line), var(--shadow-card);
    background: linear-gradient(180deg, var(--color-primary-soft) 0%, var(--color-surface) 56px);
}
.gd-cmp-card--featured:hover {
    box-shadow: 0 0 0 1px var(--color-primary), var(--shadow-card-hover);
    border-color: var(--color-primary);
}

/* ─── Ribbon бейдж ─── В grid-view: наклейка в правом верхнем углу карточки.
 * В table-view: inline-chip перед brand-name (см. блок .gd-cmp--view-table ниже).
 * В HTML ribbon — child .gd-cmp-card__brand, но в grid-view через absolute
 * позиционируется относительно .gd-cmp-card (она relative) — оказывается в углу.
 * pointer-events: none - ribbon чисто визуальный.
 */
.gd-cmp--view-grid .gd-cmp-card__ribbon {
    position: absolute;
    top: 0;
    right: 14px;
    display: inline-block;
    padding: 3px 8px 4px;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    background: var(--color-surface-2);
    border-radius: 0 0 5px 5px;
    border: 1px solid var(--color-border);
    border-top: 0;
    z-index: 1;
    line-height: 1.2;
    max-width: calc(100% - 28px);
    white-space: nowrap;
    contain: layout style;
    pointer-events: none;
}
.gd-cmp-card__ribbon.is-gold,
.gd-cmp-card--featured .gd-cmp-card__ribbon {
    background: var(--color-primary);
    color: var(--color-primary-deep);
    border-color: var(--color-primary);
}

/* ─── Шапка: единый стандарт — logo slot 96×60 + brand + tariff + rating ─── */
.gd-cmp-card__head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 6px 0 16px;
    min-height: 60px;
}
.gd-cmp-card__logo {
    flex: 0 0 96px;
    width: 96px;
    height: 60px;
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid var(--color-border);
    box-shadow: 0 1px 2px rgba(15, 22, 36, 0.04);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 6px 10px;
    transition: transform .18s ease, box-shadow .18s ease;
}
.gd-cmp-card:hover .gd-cmp-card__logo {
    transform: scale(1.03);
    box-shadow: 0 2px 6px rgba(15, 22, 36, 0.08);
}
.gd-cmp-card__logo img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}
.gd-cmp-card__logo--mono {
    background: linear-gradient(135deg, var(--gd-cmp-accent) 0%, #818CF8 100%);
    border-color: transparent;
    padding: 0;
}
.gd-cmp-card__logo--mono span {
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.02em;
}
.gd-cmp-card__brand {
    min-width: 0;
    flex: 1;
}
.gd-cmp-card__rating {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-size: 12.5px;
    color: var(--color-text-secondary);
    line-height: 1;
}
.gd-cmp-card__rating-stars {
    display: inline-flex;
    gap: 1px;
    font-size: 13px;
    line-height: 1;
    letter-spacing: 1px;
}
.gd-cmp-card__rating-star {
    color: var(--color-primary);
}
.gd-cmp-card__rating-star--empty {
    color: var(--color-border-strong);
}
.gd-cmp-card__rating-num {
    font-weight: 600;
    color: var(--color-text-primary);
    font-size: 12.5px;
}
.gd-cmp-card__brand {
    min-width: 0;
    flex: 1;
}
.gd-cmp-card__brand-name {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.2;
    margin: 0;
    letter-spacing: -0.015em;
}
.gd-cmp-card__tariff {
    display: block;
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    margin-top: 3px;
    line-height: 1.35;
}

/* ─── Tagline ─── */
.gd-cmp-card__tagline {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
    line-height: 1.5;
    margin: 0 0 16px;
}

/* ─── Price ─── */
.gd-cmp-card__price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
    padding: 12px 14px;
    background: var(--color-surface-2);
    border-radius: var(--r-md);
    margin: 0 0 16px;
    border: 1px solid var(--color-divider);
}
.gd-cmp-card--featured .gd-cmp-card__price {
    background: rgba(255, 200, 87, 0.10);
    border-color: var(--color-primary-line);
}
.gd-cmp-card__price-value {
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-text-primary);
    letter-spacing: -0.02em;
    line-height: 1.1;
}
.gd-cmp-card__price-note {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    line-height: 1.4;
}

/* ─── Features (нейтральные характеристики) ─── */
.gd-cmp-card__features {
    list-style: none;
    padding: 0;
    margin: 0 0 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
}
.gd-cmp-card__features li {
    position: relative;
    padding-left: 14px;
    line-height: 1.45;
}
.gd-cmp-card__features li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--color-text-muted);
}

/* ─── Pros / Cons ─── */
.gd-cmp-card__pros,
.gd-cmp-card__cons {
    list-style: none;
    padding: 0;
    margin: 0 0 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: var(--text-sm);
    line-height: 1.45;
}
.gd-cmp-card__pros li,
.gd-cmp-card__cons li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    color: var(--color-text-primary);
}
.gd-cmp-card__pros li svg {
    flex-shrink: 0;
    margin-top: 3px;
    color: var(--color-success);
}
.gd-cmp-card__cons li {
    color: var(--color-text-secondary);
}
.gd-cmp-card__cons li svg {
    flex-shrink: 0;
    margin-top: 3px;
    color: var(--color-text-muted);
}

/* ─── CTA ─── */
.gd-cmp-card__cta {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 16px;
    background: var(--color-text-primary);
    color: var(--color-text-inverse);
    border-radius: var(--r-md);
    font-size: var(--text-sm);
    font-weight: 600;
    text-decoration: none;
    line-height: 1.2;
    transition: background .14s ease, transform .14s ease;
}
.gd-cmp-card__cta:hover {
    background: #000;
    transform: translateY(-1px);
}
.gd-cmp-card__cta svg {
    transition: transform .14s ease;
}
.gd-cmp-card__cta:hover svg {
    transform: translateX(2px);
}
.gd-cmp-card--featured .gd-cmp-card__cta {
    background: var(--color-primary);
    color: var(--color-primary-deep);
}
.gd-cmp-card--featured .gd-cmp-card__cta:hover {
    background: var(--color-primary-hover);
}

/* ─── ERID disclosure ─── */
.gd-cmp-card__disclosure {
    margin: 10px 0 0;
    padding-top: 10px;
    border-top: 1px solid var(--color-divider);
    font-size: 11px;
    color: var(--color-text-muted);
    line-height: 1.4;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    justify-content: space-between;
}
.gd-cmp-card__erid {
    font-feature-settings: 'tnum';
    font-size: 10px;
    letter-spacing: .04em;
    overflow-wrap: anywhere;
    word-break: break-word;
    flex: 1 1 auto;
    min-width: 0;
}
.gd-cmp-card__erid span {
    font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
    font-size: 10px;
    letter-spacing: -0.02em;
    color: var(--color-text-muted);
    user-select: all;
    word-break: break-all;
}
.gd-cmp-card__disclosure a {
    color: var(--color-text-secondary);
    text-decoration: none;
    border-bottom: 1px dotted currentColor;
}
.gd-cmp-card__disclosure a:hover {
    color: var(--color-text-primary);
}

/* ─── View: Table (компактные строки вместо карточек) ───
 * Та же HTML-разметка, что и для grid - просто CSS переключает layout:
 * карточки в строку с фиксированными колонками, лишний контент скрывается.
 */
.gd-cmp--view-table .gd-cmp__grid,
.gd-cmp--view-table .gd-cmp__grid--cols-2,
.gd-cmp--view-table .gd-cmp__grid--cols-3 {
    display: flex;
    flex-direction: column;
    gap: 8px;
    grid-template-columns: none;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--r-lg);
    padding: 6px;
    box-shadow: var(--shadow-card);
}
.gd-cmp--view-table .gd-cmp-card {
    display: grid;
    /* 4 колонки: logo | brand(+rating inside) | price | cta.
       Pricing-блок получает min 200px и до 1fr - сдвинут влево, помещает длинные price_note. */
    grid-template-columns: 76px minmax(0, 1fr) minmax(200px, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border: 1px solid transparent;
    border-radius: 10px;
    box-shadow: none;
    overflow: visible;
    transition: background .14s ease, border-color .14s ease;
}
.gd-cmp--view-table .gd-cmp-card:hover {
    background: var(--color-surface-2);
    border-color: var(--color-border);
    box-shadow: none;
    transform: none;
}
.gd-cmp--view-table .gd-cmp-card:hover .gd-cmp-card__logo {
    transform: none;
    box-shadow: 0 1px 2px rgba(15, 22, 36, 0.04);
}
.gd-cmp--view-table .gd-cmp-card--featured {
    background: var(--color-primary-soft);
    border-left: 3px solid var(--color-primary);
    padding-left: 13px;
}
.gd-cmp--view-table .gd-cmp-card--featured:hover {
    background: rgba(255, 200, 87, 0.18);
}
.gd-cmp--view-table .gd-cmp-card__head {
    display: contents;
}
.gd-cmp--view-table .gd-cmp-card__logo {
    grid-column: 1;
    width: 64px;
    height: 40px;
    padding: 4px 8px;
    border-radius: 8px;
    flex: 0 0 64px;
    margin: 0;
}
.gd-cmp--view-table .gd-cmp-card__brand {
    grid-column: 2;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.gd-cmp--view-table .gd-cmp-card__brand-name {
    font-size: var(--text-base);
    padding-right: 0;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.gd-cmp--view-table .gd-cmp-card__tariff {
    font-size: 12.5px;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.gd-cmp--view-table .gd-cmp-card__rating {
    /* rating находится внутри .gd-cmp-card__brand (не direct grid-item) -
       просто inline под tariff. grid-column убран. */
    margin: 2px 0 0;
    justify-self: start;
}
/* Tagline, features, pros, cons, disclosure - скрыты в table-режиме */
.gd-cmp--view-table .gd-cmp-card__tagline,
.gd-cmp--view-table .gd-cmp-card__features,
.gd-cmp--view-table .gd-cmp-card__pros,
.gd-cmp--view-table .gd-cmp-card__cons,
.gd-cmp--view-table .gd-cmp-card__disclosure {
    display: none;
}
.gd-cmp--view-table .gd-cmp-card__price {
    grid-column: 3;
    min-width: 0;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
    align-items: flex-start;
    overflow: hidden;
}
.gd-cmp--view-table .gd-cmp-card__price-value {
    font-size: var(--text-base);
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}
.gd-cmp--view-table .gd-cmp-card__price-note {
    font-size: 11px;
    line-height: 1.3;
    color: var(--color-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.gd-cmp--view-table .gd-cmp-card__cta {
    grid-column: 4;
    margin: 0;
    padding: 8px 14px;
    font-size: 13px;
    white-space: nowrap;
}
.gd-cmp--view-table .gd-cmp-card__cta span { display: inline-block; }

/* Ribbon в table-режиме: inline-chip перед brand-name внутри brand-блока. */
.gd-cmp--view-table .gd-cmp-card__ribbon {
    position: static;
    align-self: flex-start;
    margin: 0 0 4px;
    display: inline-block;
    width: auto;
    max-width: max-content;
    padding: 2px 7px;
    font-size: 9px;
    letter-spacing: 0.06em;
    border-radius: 4px;
    border: 1px solid var(--color-border);
    line-height: 1.3;
    contain: none;
}

/* ─── Tablet (≤960px) - 2 колонки если выбрано 3 ─── */
@media (max-width: 960px) {
    .gd-cmp__grid,
    .gd-cmp__grid--cols-2,
    .gd-cmp__grid--cols-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ─── Mobile (≤640px) - стек карточек, компактный toolbar ─── */
@media (max-width: 640px) {
    .gd-cmp { margin: 32px 0; }
    .gd-cmp__title { font-size: var(--text-xl); }
    .gd-cmp__intro { font-size: var(--text-sm); margin-bottom: 18px; }

    /* Toolbar на mobile: одна строка, иконки без текста на view-toggle */
    .gd-cmp__toolbar { gap: 8px; margin-bottom: 16px; }
    .gd-cmp__view-btn { padding: 7px 9px; }
    .gd-cmp__view-btn span { display: none; }
    .gd-cmp__filter-toggle { padding: 8px 12px; font-size: 12.5px; }
    .gd-cmp__filter-panel {
        position: fixed;
        top: auto;
        right: 12px;
        left: 12px;
        bottom: 12px;
        max-width: none;
        max-height: 65vh;
        border-radius: 14px;
        padding: 14px;
        box-shadow: 0 -8px 32px rgba(15, 22, 36, 0.16);
    }
    .gd-cmp__filter-list { gap: 2px; }
    .gd-cmp__filter-item { padding: 11px 10px; font-size: 15px; }

    /* Mobile Table-view: компактные раздельные карточки (mini-cards).
       Не table в смысле «строки одной таблицы», а вертикальный стек
       читаемых mini-cards с border + padding + 2-row layout внутри. */
    .gd-cmp--view-table .gd-cmp__grid,
    .gd-cmp--view-table .gd-cmp__grid--cols-2,
    .gd-cmp--view-table .gd-cmp__grid--cols-3 {
        padding: 0;
        gap: 10px;
        background: transparent;
        border: 0;
        box-shadow: none;
    }
    .gd-cmp--view-table .gd-cmp-card {
        /* 3-колоночная сетка: row 1 = logo + brand на остальную ширину;
           row 2 = price от левого края (col 1-2) + cta справа.
           Так price-блок занимает полную ширину под логотипом и brand. */
        grid-template-columns: 56px minmax(0, 1fr) auto;
        grid-template-areas:
            "logo  brand brand"
            "price price cta";
        gap: 10px 12px;
        padding: 14px;
        align-items: center;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        border-radius: 12px;
    }
    .gd-cmp--view-table .gd-cmp-card--featured {
        background: var(--color-primary-soft);
        border-color: var(--color-primary-line);
        border-left: 3px solid var(--color-primary);
        padding-left: 11px;
    }
    .gd-cmp--view-table .gd-cmp-card__logo {
        grid-area: logo;
        width: 56px;
        height: 56px;
        padding: 4px;
        align-self: start;
    }
    .gd-cmp--view-table .gd-cmp-card__brand {
        grid-area: brand;
        align-self: center;
    }
    .gd-cmp--view-table .gd-cmp-card__brand-name {
        font-size: var(--text-base);
        line-height: 1.25;
    }
    .gd-cmp--view-table .gd-cmp-card__tariff {
        display: block;
        font-size: 12.5px;
        margin-top: 2px;
    }
    .gd-cmp--view-table .gd-cmp-card__rating {
        margin-top: 4px;
        font-size: 12px;
        gap: 5px;
    }
    .gd-cmp--view-table .gd-cmp-card__rating-stars { font-size: 12px; }
    .gd-cmp--view-table .gd-cmp-card__price {
        grid-area: price;
        align-items: flex-start;
        text-align: left;
        align-self: center;
    }
    .gd-cmp--view-table .gd-cmp-card__price-value { font-size: var(--text-base); }
    .gd-cmp--view-table .gd-cmp-card__price-note {
        display: block;
        max-width: 100%;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        font-size: 11px;
        line-height: 1.3;
    }
    .gd-cmp--view-table .gd-cmp-card__cta {
        grid-area: cta;
        padding: 9px 14px;
        font-size: 12.5px;
        width: auto;
        justify-self: end;
        align-self: center;
        gap: 6px;
    }
    .gd-cmp--view-table .gd-cmp-card__cta span { display: inline-block; }
    /* Ribbon на mobile table-view - инлайн-chip перед brand-name */
    .gd-cmp--view-table .gd-cmp-card__ribbon {
        font-size: 9px;
        padding: 2px 6px;
        margin-bottom: 4px;
        letter-spacing: 0.05em;
    }

    .gd-cmp__filters {
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
        /* Full-bleed на ширину контейнера темы (typically 16px), плюс собственный
           padding 16px внутри ряда - чтобы первый чип не прижимался к краю. */
        margin: 0 -16px 18px;
        padding: 4px 16px 12px;
        scroll-snap-type: none;
        -webkit-overflow-scrolling: touch;
    }
    .gd-cmp__filters::-webkit-scrollbar { display: none; }
    .gd-cmp__filter {
        flex: 0 0 auto;
        padding: 8px 12px;
        scroll-snap-align: none;
    }
    .gd-cmp__grid,
    .gd-cmp__grid--cols-2,
    .gd-cmp__grid--cols-3 {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .gd-cmp-card {
        padding: 18px 18px 16px;
        border-radius: var(--r-lg);
    }
    .gd-cmp-card__head { gap: 12px; margin: 4px 0 12px; min-height: 52px; }
    .gd-cmp-card__logo {
        flex: 0 0 84px;
        width: 84px;
        height: 52px;
        border-radius: 10px;
        padding: 5px 8px;
    }
    .gd-cmp-card__brand-name { font-size: var(--text-base); }
    .gd-cmp-card__tariff { font-size: 13px; }
    .gd-cmp-card__price { padding: 10px 12px; }
    .gd-cmp-card__price-value { font-size: var(--text-lg); }
    .gd-cmp-card__cta {
        padding: 12px 14px;
        width: 100%;
    }
}

/* ─── Dark theme ─── */
[data-theme="dark"] .gd-cmp-card {
    background: var(--color-surface);
    border-color: var(--color-border);
}
[data-theme="dark"] .gd-cmp-card--featured {
    background: linear-gradient(180deg, rgba(255, 200, 87, 0.10) 0%, var(--color-surface) 56px);
}
[data-theme="dark"] .gd-cmp-card__price {
    background: var(--color-surface-2);
    border-color: var(--color-border);
}
[data-theme="dark"] .gd-cmp-card__logo {
    background: #20283A;
    border-color: var(--color-border);
}
[data-theme="dark"] .gd-cmp-card__cta {
    background: var(--color-primary);
    color: var(--color-primary-deep);
}
[data-theme="dark"] .gd-cmp-card__cta:hover {
    background: var(--color-primary-hover);
}
[data-theme="dark"] .gd-cmp__filter.is-active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-primary-deep);
}
[data-theme="dark"] .gd-cmp__filter.is-active .gd-cmp__filter-count {
    background: rgba(0, 0, 0, 0.20);
    color: var(--color-primary-deep);
}
