/* Шрифты бандла, распакованные в /assets/fonts */
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-latin-ext.woff2") format("woff2");
  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: 'Golos Text';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-latin.woff2") format("woff2");
  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: 'Golos Text';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-latin-ext.woff2") format("woff2");
  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: 'Golos Text';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-latin.woff2") format("woff2");
  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: 'Golos Text';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-latin-ext.woff2") format("woff2");
  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: 'Golos Text';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-latin.woff2") format("woff2");
  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: 'Golos Text';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-latin-ext.woff2") format("woff2");
  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: 'Golos Text';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/golos-text-400-latin.woff2") format("woff2");
  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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-greek.woff2") format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-latin-ext.woff2") format("woff2");
  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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-latin.woff2") format("woff2");
  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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-greek.woff2") format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-latin-ext.woff2") format("woff2");
  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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/jetbrains-mono-400-latin.woff2") format("woff2");
  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: 'Oswald';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-latin-ext.woff2") format("woff2");
  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: 'Oswald';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-latin.woff2") format("woff2");
  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: 'Oswald';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-latin-ext.woff2") format("woff2");
  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: 'Oswald';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-latin.woff2") format("woff2");
  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: 'Oswald';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-vietnamese.woff2") format("woff2");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-latin-ext.woff2") format("woff2");
  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: 'Oswald';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/oswald-500-latin.woff2") format("woff2");
  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;
}

