/* ============================================================
   FotoBiz Online — дизайн-токены
   Единственный источник правды по цвету, типографике и шкале.
   Острые углы во всей системе: border-radius всегда 0.
   Источник: site/uiux/README.md + profil.dc.html (эталон).
   ============================================================ */

/* --- Самохостинг IBM Plex (woff2, субсеты cyrillic / latin / latin-ext) --- */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibm-plex-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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibm-plex-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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibm-plex-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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibm-plex-mono-500-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibm-plex-mono-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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibm-plex-mono-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-400-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-500-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-600-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-700-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-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: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/ibm-plex-sans-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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibm-plex-serif-400-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibm-plex-serif-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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/ibm-plex-serif-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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibm-plex-serif-500-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibm-plex-serif-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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/ibm-plex-serif-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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/ibm-plex-serif-600-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/ibm-plex-serif-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: 'IBM Plex Serif';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/ibm-plex-serif-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;
}

:root {
  /* ---------- Палитра ---------- */
  --fb-paper: #F4F3F0;            /* фон страницы */
  --fb-ink: #14181D;              /* текст и линии */
  --fb-header-bg: rgba(244, 243, 240, 0.93);

  /* приглушённые тона по убыванию контраста */
  --fb-muted-1: #3F4650;
  --fb-muted-2: #4A5058;
  --fb-muted-3: #5A6069;
  --fb-muted-4: #6B7280;
  --fb-muted-5: #8B9098;
  --fb-muted-6: #9DA2AA;
  --fb-muted-7: #B9B5AD;
  --fb-muted-ph: #7C8189;         /* подписи поверх плейсхолдеров */
  --fb-muted-ph-cool: #43536A;    /* подписи на холодном плейсхолдере */
  --fb-dash: #C0BCB4;             /* тире в списках меню */

  /* акцент «сверки» */
  --fb-accent: #24405C;
  --fb-accent-soft: #9DBDDF;      /* акцент на тёмном фоне */
  --fb-accent-bar: #7E9CC0;
  --fb-accent-line: rgba(36, 64, 92, 0.3);
  --fb-accent-wash: rgba(36, 64, 92, 0.07);
  --fb-accent-frame: rgba(36, 64, 92, 0.55);

  /* панели и карточки */
  --fb-panel: #EDEBE6;
  --fb-panel-2: #EAE8E3;
  --fb-panel-hover: #E7E4DE;

  /* границы */
  --fb-line: rgba(20, 24, 29, 0.12);
  --fb-line-2: rgba(20, 24, 29, 0.14);
  --fb-line-3: rgba(20, 24, 29, 0.16);
  --fb-line-4: rgba(20, 24, 29, 0.2);
  --fb-line-5: rgba(20, 24, 29, 0.25);
  --fb-line-6: rgba(20, 24, 29, 0.28);
  --fb-line-7: rgba(20, 24, 29, 0.42);
  --fb-line-8: rgba(20, 24, 29, 0.4);

  /* тёмные секции */
  --fb-on-dark: #E7E5E0;
  --fb-on-dark-dim: #B9B7B1;
  --fb-on-dark-mono: #DCDAD4;
  --fb-line-dark: rgba(255, 255, 255, 0.14);
  --fb-line-dark-2: rgba(255, 255, 255, 0.12);
  --fb-line-dark-3: rgba(255, 255, 255, 0.18);
  --fb-scrim: rgba(20, 24, 29, 0.86);
  --fb-scrim-2: rgba(20, 24, 29, 0.78);
  --fb-scrim-3: rgba(20, 24, 29, 0.72);

  /* ---------- Плейсхолдер-паттерн: диагональные полосы ---------- */
  --fb-ph-warm-6: repeating-linear-gradient(135deg, #DAD7D1, #DAD7D1 6px, #E2DFD9 6px, #E2DFD9 12px);
  --fb-ph-warm-8: repeating-linear-gradient(135deg, #D9D6D0, #D9D6D0 8px, #E1DED8 8px, #E1DED8 16px);
  --fb-ph-warm-10: repeating-linear-gradient(135deg, #D2CFC9, #D2CFC9 10px, #DAD7D1 10px, #DAD7D1 20px);
  --fb-ph-warm-12: repeating-linear-gradient(135deg, #D9D6D0, #D9D6D0 12px, #E1DED8 12px, #E1DED8 24px);
  --fb-ph-warm-14: repeating-linear-gradient(135deg, #D9D6D0, #D9D6D0 14px, #E1DED8 14px, #E1DED8 28px);
  --fb-ph-warm-14b: repeating-linear-gradient(135deg, #DAD7D1, #DAD7D1 14px, #E2DFD9 14px, #E2DFD9 28px);
  --fb-ph-cool-14: repeating-linear-gradient(135deg, #C8CFD8, #C8CFD8 14px, #D3D9E0 14px, #D3D9E0 28px);
  --fb-ph-cool-16: repeating-linear-gradient(135deg, #C8CFD8, #C8CFD8 16px, #D3D9E0 16px, #D3D9E0 32px);
  --fb-ph-dark-8: repeating-linear-gradient(135deg, #2A2F36, #2A2F36 8px, #32373F 8px, #32373F 16px);
  --fb-ph-flat: #DEDBD5;

  /* инженерная сетка hero, 64×64 */
  --fb-grid-lines: linear-gradient(rgba(20, 24, 29, 0.045) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(20, 24, 29, 0.045) 1px, transparent 1px);
  --fb-grid-size: 64px 64px;

  /* ---------- Типографика ---------- */
  --fb-font-serif: 'IBM Plex Serif', Georgia, 'Times New Roman', serif;
  --fb-font-sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  --fb-font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', monospace;

  --fb-fs-h1: clamp(32px, 4.2vw, 54px);
  --fb-fs-h2: clamp(26px, 3.2vw, 40px);
  --fb-fs-h2-cta: clamp(25px, 3vw, 38px);
  --fb-fs-h3: 19px;
  --fb-fs-h4: 16.5px;
  --fb-fs-hero-sub: clamp(15.5px, 1.3vw, 17.5px);
  --fb-fs-lead: 16.5px;
  --fb-fs-body: 15px;
  --fb-fs-sm: 14px;
  --fb-fs-nav: 14.5px;
  --fb-fs-xs: 13.5px;
  --fb-fs-xxs: 12.5px;
  --fb-fs-mono: 11.5px;
  --fb-fs-mono-sm: 10.5px;
  --fb-fs-mono-xs: 9.5px;

  --fb-ls-tight: -0.018em;
  --fb-ls-h2: -0.012em;
  --fb-ls-mono: 0.06em;
  --fb-ls-eyebrow: 0.14em;
  --fb-ls-wide: 0.1em;

  --fb-lh-tight: 1.05;
  --fb-lh-head: 1.14;
  --fb-lh-body: 1.6;
  --fb-lh-loose: 1.7;

  /* ---------- Шкала отступов ---------- */
  --fb-s-1: 4px;
  --fb-s-2: 8px;
  --fb-s-3: 12px;
  --fb-s-4: 16px;
  --fb-s-5: 20px;
  --fb-s-6: 24px;
  --fb-s-7: 28px;
  --fb-s-8: 32px;
  --fb-s-9: 40px;
  --fb-s-10: 48px;
  --fb-hair: 1px;

  /* ---------- Каркас страницы ---------- */
  --fb-maxw: 1180px;
  --fb-gutter: clamp(20px, 5vw, 48px);
  --fb-section-y: clamp(52px, 7vw, 92px);
  --fb-gap-col: clamp(28px, 4vw, 56px);
  --fb-header-h: 64px;            /* пересчитывается в site.js */
  --fb-nav-top: 64px;             /* верх мобильной панели меню */

  /* ---------- Прочее ---------- */
  --fb-radius: 0;                 /* острые углы — осознанный язык системы */
  --fb-shadow-menu: 0 26px 60px -30px rgba(20, 24, 29, 0.45);
  --fb-ease: cubic-bezier(.2, .7, .2, 1);
  --fb-ease-soft: cubic-bezier(.3, .7, .2, 1);
  --fb-dur: .18s;
}
