/* НЭО — стили сайта. Токены дизайн-системы + компонентные классы. */
:root{
  /* Primary — deep navy. Solid, institutional; replaces the legacy purple. */
  --primary-50:#EEF2F8;
  --primary-100:#DDE5F0;
  --primary-200:#BCCAE0;
  --primary-300:#93A9C9;
  --primary-400:#5F7EA8;
  --primary-500:#35578C;
  --primary-600:#274572;
  --primary-700:#1D3459;
  --primary-800:#152742;
  --primary-900:#0E1B2E;

  /* Accent — deep teal. Used for the second colour field and supporting UI. */
  --accent-50:#E9F2F1;
  --accent-100:#D5E5E3;
  --accent-200:#A6C9C5;
  --accent-300:#78ABA6;
  --accent-400:#47857F;
  --accent-500:#2E6E68;
  --accent-600:#245853;
  --accent-700:#1A423E;

  /* Neutral — cool slate */
  --neutral-0:#FFFFFF;
  --neutral-50:#F6F7F9;
  --neutral-100:#EDEEF2;
  --neutral-200:#DFE1E8;
  --neutral-300:#C6CAD4;
  --neutral-400:#9AA0AE;
  --neutral-500:#737A8A;
  --neutral-600:#5C6373;
  --neutral-700:#454B59;
  --neutral-800:#2C313C;
  --neutral-900:#171C26;

  /* Semantic */
  --color-success:#2C7A55;
  --color-success-bg:#E8F3ED;
  --color-warning:#9C6516;
  --color-warning-bg:#F7EEE0;
  --color-danger:#A93342;
  --color-danger-bg:#F6E8EA;
  --color-info:#274572;
  --color-info-bg:#EEF2F8;

  /* Semantic aliases */
  --text-heading:var(--neutral-900);
  --text-body:var(--neutral-600);
  --text-muted:var(--neutral-500);
  --text-on-dark:var(--neutral-0);
  --text-on-primary:var(--neutral-0);

  --surface-page:#F4F5F8;
  --surface-subtle:var(--neutral-50);
  --surface-card:var(--neutral-0);
  --surface-dark:var(--primary-900);
  --surface-primary:var(--primary-600);
  --surface-primary-subtle:var(--primary-50);
  --surface-accent:var(--accent-500);
  --surface-accent-subtle:var(--accent-50);

  --border-default:var(--neutral-200);
  --border-strong:var(--neutral-300);
  --border-primary:var(--primary-200);

  --link-color:var(--primary-600);
  --link-color-hover:var(--primary-800);
}


:root{
  --font-body:'Plus Jakarta Sans',-apple-system,'Segoe UI',sans-serif;
  --font-display:'Plus Jakarta Sans',-apple-system,'Segoe UI',sans-serif;

  --fs-display-1:4rem; /* @kind font */
  --fs-display-2:2.75rem; /* @kind font */
  --fs-h1:2.25rem;
  --fs-h2:1.75rem;
  --fs-h3:1.375rem;
  --fs-h4:1.1875rem;
  --fs-lead:1.1875rem;
  --fs-body:1rem;
  --fs-small:0.90625rem;
  --fs-eyebrow:0.8125rem;

  --lh-tight:1.04; /* @kind font */
  --lh-heading:1.18; /* @kind font */
  --lh-body:1.6; /* @kind font */

  --fw-regular:400; /* @kind font */
  --fw-medium:500; /* @kind font */
  --fw-semibold:600; /* @kind font */
  --fw-bold:700; /* @kind font */
  --fw-black:800; /* @kind font */

  --ls-display:-0.03em; /* @kind font */
  --ls-heading:-0.02em; /* @kind font */
  --ls-eyebrow:0.02em; /* @kind font */
}

:root{
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:48px;
  --space-8:64px;
  --space-9:96px;
  --space-10:128px;

  --container-max:1200px;
  --section-py:var(--space-9);
  --section-py-sm:var(--space-7);
}

:root{
  --radius-sm:8px;
  --radius-md:14px;
  --radius-lg:24px;
  --radius-xl:32px;
  --radius-pill:999px;

  --shadow-sm:0 2px 6px -2px rgba(14,27,46,0.10);
  --shadow-md:0 16px 40px -28px rgba(14,27,46,0.35);
  --shadow-lg:0 28px 64px -32px rgba(14,27,46,0.28);

  --border-width:1px; /* @kind other */

  --ease-standard:cubic-bezier(.2,.7,.3,1); /* @kind other */
  --duration-fast:120ms; /* @kind other */
  --duration-base:200ms; /* @kind other */
}


