/* ==========================================================================
   Curatum Landing Kit — «Паспорт» (lp.css)
   Общая основа для всех лендингов Curatum: токены, шрифты, базовая типографика,
   кнопки, поля формы, окно cookie, система появления при прокрутке.
   Страничные стили лежат рядом (style.css страницы). Копия этого файла лежит в sites/live/assets —
   при правке менять в обоих местах (scripts/sync-landing-kit.sh).
   Принципы движения (Эмиль Ковальски): кривые ease-out для входа, ease-in-out для движения по экрану,
   linear только для постоянного движения; нажатие scale(.97); hover только для мыши; нет scale(0);
   анимируем transform и opacity; при prefers-reduced-motion остаётся только мгновенная смена состояний.
   ========================================================================== */

@font-face{font-family:"Golos Text Variable";font-style:normal;font-display:swap;font-weight:400 900;src:url(fonts/golos-text-cyrillic-ext-wght-normal-hICkpzq7.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 Variable";font-style:normal;font-display:swap;font-weight:400 900;src:url(fonts/golos-text-cyrillic-wght-normal-mKek_fSS.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Golos Text Variable";font-style:normal;font-display:swap;font-weight:400 900;src:url(fonts/golos-text-latin-ext-wght-normal-B-I5lbAQ.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 Variable";font-style:normal;font-display:swap;font-weight:400 900;src:url(fonts/golos-text-latin-wght-normal-BS5oQT7X.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:"Lora Variable";font-style:normal;font-display:swap;font-weight:400 700;src:url(fonts/lora-cyrillic-ext-wght-normal-YcVxMP-u.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:"Lora Variable";font-style:normal;font-display:swap;font-weight:400 700;src:url(fonts/lora-cyrillic-wght-normal-UWPuZLjM.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Lora Variable";font-style:normal;font-display:swap;font-weight:400 700;src:url(fonts/lora-latin-ext-wght-normal-C2Wlntb9.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:"Lora Variable";font-style:normal;font-display:swap;font-weight:400 700;src:url(fonts/lora-latin-wght-normal-BiLcIKcI.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:"Lora Variable";font-style:italic;font-display:swap;font-weight:400 700;src:url(fonts/lora-cyrillic-ext-wght-italic-Cgu7qCFu.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:"Lora Variable";font-style:italic;font-display:swap;font-weight:400 700;src:url(fonts/lora-cyrillic-wght-italic-BWw7-oF9.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Lora Variable";font-style:italic;font-display:swap;font-weight:400 700;src:url(fonts/lora-latin-ext-wght-italic-BC6VAxdc.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:"Lora Variable";font-style:italic;font-display:swap;font-weight:400 700;src:url(fonts/lora-latin-wght-italic-DBI-iqMr.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 Variable";font-style:normal;font-display:swap;font-weight:100 800;src:url(fonts/jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.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 Variable";font-style:normal;font-display:swap;font-weight:100 800;src:url(fonts/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"JetBrains Mono Variable";font-style:normal;font-display:swap;font-weight:100 800;src:url(fonts/jetbrains-mono-greek-wght-normal-Bw9x6K1M.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 Variable";font-style:normal;font-display:swap;font-weight:100 800;src:url(fonts/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.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 Variable";font-style:normal;font-display:swap;font-weight:100 800;src:url(fonts/jetbrains-mono-latin-wght-normal-B9CIFXIH.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 {
  color-scheme: light;
  --f-display: "Lora Variable", Lora, "Times New Roman", serif;
  --f-body: "Golos Text Variable", "Golos Text", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* бумага, лист, чернила */
  --paper: #F3F0E8;
  --paper-2: #EAE6DA;
  --sheet: #FBFAF6;
  --ink: #0E1B18;
  --ink-2: #3F4B47;
  --ink-3: #5A645F;
  --line: rgba(14, 27, 24, 0.12);
  --line-2: rgba(14, 27, 24, 0.26);

  /* бренд — виридиан кита */
  --brand: #256E61;
  --brand-2: #1D5B50;
  --brand-ink: #1B5A4F;
  --on-brand: #FFFFFF;
  --wash: #DCE9E3;
  --wash-ink: #164A40;
  --wash-line: #B8D3CA;

  /* сигналы */
  --led: #2FBF8A;
  --amber: #B97A1C;
  --amber-ink: #85530E;
  --amber-wash: #F2E3C4;
  --danger: #B23A32;
  --danger-ink: #933029;
  --danger-wash: #F6E3E0;
  --ok-ink: #2D6137;
  --ok-wash: #E2EFE3;

  /* «серверная»: тёмные блоки (в обеих темах) */
  --night: #091815;
  --night-2: #10282A;
  --night-3: #16332D;
  --night-ink: #E5EFEB;
  --night-ink-2: #9AB6AD;
  --night-line: rgba(255, 255, 255, 0.12);
  --night-led: #4BE3A8;
  --night-brand: #7FCDBB;

  --r-s: 3px;
  --r: 6px;
  --r-l: 12px;
  --sh-1: 0 1px 0 rgba(14, 27, 24, 0.05), 0 14px 34px -18px rgba(14, 27, 24, 0.28);
  --sh-2: 0 2px 0 rgba(14, 27, 24, 0.05), 0 28px 60px -24px rgba(14, 27, 24, 0.4);
  --focus: 0 0 0 3px color-mix(in srgb, var(--brand) 32%, transparent);

  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-io: cubic-bezier(0.77, 0, 0.175, 1);
  --t-press: 120ms;
  --t-fast: 160ms;
  --t-base: 240ms;

  --gut: max(1.25rem, 4vw);
  --measure: 80rem;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #0A1815;
  --paper-2: #07110F;
  --sheet: #10231F;
  --ink: #E5EFEB;
  --ink-2: #B1C5BE;
  --ink-3: #8FA9A1;
  --line: rgba(255, 255, 255, 0.1);
  --line-2: rgba(255, 255, 255, 0.22);
  --brand: #2F8070;
  --brand-2: #3A9080;
  --brand-ink: #86CBBA;
  --wash: rgba(95, 166, 151, 0.16);
  --wash-ink: #BCE0D6;
  --wash-line: rgba(95, 166, 151, 0.35);
  --led: #4BE3A8;
  --amber: #D79A3B;
  --amber-ink: #EBC17C;
  --amber-wash: rgba(185, 122, 28, 0.2);
  --danger-ink: #F2A69F;
  --danger-wash: rgba(178, 58, 50, 0.2);
  --ok-ink: #9BD3A6;
  --ok-wash: rgba(59, 125, 70, 0.22);
  --night: #050E0C;
  --night-2: #0B1C18;
  --night-3: #112723;
  --sh-1: 0 1px 0 rgba(0, 0, 0, 0.3), 0 14px 34px -18px rgba(0, 0, 0, 0.7);
  --sh-2: 0 2px 0 rgba(0, 0, 0, 0.3), 0 28px 60px -24px rgba(0, 0, 0, 0.85);
}

/* ---- основа ---- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: calc(100% * var(--user-font-scale, 1)); -webkit-text-size-adjust: 100%; scroll-padding-top: 5.5rem; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 1.0625rem/1.6 var(--f-body); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button { font: inherit; color: inherit; }
::selection { background: var(--wash-line); color: var(--ink); }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; border-radius: var(--r-s); }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wrap { width: min(100% - 2 * var(--gut), var(--measure)); margin-inline: auto; }

/* ---- типографика ---- */
.eyebrow { font: 500 0.75rem/1.2 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--brand-ink); }
.display { font: 500 clamp(2.25rem, 4.4vw, 3.9rem)/1.04 var(--f-display); letter-spacing: -0.02em; text-wrap: balance; }
.display em, .h2 em { font-style: italic; color: var(--brand-ink); }
.h2 { font: 500 clamp(2rem, 3.6vw, 3.1rem)/1.06 var(--f-display); letter-spacing: -0.015em; text-wrap: balance; }
.h3 { font: 500 1.625rem/1.15 var(--f-display); letter-spacing: -0.01em; }
.lead { font-size: 1.1875rem; line-height: 1.6; color: var(--ink-2); text-wrap: pretty; }
.sub { color: var(--ink-2); max-width: 44rem; text-wrap: pretty; }
.mono { font-family: var(--f-mono); }
.lbl { font: 500 0.6875rem/1.2 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); }

/* ---- кнопки: .btn (лендинг) и .ag-btn (классы, которые рисуют скрипты теста и формы) ---- */
.btn, .ag-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 3rem; padding: 0 1.375rem;
  border: 1px solid var(--line-2); border-radius: var(--r); background: transparent; color: var(--ink);
  font: 500 1rem/1.2 var(--f-body); cursor: pointer; -webkit-tap-highlight-color: transparent; user-select: none;
  transition: transform var(--t-press) var(--ease-out), background-color var(--t-fast) ease, border-color var(--t-fast) ease, color var(--t-fast) ease, box-shadow var(--t-fast) ease;
}
.btn:active, .ag-btn:active { transform: scale(0.97); }
.btn--primary, .ag-btn--primary { background: var(--brand); border-color: var(--brand); color: var(--on-brand); }
.btn--sm, .btn.sm { min-height: 2.5rem; padding: 0 1rem; font-size: 0.9375rem; }
.ag-btn--lg { min-height: 3.25rem; padding: 0 1.625rem; }
.ag-btn--wrap { min-height: 3.25rem; padding: 0.625rem 1.5rem; text-align: center; }
.btn .arr { width: 1rem; height: 1rem; flex: none; transition: transform var(--t-base) var(--ease-out); }
.btn:focus-visible, .ag-btn:focus-visible { outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) {
  .btn:hover, .ag-btn:hover { border-color: var(--brand); color: var(--brand-ink); }
  .btn--primary:hover, .ag-btn--primary:hover { background: var(--brand-2); border-color: var(--brand-2); color: var(--on-brand); }
  .btn:hover .arr { transform: translateX(3px); }
}
.btn[disabled], .ag-btn[disabled] { opacity: 0.55; cursor: not-allowed; transform: none; }

/* ссылка-стрелка в тексте */
.lnk { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--brand-ink); font-weight: 500; cursor: pointer; background: none; border: 0; padding: 0; font-family: inherit; font-size: inherit; text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--brand-ink) 35%, transparent); text-underline-offset: 0.25em; transition: text-decoration-color var(--t-fast) ease, color var(--t-fast) ease; }
@media (hover: hover) and (pointer: fine) { .lnk:hover { text-decoration-color: currentColor; } }

/* ---- шапка и подвал ---- */
.top { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid transparent; transition: background-color var(--t-base) ease, border-color var(--t-base) ease; }
.top.is-stuck { background: color-mix(in srgb, var(--paper) 86%, transparent); -webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px); border-bottom-color: var(--line); }
.top__in { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 4.25rem; }
.brand { display: inline-flex; align-items: center; gap: 0.625rem; font: 500 1.5rem/1 var(--f-display); letter-spacing: -0.01em; }
.brand img { height: 2rem; width: auto; }
.brand b { font-weight: 500; font-style: italic; color: var(--brand-ink); }
.nav { display: flex; gap: 0.25rem; }
.nav a { position: relative; padding: 0.5rem 0.75rem; font-size: 0.9375rem; color: var(--ink-2); transition: color var(--t-fast) ease; }
.nav a::after { content: ""; position: absolute; left: 0.75rem; right: 0.75rem; bottom: 0.25rem; height: 1px; background: var(--brand); transform: scaleX(0); transform-origin: left; transition: transform var(--t-base) var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .nav a:hover { color: var(--ink); } .nav a:hover::after { transform: scaleX(1); } }
.top__tools { display: flex; align-items: center; gap: 0.625rem; }
.top__tools .short { display: none; }
.theme-btn { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 1px solid var(--line-2); border-radius: var(--r); background: transparent; color: var(--ink); cursor: pointer; transition: transform var(--t-press) var(--ease-out), border-color var(--t-fast) ease, color var(--t-fast) ease; }
.theme-btn:active { transform: scale(0.94); }
.theme-btn svg { width: 1.125rem; height: 1.125rem; }
.theme-btn .moon { display: none; }
:root[data-theme="dark"] .theme-btn .sun { display: none; }
:root[data-theme="dark"] .theme-btn .moon { display: block; }
@media (hover: hover) and (pointer: fine) { .theme-btn:hover { border-color: var(--brand); color: var(--brand-ink); } }
@media (max-width: 52rem) { .nav { display: none; } }
@media (max-width: 34rem) {
  .top__in { gap: 0.5rem; min-height: 3.75rem; }
  .brand { font-size: 1.25rem; gap: 0.5rem; }
  .brand img { height: 1.75rem; }
  .top__tools .full { display: none; }
  .top__tools .short { display: inline; }
}

.foot { border-top: 1px solid var(--line); }
.foot__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; padding-block: 2rem; color: var(--ink-3); font-size: 0.875rem; }
.foot__in a { color: var(--brand-ink); }
.cookie-link { appearance: none; border: 0; background: none; padding: 0; font: inherit; color: var(--brand-ink); cursor: pointer; text-decoration: underline; text-underline-offset: 0.2em; text-decoration-color: color-mix(in srgb, var(--brand-ink) 35%, transparent); }
@media (hover: hover) and (pointer: fine) { .cookie-link:hover { text-decoration-color: currentColor; } }

