/* ===== ИЦЦ design tokens (2026-05-14 ребрендинг по фирстилю) ===== */

/* Self-hosted Montserrat */
@font-face {
  font-family: 'Montserrat';
  src: url('../assets/fonts/Montserrat/Montserrat-Light.ttf') format('truetype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('../assets/fonts/Montserrat/Montserrat-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('../assets/fonts/Montserrat/Montserrat-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('../assets/fonts/Montserrat/Montserrat-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('../assets/fonts/Montserrat/Montserrat-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Montserrat';
  src: url('../assets/fonts/Montserrat/Montserrat-ExtraBold.ttf') format('truetype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

:root {
  /* === Brand (фирменные цвета из логотипа ИЦЦ) === */
  --brand-purple-50:  #EEEBFB;
  --brand-purple-100: #DBD4F6;
  --brand-purple-200: #B7A9ED;
  --brand-purple-300: #927EE3;
  --brand-purple-400: #7460DE;
  --brand-purple-500: #5B47D6;
  --brand-purple-600: #4B38C0;
  --brand-purple-700: #3A2C99;
  --brand-purple-800: #2C2173;
  --brand-purple-900: #1E1750;

  --brand-teal-50:  #E2F7F0;
  --brand-teal-100: #C2EFE0;
  --brand-teal-200: #87DFC1;
  --brand-teal-300: #4ECFA1;
  --brand-teal-400: #2BBF8E;
  --brand-teal-500: #10B080;
  --brand-teal-600: #0D9A6F;
  --brand-teal-700: #0A7A57;
  --brand-teal-800: #075B41;
  --brand-teal-900: #053E2C;

  /* Алиасы для совместимости со старыми стилями */
  --brand:     var(--brand-purple-500);
  --brand-600: var(--brand-purple-600);
  --brand-700: var(--brand-purple-700);
  --brand-50:  var(--brand-purple-50);
  --brand-100: var(--brand-purple-100);

  /* === Dark navy (для тёмных секций) === */
  --ink-950: #06111c;
  --ink-900: #0B1B2E;
  --ink-800: #122a44;
  --ink-700: #1b3a5c;
  --ink-600: #24496f;

  /* === Light base === */
  --bg: #FFFFFF;
  --bg-alt: #F5F6FA;
  --bg-soft: #FAFAFC;
  --surface: #FFFFFF;
  --border: #E5E7EE;
  --border-strong: #CCD0DB;

  /* === Text === */
  --text: #161A2C;
  --text-secondary: #4A5066;
  --text-muted: #7C8295;
  --text-on-dark: #F2F0FA;
  --text-on-dark-muted: #B4B0CC;

  /* === Semantic === */
  --success: var(--brand-teal-500);
  --warn: #D97706;
  --danger: #DC2626;

  /* === Направления: цвета хексагонов === */
  --dir-lims: var(--brand-purple-500);
  --dir-hse:  var(--brand-teal-500);
  --dir-bi:   var(--brand-purple-500);
  --dir-mes:  var(--brand-teal-500);
  --dir-ai:   var(--brand-teal-500);
  --dir-cv:   var(--brand-purple-500);
  --dir-suutp: var(--brand-teal-500);

  /* === Radii === */
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 14px;
  --r-xl: 20px;
  --r-2xl: 28px;

  /* === Shadows === */
  --shadow-xs: 0 1px 2px rgba(22, 26, 44, 0.04);
  --shadow-sm: 0 2px 6px rgba(22, 26, 44, 0.05), 0 1px 2px rgba(22, 26, 44, 0.04);
  --shadow-md: 0 6px 18px rgba(22, 26, 44, 0.07), 0 2px 4px rgba(22, 26, 44, 0.04);
  --shadow-lg: 0 18px 40px rgba(22, 26, 44, 0.10), 0 4px 10px rgba(22, 26, 44, 0.05);
  --shadow-brand: 0 8px 24px rgba(91, 71, 214, 0.20);
  --shadow-teal:  0 8px 24px rgba(16, 176, 128, 0.20);

  /* === Type === */
  --font-sans: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-display: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono: ui-monospace, 'SFMono-Regular', 'Menlo', 'Consolas', monospace;

  /* === Layout === */
  --container: 1240px;
  --pad: 24px;
  --nav-h: 76px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-sans);
  color: var(--text);
  background: var(--bg);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }

:focus-visible {
  outline: 2px solid var(--brand-purple-500);
  outline-offset: 2px;
  border-radius: 4px;
}

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--pad);
}

/* Typography */
.h-display {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  font-size: clamp(40px, 6vw, 80px);
}
.h-1 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.015em;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.1;
}
.h-2 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.01em;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.18;
}
.h-3 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 22px;
  line-height: 1.28;
}
.eyebrow {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand-purple-500);
}
.mono { font-family: var(--font-mono); font-size: 13px; }

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 22px;
  border-radius: var(--r-lg);
  font-weight: 600;
  font-size: 15px;
  border: 1px solid transparent;
  transition: all .18s ease;
  white-space: nowrap;
  font-family: var(--font-sans);
}
.btn-primary {
  background: var(--brand-purple-500);
  color: #fff;
  box-shadow: var(--shadow-brand);
}
.btn-primary:hover { background: var(--brand-purple-600); transform: translateY(-1px); }

.btn-teal {
  background: var(--brand-teal-500);
  color: #fff;
  box-shadow: var(--shadow-teal);
}
.btn-teal:hover { background: var(--brand-teal-600); transform: translateY(-1px); }

.btn-ghost {
  background: transparent;
  color: var(--text);
  border-color: var(--border-strong);
}
.btn-ghost:hover { border-color: var(--brand-purple-500); color: var(--brand-purple-500); background: var(--brand-purple-50); }

.btn-ghost-dark {
  background: transparent;
  color: var(--text-on-dark);
  border-color: rgba(255,255,255,0.25);
}
.btn-ghost-dark:hover { border-color: #fff; background: rgba(255,255,255,0.06); }

.btn-sm { height: 36px; padding: 0 14px; font-size: 14px; }
.btn-lg { height: 52px; padding: 0 28px; font-size: 16px; }

/* Chips / badges */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  background: var(--brand-purple-50);
  color: var(--brand-purple-700);
}
.chip-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

.badge-dir {
  display: inline-flex; align-items: center; gap: 6px;
  height: 24px; padding: 0 8px; border-radius: 6px;
  font-family: var(--font-sans); font-size: 11px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase;
  border: 1px solid var(--border);
  background: var(--surface); color: var(--text-secondary);
}
.badge-dir .dot { width: 6px; height: 6px; border-radius: 2px; }

/* Card */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-xs);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  border-color: var(--border-strong);
}

section { padding: 96px 0; }
@media (max-width: 768px) { section { padding: 64px 0; } }

.rule { height: 1px; background: var(--border); border: 0; }

.nowrap { white-space: nowrap; }
.stack-sm > * + * { margin-top: 8px; }
.stack-md > * + * { margin-top: 16px; }
.stack-lg > * + * { margin-top: 24px; }
.muted { color: var(--text-muted); }
.secondary { color: var(--text-secondary); }