/* ---------- База ---------- */
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);color:var(--text-body);background:var(--surface-page)}
img{max-width:100%}
a{color:var(--link-color);text-decoration:none}
a:hover{color:var(--link-color-hover)}
.container{max-width:var(--container-max)}
.section{padding:var(--section-py) 0;background:var(--surface-page)}
.section--dark{background:var(--surface-dark)}
.panel{background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:48px}

/* ---------- Кнопки ---------- */
.btn-neo{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--fs-body);line-height:1.2;letter-spacing:-.005em;padding:12px 24px;border-radius:var(--radius-pill);border:1.5px solid transparent;cursor:pointer;text-decoration:none;transition:background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}
.btn-neo i{font-size:1.05em;line-height:1}
.btn-neo--primary{background:var(--surface-primary);color:var(--text-on-primary);box-shadow:var(--shadow-sm)}
.btn-neo--primary:hover{background:var(--primary-700);color:var(--text-on-primary)}
.btn-neo--outline{background:var(--neutral-0);color:var(--primary-700);border-color:var(--border-default)}
.btn-neo--outline:hover{border-color:var(--border-strong);color:var(--primary-800)}
.btn-neo--dark{background:var(--neutral-900);color:var(--neutral-0)}
.btn-neo--dark:hover{background:var(--neutral-800);color:var(--neutral-0)}

/* ---------- Чип / eyebrow ---------- */
.chip{display:inline-flex;align-items:center;gap:8px;font-weight:var(--fw-semibold);font-size:var(--fs-eyebrow);letter-spacing:var(--ls-eyebrow);padding:7px 14px;border-radius:var(--radius-pill);color:var(--primary-700);background:var(--primary-50)}
.chip i{font-size:1em;line-height:1}
.chip--on-dark{color:var(--primary-100);background:rgba(255,255,255,.10)}

/* ---------- Заголовок секции ---------- */
.sh{max-width:660px}
.sh .chip{margin-bottom:var(--space-4)}
.sh h2{margin:0;font-family:var(--font-display);font-weight:var(--fw-black);font-size:var(--fs-h1);line-height:var(--lh-heading);letter-spacing:var(--ls-display);color:var(--text-heading)}
.sh p{margin:var(--space-4) 0 0;font-size:var(--fs-lead);line-height:var(--lh-body);color:var(--text-body)}
.sh--on-dark h2{color:var(--neutral-0)}
.sh--on-dark p{color:var(--primary-200)}

/* ---------- Карточки ---------- */
.card-neo{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-6);height:100%}
.card-neo h3{margin:0 0 10px;font-family:var(--font-display);font-weight:var(--fw-bold);letter-spacing:var(--ls-heading);font-size:var(--fs-h4);color:var(--text-heading)}
.card-neo p{margin:0;color:var(--text-body);line-height:var(--lh-body);font-size:var(--fs-small)}
.tile{width:46px;height:46px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.35rem;margin-bottom:var(--space-4);background:var(--primary-50);color:var(--primary-600)}
.tile--accent{background:var(--accent-50);color:var(--accent-500)}
.card-neo--dark{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);border-radius:var(--radius-lg);padding:var(--space-6);height:100%}
.card-neo--dark .tile{background:rgba(255,255,255,.10);color:var(--primary-100)}
.card-neo--dark h3{margin:0 0 10px;font-family:var(--font-display);font-weight:var(--fw-bold);letter-spacing:var(--ls-heading);font-size:var(--fs-h4);color:var(--neutral-0)}
.card-neo--dark p{margin:0;color:var(--primary-200);line-height:var(--lh-body);font-size:var(--fs-small)}

/* ---------- Контакты ---------- */
.contact{display:flex;align-items:center;gap:var(--space-3);text-decoration:none}
.contact-ico{flex:0 0 auto;width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:var(--primary-50);color:var(--primary-600);font-size:1.05rem}
.contact span:last-child{color:var(--text-heading);font-size:var(--fs-small);font-weight:var(--fw-medium);line-height:1.45}
a.contact:hover span:last-child{color:var(--primary-700)}

/* ---------- Шапка ---------- */
.site-header{background:var(--surface-page);padding:18px 0}
.site-header .container{display:flex;justify-content:space-between;align-items:center;gap:var(--space-6)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0;flex:1 1 auto}
.brand img{height:44px;width:auto;display:block;flex:0 0 auto}
.brand b{display:block;font-family:var(--font-display);font-weight:var(--fw-black);font-size:1.375rem;line-height:1;letter-spacing:var(--ls-display);color:var(--text-heading)}
.brand small{display:block;margin-top:3px;font-size:.6875rem;letter-spacing:.02em;color:var(--text-muted);line-height:1.25}
.nav-links{display:flex;gap:var(--space-6)}
.nav-links a{color:var(--text-body);font-size:var(--fs-small);font-weight:var(--fw-medium)}
.nav-links a:hover{color:var(--text-heading)}
.nav-side{display:flex;align-items:center;gap:var(--space-4)}
.nav-phone{color:var(--text-heading);font-size:var(--fs-small);font-weight:var(--fw-semibold)}
.burger{display:none;align-items:center;justify-content:center;width:46px;height:46px;flex:0 0 auto;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-heading);font-size:1.35rem;cursor:pointer}
.mobile-menu{display:none;margin-top:14px;background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5);flex-direction:column;gap:var(--space-4)}
.mobile-menu.is-open{display:flex}
.mobile-menu a{color:var(--text-heading);font-size:var(--fs-body);font-weight:var(--fw-medium)}
.mobile-menu hr{margin:0;border:0;height:1px;background:var(--border-default)}