/* ---- поля формы (классы .ag-* используют request.js и quiz.js) ---- */
.ag-field { display: flex; flex-direction: column; gap: 0.375rem; min-width: 0; }
.ag-field__label { font-size: 0.875rem; font-weight: 500; color: var(--ink); padding: 0; }
.ag-field__error { color: var(--danger-ink); font-size: 0.8125rem; line-height: 1.35; }
.ag-hintline { color: var(--ink-3); font-size: 0.8125rem; line-height: 1.4; }
.req { color: var(--danger-ink); }
.ag-input {
  width: 100%; min-height: 3rem; padding: 0.625rem 0.875rem; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--sheet); color: var(--ink);
  font: 400 1rem/1.4 var(--f-body); transition: border-color var(--t-fast) ease, box-shadow var(--t-fast) ease, background-color var(--t-fast) ease;
}
textarea.ag-input { min-height: 5.5rem; resize: vertical; }
.ag-input::placeholder { color: var(--ink-3); opacity: 0.8; }
.ag-input:focus { outline: none; border-color: var(--brand); box-shadow: var(--focus); }
.ag-input--invalid, .ag-input[aria-invalid="true"] { border-color: var(--danger); }
.ag-input--invalid:focus, .ag-input[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 28%, transparent); }
select.ag-input { appearance: none; padding-right: 2.5rem; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23788480' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 0.9rem center; }
.ag-input[type="number"] { font-variant-numeric: tabular-nums; }

.ag-check { position: relative; display: flex; align-items: flex-start; gap: 0.75rem; cursor: pointer; min-width: 0; -webkit-tap-highlight-color: transparent; }
.ag-check input { position: absolute; opacity: 0; width: 1.25rem; height: 1.25rem; margin: 0; cursor: pointer; }
.ag-check__box { position: relative; flex: none; width: 1.25rem; height: 1.25rem; margin-top: 0.125rem; border: 1.5px solid var(--line-2); border-radius: 4px; background: var(--sheet);
  transition: background-color var(--t-fast) ease, border-color var(--t-fast) ease, transform var(--t-press) var(--ease-out), box-shadow var(--t-fast) ease; }
.ag-check__box::after { content: ""; position: absolute; inset: 0; background: var(--on-brand);
  clip-path: inset(0 100% 0 0); transition: clip-path var(--t-base) var(--ease-out);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 6.8' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 6.8' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.ag-check input:checked + .ag-check__box { background: var(--brand); border-color: var(--brand); }
.ag-check input:checked + .ag-check__box::after { clip-path: inset(0 0 0 0); }
.ag-check input:focus-visible + .ag-check__box { box-shadow: var(--focus); }
.ag-check:active .ag-check__box { transform: scale(0.92); }
.ag-check input:disabled { cursor: not-allowed; }
.ag-check input:disabled + .ag-check__box { opacity: 0.7; }
.ag-check__label { font-size: 0.9375rem; line-height: 1.45; color: var(--ink); min-width: 0; }
.ag-check__desc { display: block; margin-top: 0.125rem; color: var(--ink-3); font-size: 0.8125rem; line-height: 1.4; }
@media (hover: hover) and (pointer: fine) { .ag-check:hover .ag-check__box { border-color: var(--brand); } }

.ag-alert { padding: 0.875rem 1rem; border: 1px solid var(--line); border-left-width: 3px; border-radius: var(--r); background: var(--sheet); }
.ag-alert__title { font-weight: 600; font-size: 0.9375rem; }
.ag-alert__text { margin-top: 0.125rem; color: var(--ink-2); font-size: 0.9375rem; }
.ag-alert--success { border-left-color: var(--led); background: var(--ok-wash); }
.ag-alert--error { border-left-color: var(--danger); background: var(--danger-wash); }
.ag-alert--warning { border-left-color: var(--amber); background: var(--amber-wash); }
.ag-alert--info { border-left-color: var(--brand); background: var(--wash); }

/* ---- окно cookie: единое для всех лендингов Curatum ---- */
.cookie { position: fixed; z-index: 80; right: 1.25rem; bottom: 1.25rem; width: min(25rem, calc(100vw - 2.5rem)); padding: 1.25rem; border: 1px solid var(--line-2); border-radius: var(--r-l); background: var(--sheet); color: var(--ink); box-shadow: var(--sh-2); }
.cookie-title { font: 500 1.25rem/1.2 var(--f-display); margin: 0 0 0.5rem; }
.cookie-text { margin: 0 0 1rem; color: var(--ink-2); font-size: 0.8125rem; line-height: 1.5; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.cookie-actions .btn { flex: 1 1 auto; }
@media (prefers-reduced-motion: no-preference) { .cookie:not([hidden]) { animation: lp-up 420ms var(--ease-out) 600ms backwards; } }
@media (max-width: 40rem) {
  .cookie { left: 0.75rem; right: 0.75rem; bottom: 0.75rem; width: auto; padding: 0.875rem; }
  .cookie-title { font-size: 1.0625rem; margin-bottom: 0.375rem; }
  .cookie-text { font-size: 0.75rem; line-height: 1.4; margin-bottom: 0.625rem; }
  .cookie-actions { gap: 0.375rem; }
}

/* ---- появление при прокрутке: без скриптов и при reduce всё видно сразу ---- */
@keyframes lp-up { from { opacity: 0; transform: translateY(0.875rem); } }
@keyframes lp-in { from { opacity: 0; } }
@media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
  .rv:not(.in) { opacity: 0; }
  .rv.in { animation: lp-up 640ms var(--ease-out) calc(var(--i, 0) * 70ms) backwards; }
}

/* ---- светодиоды: мигание, только transform/opacity ---- */
@keyframes lp-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.25; } }

