/* ============================================
   IDEA MOSCOW — EDITORIAL TYPOGRAPHY OVERRIDE
   ============================================ */

/* === ГЛОБАЛЬНЫЙ ФИКС ГОРИЗОНТАЛЬНОГО СКРОЛЛА === */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

/* === БАЗОВЫЕ ПЕРЕМЕННЫЕ === */
:root {
  --font-display: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  --color-graphite: #1F1F1F;
  --color-bronze: #B8956A;
  --color-warm-gray: #7A7165;
  --color-cream: #FAF9F7;
}

/* === Резервируем место под скроллбар === */
html {
  scrollbar-gutter: stable;
}

/* === Шапка поверх hero на всех страницах === */
#t-header {
  position: relative;
  z-index: 9000;
}

.t1272,
.t-menu-base_positionfixed {
  z-index: 9000 !important;
}

/* === ОПТИЧЕСКАЯ КОРРЕКЦИЯ === */
* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* === ЗАГОЛОВКИ H1 === */
.t-title,
.t-heading,
h1.t-title,
.tn-atom__title {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.05 !important;
}

@media screen and (min-width: 1200px) {
  .t-title_xxl,
  .t-title_xl,
  .t-heading_xxl {
    letter-spacing: -0.03em !important;
    line-height: 1.0 !important;
  }
}

/* === ЗАГОЛОВКИ H2 === */
.t-heading_md,
.t-heading_lg,
h2.t-heading {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  letter-spacing: -0.015em !important;
  line-height: 1.1 !important;
}

/* === ПОДЗАГОЛОВКИ И ОПИСАНИЯ === */
.t-descr,
.t-text,
.tn-atom__description {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.5 !important;
}

/* === EDITORIAL-ЛЕЙБЛЫ === */
.t-uptitle,
.t-tag,
.tn-atom__uptitle {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  font-size: 12px !important;
  color: var(--color-bronze) !important;
}

/* === КАРТОЧКИ ГАЛЕРЕИ — ЗАГОЛОВКИ === */
.t778__textwrapper-bottom .t-name,
.t-name_xs,
.t-name_md {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.3 !important;
}

/* === КАРТОЧКИ ГАЛЕРЕИ — ОПИСАНИЯ === */
.t778__textwrapper-bottom .t-descr,
.t778 .t-descr_xxs,
.t778 .t-descr_xs {
  font-family: var(--font-display) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  color: var(--color-bronze) !important;
}

/* === ЦИФРЫ === */
.t544 .t-name,
.t704 .t-name,
.t-name_xxl {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
  font-feature-settings: "tnum" on, "lnum" on;
}

/* === КНОПКИ === */
.t-btn,
.t-submit {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
}

/* === ССЫЛКИ И ТЕКСТОВЫЕ КНОПКИ === */
.t-btn_text,
a.t-btn {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

/* === КАВЫЧКИ В ЦИТАТАХ === */
.t668 .t-quote::before,
.t-quote-mark {
  color: var(--color-bronze) !important;
  font-size: 1.5em !important;
  line-height: 1 !important;
}

/* === МОБИЛЬНАЯ АДАПТАЦИЯ === */
@media screen and (max-width: 640px) {
  .t-title,
  .t-heading {
    letter-spacing: -0.015em !important;
  }
  .t-uptitle,
  .t-tag {
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
  }
}

/* ============================================
   АНИМАЦИИ И ЭФФЕКТЫ
   ============================================ */

.t-heading.t-animate_started {
  animation: fadeInUp 0.8s ease-out;
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.t778__col .t778__bgimg {
  transition: transform 0.6s ease-out;
}
.t778__col:hover .t778__bgimg {
  transform: scale(1.02);
}

.t778 .t-name a:hover,
a[href*="podrobnee"]:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--color-bronze);
  text-decoration-thickness: 1px;
}