/* ---------- Герой ---------- */
.hero{background:var(--surface-page);padding-bottom:var(--space-7)}
.hero-card{position:relative;overflow:hidden;background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:88px 64px 64px}
.blob{position:absolute;filter:blur(80px);border-radius:50%;pointer-events:none}
.blob--1{width:480px;height:480px;right:-140px;top:-180px;background:var(--primary-500);opacity:.30}
.blob--2{width:380px;height:380px;right:90px;bottom:-260px;background:var(--accent-500);opacity:.26}
.hero-body{position:relative;max-width:720px}
.hero-body h1{font-family:var(--font-display);font-weight:var(--fw-black);font-size:var(--fs-display-1);line-height:var(--lh-tight);letter-spacing:var(--ls-display);color:var(--text-heading);margin:24px 0 0}
.hero-body .lead-text{font-size:var(--fs-lead);line-height:var(--lh-body);color:var(--text-body);max-width:46ch;margin:22px 0 32px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-stats{display:flex;gap:48px;flex-wrap:wrap;margin-top:56px;padding-top:32px;border-top:1px solid var(--border-default)}
.hero-stats b{display:block;font-size:var(--fs-h2);font-weight:var(--fw-black);letter-spacing:var(--ls-display);color:var(--text-heading)}
.hero-stats span{font-size:var(--fs-small);color:var(--text-muted)}

/* ---------- Форма ---------- */
.field{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:13px 16px;width:100%;font-family:var(--font-body);font-size:var(--fs-small);color:var(--text-heading);background:var(--surface-card);outline:none}
.field:focus{border-color:var(--border-strong)}
textarea.field{min-height:130px;resize:vertical}
.form-sent{display:none;align-items:center;gap:12px;color:var(--color-success);font-size:var(--fs-lead)}
.form-alert{padding:12px 16px;border-radius:var(--radius-md);font-size:var(--fs-small);color:var(--color-danger);background:var(--color-danger-bg)}
/* FormIt пишет в эти контейнеры только при наличии текста — пустые не занимают места. */
.form-alert:empty,[data-formit-success-message]:empty{display:none}
form.formit-loading{opacity:.6}

/* ---------- Подвал ---------- */
.site-footer{background:var(--surface-dark);color:var(--primary-200);padding:var(--space-8) var(--space-5);text-align:center}
.site-footer p{margin:0;font-size:var(--fs-small);max-width:680px;margin-left:auto;margin-right:auto;line-height:var(--lh-body)}
.site-footer p+p{margin-top:12px;color:var(--primary-300)}

/* ---------- Анимация появления ---------- */
.reveal{opacity:0;transform:translateY(22px);filter:blur(6px);transition:opacity .7s var(--ease-standard),transform .7s var(--ease-standard),filter .7s var(--ease-standard);will-change:opacity,transform}
.reveal.is-in{opacity:1;transform:none;filter:none}
@media(prefers-reduced-motion:reduce){.reveal{transform:none;filter:none;transition:opacity .45s var(--ease-standard)}}

/* ---------- Адаптив ---------- */
@media(max-width:991.98px){
  .container{width:100%;max-width:100%}
  .site-header{padding:14px 0}
  .site-header .container{display:block}
  .header-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}
  .brand img{height:38px}
  .nav-links,.nav-side{display:none}
  .burger{display:flex}
  .panel{padding:32px}
}
@media(max-width:767.98px){
  :root{--fs-display-1:2.25rem;--fs-display-2:1.75rem;--fs-h1:1.75rem;--fs-h2:1.5rem;--fs-h3:1.1875rem;--fs-lead:1.0625rem;--section-py:56px}
  html,body{overflow-x:hidden;max-width:100%}
  .container{padding-left:18px;padding-right:18px}
  .hero-card{padding:36px 22px 32px}
  .panel{padding:26px 22px}
  .hero-stats{gap:24px;margin-top:36px;padding-top:24px}
  .contact span:last-child{word-break:break-word}
}