/* логотип-знак тёмный: в тёмной теме кладём его на светлую плашку */
:root[data-theme="dark"] .brand img { box-sizing: content-box; height: 1.625rem; padding: 0.1875rem 0.375rem; border-radius: var(--r); background: #F3F0E8; }

/* ---- каркас разделов: слева «рейка» с номером, справа содержимое (общий для лендингов) ---- */
.sec { border-top: 1px solid var(--line); padding-block: clamp(4rem, 8vw, 7.5rem); }
.sec__grid { display: grid; grid-template-columns: 10.5rem minmax(0, 1fr); column-gap: clamp(2rem, 4vw, 4rem); }
.sec__rail { position: sticky; top: 6rem; align-self: start; display: flex; flex-direction: column; gap: 0.5rem; }
.rail__n { font: 500 0.75rem/1 var(--f-mono); letter-spacing: 0.08em; color: var(--brand-ink); }
.rail__n::after { content: ""; display: block; width: 2rem; height: 1px; margin-top: 0.625rem; background: var(--brand); }
.rail__t { font: 500 0.6875rem/1.2 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); }
.sec__body { min-width: 0; }
.sec__head { margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.sec__head .eyebrow { margin-bottom: 1rem; }
.sec__head .sub, .sec__head .lead { margin-top: 1rem; }
.sec__cta { margin-top: 2.5rem; }
.nav a.is-here { color: var(--ink); }
.nav a.is-here::after { transform: scaleX(1); }
@media (max-width: 60rem) {
  .sec__grid { grid-template-columns: 1fr; }
  .sec__rail { position: static; flex-direction: row; align-items: center; gap: 0.75rem; margin-bottom: 1.75rem; }
  .rail__n::after { display: none; }
}

/* ---- факты: колонки с жирной линией сверху ---- */
.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem 2rem; }
.facts > div { padding-top: 1.25rem; border-top: 2px solid var(--brand); }
.facts h3 { font: 500 1.375rem/1.2 var(--f-display); margin-bottom: 0.625rem; letter-spacing: -0.01em; }
.facts p { color: var(--ink-2); font-size: 0.9375rem; line-height: 1.55; text-wrap: pretty; }
@media (max-width: 72rem) { .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 36rem) { .facts { grid-template-columns: 1fr; } }

