/* ══════════════════════════════════════════════════════════════════════════
   Coupix - тема магазина модулей OpenCart.
   Слои: шрифты -> токены DS Organic -> база -> компоненты DS ->
   мост к Bootstrap (ядровые страницы без шаблона темы) -> лейаут cx-*.
   Ядровой stylesheet.css НЕ подключается, Bootstrap 5 подключается.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Шрифты (latin объявлен первым, cyrillic содержит и латиницу - он и побеждает) ── */
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/manrope-latin-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('../fonts/manrope-latin-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('../fonts/manrope-latin-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('../fonts/manrope-latin-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap;
  src: url('../fonts/manrope-latin-800.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/manrope-cyrillic-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('../fonts/manrope-cyrillic-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('../fonts/manrope-cyrillic-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('../fonts/manrope-cyrillic-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope'; font-style: normal; font-weight: 800; font-display: swap;
  src: url('../fonts/manrope-cyrillic-800.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/jetbrains-mono-latin-400.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('../fonts/jetbrains-mono-latin-700.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/jetbrains-mono-cyrillic-400.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('../fonts/jetbrains-mono-cyrillic-700.woff2') format('woff2');
}

/* ── Токены DS Organic (перенесены как есть) ── */
:root {
  --color-bg: #f5ead8;
  --color-surface: #ebddc5;
  --color-text: #201e1d;
  --color-accent: #c67139;
  --color-accent-2: #7a8a5e;
  --color-divider: color-mix(in srgb, #201e1d 16%, transparent);

  --color-neutral-100: #f9f4ed;
  --color-neutral-200: #eee7db;
  --color-neutral-300: #dcd3c4;
  --color-neutral-400: #c0b6a5;
  --color-neutral-500: #a19786;
  --color-neutral-600: #82796a;
  --color-neutral-700: #645c50;
  --color-neutral-800: #474238;
  --color-neutral-900: #2e2b25;

  --color-accent-100: #fff2eb;
  --color-accent-200: #ffe1d0;
  --color-accent-300: #ffc6a5;
  --color-accent-400: #f6a06b;
  --color-accent-500: #d67f48;
  --color-accent-600: #b2622d;
  --color-accent-700: #8c491a;
  --color-accent-800: #643312;
  --color-accent-900: #402310;

  --color-accent-2-100: #f0fae1;
  --color-accent-2-200: #e1eecc;
  --color-accent-2-300: #ccdbb2;
  --color-accent-2-400: #aebf92;
  --color-accent-2-500: #8fa073;
  --color-accent-2-600: #728157;
  --color-accent-2-700: #56633f;
  --color-accent-2-800: #3d472b;
  --color-accent-2-900: #272e1b;

  --font-heading: 'Manrope', system-ui, sans-serif;
  --font-heading-weight: 800;
  --font-body: 'Manrope', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  --space-1: 4.4px;
  --space-2: 8.8px;
  --space-3: 13.2px;
  --space-4: 17.6px;
  --space-6: 26.4px;
  --space-8: 35.2px;

  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 28px;

  --shadow-sm: 0 1px 2px color-mix(in srgb, #2e2b25 14%, transparent);
  --shadow-md: 0 3px 10px color-mix(in srgb, #2e2b25 16%, transparent);
  --shadow-lg: 0 12px 32px color-mix(in srgb, #2e2b25 22%, transparent);
}

/* ── База (действует и на ядровые страницы без шаблона темы) ── */
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0; background: var(--color-bg); color: var(--color-text);
  font-family: var(--font-body); font-size: 15px; line-height: 1.55; font-weight: 400;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  line-height: 1.12; letter-spacing: -0.015em; margin: 0 0 var(--space-2);
}
h1 { font-size: 42px; letter-spacing: -0.03em; }
h2 { font-size: 32px; letter-spacing: -0.03em; }
h3 { font-size: 25px; letter-spacing: -0.03em; }
h4 { font-size: 20px; }
h5 { font-size: 16px; }
h6 { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
p { margin: 0 0 var(--space-3); }
a { color: var(--color-accent-700); text-underline-offset: 3px; }
a:hover { color: var(--color-accent); }
img { display: block; max-width: 100%; }
figure { margin: 0; }
figcaption { font-size: 11px; margin-top: var(--space-1); color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.text-muted { color: color-mix(in srgb, var(--color-text) 55%, transparent) !important; }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
::selection { background: color-mix(in srgb, var(--color-accent) 30%, transparent); }
code, kbd, pre, samp { font-family: var(--font-mono); }

.washed { filter: saturate(0.6) contrast(0.85) brightness(1.1) opacity(0.94); }
.hr { height: 1px; border: 0; margin: var(--space-4) 0; background: var(--color-divider); }

/* ── Компоненты DS (имена классов сохранены) ── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  cursor: pointer; text-decoration: none;
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 14px; line-height: 1.2; color: var(--color-text);
  background: transparent; border: 1px solid transparent;
  padding: var(--space-2) calc(var(--space-3) * 1.2);
  border-radius: var(--radius-md);
}
.btn svg { display: block; }
.btn:disabled, .btn.disabled { opacity: 0.45; cursor: not-allowed; }
.btn-primary { background: var(--color-accent); color: var(--color-bg); border-color: transparent; }
.btn-primary:hover, .btn-primary:focus { background: var(--color-accent-600); color: var(--color-bg); }
.btn-primary:active { background: var(--color-accent-700); color: var(--color-bg); }
.btn-secondary { border-color: var(--color-divider); }
.btn-secondary:hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); color: var(--color-text); }
.btn-secondary:active { background: color-mix(in srgb, var(--color-text) 14%, transparent); }
.btn-ghost { color: var(--color-accent); padding-inline: var(--space-1); }
.btn-ghost:hover { background: color-mix(in srgb, var(--color-accent) 10%, transparent); color: var(--color-accent-700); }
.btn-ghost:active { background: color-mix(in srgb, var(--color-accent) 18%, transparent); }
.btn-icon { width: 36px; height: 36px; padding: 0; }
.btn-block { width: 100%; margin-top: var(--space-2); }
.btn-lg { font-size: 15px; padding: 12px 22px; }

.field > label, .field > .col-form-label {
  display: block; font-size: 12px; margin-bottom: 5px;
  color: color-mix(in srgb, var(--color-text) 70%, transparent);
}
.input {
  width: 100%; min-height: 36px; padding: 6px 14px; font: inherit;
  font-size: 14px; color: var(--color-text); caret-color: var(--color-accent);
  background: var(--color-surface);
  border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.input:hover { border-color: color-mix(in srgb, var(--color-text) 45%, transparent); }
.input:focus, .input:focus-visible { border-color: var(--color-accent); outline-offset: 0; background: var(--color-surface); color: var(--color-text); }
.input:disabled { opacity: 0.45; cursor: not-allowed; }
textarea.input { min-height: 90px; resize: vertical; }
select.input { appearance: auto; }
.radio { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; }
.radio input, .seg-opt input {
  position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
}
.radio .dot {
  width: 16px; height: 16px; flex: none; border-radius: 50%;
  border: 1.5px solid var(--color-divider); background: transparent;
}
.radio:hover .dot { border-color: var(--color-accent); }
.radio input:checked + .dot {
  border-color: var(--color-accent); background: var(--color-accent);
  box-shadow: inset 0 0 0 4px var(--color-bg);
}
.radio input:focus-visible + .dot { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.radio input:disabled ~ .dot, .radio input:disabled ~ span { opacity: 0.45; }
.radio--pill { border-radius: 999px; padding: 7px 12px; }
.radio--pill:has(input:checked) { background: var(--color-accent-100); }
.seg {
  display: inline-flex; overflow: hidden;
  border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.seg-opt {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 12px; font-size: 13px; cursor: pointer;
}
.seg-opt + .seg-opt { border-left: 1px solid var(--color-divider); }
.seg-opt:has(input:checked) { background: var(--color-accent); color: var(--color-bg); }
.seg-opt:not(:has(input:checked)):hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); }
.seg-opt:has(input:focus-visible) { outline: 2px solid var(--color-accent); outline-offset: -2px; }

.card {
  display: flex; flex-direction: column; gap: var(--space-2);
  padding: var(--space-3); border-radius: var(--radius-md); background: var(--color-surface);
}
.card-kicker { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); }
.card-title {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 17px; line-height: 1.2;
}
.card-body { margin: 0; font-size: 13px; opacity: 0.8; flex: 1; }
.card-meta {
  display: flex; align-items: center; gap: 6px; font-size: 11px;
  color: color-mix(in srgb, var(--color-text) 50%, transparent);
}
.elev-sm { box-shadow: var(--shadow-sm); }
.elev-md { box-shadow: var(--shadow-md); }
.elev-lg { box-shadow: var(--shadow-lg); }

.tag {
  display: inline-flex; align-items: center; font-size: 11px;
  letter-spacing: 0.02em; padding: 3px 10px;
  border-radius: calc(var(--radius-md) * 0.75);
}
.tag-accent { background: var(--color-accent-100); color: var(--color-accent-800); }
.tag-accent-2 { background: var(--color-accent-2-100); color: var(--color-accent-2-800); }
.tag-neutral { background: var(--color-neutral-100); color: var(--color-neutral-800); }
.tag-outline { border: 1px solid var(--color-accent); color: var(--color-accent); }
.tag--mono { font-family: var(--font-mono); font-weight: 700; }

.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table th {
  text-align: left; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: color-mix(in srgb, var(--color-text) 60%, transparent);
  padding: var(--space-2); border-bottom: 1px solid var(--color-divider);
}
.table td, .table > :not(caption) > * > * {
  padding: var(--space-2); background: transparent;
  border-bottom: 1px solid color-mix(in srgb, var(--color-text) 8%, transparent);
  box-shadow: none;
}
.table tbody tr:hover { background: color-mix(in srgb, var(--color-text) 4%, transparent); }

.dialog-backdrop {
  position: fixed; inset: 0; display: grid; place-items: center;
  padding: var(--space-4);
  background: color-mix(in srgb, var(--color-neutral-900) 50%, transparent);
}
.dialog {
  width: min(440px, 100%); display: flex; flex-direction: column; gap: var(--space-3);
  padding: var(--space-4); border-radius: var(--radius-lg);
  background: var(--color-surface); box-shadow: var(--shadow-lg);
}
.dialog-title { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 20px; }
.dialog-body { font-size: 14px; opacity: 0.85; }
.dialog-actions { display: flex; justify-content: flex-end; gap: var(--space-2); margin-top: var(--space-2); }

/* Округление: контейнеры - radius-lg, мелкие контролы - pill */
.card, .dialog { border-radius: calc(var(--radius-lg) * 1.15); }
.btn, .tag, .seg, .input { border-radius: 999px; }
textarea.input { border-radius: var(--radius-md); }

/* ── Мост к Bootstrap: ядровые страницы и ajax-фрагменты без шаблона темы ── */
.form-control, .form-select {
  min-height: 36px; padding: 6px 14px; font-size: 14px; color: var(--color-text);
  caret-color: var(--color-accent);
  background-color: var(--color-surface);
  border: 1px solid var(--color-divider); border-radius: 999px;
}
textarea.form-control { border-radius: var(--radius-md); min-height: 90px; }
.form-control:hover, .form-select:hover { border-color: color-mix(in srgb, var(--color-text) 45%, transparent); }
.form-control:focus, .form-select:focus {
  background-color: var(--color-surface); color: var(--color-text);
  border-color: var(--color-accent); box-shadow: none; outline: 2px solid var(--color-accent); outline-offset: 0;
}
.form-control::placeholder { color: var(--color-neutral-500); }
.input-group-text {
  background: var(--color-neutral-200); border: 1px solid var(--color-divider);
  border-radius: 999px; font-size: 13px; color: var(--color-neutral-700);
}
.input-group > .form-control, .input-group > .form-select { border-radius: 999px; }
.input-group :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group :not(:last-child):not(.dropdown-menu) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.form-label, .col-form-label { font-size: 12px; color: color-mix(in srgb, var(--color-text) 70%, transparent); margin-bottom: 5px; }
legend { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 17px; margin-bottom: var(--space-2); }
.required label:not(.radio)::after, .required .col-form-label::after { content: ' *'; color: var(--color-accent); }
.form-check-input { accent-color: var(--color-accent); }
.form-check-input:checked { background-color: var(--color-accent); border-color: var(--color-accent); }
.form-check-input:focus { border-color: var(--color-accent); box-shadow: none; }
.form-text { font-size: 12px; color: var(--color-neutral-600); }
.invalid-feedback { font-size: 12px; }
.is-invalid.form-control, .is-invalid .form-control, .is-invalid.form-select, .is-invalid .form-select { border-color: var(--color-accent-700); }

/* Кнопки ядра, которых нет в словаре темы (btn-light, btn-danger и т.п.) */
.btn-light { background: var(--color-surface); border-color: var(--color-divider); color: var(--color-text); }
.btn-light:hover { background: var(--color-neutral-200); border-color: var(--color-divider); color: var(--color-text); }
.btn-danger { background: var(--color-accent-700); border-color: transparent; color: var(--color-bg); }
.btn-danger:hover { background: var(--color-accent-800); color: var(--color-bg); }
.btn-info { background: var(--color-accent-2-200); border-color: transparent; color: var(--color-accent-2-800); }
.btn-info:hover { background: var(--color-accent-2-300); color: var(--color-accent-2-800); }
.btn-inverse { background: var(--color-neutral-900); color: var(--color-neutral-100); }
.btn-primary:disabled, .btn-primary.disabled { background: var(--color-accent); border-color: transparent; }

.alert { border-radius: var(--radius-md); border: 1px solid var(--color-divider); font-size: 14px; }
.alert-success { background: var(--color-accent-2-100); color: var(--color-accent-2-800); border-color: var(--color-accent-2-300); }
.alert-danger { background: var(--color-accent-100); color: var(--color-accent-800); border-color: var(--color-accent-300); }
.alert-info { background: var(--color-neutral-100); color: var(--color-neutral-800); border-color: var(--color-neutral-300); }

.dropdown-menu {
  background: var(--color-surface); border: 1px solid var(--color-divider);
  border-radius: 20px; box-shadow: var(--shadow-lg); padding: 8px; font-size: 14px;
}
.dropdown-item { border-radius: 12px; color: var(--color-text); padding: 8px 12px; }
.dropdown-item:hover, .dropdown-item:focus { background: var(--color-neutral-200); color: var(--color-text); }
.dropdown-item.active, .dropdown-item:active { background: var(--color-accent); color: var(--color-bg); }

.pagination { gap: 6px; }
.page-link {
  border: 1px solid var(--color-divider); border-radius: 999px !important;
  background: transparent; color: var(--color-text); font-size: 13px;
  min-width: 36px; text-align: center;
}
.page-link:hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); color: var(--color-text); }
.page-item.active .page-link { background: var(--color-accent); border-color: transparent; color: var(--color-bg); }
.page-item.disabled .page-link { background: transparent; color: var(--color-neutral-500); border-color: var(--color-divider); }

.breadcrumb { font-size: 12.5px; color: var(--color-neutral-700); }
.breadcrumb a { color: var(--color-neutral-700); text-decoration: none; }
.breadcrumb a:hover { color: var(--color-accent); }
.breadcrumb-item + .breadcrumb-item::before { content: '/'; color: var(--color-neutral-500); }

.nav-tabs { border-bottom: 1px solid var(--color-divider); gap: 6px; flex-wrap: wrap; }
.nav-tabs .nav-link {
  border: 0; border-radius: 999px 999px 0 0; padding: 9px 16px;
  font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 14px;
  color: var(--color-neutral-700); background: transparent; margin-bottom: -1px;
}
.nav-tabs .nav-link:hover { color: var(--color-accent); border-color: transparent; }
.nav-tabs .nav-link.active { background: var(--color-surface); color: var(--color-accent-800); border-color: transparent; }

.accordion-item { background: var(--color-surface); border: 0; border-radius: var(--radius-md); margin-bottom: 8px; overflow: hidden; }
.accordion-button { background: var(--color-surface); color: var(--color-text); font-weight: 600; font-size: 14px; box-shadow: none; }
.accordion-button:not(.collapsed) { background: var(--color-neutral-200); color: var(--color-text); }
.accordion-button:focus { box-shadow: none; border-color: var(--color-accent); }

.img-thumbnail { border-radius: var(--radius-md); border-color: var(--color-divider); background: var(--color-neutral-200); }
.img-fluid { height: auto; }

/* ── Лейаут темы (префикс cx-) ── */
.cx-container { max-width: 1280px; margin: 0 auto; padding: 0 20px; }

/* Топбар */
.cx-topbar { border-bottom: 1px solid var(--color-divider); font-size: 12px; color: var(--color-neutral-700); }
.cx-topbar__row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding-top: 6px; padding-bottom: 6px; }
.cx-topbar__links { display: flex; gap: 12px; margin-left: auto; align-items: center; }
.cx-topbar__links a { color: var(--color-neutral-700); text-decoration: none; }
.cx-topbar__links a:hover { color: var(--color-accent); }

/* Шапка */
.cx-header { background: var(--color-bg); border-bottom: 1px solid var(--color-divider); }
.cx-header__row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding-top: 14px; padding-bottom: 14px; }
.cx-burger {
  display: none; width: 40px; height: 40px; border: 1px solid var(--color-divider); border-radius: 999px;
  background: transparent; color: var(--color-text); cursor: pointer; align-items: center; justify-content: center;
}
.cx-burger:hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); }
.cx-logo { display: flex; align-items: center; margin-right: 4px; }
.cx-logo a { display: flex; align-items: center; gap: 9px; text-decoration: none; color: var(--color-text); }
.cx-logo__mark {
  width: 34px; height: 34px; border-radius: 999px; background: var(--color-accent); color: var(--color-bg);
  display: grid; place-items: center; font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 16px;
}
.cx-logo__name { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 21px; letter-spacing: -0.02em; }
.cx-logo img { max-height: 40px; width: auto; }
.cx-header__search { position: relative; flex: 1 1 260px; min-width: 200px; }
.cx-nav { display: flex; flex-wrap: wrap; gap: 14px; font-size: 14px; align-items: center; }
.cx-nav > a, .cx-nav .cx-nav__link { color: var(--color-text); text-decoration: none; cursor: pointer; }
.cx-nav > a:hover, .cx-nav .cx-nav__link:hover { color: var(--color-accent); }
.cx-nav .dropdown-menu { min-width: 220px; }
.cx-header__icons { display: flex; align-items: center; gap: 6px; margin-left: auto; }

/* Поиск */
.cx-search { position: relative; }
.cx-search .input { padding-left: 38px; padding-right: 44px; }
.cx-search__icon {
  position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
  font-size: 13px; color: var(--color-neutral-600); pointer-events: none; display: flex;
}
.cx-search__btn {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  width: 30px; height: 30px; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--color-accent); color: var(--color-bg); display: grid; place-items: center;
}
.cx-search__btn:hover { background: var(--color-accent-600); }

/* Корзина в шапке */
.cx-cart { position: relative; }
.cx-cart__toggle { gap: 8px; }
.cx-cart__badge {
  min-width: 20px; height: 20px; border-radius: 999px; background: var(--color-accent); color: var(--color-bg);
  display: grid; place-items: center; font-family: var(--font-mono); font-size: 11px; padding: 0 5px;
}
.cx-cart__menu { min-width: 320px; max-width: 380px; font-size: 13px; }
.cx-cart__menu .table { font-size: 13px; }
.cx-cart__menu img { border-radius: var(--radius-sm); }
.cx-cart__totals td { font-size: 13px; }
.cx-cart__actions { display: flex; justify-content: space-between; gap: 8px; padding: 4px; }
.cx-cart__empty { text-align: center; padding: 24px; color: var(--color-neutral-700); }

/* Мобильное меню */
.cx-mobmenu { background: var(--color-bg); }
.cx-mobmenu .offcanvas-header { border-bottom: 1px solid var(--color-divider); }
.cx-mobmenu__title { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 18px; }
.cx-mobmenu__list { list-style: none; margin: 0; padding: 8px 0; }
.cx-mobmenu__link {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 10px 20px; color: var(--color-text); text-decoration: none; font-size: 15px;
}
.cx-mobmenu__link:hover { background: var(--color-neutral-200); color: var(--color-text); }
.cx-mobmenu__sub { list-style: none; margin: 0; padding: 0 0 6px; }
.cx-mobmenu__sub a { display: block; padding: 8px 20px 8px 34px; color: var(--color-neutral-700); text-decoration: none; font-size: 14px; }
.cx-mobmenu__sub a:hover { color: var(--color-accent); }
.cx-mobmenu__section { padding: 12px 20px 4px; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-neutral-600); }

/* Хлебные крошки */
.cx-breadcrumb { font-size: 12.5px; color: var(--color-neutral-700); margin-bottom: 10px; }
.cx-breadcrumb a { color: var(--color-neutral-700); text-decoration: none; }
.cx-breadcrumb a:hover { color: var(--color-accent); }
.cx-breadcrumb span + span::before, .cx-breadcrumb a + span::before, .cx-breadcrumb span + a::before, .cx-breadcrumb a + a::before { content: ' / '; color: var(--color-neutral-500); }

/* Заголовки страниц */
.cx-page { padding: 22px 0 44px; }
.cx-page__title { font-size: 36px; margin-bottom: 6px; }
.cx-page__count { font-size: 13.5px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-page__lead { font-size: 13.5px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }

/* Hero главной */
.cx-hero { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; padding: 40px 0 34px; }
.cx-hero__content { flex: 1 1 340px; min-width: 260px; }
.cx-hero__tag { margin-bottom: 14px; }
.cx-hero__title { font-size: 46px; margin: 12px 0 14px; max-width: 16ch; }
.cx-hero__lead { font-size: 16.5px; max-width: 46ch; color: var(--color-neutral-800); }
.cx-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.cx-hero__feats { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 26px; font-size: 13px; color: var(--color-neutral-700); }
.cx-hero__side { flex: 1 1 300px; min-width: 260px; background: var(--color-surface); border-radius: 32px; padding: 18px; box-shadow: var(--shadow-md); }
.cx-hero__dots { display: flex; gap: 6px; margin-bottom: 12px; }
.cx-hero__dots i { width: 9px; height: 9px; border-radius: 999px; background: var(--color-neutral-300); }
.cx-hero__dots i:first-child { background: var(--color-accent-300); }
.cx-terminal {
  font-family: var(--font-mono); font-size: 12.5px; line-height: 1.9;
  background: var(--color-neutral-900); color: var(--color-accent-2-300);
  border-radius: 20px; padding: 16px 18px;
}
.cx-terminal__comment { color: var(--color-neutral-400); }
.cx-terminal__hl { color: var(--color-accent-300); }
.cx-terminal__ok { color: var(--color-accent-2-400); }

/* Секции главной */
.cx-section { margin-top: 44px; }
.cx-section__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.cx-section__head h2 { margin: 0; }
.cx-section__hint { font-size: 13px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-section__link { margin-left: auto; font-size: 13.5px; color: var(--color-accent-700); text-decoration: none; }
.cx-section__link:hover { color: var(--color-accent); }
.cx-why { background: var(--color-surface); border-radius: 32px; padding: 28px; }
.cx-why__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 18px; }
.cx-why__item { display: flex; flex-direction: column; gap: 6px; }
.cx-why__icon {
  width: 40px; height: 40px; border-radius: 999px; background: var(--color-accent-200); color: var(--color-accent-800);
  display: grid; place-items: center; font-size: 17px;
}
.cx-why__item h4 { margin: 6px 0 0; }
.cx-why__item p { font-size: 13.5px; margin: 0; color: var(--color-neutral-800); }
.cx-home__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.cx-review-card { padding: 16px; gap: 8px; }
.cx-review-card__head { display: flex; align-items: center; gap: 9px; }
.cx-avatar {
  width: 32px; height: 32px; border-radius: 999px; background: var(--color-accent-2-200); color: var(--color-accent-2-800);
  display: grid; place-items: center; font-size: 13px; font-weight: 600; flex: none;
}
.cx-review-card__name { font-size: 14px; font-weight: 600; }
.cx-review-card__stars { margin-left: auto; color: var(--color-accent); letter-spacing: 1px; font-size: 12.5px; }
.cx-review-card__meta { font-size: 11.5px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-blog-item { display: flex; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--color-divider); }
.cx-blog-item__img { width: 58px; height: 58px; flex: none; border-radius: 18px; background: var(--color-neutral-300); }
.cx-blog-item__tag { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-accent-700); }
.cx-blog-item__title { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 16px; margin-top: 3px; }
.cx-blog-item__date { font-size: 12px; color: color-mix(in srgb, var(--color-text) 55%, transparent); margin-top: 3px; }

/* Сетка карточек */
.cx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(236px, 1fr)); gap: 16px; }
#product-list > * { width: 100%; }

