/* ==========================================================================
   Базовая типографика
   ========================================================================== */

body{
  background: var(--imi-void);
  color: var(--imi-bone);
  font-family: var(--imi-fb);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body a{ color: inherit; }
body img{ max-width: 100%; height: auto; }

:focus-visible{ outline: 2px solid var(--imi-gold); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* --- Заголовки -----------------------------------------------------------
   Применяйте как CSS-класс на виджете Heading в Elementor.
   Заголовки намеренно НЕ переопределяются глобально по тегам h1..h6:
   так вы сохраняете контроль и не ломаете вёрстку плагинов.            */

.imi-d1,.imi-d2,.imi-d3,.imi-d4{
  font-family: var(--imi-fd);
  font-weight: 800;
  text-transform: uppercase;
  line-height: .88;
  letter-spacing: -.012em;
  text-wrap: balance;
  margin: 0;
}
.imi-d1{ font-size: clamp(3.4rem, 11vw, 9.5rem); font-weight: 900; line-height: .84; letter-spacing: -.022em; }
.imi-d2{ font-size: clamp(2.2rem, 5.4vw, 4.4rem); font-weight: 900; line-height: .86; letter-spacing: -.018em; }
.imi-d3{ font-size: clamp(1.4rem, 2.6vw, 2.2rem); line-height: .92; }
.imi-d4{ font-size: clamp(1rem, 1.5vw, 1.22rem); font-weight: 700; line-height: .96; }

/* Оптическое выравнивание: у крупного шрифта боковой отступ внутри буквы
   читается как лишний зазор. Сдвиг прижимает заголовок к сетке. */
.imi-d1.imi-bleed,
.imi-d2.imi-bleed{ margin-left: -.055em; }

/* Контурный текст. Если браузер не поддерживает обводку — остаётся серым,
   а не исчезает. */
.imi-hollow{ color: var(--imi-ash-2); }
@supports (-webkit-text-stroke: 1px black){
  .imi-hollow{
    color: transparent;
    -webkit-text-stroke: clamp(1px, .16vw, 3px) var(--imi-bone);
  }
}

.imi-gold{ color: var(--imi-gold); }
.imi-sig{ color: var(--imi-sig); }

/* --- Метки и подписи --------------------------------------------------- */

.imi-label{
  font-family: var(--imi-fc);
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--imi-gold);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.imi-label::before{
  content: "";
  width: 18px; height: 2px;
  background: currentColor;
  flex: none;
}
.imi-label.imi-label--ash{ color: var(--imi-ash); }

.imi-cap{
  font-family: var(--imi-fc);
  font-weight: 600;
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--imi-ash-2);
}

.imi-lead{
  font-size: clamp(1rem, 1.25vw, 1.12rem);
  line-height: 1.6;
  color: var(--imi-ash);
  max-width: 58ch;
  margin: 0;
}

.imi-small{ font-size: .9rem; line-height: 1.58; color: var(--imi-ash); }

/* Цифры в колонках должны выравниваться — иначе таблица цен «пляшет». */
.imi-num{ font-variant-numeric: tabular-nums; }

.imi-sr{
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