/* ---- тёмная «серверная»: секция .sec--night локально переопределяет токены, поэтому кнопки, ссылки и подписи перекрашиваются сами ---- */
.sec--night { --ink: var(--night-ink); --ink-2: var(--night-ink-2); --ink-3: #7F9C92; --line: var(--night-line); --line-2: rgba(255, 255, 255, 0.24);
  --brand: #2F8070; --brand-2: #3A9080; --brand-ink: var(--night-brand); --wash: rgba(95, 166, 151, 0.14); --wash-line: rgba(95, 166, 151, 0.35); --wash-ink: #BCE0D6;
  --paper: var(--night); --sheet: var(--night-2); --focus: 0 0 0 3px rgba(95, 166, 151, 0.45);
  position: relative; border-top: 0; background-color: var(--night); color: var(--ink);
  background-image: radial-gradient(60rem 30rem at 88% -8%, rgba(75, 227, 168, 0.1), transparent 62%), radial-gradient(40rem 24rem at 0% 100%, rgba(75, 227, 168, 0.05), transparent 60%); }
.sec--night .eyebrow { color: var(--night-led); }

/* ---- первый экран и полоса фактов (общие для лендингов) ---- */
.hero { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr); gap: clamp(2rem, 4vw, 4.5rem); align-items: start; padding-top: clamp(2rem, 5vw, 4.5rem); }
.hero__text { padding-top: clamp(0rem, 2vw, 1.5rem); }
.hero .display { margin-bottom: 1.5rem; }
.hero .lead { max-width: 34rem; margin-bottom: 2rem; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.hero__note { max-width: 34rem; margin-top: 1rem; color: var(--ink-3); font-size: 0.875rem; line-height: 1.45; }
@media (prefers-reduced-motion: no-preference) {
  .hero__text > * { animation: lp-up 760ms var(--ease-out) backwards; }
  .hero__text > :nth-child(2) { animation-delay: 70ms; }
  .hero__text > :nth-child(3) { animation-delay: 140ms; }
  .hero__text > :nth-child(4) { animation-delay: 210ms; }
}

.strip { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--line-2); }
.strip li { display: grid; align-content: start; gap: 0.625rem; padding: 1.25rem 1.5rem 1.5rem 0; }
.strip li + li { padding-left: 1.5rem; border-left: 1px solid var(--line); }
.strip p { color: var(--ink-2); font-size: 0.9375rem; line-height: 1.5; text-wrap: pretty; }
@media (max-width: 64rem) {
  .hero { grid-template-columns: 1fr; }
  .strip { grid-template-columns: 1fr; }
  .strip li, .strip li + li { padding: 1rem 0; border-left: 0; }
  .strip li + li { border-top: 1px solid var(--line); }
}

