﻿/* ===== Base – typography, body, container, utility ===== */

/* Mobile-only <br> – скрыты на десктопе, показываются на ≤767px (см. responsive.css) */
.br-mobile-only { display: none; }

/* No-break wrapper – не разрывать составное слово по дефису (например, «ППУ-утепление»). */
.nobr { white-space: nowrap; }

body {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--ink);
  background: var(--bg);
}

/* Typography defaults */
h1, .h1 { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-h1); line-height: var(--lh-tight); letter-spacing: var(--tr-tight); }
h2, .h2 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h2); line-height: var(--lh-display); letter-spacing: var(--tr-tight); }
h3, .h3 { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-h3); line-height: var(--lh-display); letter-spacing: -0.01em; }
h4, .h4 { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-h4); line-height: var(--lh-display); }

p { line-height: var(--lh-body); }

/* Убираем «висячие» слова (widows) в типичных абзацах подписей и описаний.
   text-wrap: pretty — Chrome 117+, Firefox 121+, Safari 17.5+.
   В старых браузерах деградирует к обычному text-wrap. */
.section-sub,
.service-card__desc,
.industry-card__desc,
.svc-material-card__desc,
.svc-sys-card__lead,
.svc-related-card__desc,
.svc-type-card__desc,
.floors-statement__lead,
.pair__meta,
.faq__r-inner,
.faq__a-inner,
.production__lead,
.calc__hint,
.about__lead {
  text-wrap: pretty;
}

/* Балансируем длинные заголовки секций. */
.section-title,
.svc-hero__title,
.hero__title {
  text-wrap: balance;
}

a {
  transition: color var(--t-base) var(--e-out);
}

::selection {
  background: var(--accent);
  color: var(--accent-on);
}

/* Focus visible – единый стиль для всех */
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: var(--r-xs);
}

/* Skip link – для accessibility */
.skip-link {
  position: absolute;
  top: -100px;
  left: var(--space-4);
  padding: var(--space-3) var(--space-5);
  background: var(--ink);
  color: var(--ink-on-dark);
  border-radius: var(--r-md);
  font-weight: 500;
  z-index: var(--z-tooltip);
  transition: top var(--t-base) var(--e-out);
}
.skip-link:focus { top: var(--space-4); }

/* Container */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--space-pad-x);
  padding-right: var(--space-pad-x);
}
.container--narrow { max-width: var(--container-narrow); }
.container--wide   { max-width: var(--container-wide); }

/* Utility */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.text-accent { color: var(--accent); }
.text-mute   { color: var(--ink-2); }

/* Lock scroll (для модалки / меню) */
body.is-locked {
  overflow: hidden;
  touch-action: none;
}
