/* Доступный Петербург — статичная копия макета Figma (страница «принятый вариант»).
   Все экраны: абсолютные координаты слоёв из Figma, 1 px макета = 1 px CSS.
   Цвета и шрифты — переменными в :root, текстовые стили — классами .tNNN-NN. */
/* Шрифты локально, без внешних запросов. Public Sans не содержит кириллицы - русский текст, как и в Figma, рисуется Noto Sans. */
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/PublicSans-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:'Public Sans';font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/PublicSans-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:'Public Sans';font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/PublicSans-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:'Public Sans';font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/PublicSans-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:'Public Sans';font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/PublicSans-600-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:'Public Sans';font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/PublicSans-600-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:'Public Sans';font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/PublicSans-700-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:'Public Sans';font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/PublicSans-700-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:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/Montserrat-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:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/Montserrat-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:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/Montserrat-400-cyrillic.woff2") format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/Montserrat-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:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/Montserrat-700-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:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/Montserrat-700-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:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/Montserrat-700-cyrillic.woff2") format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/Montserrat-700-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:'Noto Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url("assets/fonts/NotoSans-cyrillic.woff2") format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Noto Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url("assets/fonts/NotoSans-cyrillic-ext.woff2") format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}

:root {
  /* Шрифты */
  --font-main: 'Public Sans', 'Noto Sans', Arial, sans-serif;
  --font-logo: 'Montserrat', 'Noto Sans', Arial, sans-serif;

  /* Цвета макета (имя = hex, отсортированы по частоте использования) */
  --c-ffffff: #ffffff; /* 1046 */
  --c-5d7286: #5d7286; /* 904 */
  --c-313b5e: #313b5e; /* 774 */
  --c-00a19b: #00a19b; /* 406 */
  --c-000000: #000000; /* 324 */
  --c-ebedf1: #ebedf1; /* 218 */
  --c-e95a0c: #e95a0c; /* 200 */
  --c-d8dfe7: #d8dfe7; /* 175 */
  --c-5d7186: #5d7186; /* 174 */
  --c-d60d53: #d60d53; /* 138 */
  --c-b0b0bb: #b0b0bb; /* 90 */
  --c-dbe0e6: #dbe0e6; /* 75 */
  --c-b7c0ca: #b7c0ca; /* 44 */
  --c-0b5641: #0b5641; /* 41 */
  --c-9c3028: #9c3028; /* 35 */
  --c-d9d9d9: #d9d9d9; /* 30 */
  --c-f9b232: #f9b232; /* 20 */
  --c-f37d7d: #f37d7d; /* 20 */
  --c-f2f6f9: #f2f6f9; /* 19 */
  --c-f8f9fa: #f8f9fa; /* 19 */
  --c-7558b5: #7558b5; /* 15 */
  --c-e9f5ed: #e9f5ed; /* 14 */
  --c-5c5e79: #5c5e79; /* 13 */
  --c-ffde17: #ffde17; /* 12 */
  --c-eef2f8: #eef2f8; /* 12 */
  --c-fcf8e7: #fcf8e7; /* 10 */
  --c-ce61d3: #ce61d3; /* 10 */
  --c-2296f3: #2296f3; /* 7 */
  --c-bd4812: #bd4812; /* 7 */
  --c-d36532: #d36532; /* 7 */
  --c-e15c39: #e15c39; /* 5 */
  --c-12898d: #12898d; /* 4 */
  --c-c43bdb: #c43bdb; /* 4 */
  --c-0068a5: #0068a5; /* 4 */
  --c-1f6b55: #1f6b55; /* 4 */
  --c-087cc6: #087cc6; /* 3 */
  --c-0667a5: #0667a5; /* 3 */
  --c-323a46: #323a46; /* 3 */
  --c-999999: #999999; /* 3 */
  --c-bec3c7: #bec3c7; /* 3 */

  /* Размер экрана макета (MacBook Pro 16") */
  --screen-width: 1728px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { background: #e5e5e5; }
body { font-family: var(--font-main); -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision; }

/* Экран = фрейм Figma */
.screen { position: relative; overflow: hidden; margin: 0; }
/* Слой (фрейм, группа, прямоугольник) */
.b { position: absolute; }
/* Графика (иконки, векторы, фото) — экспорт из Figma */
.g { position: absolute; display: block; max-width: none; }
/* Текстовый слой */
.tx { position: absolute; white-space: pre-wrap; overflow-wrap: break-word; font-feature-settings: "lnum" 1; }
.tx.nw { white-space: pre; }
.tx .li { display: block; position: relative; padding-left: calc(var(--lvl) * 1.5em); }
.tx .lm { position: absolute; left: calc(var(--lvl) * 1.5em - 1em); }
.tx.ell { white-space: pre; overflow: hidden; text-overflow: ellipsis; }
.tx.va-center, .tx.va-bottom { display: flex; flex-direction: column; }
.tx.va-center { justify-content: center; }
.tx.va-bottom { justify-content: flex-end; }

/* Текстовые стили макета: .t<вес>-<кегль> */
.t500-13 { font-family:var(--font-main); font-weight:500; font-size:13px; line-height:15.27px; }
.t700-11 { font-family:var(--font-main); font-weight:700; font-size:11px; line-height:12.92px; }
.t600-13 { font-family:var(--font-main); font-weight:600; font-size:13px; line-height:15.27px; }
.t600-14 { font-family:var(--font-main); font-weight:600; font-size:14px; line-height:16.45px; }
.t500-14 { font-family:var(--font-main); font-weight:500; font-size:14px; line-height:16.45px; }
.t700-30 { font-family:var(--font-main); font-weight:700; font-size:30px; line-height:35.25px; }
.t500-12 { font-family:var(--font-main); font-weight:500; font-size:12px; line-height:14.1px; }
.t500-11 { font-family:var(--font-main); font-weight:500; font-size:11px; line-height:12.92px; }
.t700-18 { font-family:var(--font-main); font-weight:700; font-size:18px; line-height:21.15px; }
.t600-12 { font-family:var(--font-main); font-weight:600; font-size:12px; line-height:14.1px; }
.t700-16 { font-family:var(--font-main); font-weight:700; font-size:16px; line-height:18.8px; }
.t500-10 { font-family:var(--font-main); font-weight:500; font-size:10px; line-height:11.75px; }
.t500-11-2 { font-family:var(--font-main); font-weight:500; font-size:11px; line-height:14px; }
.t600-12-2 { font-family:var(--font-main); font-weight:600; font-size:12px; line-height:16px; }
.tm400-14 { font-family:var(--font-logo); font-weight:400; font-size:14px; line-height:18px; }
.tm700-14 { font-family:var(--font-logo); font-weight:700; font-size:14px; line-height:18px; }

/* Оглавление */
.index { font-family: var(--font-main); padding: 40px; background: #fff; min-height: 100vh; }
.index h1 { font-size: 24px; margin-bottom: 24px; }
.index ul { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.index a { display: block; color: #222; text-decoration: none; font-size: 14px; }
.index img { width: 100%; border: 1px solid #ddd; margin-bottom: 8px; display: block; }