/* база: перенесено из <helmet> исходного бандла */
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #F1F1F0; -webkit-font-smoothing: antialiased; }
a { color: #F5511E; text-decoration: none; }
a:hover { color: #D63F10; }
img { max-width: 100%; height: auto; }
/* заголовок из одного длинного слова («КОНФИДЕНЦИАЛЬНОСТИ») не помещается
   в строку на телефоне и раздвигает страницу — разрешаем перенос внутри слова */
h1, h2 { overflow-wrap: break-word; }
/* мягкий перенос в заголовке — только там, где слово иначе не помещается */
.shy { display: none; }
@media (max-width: 400px) { .shy { display: inline; } }
:focus-visible { outline: 3px solid #6C4BE0; outline-offset: 3px; border-radius: 4px; }

.skip { position: absolute; left: -9999px; }
.skip:focus {
  left: 16px; top: 16px; z-index: 999; background: #FFFFFF; color: #1E1E1E;
  padding: 12px 20px; border-radius: 999px;
  font: 600 15px/1 'Golos Text', system-ui, sans-serif;
}

/* аккордеон на нативном <details>: раскрывается без JavaScript,
   ответы присутствуют в HTML всегда */
details.acc > summary.acc-q { list-style: none; width: 100%; cursor: pointer; }
details.acc > summary.acc-q::-webkit-details-marker { display: none; }
details.acc > summary.acc-q::marker { content: ''; }
.acc-sign::after { content: '+'; }
details[open] > .acc-q .acc-sign::after { content: '\2212'; }

/* hover-состояния: были в нестандартных атрибутах style-hover */
[data-hv="hv1"]:hover, [data-hv="hv1"]:focus-visible { color: #6C4BE0; }
[data-hv="hv2"]:hover, [data-hv="hv2"]:focus-visible { background: #D63F10; color: #FFFFFF; }
[data-hv="hv3"]:hover, [data-hv="hv3"]:focus-visible { border-color: #FFFFFF; color: #FFFFFF; }
[data-hv="hv4"]:hover, [data-hv="hv4"]:focus-visible { background: #FBFAFF; color: #1E1E1E; }
[data-hv="hv5"]:hover, [data-hv="hv5"]:focus-visible { color: #F5511E; }
[data-hv="hv6"]:hover, [data-hv="hv6"]:focus-visible { border-color: #6C4BE0; color: #6C4BE0; }

/* адаптивность: в исходном макете не было ни одного @media */
@media (max-width: 1000px) {
  .r-grid { grid-template-columns: 1fr !important; }
  .r-pad { padding: 32px 24px !important; }
  .r-wrap { padding-left: 20px !important; padding-right: 20px !important; }
  .r-sticky { position: static !important; }
}
@media (max-width: 600px) {
  .r-pad { padding: 24px 20px !important; }
  .r-wrap { padding-left: 16px !important; padding-right: 16px !important; }
}

/* Ритм по вертикали на мобильном: 96px между блоками — это полтора экрана
   пустоты на телефоне. Ужимаем до 56px, половинные промежутки до 28px. */
@media (max-width: 1000px) {
  .page-wrap { gap: 56px !important; padding-bottom: 56px !important; }
  .r-tight, .page-wrap > header { margin-bottom: -28px !important; }
  footer > div { padding-top: 40px !important; padding-bottom: 40px !important; gap: 32px !important; }
  /* Область нажатия: 16-18px по высоте — ниже минимума доступности.
     Расширяем псевдоэлементом, а не отступом: отступ у ссылки в строке
     с обычными span сбивал их по вертикали (ломались хлебные крошки). */
  .lnk { position: relative; }
  .lnk::after { content: ''; position: absolute; left: 0; right: 0; top: -5px; bottom: -5px; }
}
@media (max-width: 1279px) {
  .r-hero { grid-template-columns: 1fr !important; }
}

/* половинный просвет после отдельных блоков: контейнер задаёт gap 96px */
.r-tight { margin-bottom: -48px; }

/* якорные блоки не должны уезжать под липкую шапку */
[id] { scroll-margin-top: 120px; }
@media (max-width: 1000px) { [id] { scroll-margin-top: 24px; } }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* ---- бургер-меню без JavaScript: чекбокс + label ---- */
.nav-toggle { position: absolute; width: 1px; height: 1px; opacity: 0; margin: 0; }
.burger { display: none; }
.burger span { position: relative; display: block; }
.burger span, .burger span::before, .burger span::after {
  width: 22px; height: 2px; background: #1E1E1E; border-radius: 2px;
  transition: transform .18s ease, top .18s ease, background-color .18s ease;
}
.burger span::before, .burger span::after { content: ''; position: absolute; left: 0; display: block; }
.burger span::before { top: -7px; }
.burger span::after { top: 7px; }

/* Полное меню помещается в одну строку только с 1200px — ниже включаем бургер,
   чтобы шапка никогда не разъезжалась на два ряда. */
@media (max-width: 1199px) {
  header > nav {
    order: 4; display: none !important; width: 100%; flex-direction: column; gap: 2px;
    padding-top: 14px; margin-top: 2px; border-top: 1px solid #EDEDEA; font-size: 17px;
  }
  header > nav a { padding: 9px 0; }
  .nav-toggle:checked ~ nav { display: flex !important; }
  .hdr-cta { order: 2; }
  .burger {
    order: 3; display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; flex: 0 0 auto; cursor: pointer; border-radius: 12px;
  }
  .nav-toggle:checked ~ .burger span { background: transparent; }
  .nav-toggle:checked ~ .burger span::before { top: 0; transform: rotate(45deg); }
  .nav-toggle:checked ~ .burger span::after { top: 0; transform: rotate(-45deg); }
  .nav-toggle:focus-visible ~ .burger { outline: 3px solid #6C4BE0; outline-offset: 2px; }
}
@media (max-width: 900px) {
  header { padding: 14px 16px !important; gap: 10px !important; }
  .hdr-cta { padding: 12px 18px !important; font-size: 15px !important; }
}
@media (max-width: 380px) {
  .hdr-cta { padding: 11px 14px !important; font-size: 14px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .burger span, .burger span::before, .burger span::after { transition: none; }
}



/* ТАБЛИЦЫ НА УЗКОМ ЭКРАНЕ.
   В исходном макете таблицы — это div-ы с display: grid, и общее правило
   .r-grid схлопывало их в одну колонку: значения выстраивались столбиком
   без намёка, к какой колонке относится какое. В сравнении четырёх виз
   («5 лет», «5-20 лет», «Уточняйте в BOI» подряд) прочитать это было нельзя.
   Поэтому .r-grid со строк таблиц снят, и ниже — их собственные правила.

   Широкая таблица (три колонки значений и больше) на телефон не помещается
   никак: строка превращается в карточку, где перед каждым значением стоит
   название его колонки. Название берётся из data-col, который сборка
   проставляет по шапке самой таблицы, — разойтись с содержимым оно не может.

   Таблица из двух колонок («страна — сбор») остаётся таблицей до самого
   узкого экрана: две колонки помещаются, а подпись «консульский сбор»
   в каждой строке была бы только шумом. */
@media (max-width: 1000px) {
  .tbl-head, .tbl-row { padding-left: 24px !important; padding-right: 24px !important; }
}
@media (max-width: 600px) {
  .tbl-head, .tbl-row { padding-left: 20px !important; padding-right: 20px !important; }
  /* значению нужно больше места, чем названию строки */
  .tbl:not(.tbl--wide) .tbl-head,
  .tbl:not(.tbl--wide) .tbl-row {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr) !important;
    gap: 12px;
  }
}
@media (max-width: 760px) {
  .tbl--wide .tbl-head { display: none !important; }
  .tbl--wide .tbl-row {
    grid-template-columns: 1fr !important;
    gap: 8px; align-items: start !important;
  }
  .tbl--wide .tbl-row > span:first-child { margin-bottom: 2px; }
  .tbl--wide .tbl-row > span[data-col] {
    display: grid; grid-template-columns: 116px 1fr; gap: 12px; align-items: baseline;
  }
  .tbl--wide .tbl-row > span[data-col]::before {
    content: attr(data-col);
    font-size: 12px; font-weight: 600; letter-spacing: 0.06em;
    text-transform: uppercase; color: #6A6A66; line-height: 1.5;
  }
}
/* СТРОКА «ПОДПИСЬ — ПОЯСНЕНИЕ» с жёсткой шириной подписи. На широком
   экране это две колонки, на узком подпись занимает всю строку,
   а пояснение переезжает под неё: иначе строка не сжимается и выталкивает
   страницу за экран. */
@media (max-width: 600px) {
  .r-row2 { flex-wrap: wrap; gap: 2px !important; }
  .r-row2 > :first-child { min-width: 0 !important; flex: 0 0 100%; }
  /* колонка с цифрой ужимается до самой цифры, текстовая получает право
     сжиматься: иначе длинное слово вылезает за подложку карточки */
  .r-fixcol { grid-template-columns: auto minmax(0, 1fr) !important; }
  .r-fixcol > * { overflow-wrap: break-word; }
}

/* совсем узкие экраны: 116px под подпись уже дороговато, она уходит
   на свою строку */
@media (max-width: 360px) {
  .tbl--wide .tbl-row > span[data-col],
  .tbl--wide .tbl-row > span[data-col]::before { display: block; }
}


/* ---- форма заявки ----
   Работает без JavaScript: браузер сам отправляет POST на /zayavka/.
   box-sizing прописан явно — глобального сброса на сайте нет, и без него
   ширина 100% плюс внутренние отступы вылезли бы за колонку. */
.lead-col { display: flex; flex-direction: column; gap: 18px; }
.lead { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.lead-f { display: flex; flex-direction: column; gap: 6px; }
.lead-l { font-size: 14px; font-weight: 600; color: #4A4A47; }
.lead-l i { font-style: normal; color: #F5511E; }
.lead-opt { font-weight: 400; color: #7A7A76; }
.lead-i {
  box-sizing: border-box; display: block; width: 100%;
  font: 400 16px/1.4 'Golos Text', system-ui, sans-serif;
  color: #1E1E1E; background: #FFFFFF;
  border: 1.5px solid #DCDCD8; border-radius: 14px; padding: 14px 18px;
  -webkit-appearance: none; appearance: none;
}
/* 16px — не «на глаз»: при меньшем кегле Safari на iPhone масштабирует
   всю страницу, как только курсор встаёт в поле */
/* подсказка в поле темнее обычного «серого текста» сайта: на белом
   #B4B4AF давал контраст 2.1:1 — на солнце такое не прочитать */
.lead-i::placeholder { color: #8A8A85; opacity: 1; }
.lead-i:hover { border-color: #B4B4AF; }
.lead-i:focus { outline: none; border-color: #6C4BE0; box-shadow: 0 0 0 3px rgba(108, 75, 224, 0.18); }
/* Цветные флаги для выпадающего списка стран.

   unicode-range сужен до области региональных индикаторов — тех самых пар
   символов, из которых складывается флаг. За счёт этого шрифт применяется
   ровно к флагам и не может повлиять ни на одну букву текста на сайте,
   даже если стоит первым в стопке. Windows без него рисует вместо флага
   две буквы кода страны. */
@font-face {
  font-family: 'Twemoji Country Flags';
  src: url('/assets/fonts/twemoji-flags.woff2') format('woff2');
  font-display: swap;
  unicode-range: U+1F1E6-1F1FF;
}

/* строка телефона: код страны отдельным списком, номер отдельным полем */
.lead-tel { display: flex; gap: 8px; align-items: stretch; }
.lead-tel-i { flex: 1 1 auto; min-width: 0; }
/* Ширина не задаётся: в пункте только флаг и код, и список сам занимает
   около 120px в любом состоянии — при раскрытии поле не прыгает.

   Стрелка своя, а не браузерная: системную нельзя отодвинуть от края,
   она прижата к границе поля вплотную. appearance: none убирает её,
   дальше рисуем шеврон фоном и ставим где нужно. Заодно поле выглядит
   одинаково во всех браузерах. */
.lead-cc {
  box-sizing: border-box; flex: 0 0 auto; cursor: pointer;
  font: 400 16px/1.4 'Twemoji Country Flags', 'Golos Text', system-ui, sans-serif;
  color: #1E1E1E; background-color: #FFFFFF;
  border: 1.5px solid #DCDCD8; border-radius: 14px;
  padding: 14px 38px 14px 12px;
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1.25 1.75 6 6.25l4.75-4.5' fill='none' stroke='%237A7A76' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
/* у Firefox остаётся пунктирная рамка на фокусе — она тут не нужна */
.lead-cc:-moz-focusring { color: transparent; text-shadow: 0 0 0 #1E1E1E; }
.lead-cc:hover { border-color: #B4B4AF; }
.lead-cc:focus { outline: none; border-color: #6C4BE0; box-shadow: 0 0 0 3px rgba(108, 75, 224, 0.18); }
/* Поле остаётся белым и на фиолетовой карточке — меняется только рамка.
   Стрелку тоже оставляем тёмной: светлая на белом была бы не видна. */
.lead--inv .lead-cc { border-color: rgba(255, 255, 255, 0.45); }
.lead--inv .lead-cc:focus { border-color: #FFFFFF; box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.32); }
/* Порог выбран замером, а не на глаз: список занимает 122px, и с 375px
   на поле остаётся 158px — номер «999 123-45-67» укладывается с запасом.
   На 360px остаётся 142px, и последние цифры уже уезжают за край поля,
   поэтому там список переносится на свою строку. */
@media (max-width: 374px) {
  .lead-tel { flex-wrap: wrap; }
  .lead-cc { width: 100%; }
}

.lead-b {
  box-sizing: border-box; display: block; width: 100%; cursor: pointer;
  font: 600 17px/1.2 'Golos Text', system-ui, sans-serif;
  color: #FFFFFF; background: #F5511E;
  border: 0; border-radius: 999px; padding: 20px 32px; margin-top: 2px;
}
.lead-b:hover { background: #D63F10; }
/* 13px — согласие на обработку данных и обещание перезвонить: это надо
   прочитать, поэтому серый темнее принятого на сайте #7A7A76 (тот даёт
   4.3:1 и не дотягивает до нормы доступности) */
.lead-note { margin: 0; font-size: 13px; line-height: 1.5; color: #6A6A66; }
.lead-note a { color: inherit; text-decoration: underline; }
.lead-note a:hover { color: inherit; text-decoration: none; }
/* ловушка для ботов: за краем экрана и вне обхода по Tab */
.lead-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.lead-alt { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.lead-alt-t { width: 100%; font-size: 13px; color: #6A6A66; }
.lead-alt-b {
  flex: 1 1 120px; text-align: center; border-radius: 999px; padding: 13px 20px;
  font-size: 15px; font-weight: 600; border: 1.5px solid #DCDCD8; color: #1E1E1E;
}
.lead-alt-b:hover { border-color: #6C4BE0; color: #6C4BE0; }

/* вариант на фиолетовой подложке — блок «Начнём с бесплатного аудита» на /o-nas/ */
.lead--inv .lead-l, .lead--inv .lead-l i { color: #EDE6FE; }
/* на фиолетовом #D6C8FB даёт 3.6:1 — для сноски мелким кеглем мало,
   берём светлее: #EDE6FE даёт 4.7:1 */
.lead--inv .lead-opt, .lead--inv .lead-note { color: #EDE6FE; }
.lead--inv .lead-i { border-color: rgba(255, 255, 255, 0.45); }
.lead--inv .lead-i:focus { border-color: #FFFFFF; box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.32); }
.lead-col--inv .lead-alt-t { color: #EDE6FE; }
.lead-col--inv .lead-alt-b { border-color: rgba(255, 255, 255, 0.5); color: #FFFFFF; }
.lead-col--inv .lead-alt-b:hover { border-color: #FFFFFF; color: #FFFFFF; background: rgba(255, 255, 255, 0.12); }

/* ответы обработчика /zayavka/: ошибка ввода, отказ, сбой связи */
.lead-msg {
  background: #FFFFFF; border-radius: 28px; padding: 56px 52px;
  display: flex; flex-direction: column; gap: 18px; align-items: flex-start;
}
.lead-msg-h {
  margin: 0; font-family: 'Oswald', sans-serif; font-weight: 700;
  text-transform: uppercase; font-size: 44px; line-height: 1.25; max-width: 22ch;
}
.lead-msg-p { margin: 0; font-size: 19px; line-height: 1.55; color: #4A4A47; max-width: 60ch; }
.lead-errs { margin: 0; padding-left: 22px; font-size: 16px; line-height: 1.6; color: #C0392B; }
.lead-msg .lead, .lead-msg .lead-alt { width: 100%; max-width: 460px; }
.lead-msg .lead { margin-top: 8px; }

@media (max-width: 1000px) {
  .lead-msg { padding: 32px 24px; }
  .lead-msg-h { font-size: 30px; }
  .lead-msg-p { font-size: 17px; }
  .lead-b { font-size: 16px; padding: 18px 28px; }
}

/* мобильные кегли единой шкалы: заголовок всегда крупнее текста */
@media (max-width: 1000px) {
  .fs55 { font-size: 30px !important; }
  .fs44 { font-size: 30px !important; }
  .fs40 { font-size: 24px !important; }
  .fs22 { font-size: 19px !important; }
  .fs19 { font-size: 18px !important; }
  .fs17 { font-size: 16px !important; }
  .fs15 { font-size: 14px !important; }
  .fs13 { font-size: 12px !important; }
}