/* Карточка модуля (product/thumb) */
.product-thumb.cx-thumb { gap: 10px; padding: 14px; }
.cx-thumb__image {
  border-radius: 20px; background: var(--color-neutral-200); overflow: hidden;
  display: block; position: relative;
}
.cx-thumb__image img { width: 100%; height: auto; }
.cx-thumb__badges { display: flex; gap: 5px; flex-wrap: wrap; }
.cx-thumb__name { font-size: 17.5px; margin: 0; }
.cx-thumb__name a { color: var(--color-text); text-decoration: none; }
.cx-thumb__name a:hover { color: var(--color-accent-700); }
.cx-thumb__rating { display: flex; align-items: center; gap: 7px; font-size: 12.5px; }
.cx-stars { color: var(--color-accent); letter-spacing: 1px; }
.cx-thumb__footer { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
.cx-thumb__footer .btn { flex: none; }
.cx-thumb__footer .cx-thumb__spacer { margin-left: auto; }
.price { font-family: var(--font-mono); font-size: 17px; font-weight: 700; }
.price .price-new { color: var(--color-text); }
.price .price-old { font-size: 13px; font-weight: 400; color: var(--color-neutral-600); text-decoration: line-through; }
.price .price-tax { display: block; font-family: var(--font-body); font-size: 11px; font-weight: 400; color: var(--color-neutral-600); }

/* Режим "Список" в каталоге */
.cx-grid--list { grid-template-columns: 1fr; }
.cx-grid--list .product-thumb.cx-thumb { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 16px; }
.cx-grid--list .cx-thumb__image { flex: 0 0 150px; }
.cx-grid--list .cx-thumb__main { flex: 1 1 200px; min-width: 180px; display: flex; flex-direction: column; gap: 7px; }
.cx-grid--list .cx-thumb__footer { flex: 0 0 170px; flex-direction: column; align-items: stretch; }
.cx-grid--list .cx-thumb__footer .btn { width: 100%; margin-top: 0; }
.cx-grid--list .cx-thumb__footer .cx-thumb__spacer { display: none; }

/* Каталог: лейаут с фильтрами */
.cx-catalog { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 18px; align-items: flex-start; }
.cx-filters { flex: 1 1 230px; min-width: 210px; max-width: 280px; background: var(--color-surface); border-radius: 28px; padding: 18px; }
.cx-filters h4 { margin-bottom: 10px; }
.cx-filters__group { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.cx-filters__count { margin-left: auto; font-size: 12px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-filters__price { display: flex; gap: 8px; margin-bottom: 8px; }
.cx-filters__range { width: 100%; accent-color: var(--color-accent); }
.cx-filters__cat { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--color-text); text-decoration: none; }
.cx-filters__cat:hover { color: var(--color-accent-700); }
.cx-catalog__content { flex: 3 1 420px; min-width: 260px; }
.cx-filters-toggle { display: none; margin-bottom: 12px; }

/* Тулбар каталога */
.cx-toolbar {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
  background: var(--color-surface); border-radius: 999px; padding: 8px 14px; margin-bottom: 16px;
}
.cx-toolbar__label { font-size: 12.5px; color: var(--color-neutral-700); }
.cx-toolbar__sorts { display: flex; flex-wrap: wrap; gap: 4px; }
.cx-pill {
  border: 0; border-radius: 999px; padding: 5px 12px; font: inherit; font-size: 12.5px;
  background: transparent; color: inherit; cursor: pointer; text-decoration: none;
}
.cx-pill:hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); color: var(--color-text); }
.cx-pill--active, .cx-pill.active { background: var(--color-accent); color: var(--color-bg); }
.cx-toolbar__view { display: flex; gap: 4px; margin-left: auto; }
.cx-toolbar__limit { display: flex; align-items: center; gap: 6px; }
.cx-toolbar__limit .form-select { min-height: 30px; padding: 2px 10px; font-size: 12.5px; width: auto; }
.cx-catalog__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-top: 26px; }
.cx-catalog__bottom .pagination { margin: 0; justify-content: center; flex: 1; }
.cx-results { font-size: 12.5px; color: var(--color-neutral-700); }

