/* =====================================================================
 * Говорит НеМосква — Design System CSS v1.0
 * Brand tokens and typography from the НеМосква Design System.
 * ===================================================================== */

/* ── BRAND TOKENS ─────────────────────────────────────────────────── */
:root {
  --nm-orange:      #FE7928;
  --nm-green:       #809675;
  --nm-beige:       #F2E6CE;
  --nm-grey:        #D1D6CF;
  --nm-ink:          #1F1F1F;
  --nm-ink-soft:   #333333;
  --nm-paper:       #FFFFFF;

  --font-display: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --font-body:    Georgia, "Times New Roman", serif;

  --tracking-tight:  -0.020em;
  --tracking-snug:   -0.010em;
  --tracking-wide:    0.04em;

  --sp-1: 8px;  --sp-2: 16px; --sp-3: 24px;
  --sp-4: 32px; --sp-5: 40px; --sp-6: 48px;
}

/* ── GLOBAL HEADINGS ─────────────────────────────────────────────── */
h1, .h1, .entry-title, .ast-archive-title {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  letter-spacing: var(--tracking-snug);
  line-height: 1.18;
}

h2, .h2 {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  letter-spacing: var(--tracking-snug);
  line-height: 1.23;
}

h3, .h3 {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  line-height: 1.36;
}

h4, h5 {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
}

/* ── BODY ────────────────────────────────────────────────────────── */
body {
  font-family: var(--font-body);
  color: var(--nm-ink);
  -webkit-font-smoothing: antialiased;
}

/* ── LINKS ───────────────────────────────────────────────────────── */
a { color: var(--nm-orange); }
a:hover, a:focus { color: var(--nm-ink); }

/* ── ARTICLE READING TYPOGRAPHY ───────────────────────────────────── */
.single .entry-content p,
.single .entry-content li,
.page .entry-content p,
.page .entry-content li {
  font-family: var(--font-body);
  font-size: 1.125rem;
  line-height: 1.75;
  color: var(--nm-ink);
}

.single .entry-content h2,
.page .entry-content h2 {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  margin-top: var(--sp-4);
  margin-bottom: var(--sp-2);
}

.single .entry-content h3,
.page .entry-content h3 {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  margin-top: var(--sp-3);
  margin-bottom: var(--sp-2);
}

/* ── POSTX BLOCK HEADINGS ────────────────────────────────────────── */
.ultp-block-title,
.ultp-block-title a,
h1.ultp-block-title,
h2.ultp-block-title,
h3.ultp-block-title,
h4.ultp-block-title {
  font-family: var(--font-display) !important;
  letter-spacing: var(--tracking-snug);
}

h1.ultp-block-title { font-weight: 700 !important; }
h2.ultp-block-title { font-weight: 600 !important; }
h3.ultp-block-title { font-weight: 500 !important; }
h4.ultp-block-title { font-weight: 500 !important; }

.ultp-block-title a { color: var(--nm-ink) !important; }
.ultp-block-title a:hover { color: var(--nm-orange) !important; }

/* ── EYEBROW / CATEGORY LABELS ───────────────────────────────────── */
.ultp-block-cat a,
.ultp-block-cat span,
.cat-links a,
.entry-categories a,
.posted-in a {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  font-size: 0.75rem !important;
  letter-spacing: var(--tracking-wide) !important;
  text-transform: uppercase !important;
  color: var(--nm-orange) !important;
}

.cat-links a:hover,
.entry-categories a:hover {
  color: var(--nm-ink) !important;
}

/* ── NAVIGATION ──────────────────────────────────────────────────── */
.ast-nav-menu > li > a,
#site-navigation .nav-menu > li > a {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
}

/* ── FOOTER ──────────────────────────────────────────────────────── */
.ast-footer-copyright,
.ast-footer-copyright p {
  font-family: var(--font-display);
  font-size: 0.875rem;
}

/* ── DESIGN SYSTEM UTILITY CLASSES ───────────────────────────────── */
.nm-orange   { color: var(--nm-orange); }
.nm-green    { color: var(--nm-green);  }
.nm-bg-beige { background-color: var(--nm-beige); }
.nm-bg-grey  { background-color: var(--nm-grey);  }
.nm-display  { font-family: var(--font-display); }
.nm-body     { font-family: var(--font-body); }
.nm-eyebrow  {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 0.75rem;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--nm-orange);
}


/* Override PostX preset typography -- force Montserrat over Roboto Slab preset */
:root {
  --postx_preset_Heading_typo_font_family: "Montserrat";
  --postx_preset_Heading_typo_font_weight: 700;
  --postx_preset_Heading_typo_text_transform: none;
  --postx_preset_Body_and_Others_typo_font_family: "Montserrat";
  --postx_preset_Body_and_Others_typo_font_weight: 500;
}

/* High-specificity fallback for PostX hero block title */
.wp-block-ultimate-post-post-list-3 .ultp-block-title,
.wp-block-ultimate-post-post-list-3 .ultp-block-title a {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 600 !important;
}

/* Fix: category label weight + card title weight */
.ultp-block-cat a, .ultp-block-cat span { font-weight: 600 !important; }
.ultp-block-title, .ultp-block-title a { font-weight: 600 !important; }