/* ---- подвал: одинаковая высота и состав на всех лендингах ---- */
.foot__in { min-height: 5.5rem; padding-block: 1.5rem; }
.brand--foot { font-size: 1.25rem; }
.brand--foot img { height: 1.75rem; }

/* ---- нумерованные шаги ---- */
.steps { counter-reset: step; margin-top: 2rem; }
.steps li { counter-increment: step; position: relative; padding: 1rem 0 1rem 3.25rem; border-top: 1px solid var(--line-2); color: var(--ink-2); font-size: 0.9375rem; line-height: 1.5; }
.steps li::before { content: counter(step, decimal-leading-zero); position: absolute; left: 0; top: 1.1875rem; font: 500 0.75rem/1 var(--f-mono); letter-spacing: 0.06em; color: var(--brand-ink); }
.steps b { color: var(--ink); font-weight: 500; }

/* ---- шапка на узких экранах: бренд, «Заявка» и переключатель темы должны уместиться в 320 px ---- */
html { overflow-x: clip; }
@media (max-width: 34rem) { .top__tools { gap: 0.5rem; } }
@media (max-width: 26rem) {
  .top__in { gap: 0.5rem; }
  .brand { gap: 0.375rem; font-size: 1.125rem; }
  .brand img, :root[data-theme="dark"] .brand img { height: 1.5rem; }
  :root[data-theme="dark"] .brand img { height: 1.25rem; padding: 0.125rem 0.25rem; }
  .top__tools { gap: 0.375rem; }
  .top__tools .btn--sm { padding-inline: 0.75rem; }
}
@media (max-width: 21.25rem) { .brand img, :root[data-theme="dark"] .brand img { display: none; } }