/* Пустое состояние */
.cx-empty { text-align: center; padding: 56px 20px; background: var(--color-surface); border-radius: 28px; }
.cx-empty__icon {
  width: 66px; height: 66px; border-radius: 999px; background: var(--color-neutral-200);
  margin: 0 auto 16px; display: grid; place-items: center; font-size: 24px;
}
.cx-empty p { font-size: 13.5px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }

/* Карточка товара */
.cx-product { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.cx-product__main { flex: 1 1 360px; min-width: 280px; }
.cx-product__side { flex: 1 1 300px; min-width: 270px; position: sticky; top: 20px; display: flex; flex-direction: column; gap: 14px; }
.cx-product__badges { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.cx-product__title { font-size: 34px; margin-bottom: 8px; }
.cx-product__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 13px; margin-bottom: 18px; }
.cx-product__meta a { text-decoration: none; }
.cx-gallery__main { border-radius: 26px; background: var(--color-neutral-200); overflow: hidden; }
.cx-gallery__main img { width: 100%; height: auto; }
.cx-gallery__thumbs { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.cx-gallery__thumb {
  width: 74px; height: 54px; border-radius: 14px; overflow: hidden; padding: 0; cursor: pointer;
  border: 2px solid transparent; background: var(--color-neutral-300);
}
.cx-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.cx-gallery__thumb.is-active { border-color: var(--color-accent); }
.cx-tabs { margin-top: 28px; }
.cx-tab-pane { padding: 20px 2px; }
.cx-install-step { display: flex; gap: 14px; margin-bottom: 14px; }
.cx-install-step__n {
  width: 30px; height: 30px; flex: none; border-radius: 999px; background: var(--color-accent-200); color: var(--color-accent-800);
  display: grid; place-items: center; font-family: var(--font-mono); font-size: 13px;
}
.cx-install-step__title { font-size: 14.5px; font-weight: 600; }
.cx-code {
  font-family: var(--font-mono); font-size: 12.5px; background: var(--color-neutral-900); color: var(--color-accent-2-300);
  border-radius: 14px; padding: 8px 12px; margin-top: 6px; display: inline-block;
}
.cx-faq { display: flex; flex-direction: column; gap: 8px; }
.cx-faq__item { background: var(--color-surface); border-radius: 22px; padding: 14px 18px; }
.cx-faq__q { display: flex; gap: 12px; cursor: pointer; align-items: center; background: none; border: 0; padding: 0; width: 100%; font: inherit; text-align: left; }
.cx-faq__q span:first-child { flex: 1; font-size: 14.5px; font-weight: 600; }
.cx-faq__sign { color: var(--color-accent); font-size: 17px; }
.cx-faq__a { font-size: 13.5px; margin: 10px 0 0; color: var(--color-neutral-800); display: none; }
.cx-faq__item.is-open .cx-faq__a { display: block; }

/* Сайдбар покупки */
.cx-buybox { padding: 20px; gap: 12px; }
.cx-buybox__price-row { display: flex; align-items: baseline; gap: 10px; }
.cx-buybox__price { font-family: var(--font-mono); font-size: 30px; font-weight: 700; }
.cx-buybox__price-old { font-family: var(--font-mono); font-size: 16px; color: var(--color-neutral-600); text-decoration: line-through; }
.cx-buybox__note { font-size: 12.5px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-buybox__qty { display: flex; align-items: center; gap: 8px; }
.cx-buybox__qty .form-control, .cx-buybox__qty .input { width: 64px; text-align: center; }
.cx-buybox__demo { display: flex; gap: 8px; }
.cx-buybox__demo .btn { flex: 1; }
.cx-buybox__access {
  font-family: var(--font-mono); font-size: 11.5px; background: var(--color-neutral-100);
  border-radius: 14px; padding: 9px 12px; color: var(--color-neutral-800);
}
.cx-includes { padding: 18px; gap: 10px; }
.cx-includes h4 { margin: 0; }
.cx-includes__row { display: flex; gap: 9px; font-size: 13.5px; }
.cx-includes__check { color: var(--color-accent-2-700); }
.cx-includes__row span:nth-child(2) { flex: 1; }
.cx-includes__val { color: color-mix(in srgb, var(--color-text) 55%, transparent); }

/* Опции товара внутри формы покупки - пилюли прототипа */
#form-product .form-check { padding-left: 0; margin-bottom: 8px; }
#form-product .form-check-input {
  position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; margin: 0; float: none;
}
#form-product .form-check-label {
  display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px;
  border-radius: 999px; padding: 7px 12px; width: 100%;
}
#form-product .form-check-label:hover { background: var(--color-neutral-200); }
#form-product .form-check-label::before {
  content: ''; width: 16px; height: 16px; flex: none; border-radius: 50%;
  border: 1.5px solid var(--color-divider); background: transparent;
}
#form-product .form-check-input:checked + .form-check-label { background: var(--color-accent-100); }
#form-product .form-check-input:checked + .form-check-label::before {
  border-color: var(--color-accent); background: var(--color-accent);
  box-shadow: inset 0 0 0 4px var(--color-bg);
}
#form-product .form-check-input:focus-visible + .form-check-label { outline: 2px solid var(--color-accent); outline-offset: 2px; }
#form-product .form-check-label img { border-radius: var(--radius-sm); }

