/* Шрифты — локально, с разбивкой по наборам символов: браузер тянет только нужный.
   Файлы забраны с Google Fonts и лежат в assets/fonts/ — внешних запросов со страницы нет. */
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-700-cyrillic-ext.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-700-cyrillic.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-700-latin-ext.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; 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; }
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-700-latin.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; 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:"Montserrat"; src:url("../assets/fonts/montserrat-800-cyrillic-ext.woff2") format("woff2"); font-weight:800; font-style:normal; font-display:swap; unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-800-cyrillic.woff2") format("woff2"); font-weight:800; font-style:normal; font-display:swap; unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-800-latin-ext.woff2") format("woff2"); font-weight:800; font-style:normal; font-display:swap; 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; }
@font-face { font-family:"Montserrat"; src:url("../assets/fonts/montserrat-800-latin.woff2") format("woff2"); font-weight:800; font-style:normal; font-display:swap; 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:"Inter"; src:url("../assets/fonts/inter-400-cyrillic-ext.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:"Inter"; src:url("../assets/fonts/inter-400-cyrillic.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:"Inter"; src:url("../assets/fonts/inter-400-latin-ext.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; 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; }
@font-face { font-family:"Inter"; src:url("../assets/fonts/inter-400-latin.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; 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:"Inter"; src:url("../assets/fonts/inter-500-cyrillic-ext.woff2") format("woff2"); font-weight:500; font-style:normal; font-display:swap; unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:"Inter"; src:url("../assets/fonts/inter-500-cyrillic.woff2") format("woff2"); font-weight:500; font-style:normal; font-display:swap; unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:"Inter"; src:url("../assets/fonts/inter-500-latin-ext.woff2") format("woff2"); font-weight:500; font-style:normal; font-display:swap; 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; }
@font-face { font-family:"Inter"; src:url("../assets/fonts/inter-500-latin.woff2") format("woff2"); font-weight:500; font-style:normal; font-display:swap; 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:"Inter"; src:url("../assets/fonts/inter-600-cyrillic-ext.woff2") format("woff2"); font-weight:600; font-style:normal; font-display:swap; unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family:"Inter"; src:url("../assets/fonts/inter-600-cyrillic.woff2") format("woff2"); font-weight:600; font-style:normal; font-display:swap; unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family:"Inter"; src:url("../assets/fonts/inter-600-latin-ext.woff2") format("woff2"); font-weight:600; font-style:normal; font-display:swap; 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; }
@font-face { font-family:"Inter"; src:url("../assets/fonts/inter-600-latin.woff2") format("woff2"); font-weight:600; font-style:normal; font-display:swap; 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; }

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: var(--f-body);
  font-size: var(--t-body);
  line-height: 1.65;
  color: var(--c-ink-soft);
  background: var(--c-white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, picture, svg, video { display: block; max-width: 100%; }
img { height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }
ul, ol { padding: 0; list-style: none; }
a { color: var(--c-link); text-decoration-thickness: 1px; text-underline-offset: 3px; }

/* ---------- типографика ---------- */
h1, h2, h3, h4 { font-family: var(--f-head); color: var(--c-ink); line-height: 1.15; text-wrap: balance; }
h1, h2 { font-weight: 800; text-transform: uppercase; line-height: 1.02; letter-spacing: -0.01em; }
h1 { font-size: var(--t-display); }
h2 { font-size: var(--t-h2); }
h3 { font-size: var(--t-h3); font-weight: 700; }
h1 em, h2 em, h3 em { font-style: normal; color: var(--c-blue-600); }
.on-blue h2 em, .on-blue h1 em { color: var(--c-orange); }
p { max-width: 62ch; }
.lead { font-size: var(--t-lead); color: var(--c-ink-soft); }
.on-blue, .on-blue h2, .on-blue h3 { color: var(--c-white); }
.on-blue .lead, .on-blue p { color: rgba(255,255,255,.92); }
strong, b { font-weight: 600; color: var(--c-ink); }
.on-blue strong, .on-blue b { color: var(--c-white); }
.kr { font-family: var(--f-kr); }

/* ---------- утилиты ---------- */
.container { width: min(var(--max-w), 100% - var(--gutter) * 2); margin-inline: auto; }
.container--narrow { width: min(var(--max-w-narrow), 100% - var(--gutter) * 2); }
.section { position: relative; padding-block: clamp(4rem, 9vw, 7.5rem); }
.section--blue { background: var(--g-blue); }
.section--tint { background: var(--c-blue-050); }
.section__head { max-width: 62ch; margin-bottom: var(--s-6); }
.section__head p { margin-top: var(--s-3); }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: var(--s-3); top: -100px; z-index: 100;
  background: var(--c-white); color: var(--c-ink); padding: var(--s-2) var(--s-4);
  border-radius: var(--r-pill); box-shadow: var(--sh-md);
}
.skip-link:focus { top: var(--s-3); }
.stack > * + * { margin-top: var(--s-3); }
.mt-5 { margin-top: var(--s-5); }
.mt-6 { margin-top: var(--s-6); }

/* ---------- фокус ---------- */
:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 3px; border-radius: 4px; }
.on-blue :focus-visible { outline-color: var(--c-white); }

/* ---------- появление секций ---------- */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity var(--tr-slow), transform var(--tr-slow); }
.reveal.is-in { opacity: 1; transform: none; }
.no-js .reveal { opacity: 1; transform: none; }

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