/* Корзина */
.cx-cart-layout { display: flex; flex-wrap: wrap; gap: 22px; align-items: flex-start; }
.cx-cart-layout__items { flex: 2 1 380px; min-width: 270px; display: flex; flex-direction: column; gap: 12px; }
.cx-cart-item { flex-direction: row; flex-wrap: wrap; gap: 14px; padding: 14px; align-items: center; }
.cx-cart-item__img {
  width: 64px; height: 64px; flex: none; border-radius: 20px; background: var(--color-neutral-200);
  display: grid; place-items: center; font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 19px; color: var(--color-accent-700); overflow: hidden;
}
.cx-cart-item__img img { width: 100%; height: 100%; object-fit: cover; }
.cx-cart-item__info { flex: 1 1 180px; }
.cx-cart-item__name { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 17px; }
.cx-cart-item__name a { color: var(--color-text); text-decoration: none; }
.cx-cart-item__name a:hover { color: var(--color-accent-700); }
.cx-cart-item__meta { font-size: 12.5px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-cart-item__side { display: flex; align-items: center; gap: 12px; }
.cx-cart-item__price { font-family: var(--font-mono); font-size: 17px; font-weight: 700; }
.cx-cart-item__qty { display: flex; align-items: center; gap: 6px; }
.cx-cart-item__qty .form-control { width: 56px; text-align: center; }
.cx-cart__coupon { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.cx-cart__coupon .input { max-width: 200px; }
.cx-summary { flex: 1 1 260px; min-width: 250px; padding: 20px; gap: 10px; position: sticky; top: 20px; }
.cx-summary h4 { margin: 0 0 4px; }
.cx-summary__row { display: flex; font-size: 13.5px; }
.cx-summary__row span:first-child { flex: 1; color: var(--color-neutral-800); }
.cx-summary__row span:last-child { font-family: var(--font-mono); }
.cx-summary__divider { height: 1px; background: var(--color-divider); margin: 6px 0; }
.cx-summary__total { display: flex; align-items: baseline; }
.cx-summary__total span:first-child { flex: 1; font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 17px; }
.cx-summary__total span:last-child { font-family: var(--font-mono); font-size: 24px; font-weight: 700; }
.cx-summary__note { font-size: 12px; margin: 4px 0 0; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-summary__info { font-size: 12.5px; color: var(--color-neutral-800); background: var(--color-neutral-100); border-radius: 18px; padding: 12px; }

/* Checkout */
.cx-checkout__steps { display: flex; flex-direction: column; gap: 16px; }
.cx-checkout__steps > div > .card, .cx-checkout__steps > .card { border-radius: calc(var(--radius-lg) * 1.15); }

/* Успех / 404 */
.cx-done { padding: 60px 0 70px; text-align: center; }
.cx-done__icon {
  width: 84px; height: 84px; border-radius: 999px; background: var(--color-accent-2-200); color: var(--color-accent-2-800);
  display: grid; place-items: center; font-size: 34px; margin: 0 auto 20px;
}
.cx-done__text { font-size: 15.5px; max-width: 48ch; margin: 0 auto 8px; color: var(--color-neutral-800); }
.cx-done__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 22px; }
.cx-404__code { font-family: var(--font-mono); font-size: 92px; font-weight: 700; line-height: 1; color: var(--color-accent); }
.cx-404 { padding: 70px 0 90px; text-align: center; }

/* Авторизация */
.cx-auth { padding: 44px 0 64px; display: flex; justify-content: center; }
.cx-auth__card { width: 100%; max-width: 420px; padding: 24px; gap: 14px; }
.cx-auth__card--wide { max-width: 640px; }
.cx-auth__note { font-size: 12px; margin: 0; text-align: center; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-auth__link { align-self: center; font-size: 13px; color: var(--color-accent-700); text-decoration: none; }
.cx-auth__link:hover { color: var(--color-accent); }
.cx-auth .seg { align-self: stretch; }
.cx-auth .seg-opt { flex: 1; justify-content: center; }

/* Личный кабинет */
.cx-account { display: flex; flex-wrap: wrap; gap: 22px; align-items: flex-start; }
.cx-account__nav { flex: 1 1 200px; min-width: 190px; max-width: 250px; background: var(--color-surface); border-radius: 28px; padding: 16px; }
.cx-account__user { display: flex; align-items: center; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--color-divider); }
.cx-account__user .cx-avatar { width: 38px; height: 38px; background: var(--color-accent-200); color: var(--color-accent-800); font-family: var(--font-heading); font-weight: var(--font-heading-weight); }
.cx-account__user-name { font-size: 14px; font-weight: 600; }
.cx-account__user-email { font-size: 11.5px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-account__menu { display: flex; flex-direction: column; gap: 2px; margin-top: 10px; }
.cx-account__menu a {
  border-radius: 999px; padding: 8px 14px; font-size: 13.5px;
  color: var(--color-text); text-decoration: none;
}
.cx-account__menu a:hover { background: var(--color-neutral-200); color: var(--color-text); }
.cx-account__menu a.active { background: var(--color-accent); color: var(--color-bg); }
.cx-account__content { flex: 3 1 400px; min-width: 270px; }
.cx-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin-bottom: 26px; }
.cx-stat { padding: 16px; gap: 4px; }
.cx-stat__value { font-family: var(--font-mono); font-size: 28px; font-weight: 700; }
.cx-stat__note { font-size: 12px; color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-notice { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.cx-notice span:nth-child(2) { font-size: 14px; flex: 1 1 auto; }
.cx-download { flex-direction: row; flex-wrap: wrap; gap: 14px; padding: 16px; align-items: center; }
.cx-download__img {
  width: 52px; height: 52px; flex: none; border-radius: 18px; background: var(--color-neutral-200);
  display: grid; place-items: center; font-family: var(--font-heading); font-weight: var(--font-heading-weight); color: var(--color-accent-700);
}
.cx-download__info { flex: 1 1 200px; }
.cx-download__name { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 17px; }
.cx-download__file { font-size: 12.5px; font-family: var(--font-mono); color: color-mix(in srgb, var(--color-text) 55%, transparent); }
.cx-download__side { display: flex; align-items: center; gap: 8px; }
.cx-table-wrap { background: var(--color-surface); border-radius: 26px; padding: 8px 16px; }
.cx-account__title { font-size: 30px; margin-bottom: 16px; }
.cx-account__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-top: 16px; }

/* Инфо-страницы */
.cx-docs { display: flex; flex-wrap: wrap; gap: 22px; align-items: flex-start; }
.cx-docs__nav { flex: 1 1 200px; min-width: 190px; max-width: 250px; background: var(--color-surface); border-radius: 28px; padding: 16px; }
.cx-docs__nav h4 { margin: 0 0 10px; padding: 0 14px; }
.cx-docs__menu { display: flex; flex-direction: column; gap: 2px; }
.cx-docs__menu a { border-radius: 999px; padding: 8px 14px; font-size: 13.5px; color: var(--color-text); text-decoration: none; }
.cx-docs__menu a:hover { background: var(--color-neutral-200); color: var(--color-text); }
.cx-docs__menu a.active { background: var(--color-accent); color: var(--color-bg); }
.cx-docs__content { flex: 3 1 400px; min-width: 270px; }
.cx-docs__card { padding: 22px; gap: 12px; }
.cx-contact { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.cx-contact__form { flex: 1 1 300px; min-width: 250px; padding: 22px; gap: 12px; }
.cx-contact__info { flex: 1 1 220px; min-width: 210px; padding: 22px; gap: 8px; }
.cx-contact__row { font-size: 13.5px; }
.cx-contact__row--mono { font-family: var(--font-mono); }
.cx-contact__divider { height: 1px; background: var(--color-divider); margin: 6px 0; }

/* Подвал */
.cx-footer { background: var(--color-neutral-900); color: var(--color-neutral-300); padding: 30px 0; margin-top: 30px; }
.cx-footer__grid { display: flex; flex-wrap: wrap; gap: 24px; }
.cx-footer__brand { flex: 1 1 200px; min-width: 180px; }
.cx-footer__logo { display: flex; align-items: center; gap: 9px; }
.cx-footer__logo-name { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 19px; color: var(--color-neutral-100); }
.cx-footer__tagline { font-size: 12.5px; margin-top: 8px; max-width: 34ch; margin-bottom: 0; }
.cx-footer__col { flex: 1 1 140px; min-width: 130px; }
.cx-footer__title { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-accent-300); margin-bottom: 8px; }
.cx-footer__list { display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.cx-footer__list a { color: var(--color-neutral-300); text-decoration: none; }
.cx-footer__list a:hover { color: var(--color-neutral-100); }
.cx-footer__bottom { font-size: 12px; color: var(--color-neutral-500); margin-top: 22px; }
.cx-footer__bottom a { color: var(--color-neutral-400); }

/* Отзывы (ядровой фрагмент product/review внутри вкладки) */
#review .table td { border-bottom: 0; }

/* ── Адаптив ── */
@media (max-width: 991.98px) {
  h1 { font-size: 32px; }
  h2 { font-size: 26px; }
  .cx-container { padding: 0 16px; }
  .cx-burger { display: inline-flex; }
  .cx-nav { display: none; }
  .cx-header__row { gap: 10px 12px; }
  .cx-header__search { order: 5; flex: 1 1 100%; min-width: 0; }
  .cx-header__icons .btn span.cx-header__btn-text { display: none; }
  .cx-hero__title { font-size: 32px; }
  .cx-page__title { font-size: 28px; }
  .cx-filters { display: none; max-width: none; }
  .cx-filters.is-open { display: block; flex: 1 1 100%; }
  .cx-filters-toggle { display: inline-flex; }
  .cx-product__side { position: static; flex: 1 1 100%; }
  .cx-summary { position: static; }
  .cx-account__nav { flex: 1 1 100%; max-width: none; }
  .cx-account__menu { flex-direction: row; flex-wrap: wrap; }
  .cx-docs__nav { flex: 1 1 100%; max-width: none; }
  .cx-docs__menu { flex-direction: row; flex-wrap: wrap; }
  .cx-product__title { font-size: 26px; }
}

@media (max-width: 575.98px) {
  h1 { font-size: 26px; }
  .cx-hero { padding: 26px 0 22px; gap: 20px; }
  .cx-hero__title { font-size: 26px; }
  .cx-hero__side { flex: 1 1 100%; }
  .cx-page { padding: 16px 0 30px; }
  .cx-page__title { font-size: 24px; }
  .cx-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
  .cx-thumb__footer { flex-wrap: wrap; }
  .cx-toolbar { border-radius: 22px; }
  .cx-toolbar__view { margin-left: 0; }
  .cx-cart-item__side { width: 100%; justify-content: space-between; }
  .cx-done { padding: 40px 0 50px; }
  .cx-404__code { font-size: 64px; }
  .cx-buybox__demo { flex-direction: column; }
  .cx-auth__card { padding: 18px; }
  .cx-topbar__note { font-size: 11px; }
  .cx-footer { padding: 24px 0; }
  .cx-cart__menu { min-width: 280px; }
  .cx-grid--list .cx-thumb__image { flex: 0 0 100px; }
  .cx-grid--list .cx-thumb__footer { flex: 1 1 100%; flex-direction: row; align-items: center; }
  .cx-grid--list .cx-thumb__footer .btn { width: auto; }
}
