/* WebCraft Studio — main.css
 * Сгенерировано: 2026-10-12 12:21:56
 * Модули: 00-variables.css, 01-reset.css, 02-typography.css, 03-layout.css, 04-buttons.css, 05-forms.css, 06-cards.css, 07-badges.css, 08-alerts.css, 09-tables.css, 10-header.css, 11-footer.css, 12-hero.css, 13-breadcrumbs.css, 14-accordion.css, 15-tabs.css, 16-modal.css, 17-utilities.css, 18-animations.css, 20-drawer.css, 21-glass.css, 22-slider-captcha.css, 23-tooltip.css, 24-pagination.css, 25-skeleton.css, 27-scrollbar.css, 30-gallery.css, 31-carousel.css, 32-hero-slider.css, 33-backgrounds.css, 34-dropdown.css, 35-toast.css, 36-empty.css, 37-loader.css, 38-steps.css, 39-pricing.css, 40-stats.css, 41-bento.css, 42-advanced-table.css, 43-charts.css, 44-cookie.css, 45-header-footer-extended.css, 46-cart.css, 47-input-mask.css, 48-catalog.css, 49-blog.css, 50-content.css
 * НЕ редактируйте вручную — правьте modules/*.css и пересоберите.
 */

/* === 00-variables.css === */
:root {
  /* ═══ ФОН И ПОВЕРХНОСТИ ═══ */
  --color-bg:            #0f0d0b;
  --color-bg-alt:        #151210;
  --color-surface:       #1a1614;
  --color-surface-2:     #221d1a;
  --color-surface-3:     #2a2421;
  --color-surface-glass: rgba(26,22,20,.72);

  /* ═══ ГРАНИЦЫ ═══ */
  --color-border:        #2e2823;
  --color-border-strong: #453b34;
  --color-border-glow:   rgba(232,121,31,.35);

  /* ═══ ТЕКСТ ═══ */
  --color-text:          #f5efe6;
  --color-text-soft:     #d4c8ba;
  --color-muted:         #a39688;
  --color-faint:         #6b6058;

  /* ═══ АКЦЕНТЫ ═══ */
  --color-accent:        #e8791f;
  --color-accent-hover:  #f5943c;
  --color-accent-deep:   #c85a10;
  --color-accent-soft:   rgba(232,121,31,.12);
  --color-accent-glow:   rgba(232,121,31,.28);

  --color-success:       #22c55e;
  --color-success-soft:  rgba(34,197,94,.14);
  --color-warning:       #f59e0b;
  --color-warning-soft:  rgba(245,158,11,.14);
  --color-danger:        #ef4444;
  --color-danger-soft:   rgba(239,68,68,.14);
  --color-info:          #3b82f6;
  --color-info-soft:     rgba(59,130,246,.14);

  /* ═══ ДРЕВЕСНЫЕ ОТТЕНКИ (акцент 2) ═══ */
  --color-wood-light:    #a58468;
  --color-wood:          #8a6b52;
  --color-wood-dark:     #6b5340;

  /* ═══ ГРАДИЕНТЫ ═══ */
  --grad-accent:         linear-gradient(135deg,#e8791f,#c85a10);
  --grad-warm:           linear-gradient(135deg,#f5943c,#a58468);
  --grad-surface:        linear-gradient(180deg,#1a1614,#151210);
  --grad-hero:           radial-gradient(1200px 600px at 50% 0%,rgba(232,121,31,.15),transparent 60%),
                         radial-gradient(800px 400px at 80% 100%,rgba(165,132,104,.1),transparent 60%);

  /* ═══ ШРИФТЫ ═══ */
  --font-base:    -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Inter,'Helvetica Neue',Arial,sans-serif;
  --font-display: 'Inter','Segoe UI',system-ui,sans-serif;
  --font-mono:    'JetBrains Mono','SF Mono',Menlo,Consolas,monospace;

  /* ═══ РАЗМЕРЫ ШРИФТА ═══ */
  --fs-xs:   12px;
  --fs-sm:   14px;
  --fs-base: 16px;
  --fs-md:   18px;
  --fs-lg:   20px;
  --fs-xl:   24px;
  --fs-2xl:  32px;
  --fs-3xl:  42px;
  --fs-4xl:  54px;
  --fs-5xl:  72px;

  --lh-tight: 1.12;
  --lh-snug:  1.35;
  --lh-base:  1.6;

  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;
  --fw-black:    800;

  --tracking-tight: -.025em;
  --tracking-base:  -.01em;
  --tracking-wide:   .02em;

  /* ═══ SPACING ═══ */
  --s-1:  4px;   --s-2:  8px;   --s-3:  12px;  --s-4:  16px;
  --s-5:  20px;  --s-6:  24px;  --s-7:  32px;  --s-8:  40px;
  --s-9:  48px;  --s-10: 64px;  --s-11: 80px;  --s-12: 112px;

  /* ═══ РАДИУСЫ ═══ */
  --radius-xs:   4px;
  --radius-sm:   10px;
  --radius-md:   14px;
  --radius-lg:   20px;
  --radius-xl:   28px;
  --radius-2xl:  36px;
  --radius-pill: 999px;

  /* ═══ ТЕНИ ═══ */
  --shadow-xs:    0 1px 2px rgba(0,0,0,.3);
  --shadow-sm:    0 2px 6px rgba(0,0,0,.35);
  --shadow-md:    0 12px 30px rgba(0,0,0,.4);
  --shadow-lg:    0 24px 60px rgba(0,0,0,.5);
  --shadow-xl:    0 40px 100px rgba(0,0,0,.55);
  --shadow-glow:  0 0 40px rgba(232,121,31,.25);
  --shadow-accent:0 12px 32px rgba(232,121,31,.35);

  /* ═══ ПЕРЕХОДЫ ═══ */
  --t-fast:   .15s cubic-bezier(.4,0,.2,1);
  --t-base:   .28s cubic-bezier(.4,0,.2,1);
  --t-slow:   .5s  cubic-bezier(.4,0,.2,1);
  --t-bounce: .4s  cubic-bezier(.34,1.56,.64,1);

  /* ═══ КОНТЕЙНЕРЫ ═══ */
  --container:        1280px;
  --container-narrow: 760px;
  --container-wide:   1440px;
  --header-h:         76px;

  /* ═══ Z-INDEX ═══ */
  --z-header:  100;
  --z-mega:    150;
  --z-drawer:  200;
  --z-modal:   1000;
  --z-toast:   1100;

  /* ═══ ОВЕРЛЕИ ═══ */
  --overlay-scrim:  rgba(15,13,11,.8);
  --overlay-panel:  rgba(26,22,20,.85);
  --overlay-bar:    rgba(15,13,11,.72);
  --overlay-soft:   rgba(26,22,20,.5);
  --overlay-strong: rgba(15,13,11,.9);

  /* ═══ ГЛУБИНА / BLUR ═══ */
  --blur-sm: blur(8px);
  --blur-md: blur(16px);
  --blur-lg: blur(28px);
}

/* Светлая тема (только для styleguide) */
[data-theme="light"] {
  --color-bg:            #faf7f2;
  --color-bg-alt:        #f2ece4;
  --color-surface:       #ffffff;
  --color-surface-2:     #f5efe6;
  --color-surface-3:     #ebe2d5;
  --color-surface-glass: rgba(255,255,255,.72);
  --color-border:        #e0d5c4;
  --color-border-strong: #c8b9a2;
  --color-text:          #1a1614;
  --color-text-soft:     #3d342c;
  --color-muted:         #6b5d4f;
  --color-faint:         #9c8d7c;
}

/* === 01-reset.css === */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font-base);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg,video{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-xs)}
::selection{background:var(--color-accent);color:#fff}

/* Универсальная защита: атрибут hidden всегда скрывает элемент,
 * даже если у класса задан display: flex/grid/block. */
[hidden] { display: none !important; }

/* === 02-typography.css === */
/* ═══ ЗАГОЛОВКИ ═══ */
h1,h2,h3,h4,h5,h6{
  margin:0 0 .55em;
  line-height:var(--lh-tight);
  font-weight:var(--fw-bold);
  letter-spacing:var(--tracking-tight);
  color:var(--color-text);
}
h1{font-size:clamp(2.2rem,4.5vw,3.6rem);font-weight:var(--fw-black)}
h2{font-size:clamp(1.7rem,3vw,2.6rem);font-weight:var(--fw-bold)}
h3{font-size:clamp(1.25rem,2vw,1.6rem);font-weight:var(--fw-semibold)}
h4{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}
h5{font-size:var(--fs-md);font-weight:var(--fw-semibold)}
h6{font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted)}

/* Градиентный текст */
.text-grad,
.grad-text{
  background:var(--grad-accent);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
.text-grad--warm{background:var(--grad-warm);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ═══ ПАРАГРАФЫ ═══ */
p{margin:0 0 1em;color:var(--color-text-soft)}
p:last-child{margin-bottom:0}
.lead{font-size:var(--fs-md);color:var(--color-text-soft);line-height:var(--lh-snug);letter-spacing:var(--tracking-base)}
.lead--lg{font-size:var(--fs-lg)}
.muted{color:var(--color-muted)}
.faint{color:var(--color-faint)}
.strong{font-weight:var(--fw-semibold);color:var(--color-text)}

small,.text-sm{font-size:var(--fs-sm)}
.text-xs{font-size:var(--fs-xs)}
.text-lg{font-size:var(--fs-md)}
.text-xl{font-size:var(--fs-lg)}

/* ═══ EYEBROW (маленькая метка над заголовком) ═══ */
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 14px;
  font-size:12px;
  font-weight:var(--fw-semibold);
  letter-spacing:.08em;
  text-transform:uppercase;
  background:var(--color-accent-soft);
  color:var(--color-accent-hover);
  border:1px solid rgba(232,121,31,.24);
  border-radius:var(--radius-pill);
  margin-bottom:var(--s-4);
}
.eyebrow::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:var(--color-accent);
  box-shadow:0 0 12px var(--color-accent-glow);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.6;transform:scale(1.25)}
}

/* ═══ ССЫЛКИ ═══ */
a.link{
  color:var(--color-accent);
  text-decoration:none;
  border-bottom:1px solid rgba(232,121,31,.3);
  padding-bottom:1px;
  transition:color var(--t-fast),border-color var(--t-fast);
}
a.link:hover{color:var(--color-accent-hover);border-color:var(--color-accent-hover)}

/* Ссылка с анимированной стрелкой */
a.link-arrow{
  display:inline-flex;align-items:center;gap:8px;
  color:var(--color-accent);font-weight:var(--fw-semibold);
  transition:gap var(--t-base),color var(--t-fast);
}
a.link-arrow::after{
  content:'→';transition:transform var(--t-base);display:inline-block;
}
a.link-arrow:hover{gap:12px;color:var(--color-accent-hover)}
a.link-arrow:hover::after{transform:translateX(3px)}

/* ═══ СПИСКИ ═══ */
ul,ol{margin:0 0 1em;padding-left:1.4em;color:var(--color-text-soft)}
ul li,ol li{margin-bottom:.35em}
ul.list-clean{list-style:none;padding:0}
ul.list-clean li{margin-bottom:.5em;position:relative;padding-left:26px}
ul.list-clean li::before{
  content:'';position:absolute;left:0;top:.6em;
  width:14px;height:2px;background:var(--color-accent);border-radius:1px;
}
/* Список с галочками */
ul.list-check{list-style:none;padding:0}
ul.list-check li{
  position:relative;padding-left:32px;margin-bottom:.75em;color:var(--color-text-soft);
}
ul.list-check li::before{
  content:'';position:absolute;left:0;top:.15em;
  width:22px;height:22px;
  background:var(--color-accent-soft);
  border-radius:50%;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8791f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12l5 5 9-11'/></svg>");
  background-size:14px;background-position:center;background-repeat:no-repeat;
}

/* ═══ ЦИТАТЫ ═══ */
blockquote{
  margin:0 0 1em;
  padding:var(--s-5) var(--s-6);
  border-left:3px solid var(--color-accent);
  background:var(--color-surface);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  color:var(--color-text-soft);
  font-style:italic;font-size:var(--fs-md);line-height:var(--lh-snug);
}
blockquote p:last-child{margin-bottom:0}

/* ═══ КОД ═══ */
code,kbd,pre,samp{font-family:var(--font-mono);font-size:.9em}
code{background:var(--color-surface-2);padding:.15em .45em;border-radius:var(--radius-xs);color:var(--color-accent-hover)}
pre{margin:0 0 1em;padding:var(--s-5) var(--s-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto;line-height:1.5}
pre code{background:transparent;padding:0;color:inherit}

/* ═══ ЛИНИЯ ═══ */
hr{border:0;border-top:1px solid var(--color-border);margin:var(--s-8) 0}

/* ═══ ПРОПИСИ (prose) ═══ */
.prose{font-size:var(--fs-md);line-height:1.7;color:var(--color-text-soft)}
.prose h1,.prose h2,.prose h3,.prose h4{margin-top:1.6em;color:var(--color-text)}
.prose h1:first-child,.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose p{margin:0 0 1.2em}
.prose a{color:var(--color-accent);border-bottom:1px solid rgba(232,121,31,.3)}
.prose a:hover{color:var(--color-accent-hover)}
.prose img{border-radius:var(--radius-md);margin:1.5em 0}
.prose ul,.prose ol{margin:0 0 1.2em}

/* === 03-layout.css === */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--s-6);width:100%}
.container--narrow{max-width:var(--container-narrow)}
.section{padding:var(--s-10) 0;border-top:1px solid var(--color-border)}
.section:first-of-type{border-top:0}
.section__head{margin-bottom:var(--s-8);max-width:720px}
.section__head--center{margin-left:auto;margin-right:auto;text-align:center}
.section__lead{color:var(--color-muted);font-size:var(--fs-md);margin:0}
.stack{display:flex;flex-direction:column;gap:var(--s-4)}
.stack--s{gap:var(--s-2)}
.stack--l{gap:var(--s-7)}
.row{display:flex;gap:var(--s-4);flex-wrap:wrap;align-items:center}
.row--between{justify-content:space-between}
.row--center{justify-content:center}
.grid{display:grid;gap:var(--s-5)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.grid--auto{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
@media (max-width:900px){.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}
.divider{height:1px;background:var(--color-border);border:0;margin:var(--s-7) 0}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* === MOBILE-PATCH === */
@media (max-width:640px){
    .container{padding:0 var(--s-4)}
    .section{padding:var(--s-8) 0}
    .grid{gap:var(--s-4)}
    .stack{gap:var(--s-3)}
}
@media (max-width:400px){
    .container{padding:0 var(--s-3)}
}

/* === 04-buttons.css === */
/* ═══ БАЗОВАЯ КНОПКА ═══ */
.btn{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 26px;
  border-radius:var(--radius-pill);
  font-weight:var(--fw-semibold);
  font-size:15px;
  line-height:1;
  letter-spacing:var(--tracking-base);
  border:1px solid transparent;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  transition:transform var(--t-bounce),background var(--t-fast),border-color var(--t-fast),
             color var(--t-fast),box-shadow var(--t-base),filter var(--t-fast);
  white-space:nowrap;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.btn::before{
  /* Ripple-волна */
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(circle at center,rgba(255,255,255,.3),transparent 60%);
  opacity:0;transform:scale(.5);
  transition:opacity .5s,transform .5s;
  pointer-events:none;
}
.btn:active::before{opacity:1;transform:scale(1.5);transition:0s}
.btn:disabled,.btn.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none;filter:grayscale(.3)}
.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}

/* ═══ PRIMARY — градиент + glow ═══ */
.btn--primary{
  background:var(--grad-accent);
  color:#fff;
  box-shadow:0 4px 14px rgba(232,121,31,.3),
             0 1px 3px rgba(232,121,31,.4),
             inset 0 1px 0 rgba(255,255,255,.15);
}
.btn--primary:hover{
  transform:translateY(-2px);
  color:#fff;
  box-shadow:0 10px 28px rgba(232,121,31,.45),
             0 2px 6px rgba(232,121,31,.5),
             inset 0 1px 0 rgba(255,255,255,.2);
}
.btn--primary:active{transform:translateY(0)}

/* ═══ PRIMARY OUTLINE — градиентная граница через mask ═══ */
.btn--outline{
  background:transparent;
  color:var(--color-accent);
  border-color:rgba(232,121,31,.4);
}
.btn--outline:hover{
  background:var(--color-accent-soft);
  color:var(--color-accent-hover);
  border-color:var(--color-accent);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(232,121,31,.18);
}

/* ═══ GHOST — прозрачная с бордером ═══ */
.btn--ghost{
  background:var(--color-surface-2);
  color:var(--color-text);
  border-color:var(--color-border);
}
.btn--ghost:hover{
  background:var(--color-surface-3);
  border-color:var(--color-border-strong);
  transform:translateY(-2px);
}

/* ═══ SOFT ═══ */
.btn--soft{
  background:var(--color-accent-soft);
  color:var(--color-accent-hover);
  border-color:rgba(232,121,31,.2);
}
.btn--soft:hover{background:rgba(232,121,31,.18);color:var(--color-accent-hover)}

/* ═══ DANGER / SUCCESS ═══ */
.btn--danger{background:var(--color-danger);color:#fff}
.btn--danger:hover{background:#f87171;color:#fff;transform:translateY(-2px)}

.btn--success{background:var(--color-success);color:#fff}
.btn--success:hover{background:#4ade80;color:#fff;transform:translateY(-2px)}

/* ═══ GLASS ═══ */
.btn--glass{
  background:rgba(255,255,255,.06);
  color:var(--color-text);
  border-color:rgba(255,255,255,.1);
  backdrop-filter:var(--blur-md);
  -webkit-backdrop-filter:var(--blur-md);
}
.btn--glass:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18)}

/* ═══ РАЗМЕРЫ ═══ */
.btn--xs{padding:7px 14px;font-size:12px;gap:6px}
.btn--sm{padding:10px 18px;font-size:13px;gap:8px}
.btn--lg{padding:18px 34px;font-size:17px;gap:12px}
.btn--xl{padding:22px 44px;font-size:18px;gap:14px;border-radius:var(--radius-pill)}
.btn--block{display:flex;width:100%}
.btn--icon{padding:12px;aspect-ratio:1;min-width:44px;min-height:44px}
.btn--icon.btn--sm{padding:8px;min-width:36px;min-height:36px}
.btn--icon.btn--lg{padding:16px;min-width:56px;min-height:56px}

/* ═══ ИКОНКИ ВНУТРИ КНОПОК ═══ */
.btn svg{width:1.15em;height:1.15em;flex-shrink:0;transition:transform var(--t-base)}
.btn--lg svg,.btn--xl svg{width:1.2em;height:1.2em}

/* Стрелка справа, движется при hover */
.btn--arrow svg{transition:transform var(--t-base)}
.btn--arrow:hover svg{transform:translateX(4px)}

/* ═══ PILL-MENU (таб-стиль) ═══ */
.pill-group{
  display:inline-flex;gap:4px;padding:4px;
  background:var(--color-surface-2);
  border:1px solid var(--color-border);
  border-radius:var(--radius-pill);
}
.pill{
  padding:8px 16px;font-size:14px;font-weight:var(--fw-medium);
  color:var(--color-muted);
  border-radius:var(--radius-pill);
  transition:all var(--t-fast);
  text-decoration:none;
}
.pill:hover{color:var(--color-text)}
.pill.is-active{background:var(--color-accent);color:#fff;box-shadow:0 4px 12px rgba(232,121,31,.3)}

/* ═══ BTN-GROUP ═══ */
.btn-group{
  display:inline-flex;
  border-radius:var(--radius-pill);
  overflow:hidden;
  border:1px solid var(--color-border);
  background:var(--color-surface-2);
}
.btn-group .btn{border-radius:0;border:0;border-right:1px solid var(--color-border);background:transparent}
.btn-group .btn:last-child{border-right:0}
.btn-group .btn:hover{background:var(--color-surface-3)}
.btn-group .btn.is-active{background:var(--color-accent);color:#fff}

/* ═══ ССЫЛКА-КНОПКА «Показать ещё» ═══ */
.btn-more{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 22px;
  border-radius:var(--radius-pill);
  background:transparent;
  border:1px dashed var(--color-border-strong);
  color:var(--color-text-soft);
  font-weight:var(--fw-medium);
  transition:all var(--t-fast);
}
.btn-more:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft);border-style:solid}

/* ═══ FAB (floating action button) ═══ */
.btn-fab{
  position:fixed;right:24px;bottom:24px;z-index:var(--z-header);
  width:56px;height:56px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:var(--grad-accent);
  color:#fff;
  box-shadow:0 8px 24px rgba(232,121,31,.4),0 4px 12px rgba(0,0,0,.3);
  transition:transform var(--t-bounce),box-shadow var(--t-base);
}
.btn-fab:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 12px 32px rgba(232,121,31,.55)}
.btn-fab svg{width:24px;height:24px}
@media (max-width:600px){.btn-fab{right:16px;bottom:16px;width:52px;height:52px}}

/* === 05-forms.css === */
/* ═══ ФОРМА ═══ */
.form{display:grid;gap:var(--s-4);max-width:520px}
.form--wide{max-width:none}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
@media (max-width:600px){.form__row{grid-template-columns:1fr}}

.field{display:flex;flex-direction:column;gap:6px}
.field__label{
  font-size:13px;font-weight:var(--fw-medium);
  color:var(--color-text-soft);
  display:inline-flex;align-items:center;gap:4px;
}
.req{color:var(--color-danger);font-weight:var(--fw-bold)}
.field__hint{font-size:12px;color:var(--color-faint);margin-top:2px}
.field__error{font-size:12px;color:var(--color-danger);margin-top:4px}

/* ═══ INPUT ═══ */
.input,
.select,
.textarea{
  width:100%;
  padding:13px 16px;
  font-size:15px;line-height:1.4;
  color:var(--color-text);
  background:var(--color-surface-2);
  border:1.5px solid var(--color-border);
  border-radius:var(--radius-md);
  transition:border-color var(--t-fast),background var(--t-fast),box-shadow var(--t-fast);
  font-family:inherit;
  appearance:none;
}
.input::placeholder,.textarea::placeholder{color:var(--color-faint)}
.input:hover,.select:hover,.textarea:hover{border-color:var(--color-border-strong)}
.input:focus,.select:focus,.textarea:focus{
  outline:none;
  border-color:var(--color-accent);
  background:var(--color-surface);
  box-shadow:0 0 0 3px var(--color-accent-soft),0 0 20px rgba(232,121,31,.15);
}
.input:disabled,.textarea:disabled,.select:disabled{opacity:.6;cursor:not-allowed}

.input--sm{padding:9px 12px;font-size:14px;border-radius:var(--radius-sm)}
.textarea{min-height:120px;resize:vertical;line-height:1.55}
.select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a39688' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:16px;
  padding-right:44px;
}

/* ═══ CHECKBOX / RADIO ═══ */
.check{
  display:inline-flex;align-items:flex-start;gap:10px;
  cursor:pointer;font-size:13.5px;color:var(--color-text-soft);
  line-height:1.45;user-select:none;
}
.check input{position:absolute;opacity:0;pointer-events:none}
.check__box{
  position:relative;flex-shrink:0;
  width:20px;height:20px;
  border-radius:5px;
  border:1.5px solid var(--color-border-strong);
  background:var(--color-surface-2);
  transition:all var(--t-fast);
  margin-top:1px;
}
.check__box::after{
  content:'';position:absolute;
  left:6px;top:2px;
  width:5px;height:10px;
  border:solid #fff;border-width:0 2px 2px 0;
  transform:rotate(45deg) scale(0);
  transition:transform var(--t-bounce);
}
.check input:checked + .check__box{background:var(--grad-accent);border-color:transparent}
.check input:checked + .check__box::after{transform:rotate(45deg) scale(1)}
.check input:focus-visible + .check__box{box-shadow:0 0 0 3px var(--color-accent-soft)}
.check a{color:var(--color-accent);border-bottom:1px solid rgba(232,121,31,.3)}
.check a:hover{color:var(--color-accent-hover)}

/* Radio */
.radio{
  display:inline-flex;align-items:center;gap:10px;
  cursor:pointer;font-size:14px;color:var(--color-text-soft);
  padding:12px 16px;
  border:1.5px solid var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-surface-2);
  transition:all var(--t-fast);
}
.radio:hover{border-color:var(--color-border-strong)}
.radio input{position:absolute;opacity:0;pointer-events:none}
.radio__dot{
  flex-shrink:0;width:20px;height:20px;
  border-radius:50%;
  border:1.5px solid var(--color-border-strong);
  background:var(--color-surface);
  position:relative;
  transition:all var(--t-fast);
}
.radio__dot::after{
  content:'';position:absolute;inset:4px;border-radius:50%;
  background:var(--grad-accent);transform:scale(0);transition:transform var(--t-bounce);
}
.radio input:checked + .radio__dot{border-color:var(--color-accent)}
.radio input:checked + .radio__dot::after{transform:scale(1)}
.radio:has(input:checked){
  border-color:var(--color-accent);
  background:var(--color-accent-soft);
}

/* ═══ ALERT ═══ */
.alert{
  display:flex;gap:12px;
  padding:14px 18px;
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  background:var(--color-surface);
  font-size:14px;
  line-height:1.5;
}
.alert__body{flex:1;color:var(--color-text-soft)}
.alert__text{margin:0}
.alert--success{background:var(--color-success-soft);border-color:rgba(34,197,94,.3);color:#bbf7d0}
.alert--success .alert__body{color:#bbf7d0}
.alert--warning{background:var(--color-warning-soft);border-color:rgba(245,158,11,.3);color:#fde68a}
.alert--warning .alert__body{color:#fde68a}
.alert--danger{background:var(--color-danger-soft);border-color:rgba(239,68,68,.3);color:#fecaca}
.alert--danger .alert__body{color:#fecaca}
.alert--info{background:var(--color-info-soft);border-color:rgba(59,130,246,.3);color:#bfdbfe}
.alert--info .alert__body{color:#bfdbfe}

/* ═══ BADGES ═══ */
.badge{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 10px;
  font-size:11.5px;font-weight:var(--fw-semibold);
  letter-spacing:.04em;text-transform:uppercase;
  border-radius:var(--radius-pill);
  background:var(--color-surface-2);color:var(--color-text-soft);
  border:1px solid var(--color-border);
}
.badge--accent{background:var(--color-accent-soft);color:var(--color-accent-hover);border-color:rgba(232,121,31,.3)}
.badge--success{background:var(--color-success-soft);color:#4ade80;border-color:rgba(34,197,94,.3)}
.badge--danger{background:var(--color-danger-soft);color:#f87171;border-color:rgba(239,68,68,.3)}
.badge--warning{background:var(--color-warning-soft);color:#fbbf24;border-color:rgba(245,158,11,.3)}
.badge--info{background:var(--color-info-soft);color:#60a5fa;border-color:rgba(59,130,246,.3)}

/* ═══ MODAL ═══ */
.modal{
  border:0;padding:0;background:transparent;
  max-width:560px;width:calc(100% - 32px);
}
.modal::backdrop{background:var(--overlay-scrim);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm)}
.modal__inner{
  padding:var(--s-7) var(--s-6);
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-xl);
  animation:modalIn .3s cubic-bezier(.34,1.56,.64,1);
}
@keyframes modalIn{
  from{opacity:0;transform:scale(.94) translateY(20px)}
  to{opacity:1;transform:scale(1) translateY(0)}
}
.modal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:var(--s-3)}
.modal__title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-bold)}
.modal__text{margin:0 0 var(--s-5);color:var(--color-muted);font-size:14.5px;line-height:1.5}
.modal__close{
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  color:var(--color-muted);
  transition:all var(--t-fast);
  flex-shrink:0;
}
.modal__close:hover{background:var(--color-surface-2);color:var(--color-text)}
.modal__actions{
  display:flex;gap:var(--s-3);justify-content:flex-end;
  margin-top:var(--s-5);
}
@media (max-width:600px){.modal__actions{flex-direction:column-reverse}.modal__actions .btn{width:100%}}

/* === 06-cards.css === */
/* ═══ БАЗОВАЯ КАРТОЧКА ═══ */
.card{
  position:relative;
  padding:var(--s-6);
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  transition:border-color var(--t-base),transform var(--t-bounce),box-shadow var(--t-base);
}
.card--flat{background:transparent;border-color:transparent;padding:0}
.card--raised{box-shadow:var(--shadow-md)}
.card--glass{
  background:var(--color-surface-glass);
  backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);
  border-color:rgba(255,255,255,.06);
}
.card--interactive{cursor:pointer}
.card--interactive:hover{
  border-color:rgba(232,121,31,.4);
  transform:translateY(-4px);
  box-shadow:0 20px 50px rgba(0,0,0,.4),0 0 0 1px rgba(232,121,31,.2) inset;
}
/* Карточка с градиентной верхней полоской */
.card--gradient-top::before{
  content:'';position:absolute;top:0;left:20px;right:20px;height:2px;
  background:var(--grad-accent);
  border-radius:2px;
  opacity:0;transition:opacity var(--t-base);
}
.card--gradient-top:hover::before{opacity:1}

.card__icon{
  width:52px;height:52px;
  margin-bottom:var(--s-4);
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--color-accent-soft);
  color:var(--color-accent);
  border-radius:var(--radius-md);
  transition:transform var(--t-bounce),background var(--t-fast),box-shadow var(--t-fast);
}
.card__icon svg{width:26px;height:26px}
.card--interactive:hover .card__icon{
  transform:scale(1.08) rotate(-4deg);
  background:rgba(232,121,31,.2);
  box-shadow:0 8px 20px rgba(232,121,31,.25);
}
.card__icon--lg{width:64px;height:64px;border-radius:var(--radius-lg)}
.card__icon--lg svg{width:32px;height:32px}

.card__title{
  margin:0 0 var(--s-2);
  font-size:var(--fs-lg);
  font-weight:var(--fw-semibold);
  color:var(--color-text);
  line-height:1.25;
}
.card__text{margin:0;color:var(--color-muted);font-size:14.5px;line-height:1.55}
.card__meta{
  margin-top:var(--s-4);padding-top:var(--s-4);
  border-top:1px solid var(--color-border);
  font-size:var(--fs-xs);color:var(--color-faint);
}
.card__actions{margin-top:var(--s-5);display:flex;gap:var(--s-3);flex-wrap:wrap}

/* ═══ FEATURE-CARD (преимущества) ═══ */
.feature-card{
  padding:var(--s-7) var(--s-6);
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  text-align:left;
  transition:transform var(--t-bounce),border-color var(--t-base),box-shadow var(--t-base);
}
.feature-card:hover{
  transform:translateY(-6px);
  border-color:rgba(232,121,31,.35);
  box-shadow:0 24px 60px rgba(0,0,0,.4);
}
.feature-card__icon{
  width:60px;height:60px;
  margin-bottom:var(--s-5);
  display:flex;align-items:center;justify-content:center;
  background:var(--grad-accent);
  color:#fff;
  border-radius:var(--radius-lg);
  box-shadow:0 8px 24px rgba(232,121,31,.35);
}
.feature-card__icon svg{width:28px;height:28px}
.feature-card__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);margin:0 0 var(--s-3);color:var(--color-text)}
.feature-card__text{font-size:14.5px;color:var(--color-muted);line-height:1.55;margin:0}

/* ═══ PRODUCT-CARD (карточка товара) ═══ */
.product-card{
  display:flex;flex-direction:column;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:transform var(--t-bounce),border-color var(--t-base),box-shadow var(--t-base);
}
.product-card:hover{
  transform:translateY(-6px);
  border-color:rgba(232,121,31,.4);
  box-shadow:0 24px 60px rgba(0,0,0,.4);
}
.product-card__media{
  position:relative;
  aspect-ratio:4/3;
  background:var(--color-surface-2);
  overflow:hidden;
}
.product-card__media img{
  width:100%;height:100%;object-fit:cover;
  transition:transform var(--t-slow);
}
.product-card:hover .product-card__media img{transform:scale(1.06)}
.product-card__badge{
  position:absolute;top:14px;left:14px;
  padding:5px 12px;
  font-size:11px;font-weight:var(--fw-bold);
  letter-spacing:.06em;text-transform:uppercase;
  background:var(--color-accent);color:#fff;
  border-radius:var(--radius-pill);
  box-shadow:0 4px 12px rgba(232,121,31,.4);
}
.product-card__badge--sale{background:var(--color-danger)}
.product-card__badge--new{background:var(--color-success)}
.product-card__badge--hot{background:linear-gradient(135deg,#f43f5e,#f97316)}

.product-card__body{
  flex:1;display:flex;flex-direction:column;
  padding:var(--s-5) var(--s-5) var(--s-6);
}
.product-card__cat{
  font-size:11.5px;font-weight:var(--fw-semibold);
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--color-accent);
  margin-bottom:6px;
}
.product-card__title{
  margin:0 0 var(--s-2);
  font-size:15.5px;line-height:1.35;font-weight:var(--fw-semibold);
  color:var(--color-text);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.product-card__title a{color:inherit;text-decoration:none;transition:color var(--t-fast)}
.product-card__title a:hover{color:var(--color-accent)}
.product-card__desc{
  margin:0 0 var(--s-4);
  font-size:13.5px;color:var(--color-muted);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.product-card__foot{
  margin-top:auto;
  padding-top:var(--s-4);
  border-top:1px solid var(--color-border);
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);
}
.product-card__price{
  font-size:19px;font-weight:var(--fw-bold);
  color:var(--color-text);
  letter-spacing:-.02em;white-space:nowrap;
}
.product-card__price-old{
  font-size:13px;color:var(--color-faint);
  text-decoration:line-through;margin-left:6px;font-weight:var(--fw-regular);
}

/* Кнопки-иконки избранное/сравнение поверх медиа */
.product-card__fav,.product-card__cmp{
  position:absolute;top:14px;
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:rgba(15,13,11,.7);
  backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);
  color:#fff;
  transition:all var(--t-fast);
  opacity:0;transform:translateY(-4px);
}
.product-card__fav{right:14px}
.product-card__cmp{right:58px}
.product-card:hover .product-card__fav,
.product-card:hover .product-card__cmp{opacity:1;transform:translateY(0)}
.product-card__fav:hover,.product-card__cmp:hover{background:var(--color-accent);color:#fff;transform:scale(1.1)}
.product-card__fav svg,.product-card__cmp svg{width:18px;height:18px}
.product-card__fav.is-active{background:var(--color-accent);color:#fff;opacity:1;transform:translateY(0)}
.product-card__cmp.is-active{background:var(--color-info);color:#fff;opacity:1;transform:translateY(0)}

/* === 07-badges.css === */
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:var(--fw-semibold);border-radius:var(--radius-pill);background:var(--color-surface-2);color:var(--color-text-soft);border:1px solid var(--color-border);line-height:1.4}
.badge--accent{background:var(--color-accent-soft);color:var(--color-accent-hover);border-color:transparent}
.badge--success{background:var(--color-success-soft);color:#4ade80;border-color:transparent}
.badge--warning{background:var(--color-warning-soft);color:#fbbf24;border-color:transparent}
.badge--danger{background:var(--color-danger-soft);color:#f87171;border-color:transparent}
.badge--info{background:var(--color-info-soft);color:#60a5fa;border-color:transparent}
.badge--dot::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-soft);border:1px solid var(--color-border);cursor:pointer;transition:all var(--t-fast)}
.chip:hover{border-color:var(--color-accent);color:var(--color-text)}
.chip.is-active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}

/* === 08-alerts.css === */
.alert{display:flex;gap:var(--s-4);padding:var(--s-5);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:14px;line-height:1.5}
.alert__icon{width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.alert__icon svg{width:22px;height:22px}
.alert__body{flex:1}
.alert__title{margin:0 0 4px;font-weight:var(--fw-semibold);font-size:15px}
.alert__text{margin:0;color:var(--color-text-soft)}
.alert--info{border-color:transparent;background:var(--color-info-soft);color:#93c5fd}
.alert--info .alert__title{color:#bfdbfe}
.alert--info .alert__text{color:#93c5fd}
.alert--success{border-color:transparent;background:var(--color-success-soft);color:#86efac}
.alert--success .alert__title{color:#bbf7d0}
.alert--success .alert__text{color:#86efac}
.alert--warning{border-color:transparent;background:var(--color-warning-soft);color:#fcd34d}
.alert--warning .alert__title{color:#fde68a}
.alert--warning .alert__text{color:#fcd34d}
.alert--danger{border-color:transparent;background:var(--color-danger-soft);color:#fca5a5}
.alert--danger .alert__title{color:#fecaca}
.alert--danger .alert__text{color:#fca5a5}

/* === 09-tables.css === */
.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;overflow-x:auto}
.table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
.table th,.table td{padding:12px 16px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--color-border)}
.table thead th{background:var(--color-surface-2);font-weight:var(--fw-semibold);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted)}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr:hover{background:var(--color-surface)}
.table--striped tbody tr:nth-child(even){background:var(--color-surface)}
.table td.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}
/* === MOBILE-PATCH === */
@media (max-width:640px){
    .table{min-width:480px;font-size:13px}
    .table th,.table td{padding:10px 12px}
    .table thead th{font-size:11px;letter-spacing:.04em}
}
@media (max-width:420px){
    .table{min-width:440px}
    .table th,.table td{padding:8px 10px}
}

/* === 10-header.css === */
/* ═══ HEADER — фиксированный, glass ═══ */
.header{
  position:sticky;top:0;z-index:var(--z-header);
  background:rgba(15,13,11,.75);
  backdrop-filter:var(--blur-lg);
  -webkit-backdrop-filter:var(--blur-lg);
  border-bottom:1px solid rgba(232,121,31,.08);
  transition:background var(--t-base),border-color var(--t-base),box-shadow var(--t-base);
}
.header.is-scrolled{
  background:rgba(15,13,11,.92);
  border-bottom-color:rgba(232,121,31,.15);
  box-shadow:0 8px 32px rgba(0,0,0,.4);
}
.header__inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--s-6);
  height:var(--header-h);
}

/* ═══ ЛОГОТИП ═══ */
.header__logo{
  display:flex;align-items:center;gap:12px;
  color:var(--color-text);
  font-weight:var(--fw-bold);
  font-size:15px;
  letter-spacing:var(--tracking-tight);
  line-height:1.15;
  transition:transform var(--t-fast);
  flex-shrink:0;
}
.header__logo img{
  height:44px;width:44px;
  transition:transform var(--t-bounce),filter var(--t-base);
  filter:drop-shadow(0 0 12px rgba(232,121,31,.3));
}
.header__logo:hover{transform:translateY(-1px)}
.header__logo:hover img{transform:rotate(-4deg) scale(1.05);filter:drop-shadow(0 0 18px rgba(232,121,31,.5))}
.header__logo span{
  max-width:220px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:13.5px;line-height:1.2;
}
.header__logo-text{display:flex;flex-direction:column;gap:1px}
.header__logo-title{font-weight:var(--fw-bold);font-size:15px;color:var(--color-text)}
.header__logo-sub{font-size:11.5px;color:var(--color-muted);font-weight:var(--fw-medium);letter-spacing:.02em}

/* ═══ МЕНЮ ═══ */
.nav{
  display:flex;align-items:center;gap:2px;
  flex:1;justify-content:center;
}
.nav__link{
  position:relative;
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 14px;
  border-radius:var(--radius-pill);
  color:var(--color-text-soft);
  font-weight:var(--fw-medium);
  font-size:14.5px;
  transition:color var(--t-fast),background var(--t-fast);
  text-decoration:none;
  white-space:nowrap;
}
.nav__link:hover{color:var(--color-text);background:rgba(232,121,31,.06)}
.nav__link.is-active{color:var(--color-accent)}
.nav__link.is-active::after{
  content:'';position:absolute;left:50%;bottom:2px;transform:translateX(-50%);
  width:20px;height:2px;border-radius:2px;
  background:var(--grad-accent);
  box-shadow:0 0 12px var(--color-accent-glow);
}
.nav__link svg{transition:transform var(--t-base);opacity:.6;width:12px;height:12px}
.nav__link--dropdown[aria-expanded="true"] svg{transform:rotate(180deg);opacity:1}

/* ═══ MEGA-MENU ═══ */
.nav__dropdown{position:relative}
.nav__mega{
  position:absolute;
  top:calc(100% + 12px);
  left:50%;
  transform:translateX(-50%) translateY(8px);
  min-width:560px;
  padding:24px;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-lg),0 0 0 1px rgba(232,121,31,.1) inset;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity var(--t-base),transform var(--t-base),visibility var(--t-base);
  z-index:var(--z-mega);
}
.nav__dropdown.is-open .nav__mega{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.nav__mega::before{
  /* Стрелка */
  content:'';position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);
  width:14px;height:14px;
  background:var(--color-surface);
  border-top:1px solid var(--color-border);
  border-left:1px solid var(--color-border);
}
.nav__mega-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:6px;
}
.nav__mega-item{
  display:flex;gap:12px;align-items:flex-start;
  padding:12px;
  border-radius:var(--radius-md);
  transition:background var(--t-fast),transform var(--t-fast);
  text-decoration:none;color:inherit;
}
.nav__mega-item:hover{background:var(--color-surface-2);transform:translateX(3px)}
.nav__mega-icon{
  flex-shrink:0;
  width:40px;height:40px;
  border-radius:var(--radius-md);
  background:var(--color-accent-soft);
  color:var(--color-accent);
  display:flex;align-items:center;justify-content:center;
  transition:transform var(--t-bounce),background var(--t-fast);
}
.nav__mega-item:hover .nav__mega-icon{transform:scale(1.08) rotate(-3deg);background:rgba(232,121,31,.18)}
.nav__mega-icon svg{width:22px;height:22px}
.nav__mega-body{min-width:0}
.nav__mega-title{
  font-weight:var(--fw-semibold);font-size:14.5px;color:var(--color-text);
  margin-bottom:3px;line-height:1.25;
}
.nav__mega-desc{font-size:12.5px;color:var(--color-muted);line-height:1.4}

/* ═══ ACTIONS (правая часть) ═══ */
.header__actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.header__phone{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;
  border-radius:var(--radius-pill);
  color:var(--color-text);
  font-weight:var(--fw-semibold);font-size:14px;
  transition:background var(--t-fast),color var(--t-fast);
  white-space:nowrap;
}
.header__phone svg{width:15px;height:15px;color:var(--color-accent)}
.header__phone:hover{background:var(--color-accent-soft);color:var(--color-accent-hover)}

.header__search-btn,
.header-cart-link{
  position:relative;
  width:42px;height:42px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;
  color:var(--color-text-soft);
  background:transparent;
  transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast);
}
.header__search-btn:hover,
.header-cart-link:hover{
  background:var(--color-surface-2);
  color:var(--color-text);
  transform:translateY(-2px);
}
.header__search-btn svg,
.header-cart-link svg{width:19px;height:19px}

/* Бейджи корзины */
.cart-badge{
  position:absolute;top:4px;right:4px;
  min-width:18px;height:18px;
  padding:0 4px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;
  background:var(--grad-accent);
  color:#fff;
  font-size:10.5px;font-weight:var(--fw-bold);
  line-height:1;
  box-shadow:0 0 0 2px var(--color-bg);
  transition:transform var(--t-bounce);
}
.cart-badge.is-empty{display:none}
.cart-badge--muted{background:var(--color-surface-3);color:var(--color-text-soft)}
.cart-badge--info{background:var(--color-info);color:#fff}
.header-cart-link:hover .cart-badge{transform:scale(1.1)}

/* ═══ TOGGLE МОБИЛЬНОГО МЕНЮ ═══ */
.nav__toggle{
  display:none;
  width:44px;height:44px;
  align-items:center;justify-content:center;
  border-radius:var(--radius-md);
  color:var(--color-text);
  transition:background var(--t-fast);
}
.nav__toggle:hover{background:var(--color-surface-2)}

/* ═══ МОБИЛЬНЫЙ DRAWER ═══ */
@media (max-width:1024px){
  .nav{
    position:fixed;
    top:0;left:0;right:0;bottom:0;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    padding:calc(var(--header-h) + 8px) 20px 40px;
    background:var(--color-bg);
    transform:translateX(100%);
    transition:transform var(--t-base);
    overflow-y:auto;
    z-index:200;
  }
  .nav.is-open{transform:translateX(0)}
  .nav__link{
    padding:16px 14px;
    font-size:17px;
    border-radius:var(--radius-md);
    justify-content:space-between;
    width:100%;
  }
  .nav__link.is-active::after{display:none}
  .nav__link--dropdown{padding:16px 14px}
  .nav__link svg{width:16px;height:16px}
  .nav__mega{
    position:static;transform:none;
    opacity:1;visibility:visible;pointer-events:auto;
    display:none;
    min-width:auto;width:100%;
    padding:8px 0 12px;
    background:transparent;border:0;box-shadow:none;
    border-radius:0;
  }
  .nav__dropdown.is-open .nav__mega{display:block}
  .nav__mega::before{display:none}
  .nav__mega-grid{grid-template-columns:1fr;gap:2px}
  .nav__mega-item{padding:10px 12px}
  .nav__mega-icon{width:34px;height:34px}
  .nav__mega-icon svg{width:18px;height:18px}
  .nav__toggle{display:inline-flex;position:relative;z-index:210}

  .header__phone span{display:none}
  .header__phone{padding:10px;width:42px;justify-content:center}
  .header__phone svg{width:18px;height:18px}
  .header__callback{display:none}
}
@media (max-width:600px){
  :root{--header-h:64px}
  .header__logo img{height:38px;width:38px}
  .header__logo span{font-size:13px}
  .header__logo-sub{display:none}
  .header__search-btn,.header-cart-link{width:38px;height:38px}
  .header__search-btn svg,.header-cart-link svg{width:17px;height:17px}
}
@media (max-width:420px){
  .header__logo span{display:none}
}

/* Body-lock при открытом drawer */
body.nav-open{overflow:hidden}

/* === 11-footer.css === */
.footer{
  position:relative;
  padding:var(--s-11) 0 var(--s-6);
  background:var(--color-bg-alt);
  border-top:1px solid var(--color-border);
  color:var(--color-muted);
  font-size:14px;
  overflow:hidden;
}
.footer::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(232,121,31,.5),transparent);
}
.footer__grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.1fr;
  gap:var(--s-8);
  margin-bottom:var(--s-9);
}
.footer__col--brand{max-width:340px}

.footer__brand{
  display:flex;align-items:center;gap:12px;
  margin-bottom:var(--s-4);
}
.footer__brand img{width:44px;height:44px;filter:drop-shadow(0 0 12px rgba(232,121,31,.3))}
.footer__brand-name{font-weight:var(--fw-bold);font-size:16px;color:var(--color-text);letter-spacing:var(--tracking-tight);line-height:1.2}
.footer__brand-sub{font-size:12px;color:var(--color-faint);margin-top:2px}

.footer__title{
  font-weight:var(--fw-semibold);color:var(--color-text);
  margin:0 0 var(--s-4);
  font-size:13px;
  text-transform:uppercase;letter-spacing:.08em;
}
.footer__tagline{
  margin:0 0 var(--s-5);color:var(--color-muted);font-size:13.5px;line-height:1.55;
}
.footer__list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.footer__list a{
  color:var(--color-text-soft);transition:color var(--t-fast),transform var(--t-fast);
  display:inline-flex;align-items:center;gap:6px;
}
.footer__list a:hover{color:var(--color-accent);transform:translateX(2px)}
.footer__hours{color:var(--color-faint);font-size:13px}

.footer__socials{display:flex;gap:8px;margin-top:var(--s-4);flex-wrap:wrap}
.footer__social{
  width:42px;height:42px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:var(--color-surface-2);
  border:1px solid var(--color-border);
  color:var(--color-text-soft);
  transition:all var(--t-bounce);
}
.footer__social:hover{
  background:var(--grad-accent);
  border-color:transparent;
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 8px 20px rgba(232,121,31,.35);
}
.footer__social svg{width:20px;height:20px}

.footer__legal-info{
  margin-top:var(--s-5);
  padding-top:var(--s-4);
  border-top:1px solid var(--color-border);
  font-size:12px;color:var(--color-faint);line-height:1.6;
}

.footer__bottom{
  display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);
  padding-top:var(--s-6);
  border-top:1px solid var(--color-border);
  font-size:13px;color:var(--color-faint);
}
.footer__up{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--color-muted);font-weight:var(--fw-medium);
  padding:8px 14px;border-radius:var(--radius-pill);
  transition:all var(--t-fast);
}
.footer__up:hover{background:var(--color-accent-soft);color:var(--color-accent)}

@media (max-width:1024px){.footer__grid{grid-template-columns:1fr 1fr;gap:var(--s-7)}}
@media (max-width:600px){
  .footer__grid{grid-template-columns:1fr;gap:var(--s-6)}
  .footer__bottom{flex-direction:column;text-align:center;gap:var(--s-3)}
}

/* === 12-hero.css === */
/* ═══ HERO ═══ */
.hero{
  position:relative;
  padding:clamp(64px,8vw,120px) 0 clamp(56px,7vw,100px);
  overflow:hidden;
  isolation:isolate;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background:var(--grad-hero);
  z-index:-2;
}
.hero::after{
  content:'';position:absolute;inset:0;
  background-image:url("/assets/img/wood-pattern.svg");
  opacity:.4;
  z-index:-1;
  mask-image:linear-gradient(180deg,black 0%,black 50%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,black 0%,black 50%,transparent 100%);
}
.hero--center{text-align:center}
.hero--center .hero__title,
.hero--center .hero__lead,
.hero--center .hero__actions{margin-left:auto;margin-right:auto}

.hero__title{
  max-width:920px;
  margin:0 0 var(--s-5);
  font-size:clamp(2rem,5.2vw,4rem);
  line-height:1.05;
  font-weight:var(--fw-black);
  letter-spacing:-.03em;
}
.hero__title em{
  font-style:normal;
  background:var(--grad-accent);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.hero__lead{
  font-size:clamp(1rem,1.4vw,1.2rem);
  color:var(--color-text-soft);
  max-width:640px;
  margin:0 0 var(--s-8);
  line-height:1.55;
}
.hero__actions{
  display:flex;gap:var(--s-3);flex-wrap:wrap;
  margin-bottom:var(--s-9);
}
.hero--center .hero__actions{justify-content:center}

/* Метрики hero */
.hero__stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:var(--s-6);
  max-width:760px;
  padding-top:var(--s-7);
  border-top:1px solid rgba(232,121,31,.15);
}
.hero__stat{
  display:flex;flex-direction:column;gap:4px;
}
.hero__stat-value{
  font-size:clamp(1.8rem,3vw,2.6rem);
  font-weight:var(--fw-black);
  line-height:1;
  background:var(--grad-accent);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  letter-spacing:-.02em;
}
.hero__stat-label{
  font-size:13px;color:var(--color-muted);font-weight:var(--fw-medium);
  letter-spacing:.02em;
}

/* Floating элементы (стеклянные карточки) */
.hero__floats{position:absolute;inset:0;pointer-events:none;z-index:-1}
.hero__float{
  position:absolute;
  padding:14px 20px;
  background:var(--color-surface-glass);
  backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);
  border:1px solid rgba(232,121,31,.15);
  border-radius:var(--radius-lg);
  font-size:13px;font-weight:var(--fw-medium);color:var(--color-text-soft);
  box-shadow:var(--shadow-md);
  display:flex;align-items:center;gap:10px;
  animation:float 6s ease-in-out infinite;
}
.hero__float svg{width:20px;height:20px;color:var(--color-accent)}
.hero__float--a{top:18%;left:5%;animation-delay:0s}
.hero__float--b{top:60%;right:8%;animation-delay:-2s}
.hero__float--c{bottom:14%;left:12%;animation-delay:-4s}
@keyframes float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-14px)}
}
@media (max-width:1024px){.hero__floats{display:none}}

/* page-hero (для вложенных страниц) */
.page-hero{
  padding:clamp(48px,6vw,80px) 0 clamp(32px,4vw,56px);
  border-bottom:1px solid var(--color-border);
  background:radial-gradient(800px 400px at 30% 0%,rgba(232,121,31,.08),transparent 60%);
}
.page-hero h1{margin:0 0 var(--s-3);max-width:900px}
.page-hero .lead{max-width:720px}
.page-hero__breadcrumbs{margin-bottom:var(--s-4)}

/* CTA секция */
.cta-block{
  position:relative;
  padding:clamp(48px,6vw,80px);
  border-radius:var(--radius-2xl);
  background:var(--grad-accent);
  overflow:hidden;
  isolation:isolate;
  text-align:center;
}
.cta-block::before{
  content:'';position:absolute;inset:0;
  background-image:url("/assets/img/wood-pattern.svg");
  opacity:.35;
  mix-blend-mode:overlay;
  z-index:-1;
}
.cta-block h2{color:#fff;margin:0 0 var(--s-4);font-weight:var(--fw-black)}
.cta-block p{color:rgba(255,255,255,.9);font-size:var(--fs-md);max-width:600px;margin:0 auto var(--s-7)}
.cta-block .btn--primary{background:#fff;color:var(--color-accent-deep);box-shadow:0 12px 32px rgba(0,0,0,.25)}
.cta-block .btn--primary:hover{background:#fff;color:var(--color-accent-deep);box-shadow:0 16px 40px rgba(0,0,0,.35)}
.cta-block .btn--ghost{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff}
.cta-block .btn--ghost:hover{background:rgba(255,255,255,.22);color:#fff;border-color:rgba(255,255,255,.4)}

/* === 13-breadcrumbs.css === */
.breadcrumbs{font-size:13px;color:var(--color-muted);padding:var(--s-4) 0}
.breadcrumbs__list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}
.breadcrumbs__list li{display:flex;align-items:center;gap:var(--s-2);margin:0}
.breadcrumbs__list li:not(:last-child)::after{content:'/';color:var(--color-faint);margin-left:2px}
.breadcrumbs a{color:var(--color-muted);transition:color var(--t-fast)}
.breadcrumbs a:hover{color:var(--color-accent)}
.breadcrumbs [aria-current="page"]{color:var(--color-text)}

/* === 14-accordion.css === */
.accordion{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface)}
.accordion__item+.accordion__item{border-top:1px solid var(--color-border)}
.accordion__item summary{list-style:none;cursor:pointer;padding:var(--s-5);font-weight:var(--fw-semibold);display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);transition:background var(--t-fast);color:var(--color-text)}
.accordion__item summary::-webkit-details-marker{display:none}
.accordion__item summary:hover{background:var(--color-surface-2)}
.accordion__item summary::after{content:'';width:10px;height:10px;border-right:2px solid var(--color-muted);border-bottom:2px solid var(--color-muted);transform:rotate(45deg);transition:transform var(--t-base);flex-shrink:0;margin-top:-4px}
.accordion__item[open] summary::after{transform:rotate(-135deg);margin-top:4px}
.accordion__body{padding:0 var(--s-5) var(--s-5);color:var(--color-muted);font-size:15px;line-height:1.6}
.accordion__body p:last-child{margin-bottom:0}

/* === 15-tabs.css === */
.tabs{display:block}
.tabs__list{display:flex;gap:var(--s-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--s-6);overflow-x:auto}
.tabs__tab{padding:var(--s-3) var(--s-5);font-weight:var(--fw-medium);font-size:14px;color:var(--color-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--t-fast),border-color var(--t-fast);white-space:nowrap}
.tabs__tab:hover{color:var(--color-text)}
.tabs__tab.is-active{color:var(--color-text);border-bottom-color:var(--color-accent)}
.tabs__panel{display:none}
.tabs__panel.is-active{display:block;animation:fadeIn var(--t-base)}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

/* === 16-modal.css === */
dialog.modal{border:0;padding:0;background:transparent;max-width:560px;width:calc(100% - var(--s-6));color:var(--color-text)}
dialog.modal::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.modal__inner{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--s-7);box-shadow:var(--shadow-lg)}
.modal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-5)}
.modal__title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-semibold)}
.modal__close{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-muted);transition:background var(--t-fast),color var(--t-fast)}
.modal__close:hover{background:var(--color-surface-2);color:var(--color-text)}
.modal__text{color:var(--color-muted);margin:0 0 var(--s-5);font-size:15px}
.modal__actions{display:flex;gap:var(--s-3);justify-content:flex-end;flex-wrap:wrap}
/* no-extra-top-gap */

/* Широкое */
dialog.modal--wide{max-width:820px}

/* Fullscreen на маленьких экранах, обычное на больших */
@media (max-width:640px){
dialog.modal--full{max-width:none;width:100vw;height:100vh;max-height:none}
dialog.modal--full .modal__inner{width:100%;height:100%;border-radius:0;display:flex;flex-direction:column}
dialog.modal--full .modal__body{flex:1;overflow:auto}
}

/* Bottom-sheet: прижато к низу */
dialog.modal--sheet{max-width:none;width:100%;margin:auto auto 0;padding:0}
dialog.modal--sheet .modal__inner{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:560px;margin:0 auto;border-bottom:0}
dialog.modal--sheet::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(6px)}

/* Стекло (glassmorphism) */
dialog.modal--glass{max-width:560px}
dialog.modal--glass .modal__inner{background:rgba(20,20,24,.7);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
dialog.modal--glass::backdrop{background:rgba(11,11,13,.35);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%)}

/* Confirm-стиль */
.modal__icon{width:48px;height:48px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--s-4)}
.modal__icon--danger{background:var(--color-danger-soft);color:#f87171}
.modal__icon--success{background:var(--color-success-soft);color:#4ade80}
.modal__icon--warning{background:var(--color-warning-soft);color:#fbbf24}
.modal__icon svg{width:24px;height:24px}

/* === 17-utilities.css === */
/* ═══ КОНТЕЙНЕРЫ ═══ */
.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 20px;
}
.container--narrow{max-width:var(--container-narrow)}
.container--wide{max-width:var(--container-wide)}
.container--fluid{max-width:none}
@media (max-width:600px){.container{padding:0 16px}}

/* ═══ СЕКЦИИ ═══ */
.section{padding:var(--s-11) 0}
.section--sm{padding:var(--s-9) 0}
.section--lg{padding:var(--s-12) 0}
.section--dark{background:var(--color-bg-alt)}
.section--surface{background:var(--color-surface)}
@media (max-width:900px){
  .section{padding:var(--s-9) 0}
  .section--lg{padding:var(--s-10) 0}
}

/* ═══ СЕТКИ ═══ */
.grid{display:grid;gap:var(--s-5)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.grid--auto{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid--auto-sm{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.grid--auto-lg{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
@media (max-width:900px){
  .grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr}
}

/* Каталог: сетка товаров */
.products-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:var(--s-5);
}

/* Блог */
.blog-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:var(--s-6);
}

/* ═══ FLEX ═══ */
.flex{display:flex}
.flex-col{display:flex;flex-direction:column}
.flex-center{align-items:center;justify-content:center}
.flex-between{align-items:center;justify-content:space-between}
.flex-wrap{flex-wrap:wrap}
.gap-2{gap:var(--s-2)}.gap-3{gap:var(--s-3)}.gap-4{gap:var(--s-4)}.gap-5{gap:var(--s-5)}.gap-6{gap:var(--s-6)}

/* ═══ ОТСТУПЫ (margin-top) ═══ */
.mt-2{margin-top:var(--s-2)}.mt-3{margin-top:var(--s-3)}.mt-4{margin-top:var(--s-4)}
.mt-5{margin-top:var(--s-5)}.mt-6{margin-top:var(--s-6)}.mt-7{margin-top:var(--s-7)}.mt-8{margin-top:var(--s-8)}

/* ═══ ВЫРАВНИВАНИЕ ═══ */
.text-center{text-align:center}
.text-left{text-align:left}
.text-right{text-align:right}
.mx-auto{margin-left:auto;margin-right:auto}

/* ═══ РАЗМЕРЫ ═══ */
.max-w-sm{max-width:480px}.max-w-md{max-width:640px}.max-w-lg{max-width:800px}
.max-w-xl{max-width:1000px}.max-w-2xl{max-width:1200px}

/* ═══ ВИДИМОСТЬ ═══ */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.hidden{display:none !important}
.show-mobile{display:none}
.show-desktop{display:block}
@media (max-width:900px){
  .show-mobile{display:block}
  .show-desktop{display:none}
  .hide-mobile{display:none !important}
}

/* ═══ РАЗДЕЛИТЕЛЬ ═══ */
.divider{
  height:1px;
  background:linear-gradient(90deg,transparent,var(--color-border),transparent);
  margin:var(--s-8) 0;
}

/* ═══ АСПЕКТ-РАТИО ═══ */
.aspect-square{aspect-ratio:1}
.aspect-video{aspect-ratio:16/9}
.aspect-photo{aspect-ratio:4/3}

/* ═══ ПОЗИЦИЯ ═══ */
.relative{position:relative}
.sticky-top{position:sticky;top:calc(var(--header-h) + 16px)}

/* ═══ ТЕКСТ-ГРАДИЕНТ ═══ */
.text-accent{color:var(--color-accent)}
.text-muted{color:var(--color-muted)}
.text-danger{color:var(--color-danger)}
.text-success{color:var(--color-success)}

/* ═══ ДЕКОР ═══ */
.decor-glow{
  position:relative;
}
.decor-glow::before{
  content:'';position:absolute;inset:-40% -20% auto -20%;height:60%;
  background:radial-gradient(closest-side,rgba(232,121,31,.15),transparent);
  pointer-events:none;z-index:-1;
  filter:blur(40px);
}

/* === 18-animations.css === */
/* ═══ SCROLL-REVEAL ═══ */
[data-reveal]{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1);
}
[data-reveal].is-revealed{
  opacity:1;
  transform:translateY(0);
}
[data-reveal="fade"]{transform:none}
[data-reveal="left"]{transform:translateX(-28px)}
[data-reveal="right"]{transform:translateX(28px)}
[data-reveal="zoom"]{transform:scale(.94)}
[data-reveal].is-revealed{transform:none}

/* Каскад: задержки через --i */
[data-reveal]{transition-delay:calc(var(--i,0) * 80ms)}

/* ═══ FADE-IN ПРИ ЗАГРУЗКЕ ═══ */
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}
.anim-fade-in{animation:fadeInUp .6s cubic-bezier(.4,0,.2,1) both}
.anim-fade-in--d1{animation-delay:.15s}
.anim-fade-in--d2{animation-delay:.3s}
.anim-fade-in--d3{animation-delay:.45s}

/* ═══ PULSE ═══ */
@keyframes pulseAccent{
  0%,100%{box-shadow:0 0 0 0 rgba(232,121,31,.5)}
  50%{box-shadow:0 0 0 12px rgba(232,121,31,0)}
}
.pulse{animation:pulseAccent 2s ease-in-out infinite}

/* ═══ SHIMMER (для скелетонов) ═══ */
@keyframes shimmer{
  0%{background-position:-200% 0}
  100%{background-position:200% 0}
}
.skeleton{
  background:linear-gradient(90deg,var(--color-surface-2) 0%,var(--color-surface-3) 50%,var(--color-surface-2) 100%);
  background-size:200% 100%;
  animation:shimmer 1.8s linear infinite;
  border-radius:var(--radius-md);
}

/* ═══ RIPPLE ЭФФЕКТ ═══ */
.ripple{position:relative;overflow:hidden}
.ripple::after{
  content:'';position:absolute;top:50%;left:50%;
  width:5px;height:5px;
  background:rgba(255,255,255,.5);
  border-radius:50%;
  transform:translate(-50%,-50%) scale(0);
  opacity:0;
  transition:transform .6s,opacity .6s;
}
.ripple:active::after{
  transform:translate(-50%,-50%) scale(20);
  opacity:0;
  transition:0s;
}

/* ═══ HOVER-LIFT ═══ */
.hover-lift{transition:transform var(--t-bounce)}
.hover-lift:hover{transform:translateY(-4px)}

/* ═══ ГРАДИЕНТНЫЙ BORDER (для карточек) ═══ */
.grad-border{
  position:relative;
  border-radius:var(--radius-lg);
  padding:1px;
  background:linear-gradient(135deg,rgba(232,121,31,.4),rgba(165,132,104,.2),rgba(232,121,31,.4));
}
.grad-border > *{
  border-radius:calc(var(--radius-lg) - 1px);
  background:var(--color-surface);
}

/* ═══ REDUCED MOTION ═══ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* === 20-drawer.css === */
/* Drawer — выезжающие панели: справа, слева, сверху, снизу */
.drawer{position:fixed;top:0;bottom:0;width:min(380px,92vw);background:var(--color-surface);z-index:var(--z-modal);display:flex;flex-direction:column;transition:transform var(--t-base);will-change:transform;box-shadow:var(--shadow-lg);overflow:hidden}
.drawer--right{right:0;transform:translateX(100%);border-left:1px solid var(--color-border)}
.drawer--left{left:0;transform:translateX(-100%);border-right:1px solid var(--color-border)}
.drawer--bottom{top:auto;left:0;right:0;bottom:0;width:100%;max-width:none;max-height:85vh;transform:translateY(100%);border-top:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.drawer--top{top:0;left:0;right:0;bottom:auto;width:100%;max-width:none;transform:translateY(-100%);border-bottom:1px solid var(--color-border)}
.drawer.is-open{transform:translateX(0) translateY(0)}
.drawer__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-5) var(--s-6);border-bottom:1px solid var(--color-border);flex-shrink:0}
.drawer__title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold)}
.drawer__close{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-muted);transition:background var(--t-fast),color var(--t-fast);flex-shrink:0}
.drawer__close:hover{background:var(--color-surface-2);color:var(--color-text)}
.drawer__body{flex:1;overflow-y:auto;padding:var(--s-6);color:var(--color-text-soft);font-size:15px;line-height:1.6}
.drawer__foot{padding:var(--s-5) var(--s-6);border-top:1px solid var(--color-border);display:flex;gap:var(--s-3);justify-content:flex-end;flex-wrap:wrap;flex-shrink:0}
.drawer--glass .drawer__inner-bg{position:absolute;inset:0;background:rgba(20,20,24,.7);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);z-index:-1}
.drawer--glass{border-color:rgba(255,255,255,.1);background:transparent;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
/* Light theme: стеклянный drawer */
[data-theme="light"] .drawer--glass{
    background:rgba(255,255,255,.72);
    border-color:rgba(20,22,26,.08);
}
[data-theme="light"] .drawer--glass .drawer__inner-bg{
    background:rgba(255,255,255,.72);
}
/* === DRAWER-SHADOW-FIX === */
/* Тень закрытого drawer не должна быть видна у краёв экрана.
   Решение: скрывать тень, пока drawer закрыт. При открытии — показывать. */

.drawer {
    /* По умолчанию (закрыт) — тень выключена */
    box-shadow: none;
    /* visibility:hidden исключает тень из рендера полностью */
    visibility: hidden;
    /* При закрытии: сначала едет transform, потом через t-base включается visibility */
    transition: transform var(--t-base), visibility 0s linear var(--t-base);
}

.drawer.is-open {
    /* Открыт — показываем тень */
    box-shadow: var(--shadow-lg);
    visibility: visible;
    /* При открытии: visibility включается сразу (0s задержки) */
    transition: transform var(--t-base), visibility 0s linear 0s;
}

/* Стеклянный вариант — сохранить ту же логику */
.drawer--glass {
    visibility: hidden;
    transition: transform var(--t-base), visibility 0s linear var(--t-base);
}
.drawer--glass.is-open {
    visibility: visible;
    transition: transform var(--t-base), visibility 0s linear 0s;
}

/* === 21-glass.css === */
/* Подложка с эффектом «матовое стекло» (frosted glass) */
.glass-backdrop{position:fixed;inset:0;z-index:var(--z-modal);background:rgba(11,11,13,.55);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);opacity:0;pointer-events:none;transition:opacity var(--t-base);will-change:opacity}
.glass-backdrop.is-open{opacity:1;pointer-events:auto}
.glass-backdrop--subtle{background:rgba(11,11,13,.3)}
.glass-backdrop--dark{background:rgba(0,0,0,.72)}
.glass-backdrop--light{background:rgba(255,255,255,.22)}
.glass-backdrop--strong{background:rgba(0,0,0,.85);backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%)}
.glass-backdrop--accent{background:rgba(255,91,46,.18);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}

/* Панель со стеклянным фоном — для наложения поверх контента */
.glass-panel{background:rgba(20,20,24,.72);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}
.glass-panel--light{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
.glass-panel--strong{background:rgba(20,20,24,.9);backdrop-filter:blur(24px)}
.glass-panel--soft{background:rgba(20,20,24,.5);backdrop-filter:blur(10px)}

/* Демонстрация стекла поверх фото/сетки */
.glass-demo-bg{position:relative;padding:var(--s-8);border-radius:var(--radius-md);background:
    radial-gradient(circle at 20% 30%, #ff5b2e 0%, transparent 45%),
    radial-gradient(circle at 80% 60%, #3b82f6 0%, transparent 45%),
    linear-gradient(135deg,#1c1c22,#0b0b0d);
    overflow:hidden}

/* === 22-slider-captcha.css === */
/* Капча-ползунок: перетащите ползунок слева направо */
.slider-captcha{
    position:relative;
    height:52px;
    box-sizing:border-box;
    background:var(--color-surface);
    border:1px solid var(--color-border);
    border-radius:999px;
    user-select:none;
    -webkit-user-select:none;
    margin:var(--s-2) 0;
    transition:border-color var(--t-fast);
}
.slider-captcha__fill{
    position:absolute;
    left:-1px;
    top:-1px;
    bottom:-1px;
    width:0;
    border-radius:999px;
    background:linear-gradient(90deg,var(--color-accent-soft) 0%,rgba(34,197,94,.22) 100%);
    transition:width .2s ease;
    pointer-events:none;
    z-index:0;
}
.slider-captcha__text{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:0 60px;
    font-size:14px;
    font-weight:var(--fw-medium);
    color:var(--color-muted);
    pointer-events:none;
    transition:color var(--t-fast);
    z-index:1;
}
.slider-captcha__handle{
    position:absolute;
    top:0;
    left:0;
    width:52px;
    height:52px;
    margin-top:-1px;
    margin-left:-1px;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--color-surface-2);
    border:1px solid var(--color-border-strong);
    border-radius:50%;
    color:var(--color-text);
    cursor:grab;
    touch-action:none;
    padding:0;
    transition:left .22s cubic-bezier(.4,0,.2,1),background var(--t-fast),border-color var(--t-fast),color var(--t-fast);
    z-index:2;
    outline-offset:2px;
}
.slider-captcha__handle:hover{background:var(--color-surface-3)}
.slider-captcha__handle:active,.slider-captcha.is-dragging .slider-captcha__handle{cursor:grabbing}
.slider-captcha.is-dragging .slider-captcha__handle{transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}
.slider-captcha.is-dragging .slider-captcha__fill{transition:none}
.slider-captcha__handle svg{
    position:absolute;
    width:20px;height:20px;
    transition:opacity var(--t-fast),transform var(--t-fast);
}
.slider-captcha__handle .sc-icon-check{opacity:0;transform:scale(.5)}

/* Успех */
.slider-captcha.is-success{border-color:var(--color-success)}
.slider-captcha.is-success .slider-captcha__fill{
    width:100%;
    background:linear-gradient(90deg,rgba(34,197,94,.22) 0%,rgba(34,197,94,.42) 100%);
}
.slider-captcha.is-success .slider-captcha__text{color:#4ade80;font-weight:var(--fw-semibold)}
.slider-captcha.is-success .slider-captcha__handle{
    left:calc(100% - 50px);
    background:var(--color-success);
    border-color:var(--color-success);
    color:#fff;
    cursor:default;
}
.slider-captcha.is-success .slider-captcha__handle .sc-icon-arrow{opacity:0;transform:scale(.5)}
.slider-captcha.is-success .slider-captcha__handle .sc-icon-check{opacity:1;transform:scale(1)}

/* Ошибка */
.slider-captcha.is-error{border-color:var(--color-danger);animation:sc-shake .35s ease}
.slider-captcha.is-error .slider-captcha__text{color:#fca5a5}
@keyframes sc-shake{
    0%,100%{transform:translateX(0)}
    20%{transform:translateX(-6px)}
    40%{transform:translateX(6px)}
    60%{transform:translateX(-4px)}
    80%{transform:translateX(4px)}
}

/* Мобильные */
@media (max-width:480px){
    .slider-captcha{height:48px}
    .slider-captcha__handle{width:48px;height:48px}
    .slider-captcha.is-success .slider-captcha__handle{left:calc(100% - 46px)}
    .slider-captcha__text{font-size:13px;padding:0 54px}
    .slider-captcha__handle svg{width:18px;height:18px}
}

/* Подпись под полем капчи */
.slider-captcha__hint{
    display:block;
    margin:4px 0 0;
    font-style:italic;
    font-weight:300;
    font-size:13px;
    line-height:1.35;
    color:var(--color-muted);
    letter-spacing:.01em;
}

/* === SC_STRIPES_EFFECT start === */
.slider-captcha__fill{
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(255,255,255,.07) 0 10px,
            rgba(255,255,255,0) 10px 20px
        ),
        linear-gradient(90deg, var(--color-accent-soft) 0%, rgba(34,197,94,.22) 100%);
    background-size: 28px 28px, 100% 100%;
    animation: sc-fill-stripes .8s linear infinite;
    will-change: background-position;
}
.slider-captcha.is-dragging .slider-captcha__fill{
    animation: sc-fill-stripes .8s linear infinite;
}
.slider-captcha.is-success .slider-captcha__fill{
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(255,255,255,.15) 0 10px,
            rgba(255,255,255,0) 10px 20px
        ),
        linear-gradient(90deg, rgba(34,197,94,.22) 0%, rgba(34,197,94,.42) 100%);
    background-size: 28px 28px, 100% 100%;
    animation: sc-fill-stripes .8s linear infinite;
}
@keyframes sc-fill-stripes{
    from { background-position: 0 0, 0 0; }
    to   { background-position: 28px 0, 0 0; }
}
@media (prefers-reduced-motion: reduce){
    .slider-captcha__fill,
    .slider-captcha.is-success .slider-captcha__fill{
        animation: none;
    }
}
/* === SC_STRIPES_EFFECT end === */

/* === SC_ARROWS_EFFECT start === */
.slider-captcha::before{
    content:'';
    position:absolute;
    left:64px;
    right:64px;
    top:50%;
    height:14px;
    margin-top:-7px;
    background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14' viewBox='0 0 28 14'%3E%3Cg fill='none' stroke='%23eaeaf0' stroke-opacity='0.35' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 3 L8 7 L4 11'/%3E%3Cpath d='M12 3 L16 7 L12 11'/%3E%3Cpath d='M20 3 L24 7 L20 11'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat:repeat-x;
    background-position:0 0;
    background-size:28px 14px;
    animation:sc-arrows-flow 1.1s linear infinite;
    pointer-events:none;
    z-index:0;
    opacity:.9;
    transition:opacity var(--t-fast);
}
.slider-captcha.is-dragging::before,
.slider-captcha.is-success::before{
    opacity:0;
}
@keyframes sc-arrows-flow{
    from{ background-position:0 0; }
    to  { background-position:28px 0; }
}
@media (prefers-reduced-motion: reduce){
    .slider-captcha::before{ animation:none; }
}
/* === SC_ARROWS_EFFECT end === */

/* Заблокированное состояние (после серии ошибок) */
.slider-captcha.is-locked {
    opacity: .65;
    cursor: not-allowed;
    border-color: var(--color-border);
}
.slider-captcha.is-locked .slider-captcha__handle {
    cursor: not-allowed;
    background: var(--color-surface-3);
}
.slider-captcha.is-locked .slider-captcha__text {
    color: var(--color-muted);
}


/* === HINT-BELOW-FIX === */
/* Подпись вынесена под капчу, чтобы не мешать стрелкам внутри */

.slider-captcha-wrap {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}
/* no-extra-margin */
.slider-captcha-wrap .slider-captcha {
    margin: 0;
}

/* Подпись под капчей */
.slider-captcha__hint {
    display: block;
    font-size: 13px;
    line-height: 1.4;
    color: var(--color-muted);
    padding-left: 4px;
    transition: color var(--t-fast);
}

/* Цвет подписи при состояниях (селектор соседа через ~) */
.slider-captcha.is-dragging ~ .slider-captcha__hint {
    color: var(--color-text-soft);
}
.slider-captcha.is-success ~ .slider-captcha__hint {
    color: #4ade80;
    font-weight: var(--fw-medium);
}
.slider-captcha.is-error ~ .slider-captcha__hint {
    color: #fca5a5;
}
.slider-captcha.is-locked ~ .slider-captcha__hint {
    color: var(--color-faint);
}

/* Светлая тема — приглушённые цвета */
[data-theme="light"] .slider-captcha.is-success ~ .slider-captcha__hint {
    color: #15803d;
}
[data-theme="light"] .slider-captcha.is-error ~ .slider-captcha__hint {
    color: #b91c1c;
}

/* Старый .slider-captcha__text — если попадёт из кэша — прячем */
.slider-captcha__text {
    display: none;
}

/* Мобильные — подпись компактнее */
@media (max-width: 480px) {
    .slider-captcha__hint { font-size: 12px; }
}


/* === CAPTCHA-LIGHT-THEME === */
/* Светлая тема: убираем белые элементы, которые не видны на белом фоне */

[data-theme="light"] .slider-captcha::before {
    background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14' viewBox='0 0 28 14'%3E%3Cg fill='none' stroke='%231a1c20' stroke-opacity='0.35' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 3 L8 7 L4 11'/%3E%3Cpath d='M12 3 L16 7 L12 11'/%3E%3Cpath d='M20 3 L24 7 L20 11'/%3E%3C/g%3E%3C/svg%3E");
}

[data-theme="light"] .slider-captcha__fill {
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(20,22,26,.05) 0 10px,
            rgba(20,22,26,0) 10px 20px
        ),
        linear-gradient(90deg, var(--color-accent-soft) 0%, rgba(34,197,94,.18) 100%);
    background-size: 28px 28px, 100% 100%;
}
[data-theme="light"] .slider-captcha.is-dragging .slider-captcha__fill {
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(20,22,26,.05) 0 10px,
            rgba(20,22,26,0) 10px 20px
        ),
        linear-gradient(90deg, var(--color-accent-soft) 0%, rgba(34,197,94,.18) 100%);
    background-size: 28px 28px, 100% 100%;
}
[data-theme="light"] .slider-captcha.is-success .slider-captcha__fill {
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(20,22,26,.08) 0 10px,
            rgba(20,22,26,0) 10px 20px
        ),
        linear-gradient(90deg, rgba(34,197,94,.22) 0%, rgba(34,197,94,.42) 100%);
    background-size: 28px 28px, 100% 100%;
}

[data-theme="light"] .slider-captcha__handle {
    background:#ffffff;
    border-color: var(--color-border-strong);
    color: var(--color-text);
}
[data-theme="light"] .slider-captcha__handle:hover {
    background:#f6f7f9;
}

[data-theme="light"] .slider-captcha.is-success .slider-captcha__handle {
    background:#16a34a;
    border-color:#16a34a;
    color:#fff;
}

[data-theme="light"] .slider-captcha.is-success ~ .slider-captcha__hint {
    color:#15803d;
}
[data-theme="light"] .slider-captcha.is-error ~ .slider-captcha__hint {
    color:#b91c1c;
}
[data-theme="light"] .slider-captcha.is-locked ~ .slider-captcha__hint {
    color:#5a6169;
}

[data-theme="light"] .slider-captcha.is-success .slider-captcha__text {
    color:#15803d;
}
[data-theme="light"] .slider-captcha.is-error .slider-captcha__text {
    color:#b91c1c;
}

[data-theme="light"] .slider-captcha {
    background:#f7f8fa;
    border-color:#e3e6ea;
}
[data-theme="light"] .slider-captcha.is-success {
    border-color:#16a34a;
}
[data-theme="light"] .slider-captcha.is-error {
    border-color:#dc2626;
}

[data-theme="light"] .slider-captcha.is-locked {
    background:#eef0f4;
}
[data-theme="light"] .slider-captcha.is-locked .slider-captcha__handle {
    background:#e4e7ec;
    color:#8a919a;
}

/* === 23-tooltip.css === */
/* Tooltip — всплывающая подсказка */
.tt{position:relative;display:inline-flex;align-items:center}
.tt__bubble{
    position:absolute;z-index:var(--z-modal);
    background:#0b0b0d;color:#fff;
    padding:6px 10px;border-radius:var(--radius-sm);
    font-size:12px;line-height:1.35;white-space:nowrap;
    border:1px solid rgba(255,255,255,.08);
    box-shadow:var(--shadow-md);
    opacity:0;pointer-events:none;
    transition:opacity var(--t-fast),transform var(--t-fast);
    max-width:260px;white-space:normal;
}
.tt__bubble::after{
    content:'';position:absolute;width:8px;height:8px;
    background:#0b0b0d;border:1px solid rgba(255,255,255,.08);
    transform:rotate(45deg);
}
/* top */
.tt--top .tt__bubble{bottom:calc(100% + 10px);left:50%;transform:translate(-50%,4px)}
.tt--top .tt__bubble::after{bottom:-5px;left:50%;margin-left:-4px;border-top:0;border-left:0}
/* bottom */
.tt--bottom .tt__bubble{top:calc(100% + 10px);left:50%;transform:translate(-50%,-4px)}
.tt--bottom .tt__bubble::after{top:-5px;left:50%;margin-left:-4px;border-bottom:0;border-right:0}
/* left */
.tt--left .tt__bubble{right:calc(100% + 10px);top:50%;transform:translate(4px,-50%)}
.tt--left .tt__bubble::after{right:-5px;top:50%;margin-top:-4px;border-bottom:0;border-left:0}
/* right */
.tt--right .tt__bubble{left:calc(100% + 10px);top:50%;transform:translate(-4px,-50%)}
.tt--right .tt__bubble::after{left:-5px;top:50%;margin-top:-4px;border-top:0;border-right:0}

.tt:hover>.tt__bubble,
.tt:focus-within>.tt__bubble{opacity:1;pointer-events:auto}
.tt--top:hover>.tt__bubble,.tt--top:focus-within>.tt__bubble{transform:translate(-50%,0)}
.tt--bottom:hover>.tt__bubble,.tt--bottom:focus-within>.tt__bubble{transform:translate(-50%,0)}
.tt--left:hover>.tt__bubble,.tt--left:focus-within>.tt__bubble{transform:translate(0,-50%)}
.tt--right:hover>.tt__bubble,.tt--right:focus-within>.tt__bubble{transform:translate(0,-50%)}

/* === 24-pagination.css === */
/* Pagination — постраничная навигация */
.pagination{display:flex;flex-wrap:wrap;gap:var(--s-1);align-items:center;list-style:none;padding:0;margin:0}
.pagination__item{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:38px;height:38px;padding:0 10px;
    font-size:14px;font-weight:var(--fw-medium);
    color:var(--color-text-soft);
    background:var(--color-surface);border:1px solid var(--color-border);
    border-radius:var(--radius-sm);
    transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast);
    text-decoration:none;cursor:pointer;
}
.pagination__item:hover{border-color:var(--color-accent);color:var(--color-text)}
.pagination__item.is-active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}
.pagination__item.is-disabled,.pagination__item:disabled{opacity:.4;pointer-events:none}
.pagination__ellipsis{padding:0 6px;color:var(--color-faint);user-select:none}
.pagination--center{justify-content:center}
.pagination--end{justify-content:flex-end}
.pagination--pill .pagination__item{border-radius:var(--radius-pill)}

/* === 25-skeleton.css === */
/* Skeleton — скелетон-заглушка для контента во время загрузки */
.skeleton{
    display:block;
    background:linear-gradient(
        90deg,
        var(--color-surface-2) 0%,
        var(--color-surface-3) 50%,
        var(--color-surface-2) 100%
    );
    background-size:200% 100%;
    animation:sk-shimmer 1.4s ease-in-out infinite;
    border-radius:var(--radius-sm);
}
.skeleton--text{height:14px;border-radius:4px;width:100%}
.skeleton--text.skeleton--w-80{width:80%}
.skeleton--text.skeleton--w-60{width:60%}
.skeleton--title{height:22px;border-radius:6px;width:60%}
.skeleton--card{height:140px;border-radius:var(--radius-md)}
.skeleton--avatar{width:40px;height:40px;border-radius:50%}
.skeleton--button{height:38px;width:120px;border-radius:var(--radius-sm)}
.skeleton-stack{display:flex;flex-direction:column;gap:var(--s-3)}
.skeleton-stack--row{flex-direction:row;align-items:center}
@keyframes sk-shimmer{
    0%{background-position:200% 0}
    100%{background-position:-200% 0}
}
@media (prefers-reduced-motion: reduce){
    .skeleton{animation:none;background:var(--color-surface-2)}
}

/* === 27-scrollbar.css === */
/* Scrollbar — стилизованные полосы прокрутки.
 * Утилиты для контейнеров со скроллом. Работают в WebKit (Chrome/Edge/Safari)
 * и в Firefox (scrollbar-width + scrollbar-color).
 */

/* Базовый контейнер-демо и общий приём */
.scroll{
    overflow:auto;
    border:1px solid var(--color-border);
    border-radius:var(--radius-md);
    background:var(--color-surface);
    padding:var(--s-4);
    max-height:200px;
}

/* --- .scroll--thin — тонкий скролл --- */
.scroll--thin{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}
.scroll--thin::-webkit-scrollbar{width:6px;height:6px}
.scroll--thin::-webkit-scrollbar-track{background:transparent}
.scroll--thin::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}
.scroll--thin::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}

/* --- .scroll--accent — акцентный скролл --- */
.scroll--accent{scrollbar-width:thin;scrollbar-color:var(--color-accent) var(--color-surface-2)}
.scroll--accent::-webkit-scrollbar{width:10px;height:10px}
.scroll--accent::-webkit-scrollbar-track{background:var(--color-surface-2);border-radius:var(--radius-pill)}
.scroll--accent::-webkit-scrollbar-thumb{
    background:var(--color-accent);
    border-radius:var(--radius-pill);
    border:2px solid var(--color-surface-2);
}
.scroll--accent::-webkit-scrollbar-thumb:hover{background:var(--color-accent-hover)}

/* --- .scroll--pill — «таблетка» --- */
.scroll--pill{scrollbar-width:auto;scrollbar-color:var(--color-border-strong) transparent}
.scroll--pill::-webkit-scrollbar{width:12px;height:12px}
.scroll--pill::-webkit-scrollbar-track{background:transparent}
.scroll--pill::-webkit-scrollbar-thumb{
    background:var(--color-border-strong);
    border-radius:999px;
    border:3px solid var(--color-surface);
}
.scroll--pill::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}

/* --- .scroll--invisible — скрытый скролл --- */
.scroll--invisible{scrollbar-width:none;-ms-overflow-style:none}
.scroll--invisible::-webkit-scrollbar{width:0;height:0;display:none}

/* --- Модификаторы для готовых контейнеров --- */
.scroll-both{overflow:auto;max-height:200px}

/* Универсальные утилиты на любой элемент */
.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}
.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}
.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}

.scrollbar-accent{scrollbar-width:thin;scrollbar-color:var(--color-accent) transparent}
.scrollbar-accent::-webkit-scrollbar{width:8px;height:8px}
.scrollbar-accent::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:4px}
.scrollbar-accent::-webkit-scrollbar-thumb:hover{background:var(--color-accent-hover)}

.scrollbar-hidden{scrollbar-width:none;-ms-overflow-style:none}
.scrollbar-hidden::-webkit-scrollbar{width:0;height:0}
/* === SCROLLBAR-PATCH === */

/* --- Глобальный скроллбар страницы (html) ---
 * Тонкий, цвет border-strong, hover → accent.
 * Токены — переключаются между светлой и тёмной темой автоматически.
 */
html{
    scrollbar-width:thin;
    scrollbar-color:var(--color-border-strong) var(--color-bg);
}
html::-webkit-scrollbar{width:12px;height:12px}
html::-webkit-scrollbar-track{background:var(--color-bg)}
html::-webkit-scrollbar-thumb{
    background:var(--color-border-strong);
    border:3px solid var(--color-bg);
    border-radius:999px;
}
html::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}
html::-webkit-scrollbar-corner{background:var(--color-bg)}

/* --- Универсальные обёртки, которым нужен аккуратный скролл --- */

/* Блоки кода <pre> — горизонтальный скролл */
pre{
    scrollbar-width:thin;
    scrollbar-color:var(--color-border-strong) var(--color-surface);
}
pre::-webkit-scrollbar{height:8px;width:8px}
pre::-webkit-scrollbar-track{background:var(--color-surface)}
pre::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}
pre::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}

/* Табы — горизонтальный скролл при переполнении */
.tabs__list{
    scrollbar-width:none;
    -ms-overflow-style:none;
}
.tabs__list::-webkit-scrollbar{width:0;height:0;display:none}

/* Обёртка базовой таблицы */
.table-wrap{
    scrollbar-width:thin;
    scrollbar-color:var(--color-border-strong) var(--color-surface);
}
.table-wrap::-webkit-scrollbar{height:8px;width:8px}
.table-wrap::-webkit-scrollbar-track{background:var(--color-surface)}
.table-wrap::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}
.table-wrap::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}

/* Обёртка advanced-таблицы */
.atable-scroll{
    scrollbar-width:thin;
    scrollbar-color:var(--color-border-strong) var(--color-surface);
}
.atable-scroll::-webkit-scrollbar{height:10px;width:10px}
.atable-scroll::-webkit-scrollbar-track{background:var(--color-surface)}
.atable-scroll::-webkit-scrollbar-thumb{
    background:var(--color-border-strong);
    border:2px solid var(--color-surface);
    border-radius:999px;
}
.atable-scroll::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}

/* Mega menu на мобильных (выезжающая панель) */
.mega__panel{
    scrollbar-width:thin;
    scrollbar-color:var(--color-border-strong) var(--color-surface);
}
.mega__panel::-webkit-scrollbar{width:8px;height:8px}
.mega__panel::-webkit-scrollbar-track{background:var(--color-surface)}
.mega__panel::-webkit-scrollbar-thumb{
    background:var(--color-border-strong);
    border-radius:4px;
}
.mega__panel::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}

/* Drawer body */
.drawer__body{
    scrollbar-width:thin;
    scrollbar-color:var(--color-border-strong) var(--color-surface);
}
.drawer__body::-webkit-scrollbar{width:8px;height:8px}
.drawer__body::-webkit-scrollbar-track{background:var(--color-surface)}
.drawer__body::-webkit-scrollbar-thumb{
    background:var(--color-border-strong);
    border-radius:4px;
}
.drawer__body::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}

/* Modal fullscreen body */
dialog.modal--full .modal__body{
    scrollbar-width:thin;
    scrollbar-color:var(--color-border-strong) var(--color-surface);
}
dialog.modal--full .modal__body::-webkit-scrollbar{width:8px;height:8px}
dialog.modal--full .modal__body::-webkit-scrollbar-track{background:var(--color-surface)}
dialog.modal--full .modal__body::-webkit-scrollbar-thumb{
    background:var(--color-border-strong);
    border-radius:4px;
}
dialog.modal--full .modal__body::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}

/* Автовыравнивание для любых элементов с overflow — на светлой теме
 * (например, если стилизованный scrollbar-color на тёмном фоне, в светлой
 * нужно чуть иначе). Токены уже перекрашиваются, но подстрахуемся там,
 * где цвета были привязаны к surface — а не к bg. */

/* Light theme — глобальный фон скроллбара страницы должен совпадать с белым */
[data-theme="light"]{
    scrollbar-color:var(--color-border-strong) var(--color-bg);
}
[data-theme="light"] html::-webkit-scrollbar-track{background:var(--color-bg)}
[data-theme="light"] html::-webkit-scrollbar-thumb{
    border-color:var(--color-bg);
}
[data-theme="light"] html::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}

/* === 30-gallery.css === */
/* Gallery + Lightbox — сетка превью и просмотр увеличенного изображения */

.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--s-3)}
.gallery--masonry{grid-auto-rows:140px}
.gallery--masonry .gallery__item:nth-child(3n){grid-row:span 2}
.gallery--masonry .gallery__item:nth-child(5n){grid-row:span 3}

.gallery__item{
    position:relative;display:block;overflow:hidden;
    border:1px solid var(--color-border);border-radius:var(--radius-md);
    background:var(--color-surface);cursor:zoom-in;
    aspect-ratio:4/3;padding:0;
    transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
}
.gallery__item:hover{transform:translateY(-2px);border-color:var(--color-accent);box-shadow:var(--shadow-md)}
.gallery__item:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.gallery__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--t-base)}
.gallery__item:hover img{transform:scale(1.04)}
.gallery__item::after{
    content:'⤢';position:absolute;right:8px;bottom:8px;
    width:26px;height:26px;line-height:26px;text-align:center;border-radius:50%;
    background:rgba(11,11,13,.65);color:#fff;font-size:13px;
    opacity:0;transition:opacity var(--t-fast);pointer-events:none;
}
.gallery__item:hover::after,.gallery__item:focus-visible::after{opacity:1}

/* --- Лайтбокс на <dialog> --- */
dialog.lightbox{border:0;padding:0;background:transparent;max-width:none;width:100%;height:100%;color:#fff}
dialog.lightbox::backdrop{background:rgba(0,0,0,.85);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.lightbox__inner{position:relative;display:flex;flex-direction:column;width:100%;height:100%;padding:var(--s-6);box-sizing:border-box}
.lightbox__img{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}
.lightbox__img img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}
.lightbox__caption{margin-top:var(--s-4);text-align:center;color:rgba(255,255,255,.75);font-size:14px}
.lightbox__close{
    position:absolute;top:var(--s-4);right:var(--s-4);
    width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;
    display:inline-flex;align-items:center;justify-content:center;
    transition:background var(--t-fast);
}
.lightbox__close:hover{background:rgba(255,255,255,.2)}
.lightbox__close svg{width:20px;height:20px}
.lightbox__nav{
    position:absolute;top:50%;transform:translateY(-50%);
    width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;
    display:inline-flex;align-items:center;justify-content:center;
    transition:background var(--t-fast);
}
.lightbox__nav:hover{background:rgba(255,255,255,.2)}
.lightbox__nav--prev{left:var(--s-4)}
.lightbox__nav--next{right:var(--s-4)}
.lightbox__nav svg{width:22px;height:22px}
.lightbox__counter{position:absolute;top:var(--s-5);left:var(--s-5);font-size:13px;color:rgba(255,255,255,.75);font-family:var(--font-mono)}
@media (max-width:640px){
    .lightbox__inner{padding:var(--s-4)}
    .lightbox__nav{width:40px;height:40px}
    .lightbox__close{width:40px;height:40px}
}
/* ============================================================
 * Light theme: галерея и лайтбокс
 * ============================================================ */

/* Превью — цвета через токены, но усилим границы и hover-цвет */
[data-theme="light"] .gallery__item{
    border-color:#e3e6ea;
    background:#f7f8fa;
}
[data-theme="light"] .gallery__item:hover{
    border-color:var(--color-accent);
    box-shadow:0 8px 24px rgba(20,22,26,.10);
}
[data-theme="light"] .gallery__item::after{
    background:rgba(20,22,26,.7);
    color:#fff;
}

/* Backdrop лайтбокса — светлая «дымка» вместо чёрной */
[data-theme="light"] dialog.lightbox{color:#1a1c20}
[data-theme="light"] dialog.lightbox::backdrop{
    background:rgba(240,242,246,.92);
    backdrop-filter:blur(10px) saturate(140%);
    -webkit-backdrop-filter:blur(10px) saturate(140%);
}

/* Увеличенное фото — мягкая тень под светлым фоном */
[data-theme="light"] .lightbox__img img{
    box-shadow:0 24px 60px rgba(20,22,26,.22);
    border:1px solid rgba(20,22,26,.06);
}

/* Подпись под фото */
[data-theme="light"] .lightbox__caption{color:rgba(20,22,26,.62)}

/* Счётчик кадров */
[data-theme="light"] .lightbox__counter{color:rgba(20,22,26,.55)}

/* Кнопки (закрыть, назад, вперёд) — тёмный контур на светлом фоне */
[data-theme="light"] .lightbox__close,
[data-theme="light"] .lightbox__nav{
    background:rgba(20,22,26,.06);
    color:#1a1c20;
    border:1px solid rgba(20,22,26,.08);
}
[data-theme="light"] .lightbox__close:hover,
[data-theme="light"] .lightbox__nav:hover{
    background:rgba(20,22,26,.14);
}

/* ============================================================
 * Тёмная тема — явные значения для надёжности (совпадают
 * с дефолтом, но фиксируем их, чтобы оба режима были явными)
 * ============================================================ */
[data-theme="dark"] dialog.lightbox,
:root:not([data-theme="light"]) dialog.lightbox{color:#fff}

[data-theme="dark"] dialog.lightbox::backdrop,
:root:not([data-theme="light"]) dialog.lightbox::backdrop{
    background:rgba(0,0,0,.85);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
}
/* === MOBILE-PATCH === */
@media (max-width:640px){
    .gallery{grid-template-columns:repeat(2,1fr);gap:var(--s-2)}
    .gallery--masonry{grid-auto-rows:120px}
    .lightbox__nav{width:36px;height:36px}
    .lightbox__nav svg{width:18px;height:18px}
    .lightbox__close{width:36px;height:36px;top:var(--s-3);right:var(--s-3)}
    .lightbox__counter{top:var(--s-4);left:var(--s-4);font-size:12px}
    .lightbox__caption{font-size:13px;margin-top:var(--s-3)}
}
@media (max-width:400px){
    .gallery{grid-template-columns:1fr}
}

/* === 31-carousel.css === */
/* Carousel — снап-карусель со стрелками по бокам, точками под слайдами,
 * drag-to-scroll для мыши, скрытый скроллбар. */

.carousel{position:relative;padding:0 56px}

/* Слайд-зона */
.carousel__stage{position:relative}

.carousel__viewport{
    display:flex;gap:var(--s-4);
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;
    padding:var(--s-2) 2px var(--s-2);
    cursor:grab;
    user-select:none;
    -webkit-user-select:none;
    /* Скрываем полосу прокрутки */
    scrollbar-width:none;
    -ms-overflow-style:none;
}
.carousel__viewport::-webkit-scrollbar{width:0;height:0;display:none}
.carousel__viewport > *{scroll-snap-align:start;flex:0 0 auto}

/* Во время перетаскивания — отключаем snap и smooth, чтобы не мешали drag */
.carousel__viewport.is-dragging{
    cursor:grabbing;
    scroll-snap-type:none;
    scroll-behavior:auto;
}

/* Навигационные стрелки — по бокам карусели, вертикально по центру stage */
.carousel__nav{
    position:absolute;top:50%;transform:translateY(-50%);
    z-index:2;
    width:40px;height:40px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);
    box-shadow:var(--shadow-sm);
    transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),opacity var(--t-fast);
}
.carousel__nav:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}
.carousel__nav:disabled{opacity:.35;cursor:not-allowed}
.carousel__nav svg{width:18px;height:18px}
.carousel__nav--prev{left:-56px}
.carousel__nav--next{right:-56px}

/* Слайд */
.carousel__slide{
    width:min(340px,80%);
    background:var(--color-surface);border:1px solid var(--color-border);
    border-radius:var(--radius-md);overflow:hidden;
}
.carousel__slide img{
    width:100%;aspect-ratio:4/3;object-fit:cover;display:block;
    pointer-events:none; /* клик по картинке не должен прерывать drag */
}
.carousel__slide-body{padding:var(--s-4)}
.carousel__slide-title{margin:0 0 4px;font-size:var(--fs-md);font-weight:var(--fw-semibold)}
.carousel__slide-text{margin:0;font-size:14px;color:var(--color-muted)}

/* Точки-пагинация — под слайдами, по центру */
.carousel__dots{
    display:flex;justify-content:center;align-items:center;
    gap:8px;margin-top:var(--s-4);
}
.carousel__dot{
    width:8px;height:8px;border-radius:50%;border:0;padding:0;
    background:var(--color-border-strong);cursor:pointer;
    transition:background var(--t-fast),transform var(--t-fast);
}
.carousel__dot:hover{background:var(--color-muted)}
.carousel__dot.is-active{background:var(--color-accent);transform:scale(1.4)}

/* Модификаторы */
.carousel--full .carousel__slide{width:min(560px,92%)}
.carousel--peek .carousel__slide{width:min(280px,72%)}

/* Мобильные — стрелки уменьшены, отступ по бокам меньше */
@media (max-width:640px){
    .carousel{padding:0 40px}
    .carousel__nav{width:34px;height:34px}
    .carousel__nav svg{width:16px;height:16px}
    .carousel__nav--prev{left:-40px}
    .carousel__nav--next{right:-40px}
}

@media (prefers-reduced-motion: reduce){
    .carousel__viewport{scroll-behavior:auto}
}

/* === 32-hero-slider.css === */
/* Hero slider — большой слайд во всю ширину, со стрелками, точками и автосменой */

.hero-slider{
    position:relative;
    width:100%;
    min-height:clamp(420px,70vh,720px);
    overflow:hidden;
    background:#0b0b0d;
    color:#fff;
    isolation:isolate;
}
.hero-slider__track{
    position:absolute;inset:0;
    display:flex;
    transition:transform .6s cubic-bezier(.4,0,.2,1);
    will-change:transform;
}
.hero-slider__slide{
    position:relative;
    flex:0 0 100%;
    min-width:100%;
    height:100%;
    display:flex;
    align-items:center;
    overflow:hidden;
}
.hero-slider__bg{
    position:absolute;inset:0;
    z-index:0;
}
.hero-slider__bg img{width:100%;height:100%;object-fit:cover;display:block}
.hero-slider__bg::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(11,11,13,.15) 0%,rgba(11,11,13,.65) 100%);
}
[data-theme="light"] .hero-slider__bg::after{
    background:linear-gradient(180deg,rgba(20,22,26,.05) 0%,rgba(20,22,26,.55) 100%);
}

.hero-slider__content{
    position:relative;z-index:2;
    max-width:900px;
    padding:var(--s-12) 0;
}
.hero-slider__eyebrow{
    display:inline-block;
    padding:5px 12px;
    font-size:12px;font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;
    background:rgba(255,255,255,.12);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.18);
    color:#fff;
    border-radius:var(--radius-pill);
    margin-bottom:var(--s-5);
}
.hero-slider__title{
    font-size:clamp(1.9rem,4.5vw,3.4rem);
    line-height:1.1;
    letter-spacing:-.02em;
    margin:0 0 var(--s-5);
    text-shadow:0 2px 30px rgba(0,0,0,.35);
}
.hero-slider__lead{
    font-size:clamp(1rem,1.5vw,1.15rem);
    color:rgba(255,255,255,.85);
    max-width:640px;
    margin:0 0 var(--s-7);
    line-height:1.55;
}
.hero-slider__actions{display:flex;gap:var(--s-3);flex-wrap:wrap}

/* Стрелки */
.hero-slider__nav{
    position:absolute;top:50%;transform:translateY(-50%);
    z-index:3;
    width:48px;height:48px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.1);
    color:#fff;
    border:1px solid rgba(255,255,255,.2);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    transition:background var(--t-fast),border-color var(--t-fast);
}
.hero-slider__nav:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.4)}
.hero-slider__nav svg{width:20px;height:20px}
.hero-slider__nav--prev{left:var(--s-5)}
.hero-slider__nav--next{right:var(--s-5)}

/* Точки */
.hero-slider__dots{
    position:absolute;left:50%;bottom:var(--s-6);transform:translateX(-50%);
    z-index:3;
    display:flex;gap:8px;
}
.hero-slider__dot{
    width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.6);
    background:transparent;cursor:pointer;padding:0;
    transition:background var(--t-fast),transform var(--t-fast);
}
.hero-slider__dot:hover{background:rgba(255,255,255,.4)}
.hero-slider__dot.is-active{background:#fff;transform:scale(1.25)}

@media (max-width:640px){
    .hero-slider{min-height:520px}
    .hero-slider__nav{width:38px;height:38px}
    .hero-slider__nav--prev{left:var(--s-3)}
    .hero-slider__nav--next{right:var(--s-3)}
    .hero-slider__content{padding:var(--s-10) 0}
}
/* === MOBILE-PATCH === */
@media (max-width:640px){
    .hero-slider{min-height:520px}
    .hero-slider__eyebrow{font-size:11px;padding:4px 10px;margin-bottom:var(--s-4)}
    .hero-slider__title{font-size:1.7rem;margin-bottom:var(--s-4)}
    .hero-slider__lead{font-size:14px;margin-bottom:var(--s-5)}
    .hero-slider__actions .btn{padding:10px 16px;font-size:14px}
    .hero-slider__dots{bottom:var(--s-4)}
}
@media (max-width:400px){
    .hero-slider{min-height:460px}
    .hero-slider__title{font-size:1.5rem}
}

/* === 33-backgrounds.css === */
/* Backgrounds — фоны с градиентами, SVG-фигурами и эффектом мутного стекла */

/* ===== Общая база ===== */
.bg-block{
    position:relative;
    overflow:hidden;
    border-radius:var(--radius-lg);
    padding:var(--s-10);
    isolation:isolate;
    color:var(--color-text);
}

/* ===== 1. Градиентные фоны ===== */
.bg-gradient-accent{
    background:linear-gradient(135deg,#ff5b2e 0%,#ff8a5c 100%);
    color:#fff;
}
.bg-gradient-cool{
    background:linear-gradient(135deg,#2563eb 0%,#06b6d4 100%);
    color:#fff;
}
.bg-gradient-sunset{
    background:linear-gradient(135deg,#f59e0b 0%,#ef4444 60%,#a855f7 100%);
    color:#fff;
}
.bg-gradient-mesh{
    background:
        radial-gradient(circle at 15% 20%, rgba(255,91,46,.55) 0%, transparent 45%),
        radial-gradient(circle at 85% 30%, rgba(59,130,246,.55) 0%, transparent 45%),
        radial-gradient(circle at 50% 90%, rgba(168,85,247,.45) 0%, transparent 50%),
        #0b0b0d;
    color:#fff;
}
[data-theme="light"] .bg-gradient-mesh{
    background:
        radial-gradient(circle at 15% 20%, rgba(255,140,80,.45) 0%, transparent 45%),
        radial-gradient(circle at 85% 30%, rgba(120,160,255,.45) 0%, transparent 45%),
        radial-gradient(circle at 50% 90%, rgba(180,130,240,.35) 0%, transparent 50%),
        #f4f6fa;
    color:#1a1c20;
}
.bg-gradient-dark{
    background:linear-gradient(180deg,#0b0b0d 0%,#141418 100%);
    color:#eaeaf0;
}

/* ===== 2. SVG-паттерны на фоне ===== */
.bg-dots::before{
    content:'';position:absolute;inset:0;z-index:-1;
    background-image:radial-gradient(currentColor 1px, transparent 1.5px);
    background-size:20px 20px;
    color:rgba(255,255,255,.14);
    opacity:.9;
}
[data-theme="light"] .bg-dots::before{color:rgba(20,22,26,.12)}

.bg-grid::before{
    content:'';position:absolute;inset:0;z-index:-1;
    background-image:
        linear-gradient(to right, currentColor 1px, transparent 1px),
        linear-gradient(to bottom, currentColor 1px, transparent 1px);
    background-size:32px 32px;
    color:rgba(255,255,255,.08);
}
[data-theme="light"] .bg-grid::before{color:rgba(20,22,26,.07)}

.bg-diagonal::before{
    content:'';position:absolute;inset:0;z-index:-1;
    background-image:repeating-linear-gradient(
        -45deg,
        transparent 0 14px,
        currentColor 14px 15px
    );
    color:rgba(255,255,255,.07);
}
[data-theme="light"] .bg-diagonal::before{color:rgba(20,22,26,.06)}

/* ===== 3. SVG-фигуры как отдельные элементы ===== */
.bg-shape{position:absolute;z-index:-1;pointer-events:none;opacity:.9}
.bg-shape--blob{
    top:-15%;right:-10%;width:60%;max-width:640px;height:auto;
    filter:blur(40px);
}
.bg-shape--blob-2{
    bottom:-20%;left:-12%;width:50%;max-width:520px;height:auto;
    filter:blur(60px);
}
.bg-shape--wave{
    bottom:0;left:0;right:0;width:100%;height:auto;display:block;
}
.bg-shape--ring{
    top:10%;left:8%;width:220px;height:220px;
}
.bg-shape--grid-svg{
    top:0;right:0;width:360px;height:360px;opacity:.4;
}
.bg-shape--circles{
    bottom:-60px;right:-60px;width:340px;height:340px;opacity:.55;
}

/* ===== 4. Эффект мутного стекла ===== */
.bg-glass-panel{
    background:rgba(20,20,24,.55);
    border:1px solid rgba(255,255,255,.12);
    backdrop-filter:blur(18px) saturate(160%);
    -webkit-backdrop-filter:blur(18px) saturate(160%);
    border-radius:var(--radius-lg);
    padding:var(--s-7);
    box-shadow:var(--shadow-lg);
    color:#fff;
}
[data-theme="light"] .bg-glass-panel{
    background:rgba(255,255,255,.55);
    border-color:rgba(20,22,26,.08);
    color:#1a1c20;
}
.bg-glass-panel--light{
    background:rgba(255,255,255,.14);
    border-color:rgba(255,255,255,.24);
}
.bg-glass-panel--strong{
    background:rgba(20,20,24,.8);
    backdrop-filter:blur(28px) saturate(180%);
    -webkit-backdrop-filter:blur(28px) saturate(180%);
}
.bg-glass-panel--accent{
    background:rgba(255,91,46,.18);
    border-color:rgba(255,91,46,.35);
}

/* Контент внутри bg-block */
.bg-block__title{
    margin:0 0 var(--s-4);
    font-size:clamp(1.5rem,3vw,2.2rem);
    line-height:1.15;
    letter-spacing:-.01em;
}
.bg-block__lead{
    margin:0;
    font-size:1.02rem;
    line-height:1.6;
    opacity:.85;
    max-width:640px;
}
.bg-block__row{
    display:flex;gap:var(--s-6);align-items:stretch;flex-wrap:wrap;
    margin-top:var(--s-7);
}
.bg-block__row > *{flex:1;min-width:280px}

/* Демо-контейнер для превью */
.bg-demo{
    position:relative;
    overflow:hidden;
    border-radius:var(--radius-md);
    min-height:180px;
    padding:var(--s-6);
    isolation:isolate;
}
/* === MOBILE-PATCH === */
@media (max-width:900px){
    .bg-block{padding:var(--s-8) var(--s-6);border-radius:var(--radius-md)}
    .bg-shape--blob{width:75%;filter:blur(30px)}
    .bg-shape--blob-2{width:65%;filter:blur(40px)}
    .bg-shape--ring{width:160px;height:160px;top:6%;left:4%}
    .bg-shape--grid-svg{width:260px;height:260px;opacity:.3}
    .bg-shape--circles{width:240px;height:240px;bottom:-40px;right:-40px}
    .bg-glass-panel{padding:var(--s-5);border-radius:var(--radius-md)}
    .bg-block__row{gap:var(--s-4);margin-top:var(--s-5)}
    .bg-block__row > *{min-width:220px}
}
@media (max-width:640px){
    .bg-block{padding:var(--s-7) var(--s-4)}
    .bg-shape--blob{width:90%;filter:blur(24px);opacity:.7}
    .bg-shape--blob-2{width:80%;filter:blur(30px);opacity:.7}
    .bg-shape--ring{width:110px;height:110px}
    .bg-shape--grid-svg{width:180px;height:180px;opacity:.25}
    .bg-shape--circles{width:180px;height:180px;bottom:-30px;right:-30px;opacity:.4}
    .bg-glass-panel{padding:var(--s-4)}
    .bg-block__row > *{min-width:0;flex-basis:100%}
    .bg-block__title{font-size:1.35rem}
    .bg-block__lead{font-size:14px}
}

/* === 34-dropdown.css === */
/* Dropdown + Mega menu */

.dd{position:relative;display:inline-block}
.dd__toggle{
    display:inline-flex;align-items:center;gap:6px;
    padding:9px 14px;border-radius:var(--radius-sm);
    background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);
    font-size:14px;font-weight:var(--fw-medium);
    cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast);
}
.dd__toggle:hover{border-color:var(--color-border-strong)}
.dd__toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.dd__toggle svg.dd__caret{width:14px;height:14px;transition:transform var(--t-fast);color:var(--color-muted)}
.dd.is-open .dd__toggle{border-color:var(--color-accent);color:var(--color-text)}
.dd.is-open .dd__toggle svg.dd__caret{transform:rotate(180deg)}

.dd__menu{
    position:absolute;top:calc(100% + 8px);left:0;min-width:220px;
    background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);
    box-shadow:var(--shadow-lg);
    padding:var(--s-2);
    z-index:var(--z-modal);
    opacity:0;transform:translateY(-4px);pointer-events:none;
    transition:opacity var(--t-fast),transform var(--t-fast);
}
.dd.is-open .dd__menu{opacity:1;transform:translateY(0);pointer-events:auto}
.dd--right .dd__menu{left:auto;right:0}
.dd--up .dd__menu{top:auto;bottom:calc(100% + 8px)}

.dd__item{
    display:flex;align-items:center;gap:10px;
    padding:9px 12px;border-radius:var(--radius-sm);
    color:var(--color-text-soft);font-size:14px;line-height:1.2;
    text-decoration:none;cursor:pointer;
    transition:background var(--t-fast),color var(--t-fast);
}
.dd__item:hover,.dd__item:focus-visible{background:var(--color-surface-2);color:var(--color-text);outline:none}
.dd__item svg{width:16px;height:16px;color:var(--color-muted);flex-shrink:0}
.dd__item.is-active{background:var(--color-accent-soft);color:var(--color-accent-hover)}
.dd__item.is-disabled{opacity:.45;pointer-events:none}
.dd__item .dd__hint{margin-left:auto;font-size:11px;color:var(--color-faint);font-family:var(--font-mono)}

.dd__label{padding:8px 12px 4px;font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-faint)}
.dd__divider{height:1px;background:var(--color-border);margin:6px 4px}

/* ===== Mega menu ===== */
.mega{position:relative}
.mega__toggle{
    display:inline-flex;align-items:center;gap:6px;
    padding:9px 14px;font-size:15px;font-weight:var(--fw-medium);
    color:var(--color-muted);background:transparent;border:0;cursor:pointer;
    transition:color var(--t-fast);
}
.mega__toggle:hover,.mega.is-open .mega__toggle{color:var(--color-text)}
.mega__toggle svg{width:14px;height:14px;transition:transform var(--t-fast)}
.mega.is-open .mega__toggle svg{transform:rotate(180deg)}

.mega__panel{
    position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,-4px);
    width:min(960px,92vw);
    background:var(--color-surface);border:1px solid var(--color-border);
    border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
    padding:var(--s-7);
    z-index:var(--z-modal);
    opacity:0;pointer-events:none;
    transition:opacity var(--t-fast),transform var(--t-fast);
}
.mega.is-open .mega__panel{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.mega__grid{display:grid;grid-template-columns:repeat(3,1fr) 240px;gap:var(--s-6)}
.mega__col{display:flex;flex-direction:column;gap:var(--s-3)}
.mega__col-title{
    font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.06em;
    text-transform:uppercase;color:var(--color-faint);
    padding-bottom:var(--s-3);border-bottom:1px solid var(--color-border);
}
.mega__link{
    display:flex;flex-direction:column;gap:2px;
    padding:8px 10px;border-radius:var(--radius-sm);
    color:var(--color-text);text-decoration:none;
    transition:background var(--t-fast);
}
.mega__link:hover{background:var(--color-surface-2)}
.mega__link-title{font-size:14px;font-weight:var(--fw-medium)}
.mega__link-desc{font-size:12px;color:var(--color-muted);line-height:1.35}
.mega__promo{
    background:linear-gradient(160deg,var(--color-accent-soft) 0%,rgba(255,91,46,.02) 100%);
    border:1px solid var(--color-border);border-radius:var(--radius-md);
    padding:var(--s-5);
    display:flex;flex-direction:column;justify-content:space-between;
}
.mega__promo-tag{font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent-hover)}
.mega__promo-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin:var(--s-3) 0}
.mega__promo-desc{font-size:13px;color:var(--color-muted);margin:0 0 var(--s-4)}

[data-theme="light"] .dd__menu,
[data-theme="light"] .mega__panel{background:#fff;border-color:#e3e6ea}

@media (max-width:900px){
    .mega__panel{position:fixed;left:var(--s-3);right:var(--s-3);top:auto;bottom:var(--s-3);width:auto;transform:translate(0,8px);padding:var(--s-5);max-height:80vh;overflow:auto}
    .mega.is-open .mega__panel{transform:translate(0,0)}
    .mega__grid{grid-template-columns:1fr 1fr;gap:var(--s-5)}
    .mega__promo{grid-column:1 / -1}
}
/* === MOBILE-PATCH === */
@media (max-width:640px){
    .dd__menu{min-width:200px}
    .mega__panel{padding:var(--s-4)}
    .mega__grid{grid-template-columns:1fr;gap:var(--s-4)}
    .mega__promo{grid-column:auto}
    .mega__col-title{font-size:10px;padding-bottom:var(--s-2)}
    .mega__link{padding:6px 8px}
}

/* === 35-toast.css === */
/* Toast / Notifications */

.toast-stack{
    position:fixed;right:var(--s-5);bottom:var(--s-5);
    z-index:var(--z-toast);
    display:flex;flex-direction:column;gap:var(--s-3);
    max-width:400px;width:calc(100% - var(--s-8));
    pointer-events:none;
}
.toast-stack--top-right{top:var(--s-5);bottom:auto}
.toast-stack--top-left{top:var(--s-5);bottom:auto;left:var(--s-5);right:auto}
.toast-stack--bottom-left{bottom:var(--s-5);left:var(--s-5);right:auto}

.toast{
    pointer-events:auto;
    display:flex;gap:var(--s-3);
    padding:var(--s-4) var(--s-5);
    background:var(--color-surface);border:1px solid var(--color-border);
    border-left-width:4px;
    border-radius:var(--radius-md);
    box-shadow:var(--shadow-lg);
    color:var(--color-text);
    animation:toast-in .25s ease both;
    transition:transform var(--t-fast),opacity var(--t-fast);
}
.toast.is-hiding{opacity:0;transform:translateX(20px)}
@keyframes toast-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

.toast--info    {border-left-color:var(--color-info)}
.toast--success {border-left-color:var(--color-success)}
.toast--warning {border-left-color:var(--color-warning)}
.toast--danger  {border-left-color:var(--color-danger)}

.toast__icon{width:22px;height:22px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}
.toast__icon svg{width:22px;height:22px}
.toast--info .toast__icon{color:#60a5fa}
.toast--success .toast__icon{color:#4ade80}
.toast--warning .toast__icon{color:#fbbf24}
.toast--danger .toast__icon{color:#f87171}
[data-theme="light"] .toast--info .toast__icon{color:#2563eb}
[data-theme="light"] .toast--success .toast__icon{color:#16a34a}
[data-theme="light"] .toast--warning .toast__icon{color:#d97706}
[data-theme="light"] .toast--danger .toast__icon{color:#dc2626}

.toast__body{flex:1;min-width:0}
.toast__title{margin:0 0 2px;font-size:14px;font-weight:var(--fw-semibold)}
.toast__text{margin:0;font-size:13px;color:var(--color-muted);line-height:1.45}
.toast__actions{display:flex;gap:var(--s-2);margin-top:var(--s-3)}
.toast__action{
    padding:6px 10px;font-size:12px;font-weight:var(--fw-medium);
    border:1px solid var(--color-border);border-radius:var(--radius-xs);
    background:transparent;color:var(--color-text-soft);cursor:pointer;
    transition:border-color var(--t-fast),color var(--t-fast);
}
.toast__action:hover{border-color:var(--color-accent);color:var(--color-accent)}
.toast__close{
    width:26px;height:26px;flex-shrink:0;border-radius:var(--radius-xs);
    color:var(--color-muted);display:inline-flex;align-items:center;justify-content:center;
    cursor:pointer;background:transparent;border:0;
    transition:background var(--t-fast),color var(--t-fast);
}
.toast__close:hover{background:var(--color-surface-2);color:var(--color-text)}
.toast__close svg{width:14px;height:14px}

@media (max-width:480px){
    .toast-stack{left:var(--s-3);right:var(--s-3);bottom:var(--s-3);width:auto;max-width:none}
}

/* === 36-empty.css === */
/* Empty state — «здесь пока ничего нет» */

.empty{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;
    padding:var(--s-10) var(--s-6);
    color:var(--color-text);
}
.empty__icon{
    width:72px;height:72px;margin-bottom:var(--s-5);
    display:inline-flex;align-items:center;justify-content:center;
    background:var(--color-surface-2);border-radius:50%;
    color:var(--color-muted);
}
.empty__icon svg{width:32px;height:32px}
.empty__icon--accent{background:var(--color-accent-soft);color:var(--color-accent-hover)}
.empty__icon--danger{background:var(--color-danger-soft);color:#f87171}
[data-theme="light"] .empty__icon--danger{color:#dc2626}

.empty__title{margin:0 0 var(--s-3);font-size:var(--fs-lg);font-weight:var(--fw-semibold)}
.empty__text{margin:0 0 var(--s-5);font-size:14px;color:var(--color-muted);max-width:420px;line-height:1.55}
.empty__actions{display:flex;gap:var(--s-3);flex-wrap:wrap;justify-content:center}
.empty__hint{margin:var(--s-5) 0 0;font-size:12px;color:var(--color-faint)}

/* Внутри рамки/карточки */
.empty--bordered{
    border:1px dashed var(--color-border);
    border-radius:var(--radius-md);
    background:var(--color-surface);
}
.empty--compact{padding:var(--s-7) var(--s-5)}
.empty--compact .empty__icon{width:52px;height:52px;margin-bottom:var(--s-4)}
.empty--compact .empty__icon svg{width:22px;height:22px}
.empty--compact .empty__title{font-size:var(--fs-md)}
/* === MOBILE-PATCH === */
@media (max-width:640px){
    .empty{padding:var(--s-8) var(--s-4)}
    .empty__icon{width:60px;height:60px;margin-bottom:var(--s-4)}
    .empty__icon svg{width:26px;height:26px}
    .empty__title{font-size:var(--fs-md)}
    .empty__text{font-size:13px}
    .empty__actions{width:100%}
    .empty__actions .btn{flex:1;min-width:0}
}

/* === 37-loader.css === */
/* Loader — индикаторы загрузки */

/* --- Спиннер --- */
.loader{display:inline-block;vertical-align:middle;color:var(--color-accent)}
.loader--sm{width:16px;height:16px}
.loader--md{width:24px;height:24px}
.loader--lg{width:40px;height:40px}
.loader--xl{width:64px;height:64px}
.loader--xs{width:12px;height:12px}

.loader--ring{
    border:2px solid currentColor;
    border-top-color:transparent;
    border-radius:50%;
    animation:ldr-spin .8s linear infinite;
}
.loader--sm.loader--ring,.loader--xs.loader--ring{border-width:2px}
.loader--lg.loader--ring,.loader--xl.loader--ring{border-width:3px}

/* --- Dots --- */
.loader-dots{display:inline-flex;gap:6px;align-items:center;color:var(--color-accent)}
.loader-dots span{
    display:block;width:8px;height:8px;border-radius:50%;
    background:currentColor;
    animation:ldr-dots 1.2s ease-in-out infinite both;
}
.loader-dots span:nth-child(1){animation-delay:0s}
.loader-dots span:nth-child(2){animation-delay:.15s}
.loader-dots span:nth-child(3){animation-delay:.3s}
.loader-dots--lg span{width:12px;height:12px;gap:8px}

/* --- Bars --- */
.loader-bars{display:inline-flex;gap:3px;align-items:flex-end;height:22px;color:var(--color-accent)}
.loader-bars span{
    width:3px;background:currentColor;border-radius:1px;
    animation:ldr-bars 1s ease-in-out infinite;
}
.loader-bars span:nth-child(1){animation-delay:0s;height:60%}
.loader-bars span:nth-child(2){animation-delay:.1s;height:100%}
.loader-bars span:nth-child(3){animation-delay:.2s;height:70%}
.loader-bars span:nth-child(4){animation-delay:.3s;height:90%}

/* --- Пульс-круг --- */
.loader-pulse{
    position:relative;width:44px;height:44px;
    display:inline-block;
}
.loader-pulse::before,
.loader-pulse::after{
    content:'';position:absolute;inset:0;border-radius:50%;
    background:var(--color-accent);opacity:.6;
    animation:ldr-pulse 1.6s ease-out infinite;
}
.loader-pulse::after{animation-delay:.8s}

/* --- Полоса прогресса (бесконечная) --- */
.loader-bar{height:4px;background:var(--color-surface-2);border-radius:999px;overflow:hidden;position:relative}
.loader-bar::after{
    content:'';position:absolute;left:-30%;top:0;bottom:0;width:30%;
    background:var(--color-accent);border-radius:999px;
    animation:ldr-bar 1.4s ease-in-out infinite;
}

/* --- Оверлей-загрузка для блока --- */
.is-loading{position:relative;pointer-events:none;opacity:.6}
.is-loading::after{
    content:'';position:absolute;top:50%;left:50%;
    width:24px;height:24px;margin:-12px 0 0 -12px;
    border:2px solid var(--color-accent);
    border-top-color:transparent;
    border-radius:50%;
    animation:ldr-spin .8s linear infinite;
    z-index:2;
}

/* Анимации */
@keyframes ldr-spin{to{transform:rotate(360deg)}}
@keyframes ldr-dots{
    0%,80%,100%{transform:scale(.6);opacity:.4}
    40%{transform:scale(1);opacity:1}
}
@keyframes ldr-bars{
    0%,100%{transform:scaleY(.5)}
    50%{transform:scaleY(1)}
}
@keyframes ldr-pulse{
    0%{transform:scale(.4);opacity:.7}
    100%{transform:scale(1.4);opacity:0}
}
@keyframes ldr-bar{
    0%{left:-30%}
    100%{left:100%}
}

@media (prefers-reduced-motion: reduce){
    .loader--ring,.loader-dots span,.loader-bars span,
    .loader-pulse::before,.loader-pulse::after,.loader-bar::after,
    .is-loading::after{animation-duration:2.5s}
}

/* === 38-steps.css === */
/* Steps / Stepper — пошаговый индикатор (горизонтальный) */

.steps{
    display:flex;align-items:flex-start;gap:0;
    list-style:none;padding:0;margin:0;
    counter-reset:step;
}
.steps__item{
    flex:1;display:flex;flex-direction:column;align-items:center;
    position:relative;text-align:center;
    counter-increment:step;
}
/* Линия между шагами */
.steps__item:not(:last-child)::after{
    content:'';position:absolute;top:18px;left:50%;right:-50%;
    height:2px;background:var(--color-border);
    z-index:0;
}
.steps__item.is-done:not(:last-child)::after{background:var(--color-accent)}

.steps__dot{
    position:relative;z-index:1;
    width:36px;height:36px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    background:var(--color-surface);border:2px solid var(--color-border);
    color:var(--color-muted);
    font-size:14px;font-weight:var(--fw-semibold);
    font-family:var(--font-mono);
}
.steps__item.is-current .steps__dot{
    background:var(--color-accent);border-color:var(--color-accent);color:#fff;
    box-shadow:0 0 0 4px var(--color-accent-soft);
}
.steps__item.is-done .steps__dot{
    background:var(--color-accent);border-color:var(--color-accent);color:#fff;
}
.steps__item.is-done .steps__dot::before{
    content:'';width:10px;height:6px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;
    transform:rotate(-45deg) translate(1px,-1px);
}
.steps__item.is-done .steps__dot{font-size:0}

.steps__label{
    margin-top:var(--s-3);
    font-size:13px;font-weight:var(--fw-medium);
    color:var(--color-muted);
}
.steps__item.is-current .steps__label,
.steps__item.is-done .steps__label{color:var(--color-text)}
.steps__desc{
    margin-top:2px;
    font-size:12px;color:var(--color-faint);
    line-height:1.35;max-width:180px;
}

/* Компактный вариант */
.steps--compact .steps__dot{width:28px;height:28px;font-size:12px}
.steps--compact .steps__item:not(:last-child)::after{top:14px}
.steps--compact .steps__label{font-size:12px;margin-top:var(--s-2)}

/* Вертикальный вариант */
.steps--vertical{flex-direction:column;align-items:stretch;gap:var(--s-5)}
.steps--vertical .steps__item{
    flex-direction:row;align-items:flex-start;text-align:left;gap:var(--s-4);
}
.steps--vertical .steps__item:not(:last-child)::after{
    top:36px;left:18px;right:auto;bottom:-20px;
    width:2px;height:auto;
}
.steps--vertical .steps__dot{flex-shrink:0}
.steps--vertical .steps__label{margin-top:6px}
.steps--vertical .steps__desc{max-width:none}

/* На мобильных — компакт */
@media (max-width:640px){
    .steps__desc{display:none}
    .steps__label{font-size:11px}
    .steps__dot{width:30px;height:30px;font-size:12px}
    .steps__item:not(:last-child)::after{top:15px}
}

/* === 39-pricing.css === */
/* Pricing — карточки тарифов */

.pricing{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:var(--s-5);
    align-items:stretch;
}

.pricing__card{
    position:relative;
    display:flex;flex-direction:column;
    padding:var(--s-7) var(--s-6);
    background:var(--color-surface);
    border:1px solid var(--color-border);
    border-radius:var(--radius-lg);
    transition:border-color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast);
}
.pricing__card:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}

/* Популярный тариф */
.pricing__card--featured{
    border-color:var(--color-accent);
    box-shadow:0 0 0 3px var(--color-accent-soft), var(--shadow-lg);
}
.pricing__card--featured::before{
    content:attr(data-badge);
    position:absolute;top:-13px;left:50%;transform:translateX(-50%);
    padding:5px 14px;
    background:var(--color-accent);color:#fff;
    font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;
    border-radius:var(--radius-pill);
    white-space:nowrap;
}

.pricing__name{
    margin:0 0 var(--s-2);
    font-size:var(--fs-md);font-weight:var(--fw-semibold);
    color:var(--color-text);
}
.pricing__desc{
    margin:0 0 var(--s-5);
    font-size:13px;color:var(--color-muted);
    line-height:1.5;
    min-height:36px;
}
.pricing__price{
    display:flex;align-items:baseline;gap:6px;
    margin-bottom:var(--s-2);
}
.pricing__amount{
    font-size:clamp(1.8rem,3vw,2.4rem);
    font-weight:var(--fw-bold);
    letter-spacing:-.02em;
    line-height:1;
    color:var(--color-text);
}
.pricing__currency{font-size:1rem;font-weight:var(--fw-medium);color:var(--color-muted)}
.pricing__period{font-size:13px;color:var(--color-muted);margin-left:4px}
.pricing__note{font-size:12px;color:var(--color-faint);margin:0 0 var(--s-5)}

.pricing__cta{
    display:flex;width:100%;justify-content:center;
    margin-bottom:var(--s-5);
}

.pricing__features{
    list-style:none;padding:0;margin:0;
    display:flex;flex-direction:column;gap:var(--s-3);
    border-top:1px solid var(--color-border);padding-top:var(--s-5);
}
.pricing__feature{
    display:flex;align-items:flex-start;gap:10px;
    font-size:14px;color:var(--color-text-soft);
    line-height:1.4;
}
.pricing__feature svg{width:18px;height:18px;flex-shrink:0;color:var(--color-accent);margin-top:1px}
.pricing__feature.is-off{color:var(--color-faint);text-decoration:line-through}
.pricing__feature.is-off svg{color:var(--color-faint)}

/* Сравнительная полоса */
.pricing__divider{height:1px;background:var(--color-border);margin:var(--s-5) 0}

@media (max-width:640px){
    .pricing__card{padding:var(--s-6) var(--s-5)}
}
/* === MOBILE-PATCH === */
@media (max-width:640px){
    .pricing{grid-template-columns:1fr;gap:var(--s-4)}
    .pricing__card{padding:var(--s-6) var(--s-5)}
    .pricing__card--featured::before{font-size:10px;padding:4px 10px}
    .pricing__amount{font-size:2rem}
    .pricing__desc{min-height:0}
    .pricing__feature{font-size:13px;gap:8px}
}

/* === 40-stats.css === */
/* Stats — блок цифр и счётчиков */

.stats{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:var(--s-5);
}
.stats--bordered{
    border:1px solid var(--color-border);
    border-radius:var(--radius-lg);
    padding:var(--s-7) var(--s-6);
    background:var(--color-surface);
}
.stats--striped .stats__item{
    border-right:1px solid var(--color-border);
}
.stats--striped .stats__item:last-child{border-right:0}
@media (max-width:640px){
    .stats--striped .stats__item{border-right:0;border-bottom:1px solid var(--color-border);padding-bottom:var(--s-5)}
    .stats--striped .stats__item:last-child{border-bottom:0;padding-bottom:0}
}

.stats__item{
    display:flex;flex-direction:column;gap:var(--s-2);
    text-align:center;
}
.stats__value{
    font-size:clamp(1.9rem,4vw,2.8rem);
    font-weight:var(--fw-bold);
    letter-spacing:-.02em;
    line-height:1;
    color:var(--color-text);
    font-variant-numeric:tabular-nums;
}
.stats__value .stats__suffix{color:var(--color-accent);font-size:.6em;margin-left:2px}
.stats__label{
    font-size:13px;color:var(--color-muted);
    line-height:1.4;
}
.stats__hint{font-size:12px;color:var(--color-faint)}

/* Компактный */
.stats--compact .stats__value{font-size:var(--fs-2xl)}
.stats--compact .stats__label{font-size:12px}

/* Большой акцентный */
.stats--accent .stats__value{color:var(--color-accent)}
/* === MOBILE-PATCH === */
@media (max-width:640px){
    .stats{grid-template-columns:repeat(2,1fr);gap:var(--s-4)}
    .stats__value{font-size:1.7rem}
    .stats__label{font-size:12px}
    .stats--bordered{padding:var(--s-5) var(--s-4)}
}
@media (max-width:400px){
    .stats{grid-template-columns:1fr}
}

/* === 41-bento.css === */
/* Bento grid — современная раскладка с плитками разных размеров */

.bento{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:var(--s-4);
    grid-auto-rows:minmax(180px,auto);
}

.bento__card{
    position:relative;
    overflow:hidden;
    display:flex;flex-direction:column;justify-content:space-between;
    padding:var(--s-6);
    background:var(--color-surface);
    border:1px solid var(--color-border);
    border-radius:var(--radius-lg);
    color:var(--color-text);
    transition:border-color var(--t-fast),transform var(--t-fast);
}
.bento__card:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}

.bento__title{
    margin:0 0 var(--s-2);
    font-size:var(--fs-md);
    font-weight:var(--fw-semibold);
    line-height:1.25;
}
.bento__text{
    margin:0;
    font-size:14px;
    color:var(--color-muted);
    line-height:1.5;
}
.bento__icon{
    width:40px;height:40px;
    display:inline-flex;align-items:center;justify-content:center;
    border-radius:var(--radius-md);
    background:var(--color-accent-soft);color:var(--color-accent-hover);
    margin-bottom:var(--s-4);
}
.bento__icon svg{width:20px;height:20px}

/* Размеры плиток */
.bento__card--hero   {grid-column:span 3;grid-row:span 2;padding:var(--s-9)}
.bento__card--wide   {grid-column:span 3}
.bento__card--tall   {grid-row:span 2}
.bento__card--std    {grid-column:span 2}
.bento__card--half   {grid-column:span 3}
.bento__card--third  {grid-column:span 2}

/* Варианты оформления */
.bento__card--accent{
    background:linear-gradient(160deg,var(--color-accent) 0%,var(--color-accent-hover) 100%);
    color:#fff;border-color:transparent;
}
.bento__card--accent .bento__text{color:rgba(255,255,255,.85)}
.bento__card--accent .bento__icon{background:rgba(255,255,255,.16);color:#fff}

.bento__card--mesh{
    background:
        radial-gradient(circle at 20% 30%, rgba(255,91,46,.55) 0%, transparent 45%),
        radial-gradient(circle at 80% 70%, rgba(59,130,246,.55) 0%, transparent 45%),
        var(--color-surface);
    color:#fff;
    border-color:transparent;
}
.bento__card--mesh .bento__text{color:rgba(255,255,255,.8)}

.bento__card--image{
    padding:0;
    background:#141418;
    color:#fff;
}
.bento__card--image img{
    position:absolute;inset:0;
    width:100%;height:100%;object-fit:cover;z-index:0;
    transition:transform var(--t-base);
}
.bento__card--image:hover img{transform:scale(1.04)}
.bento__card--image::after{
    content:'';position:absolute;inset:0;z-index:1;
    background:linear-gradient(180deg,rgba(11,11,13,.05) 0%,rgba(11,11,13,.7) 100%);
}
.bento__card--image > *{position:relative;z-index:2}
.bento__card--image .bento__title,
.bento__card--image .bento__text{padding:0 var(--s-6) var(--s-6)}
.bento__card--image .bento__title{padding-top:var(--s-6)}

/* Мобильные */
@media (max-width:900px){
    .bento{grid-template-columns:repeat(4,1fr)}
    .bento__card--hero{grid-column:span 4;grid-row:span 1;padding:var(--s-7)}
    .bento__card--wide,
    .bento__card--half{grid-column:span 4}
    .bento__card--std,
    .bento__card--third{grid-column:span 2}
    .bento__card--tall{grid-row:span 1}
}
@media (max-width:600px){
    .bento{grid-template-columns:1fr}
    .bento__card,
    .bento__card--hero,
    .bento__card--wide,
    .bento__card--std,
    .bento__card--half,
    .bento__card--third{grid-column:span 1;grid-row:auto}
}
/* Light theme: mesh-плитка — светлее градиенты, тёмный текст */
[data-theme="light"] .bento__card--mesh{
    background:
        radial-gradient(circle at 20% 30%, rgba(255,140,80,.45) 0%, transparent 45%),
        radial-gradient(circle at 80% 70%, rgba(120,160,255,.45) 0%, transparent 45%),
        #f4f6fa;
    color:#1a1c20;
    border-color:transparent;
}
[data-theme="light"] .bento__card--mesh .bento__text{color:#5a6169}
[data-theme="light"] .bento__card--mesh .bento__icon{background:rgba(20,22,26,.06);color:var(--color-accent-hover)}

/* Light theme: плитка-картинка — светлая подложка вместо #141418 */
[data-theme="light"] .bento__card--image{
    background:#eef0f4;
    color:#1a1c20;
}
[data-theme="light"] .bento__card--image::after{
    background:linear-gradient(180deg,rgba(255,255,255,.05) 0%,rgba(20,22,26,.55) 100%);
}
/* Текст поверх изображения всё равно должен быть белым (тёмная подложка от ::after) */
[data-theme="light"] .bento__card--image .bento__title,
[data-theme="light"] .bento__card--image .bento__text{color:#fff}
/* === MOBILE-PATCH === */
@media (max-width:900px){
    .bento{grid-auto-rows:minmax(160px,auto)}
    .bento__card{padding:var(--s-5)}
    .bento__card--hero{padding:var(--s-7)}
}
@media (max-width:640px){
    .bento{grid-auto-rows:minmax(140px,auto);gap:var(--s-3)}
    .bento__card{padding:var(--s-4);border-radius:var(--radius-md)}
    .bento__card--hero{padding:var(--s-6)}
    .bento__title{font-size:var(--fs-base)}
    .bento__text{font-size:13px}
    .bento__icon{width:36px;height:36px;margin-bottom:var(--s-3)}
    .bento__card--image .bento__title{padding:var(--s-4)}
    .bento__card--image .bento__title,
    .bento__card--image .bento__text{padding-left:var(--s-4);padding-right:var(--s-4)}
}

/* === 42-advanced-table.css === */
/* Advanced table — сортировка, чекбоксы, sticky header, состояния строк */

.atable-wrap{
    border:1px solid var(--color-border);
    border-radius:var(--radius-md);
    background:var(--color-surface);
    overflow:hidden;
}
.atable-scroll{overflow-x:auto}

.atable{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    font-size:14px;
    color:var(--color-text);
    min-width:640px;
}

.atable thead th{
    position:sticky;top:0;z-index:1;
    background:var(--color-surface-2);
    text-align:left;font-weight:var(--fw-semibold);
    font-size:12px;text-transform:uppercase;letter-spacing:.06em;
    color:var(--color-muted);
    padding:12px 16px;
    border-bottom:1px solid var(--color-border);
    white-space:nowrap;
}

/* Кнопка сортировки в шапке */
.atable__sort{
    display:inline-flex;align-items:center;gap:6px;
    background:transparent;border:0;padding:0;cursor:pointer;
    color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;
    transition:color var(--t-fast);
}
.atable__sort:hover{color:var(--color-text)}
.atable__sort-icon{
    width:12px;height:12px;flex-shrink:0;
    display:inline-flex;flex-direction:column;gap:1px;color:var(--color-faint);
}
.atable__sort-icon i{display:block;width:0;height:0;
    border-left:4px solid transparent;border-right:4px solid transparent;
}
.atable__sort-icon i:first-child{border-bottom:4px solid currentColor}
.atable__sort-icon i:last-child{border-top:4px solid currentColor}
.atable__sort[aria-sort="ascending"] .atable__sort-icon i:first-child{color:var(--color-accent)}
.atable__sort[aria-sort="ascending"] .atable__sort-icon i:last-child{color:var(--color-faint)}
.atable__sort[aria-sort="descending"] .atable__sort-icon i:first-child{color:var(--color-faint)}
.atable__sort[aria-sort="descending"] .atable__sort-icon i:last-child{color:var(--color-accent)}

/* Ячейки */
.atable td{
    padding:12px 16px;
    border-bottom:1px solid var(--color-border);
    vertical-align:middle;
}
.atable tbody tr:last-child td{border-bottom:0}
.atable tbody tr:hover{background:var(--color-surface-2)}
.atable tbody tr.is-selected{background:var(--color-accent-soft)}
.atable tbody tr.is-selected:hover{background:var(--color-accent-soft)}

/* Чекбокс-колонка */
.atable__check-col{width:36px}
.atable__check{
    width:18px;height:18px;
    accent-color:var(--color-accent);
    cursor:pointer;
}

/* Числовая колонка */
.atable .num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}

/* Статусы (маленькие бейджи) */
.atable .status{
    display:inline-flex;align-items:center;gap:6px;
    padding:3px 10px;border-radius:var(--radius-pill);
    font-size:11px;font-weight:var(--fw-semibold);
    letter-spacing:.04em;text-transform:uppercase;
}
.atable .status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.atable .status--success{background:var(--color-success-soft);color:#4ade80}
.atable .status--warning{background:var(--color-warning-soft);color:#fbbf24}
.atable .status--danger {background:var(--color-danger-soft); color:#f87171}
.atable .status--muted  {background:var(--color-surface-2); color:var(--color-muted)}
[data-theme="light"] .atable .status--success{color:#15803d}
[data-theme="light"] .atable .status--warning{color:#a16207}
[data-theme="light"] .atable .status--danger {color:#b91c1c}

/* Действия */
.atable .row-actions{display:inline-flex;gap:6px}
.atable .row-actions button{
    width:30px;height:30px;border-radius:var(--radius-xs);
    display:inline-flex;align-items:center;justify-content:center;
    background:transparent;border:1px solid transparent;color:var(--color-muted);
    cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast);
}
.atable .row-actions button:hover{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border)}
.atable .row-actions button svg{width:16px;height:16px}

/* Тулбар над таблицей */
.atable-toolbar{
    display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;
    padding:var(--s-4) var(--s-5);
    background:var(--color-surface);
    border-bottom:1px solid var(--color-border);
}
.atable-toolbar__title{font-weight:var(--fw-semibold);margin-right:auto}
.atable-toolbar__count{color:var(--color-muted);font-size:13px}
.atable-toolbar__bulk{display:none;gap:var(--s-2)}
.atable-toolbar.has-selection .atable-toolbar__bulk{display:inline-flex}

/* Пагинация под таблицей */
.atable-footer{
    display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);
    padding:var(--s-4) var(--s-5);
    border-top:1px solid var(--color-border);
    color:var(--color-muted);font-size:13px;
    flex-wrap:wrap;
}
/* Панель фильтров над таблицей */
.atable-filters{
    display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;
    padding:var(--s-4) var(--s-5);
    background:var(--color-surface);
    border-bottom:1px solid var(--color-border);
}
.atable-filters__search{
    flex:1;min-width:220px;position:relative;
}
.atable-filters__search .input{padding-left:36px}
.atable-filters__search-icon{
    position:absolute;left:12px;top:50%;transform:translateY(-50%);
    width:16px;height:16px;color:var(--color-muted);pointer-events:none;
}
.atable-filters__select{
    min-width:150px;
}
.atable-filters__reset{
    padding:9px 14px;border-radius:var(--radius-sm);
    color:var(--color-muted);background:transparent;border:1px solid var(--color-border);
    font-size:14px;font-weight:var(--fw-medium);cursor:pointer;
    transition:color var(--t-fast),border-color var(--t-fast);
}
.atable-filters__reset:hover{color:var(--color-accent);border-color:var(--color-accent)}
.atable-filters__reset[disabled]{opacity:.4;pointer-events:none}
.atable-filters__meta{
    margin-left:auto;color:var(--color-faint);font-size:12px;font-family:var(--font-mono);
}
.atable__empty{
    padding:var(--s-9) var(--s-6);
    text-align:center;color:var(--color-muted);font-size:14px;
    display:none;
}
.atable__empty.is-visible{display:block}
.atable__empty-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--color-text);margin:0 0 var(--s-2)}
.atable__empty-text{margin:0}
/* === MOBILE-PATCH === */
@media (max-width:900px){
    .atable{min-width:560px;font-size:13px}
    .atable thead th,.atable td{padding:10px 12px}
    .atable-toolbar{padding:var(--s-3) var(--s-4);flex-wrap:wrap}
    .atable-toolbar__title{width:100%}
    .atable-filters{padding:var(--s-3) var(--s-4);gap:var(--s-2)}
    .atable-filters__search{flex-basis:100%;min-width:0}
    .atable-filters__select{flex:1;min-width:130px}
    .atable-filters__reset{flex-basis:100%}
    .atable-filters__meta{display:none}
    .atable-footer{padding:var(--s-3) var(--s-4);gap:var(--s-2)}
}
@media (max-width:640px){
    .atable{min-width:520px;font-size:12px}
    .atable thead th,.atable td{padding:8px 10px}
    .atable__check-col{width:32px}
    .atable .row-actions button{width:26px;height:26px}
    .atable .row-actions button svg{width:14px;height:14px}
    .atable__empty{padding:var(--s-7) var(--s-4)}
}

/* === 43-charts.css === */
/* Charts — SVG-графики без внешних библиотек */

.chart{
    position:relative;
    padding:var(--s-5);
    background:var(--color-surface);
    border:1px solid var(--color-border);
    border-radius:var(--radius-md);
}
.chart__head{
    display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);
    margin-bottom:var(--s-5);
    flex-wrap:wrap;
}
.chart__title{margin:0;font-size:var(--fs-md);font-weight:var(--fw-semibold)}
.chart__subtitle{margin:2px 0 0;font-size:13px;color:var(--color-muted)}
.chart__legend{display:flex;gap:var(--s-4);flex-wrap:wrap;font-size:12px;color:var(--color-muted)}
.chart__legend span{display:inline-flex;align-items:center;gap:6px}
.chart__legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.chart__body{position:relative;width:100%}
.chart__body svg{display:block;width:100%;height:auto;overflow:visible}

/* ===== Line / Area ===== */
.chart-line__path{
    fill:none;
    stroke:var(--color-accent);
    stroke-width:2.5;
    stroke-linecap:round;stroke-linejoin:round;
}
.chart-line__area{fill:url(#chartLineGradient)}
.chart-line__grid line{stroke:var(--color-border);stroke-width:1;stroke-dasharray:2 4}
.chart-line__axis text{fill:var(--color-muted);font-size:11px;font-family:var(--font-mono)}
.chart-line__dot{fill:var(--color-accent);stroke:var(--color-surface);stroke-width:2}

/* ===== Bars ===== */
.chart-bars__bar{fill:var(--color-accent);transition:opacity var(--t-fast)}
.chart-bars__bar:hover{opacity:.8}
.chart-bars__bar--muted{fill:var(--color-border-strong)}
.chart-bars__axis line{stroke:var(--color-border);stroke-width:1}
.chart-bars__axis text{fill:var(--color-muted);font-size:11px;font-family:var(--font-mono)}
.chart-bars__label{fill:var(--color-muted);font-size:11px;text-anchor:middle}

/* ===== Donut ===== */
.chart-donut{display:flex;align-items:center;gap:var(--s-6);flex-wrap:wrap}
.chart-donut__svg{width:180px;height:180px;flex-shrink:0}
.chart-donut__seg{
    fill:none;
    stroke-width:20;
    transition:opacity var(--t-fast);
    transform-origin:center;
}
.chart-donut__seg:hover{opacity:.8}
.chart-donut__center-value{
    text-anchor:middle;
    fill:var(--color-text);
    font-size:22px;font-weight:var(--fw-bold);
    font-family:var(--font-base);
}
.chart-donut__center-label{
    text-anchor:middle;
    fill:var(--color-muted);
    font-size:11px;
    text-transform:uppercase;letter-spacing:.06em;
    font-family:var(--font-mono);
}
.chart-donut__legend{display:flex;flex-direction:column;gap:var(--s-3);flex:1;min-width:180px}
.chart-donut__row{display:flex;align-items:center;gap:10px;font-size:13px}
.chart-donut__row i{width:10px;height:10px;border-radius:3px;display:inline-block;flex-shrink:0}
.chart-donut__row .value{margin-left:auto;font-family:var(--font-mono);font-size:12px;color:var(--color-muted)}

/* ===== Sparkline ===== */
.chart-spark{display:inline-flex;align-items:center;gap:8px}
.chart-spark svg{width:80px;height:24px;overflow:visible}
.chart-spark__line{fill:none;stroke:var(--color-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chart-spark__line--down{stroke:var(--color-danger)}
.chart-spark__line--up{stroke:var(--color-success)}

/* ===== Progress bars stack ===== */
.chart-stack{display:flex;flex-direction:column;gap:var(--s-4)}
.chart-stack__row{display:grid;grid-template-columns:140px 1fr auto;gap:var(--s-3);align-items:center;font-size:13px}
.chart-stack__label{color:var(--color-text-soft)}
.chart-stack__bar{height:10px;background:var(--color-surface-2);border-radius:var(--radius-pill);overflow:hidden}
.chart-stack__fill{height:100%;background:var(--color-accent);border-radius:inherit;transition:width .3s ease}
.chart-stack__value{font-family:var(--font-mono);font-size:12px;color:var(--color-muted);min-width:48px;text-align:right}

/* Модификаторы цвета */
.chart--accent .chart-bars__bar{fill:var(--color-accent)}
.chart--info   .chart-bars__bar{fill:var(--color-info)}
.chart--success .chart-bars__bar{fill:var(--color-success)}
.chart--warning .chart-bars__bar{fill:var(--color-warning)}

[data-theme="light"] .chart-line__dot{stroke:#fff}
/* === MOBILE-PATCH === */
@media (max-width:900px){
    .chart{padding:var(--s-4)}
    .chart__head{margin-bottom:var(--s-4)}
    .chart-donut{gap:var(--s-5)}
    .chart-donut__svg{width:150px;height:150px}
    .chart-stack__row{grid-template-columns:110px 1fr auto;gap:var(--s-2)}
}
@media (max-width:640px){
    .chart{padding:var(--s-3);border-radius:var(--radius-sm)}
    .chart__title{font-size:var(--fs-base)}
    .chart__subtitle{font-size:12px}
    .chart__legend{font-size:11px;gap:var(--s-3)}
    .chart-donut{flex-direction:column;gap:var(--s-4);align-items:center}
    .chart-donut__svg{width:140px;height:140px}
    .chart-donut__legend{width:100%;min-width:0}
    .chart-donut__center-value{font-size:18px}
    .chart-stack__row{grid-template-columns:1fr auto;gap:6px}
    .chart-stack__label{grid-column:1 / -1}
    .chart-stack__value{grid-column:2;grid-row:2}
    .chart-line__axis text,.chart-bars__axis text{font-size:9px}
}
@media (max-width:400px){
    .chart-donut__svg{width:120px;height:120px}
}

/* === 44-cookie.css === */
/* Cookie consent — липкий баннер снизу страницы */

.cookie{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:calc(var(--z-toast) + 10);
    background:var(--color-surface);
    border-top:1px solid var(--color-border);
    box-shadow:0 -8px 32px rgba(0,0,0,.28);
    padding:var(--s-5) 0;
    transform:translateY(100%);
    transition:transform .3s ease;
    will-change:transform;
}
[data-theme="light"] .cookie{
    background:#ffffff;
    box-shadow:0 -8px 32px rgba(20,22,26,.12);
}
.cookie.is-visible{transform:translateY(0)}

.cookie__inner{
    display:flex;gap:var(--s-5);align-items:center;
    flex-wrap:wrap;
}
.cookie__icon{
    width:40px;height:40px;flex-shrink:0;
    display:inline-flex;align-items:center;justify-content:center;
    background:var(--color-accent-soft);color:var(--color-accent-hover);
    border-radius:var(--radius-md);
}
.cookie__icon svg{width:22px;height:22px}

.cookie__body{flex:1;min-width:240px}
.cookie__title{margin:0 0 4px;font-size:var(--fs-base);font-weight:var(--fw-semibold)}
.cookie__text{margin:0;font-size:13px;color:var(--color-muted);line-height:1.5}
.cookie__text a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}
.cookie__text a:hover{color:var(--color-accent-hover)}

.cookie__actions{display:flex;gap:var(--s-3);flex-wrap:wrap;align-items:center}
.cookie__actions .btn{white-space:nowrap}

@media (max-width:640px){
    .cookie{padding:var(--s-4) 0}
    .cookie__inner{gap:var(--s-4)}
    .cookie__icon{width:36px;height:36px}
    .cookie__icon svg{width:20px;height:20px}
    .cookie__actions{width:100%}
    .cookie__actions .btn{flex:1;justify-content:center}
}

/* === 45-header-footer-extended.css === */
/* 45-header-footer-extended.css
 * Расширения шапки и подвала: dropdown-меню, телефон, поиск, соцсети, юр.инфо.
 */

/* ===== Шапка: раскладка ===== */
.header__inner {
    display: flex;
    align-items: center;
    gap: var(--s-5);
    height: var(--header-h);
}
.header__logo { flex-shrink: 0; }
.nav { flex: 1; display: flex; align-items: center; gap: var(--s-5); }
.header__actions {
    display: flex;
    align-items: center;
    gap: var(--s-3);
    flex-shrink: 0;
}

/* ===== Телефон в шапке ===== */
.header__phone {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: var(--radius-sm);
    color: var(--color-text);
    font-weight: var(--fw-medium);
    font-size: 14px;
    text-decoration: none;
    transition: color var(--t-fast), background var(--t-fast);
}
.header__phone:hover { color: var(--color-accent); background: var(--color-surface-2); }
.header__phone svg { color: var(--color-accent); flex-shrink: 0; }

/* ===== Кнопка поиска ===== */
.header__search-btn {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    color: var(--color-muted);
    background: transparent;
    border: 0;
    cursor: pointer;
    transition: color var(--t-fast), background var(--t-fast);
}
.header__search-btn:hover { color: var(--color-text); background: var(--color-surface-2); }

/* ===== Dropdown-меню в шапке ===== */
.nav__dropdown { position: relative; }

.nav__link--dropdown {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: transparent;
    border: 0;
    padding: 6px 0;
    font: inherit;
    color: var(--color-muted);
    cursor: pointer;
    position: relative;
    transition: color var(--t-fast);
}
.nav__link--dropdown:hover,
.nav__link--dropdown.is-active { color: var(--color-text); }
.nav__link--dropdown svg { width: 12px; height: 12px; transition: transform var(--t-fast); }
.nav__dropdown.is-open .nav__link--dropdown svg { transform: rotate(180deg); }

.nav__dropdown-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: -12px;
    min-width: 300px;
    padding: var(--s-2);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    z-index: var(--z-modal);
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
    transition: opacity var(--t-fast), transform var(--t-fast);
}
.nav__dropdown.is-open .nav__dropdown-menu {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.nav__dropdown-link {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 9px 12px;
    border-radius: var(--radius-sm);
    text-decoration: none;
    color: var(--color-text);
    transition: background var(--t-fast);
}
.nav__dropdown-link:hover { background: var(--color-surface-2); }
.nav__dropdown-title { font-size: 14px; font-weight: var(--fw-medium); }
.nav__dropdown-desc { font-size: 12px; color: var(--color-muted); line-height: 1.35; }

/* ===== Мобильные ===== */
@media (max-width: 900px) {
    .header__actions { margin-left: auto; }
    .header__phone-num { display: none; }
    .header__callback { display: none; }

    .nav {
        display: none;
        position: absolute;
        top: var(--header-h);
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        padding: var(--s-5) var(--s-6);
        background: var(--color-surface);
        border-bottom: 1px solid var(--color-border);
        box-shadow: var(--shadow-md);
        gap: var(--s-3);
        z-index: var(--z-header);
    }
    .nav.is-open { display: flex; }

    .nav__dropdown-menu {
        position: static;
        transform: none;
        opacity: 1;
        pointer-events: auto;
        box-shadow: none;
        border: 0;
        padding-left: var(--s-4);
        min-width: 0;
        display: none;
    }
    .nav__dropdown.is-open .nav__dropdown-menu { display: block; }
}

/* ===== Подвал: расширенная структура ===== */
.footer__col--brand { max-width: 320px; }
.footer__tagline {
    color: var(--color-muted);
    font-size: 14px;
    margin: var(--s-2) 0 var(--s-4);
    line-height: 1.55;
}
.footer__hours { color: var(--color-faint); font-size: 13px; }

/* Соцсети */
.footer__socials { display: flex; gap: var(--s-3); flex-wrap: wrap; }
.footer__social {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    background: var(--color-surface-2);
    color: var(--color-muted);
    text-decoration: none;
    transition: background var(--t-fast), color var(--t-fast);
}
.footer__social:hover { background: var(--color-accent-soft); color: var(--color-accent-hover); }

/* Юридическая информация */
.footer__legal-info {
    margin-top: var(--s-4);
    font-size: 12px;
    color: var(--color-faint);
    line-height: 1.6;
}

/* Ссылка «Наверх» */
.footer__up {
    font-size: 13px;
    color: var(--color-muted);
    text-decoration: none;
    transition: color var(--t-fast);
}
.footer__up:hover { color: var(--color-accent); }

/* Сетка подвала 4 колонки на десктопе */
@media (min-width: 901px) {
    .footer__grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; }
}
/* === MOBILE-HEADER-FIX === */
/* Адаптация шапки для узких экранов 320–640px */

/* Защита от вылета контента за границы на всех размерах */
.header__inner { min-width: 0; }
.header__logo  { min-width: 0; max-width: 100%; }
.header__logo span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 900px) {
    .header__inner { gap: var(--s-3); }
    .header__actions { gap: var(--s-2); }
}

@media (max-width: 640px) {
    /* Контейнер уже, чем на десктопе — экономит 8px с каждой стороны */
    .header .container { padding-left: var(--s-3); padding-right: var(--s-3); }

    /* Шапка: узкие промежутки */
    .header__inner { gap: var(--s-2); }

    /* Лого: уменьшить иконку */
    .header__logo { gap: var(--s-2); }
    .header__logo img { height: 30px; width: auto; }

    /* Действия: компактные кнопки */
    .header__actions { gap: 2px; }

    .header__search-btn,
    .header__phone {
        width: 36px;
        height: 36px;
        padding: 0;
        justify-content: center;
    }

    .header-cart-link {
        width: 36px;
        height: 36px;
    }

    .header-cart-link svg { width: 18px; height: 18px; }
    .header-cart-link .cart-badge { top: 1px; right: 1px; }

    .nav__toggle { padding: 6px; }

    /* Тема-переключатель (только на /styleguide) */
    .nav__theme-toggle { width: 36px; height: 36px; padding: 0; }
}

@media (max-width: 480px) {
    /* На самых узких — прячем название бренда, оставляем только иконку лого */
    .header__logo span { display: none; }
    .header__logo img { height: 32px; }

    /* Ещё компактнее */
    .header__inner { gap: var(--s-2); }
    .header__actions { gap: 0; }

    .header__search-btn,
    .header__phone,
    .header-cart-link,
    .nav__theme-toggle { width: 34px; height: 34px; }

    .header-cart-link svg { width: 17px; height: 17px; }
    .header-cart-link .cart-badge { font-size: 10px; min-width: 16px; height: 16px; padding: 0 4px; }
}

@media (max-width: 375px) {
    /* Экстремально узкие: ещё сжимаем */
    .header .container { padding-left: var(--s-2); padding-right: var(--s-2); }
    .header__inner { gap: 4px; }
    .header__logo img { height: 28px; }
    .header__search-btn,
    .header__phone,
    .header-cart-link,
    .nav__theme-toggle { width: 32px; height: 32px; }
    .nav__toggle { padding: 4px; }
    .nav__toggle svg { width: 20px; height: 20px; }
}

/* На всякий случай — sticky-шапка не должна создавать горизонтальный скролл */
.header { overflow-x: clip; }

/* === 46-cart.css === */
/* 46-cart.css — Корзина, избранное, сравнение, карточки товаров */

/* ===== Сетка каталога ===== */
.products-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--s-5);
}

/* ===== Карточка товара ===== */
.product-card {
    display: flex;
    flex-direction: column;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: border-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
}
.product-card:hover {
    border-color: var(--color-border-strong);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
.product-card.is-out-of-stock { opacity: .65; }

.product-card__media {
    position: relative;
    aspect-ratio: 4 / 3;
    background: var(--color-surface-2);
    overflow: hidden;
}
.product-card__media img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform var(--t-base);
}
.product-card:hover .product-card__media img { transform: scale(1.04); }

.product-card__badge {
    position: absolute; top: 10px; left: 10px;
    padding: 3px 10px;
    font-size: 11px; font-weight: var(--fw-semibold);
    text-transform: uppercase; letter-spacing: .05em;
    border-radius: var(--radius-pill);
    background: var(--color-accent);
    color: #fff;
}
.product-card__badge--new  { background: var(--color-success); }
.product-card__badge--sale { background: var(--color-danger); }
.product-card__badge--out  { background: var(--color-surface-3); color: var(--color-muted); }

.product-card__body {
    display: flex; flex-direction: column; gap: var(--s-2);
    padding: var(--s-4) var(--s-5) var(--s-5);
    flex: 1;
}
.product-card__title {
    margin: 0;
    font-size: 15px; font-weight: var(--fw-semibold);
    line-height: 1.3;
    color: var(--color-text);
}
.product-card__desc {
    margin: 0;
    font-size: 13px;
    color: var(--color-muted);
    line-height: 1.45;
}
.product-card__price {
    display: flex; align-items: baseline; gap: 8px;
    margin-top: auto; padding-top: var(--s-3);
}
.product-card__price-value {
    font-size: 18px; font-weight: var(--fw-bold);
    letter-spacing: -.01em;
    color: var(--color-text);
}
.product-card__price-old {
    font-size: 13px; color: var(--color-faint);
    text-decoration: line-through;
}

.product-card__actions {
    display: flex; gap: 6px; align-items: stretch;
    margin-top: var(--s-3);
}

/* ===== Кнопка «В корзину» / «В корзине» ===== */
.btn-cart {
    flex: 1;
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    padding: 10px 14px;
    font-size: 14px; font-weight: var(--fw-semibold);
    border: 1px solid var(--color-accent);
    background: var(--color-accent);
    color: #fff;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast), transform var(--t-fast);
    white-space: nowrap;
}
.btn-cart:hover {
    background: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
    transform: translateY(-1px);
}
.btn-cart:active { transform: translateY(0); }
.btn-cart:disabled { opacity: .55; cursor: progress; }

.btn-cart.is-in-cart {
    background: transparent;
    color: var(--color-accent);
    border-color: var(--color-accent);
}
.btn-cart.is-in-cart:hover {
    background: var(--color-accent-soft);
    color: var(--color-accent-hover);
}


.btn-cart.is-loading { pointer-events: none; }
.btn-cart.is-loading::after {
    content: '';
    width: 14px; height: 14px;
    margin-left: 6px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: cart-spin .8s linear infinite;
}
@keyframes cart-spin { to { transform: rotate(360deg); } }

/* ===== Кнопки-иконки (избранное, сравнение) ===== */
.btn-fav, .btn-compare {
    width: 40px; height: 40px;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-muted);
    cursor: pointer;
    transition: color var(--t-fast), border-color var(--t-fast), background var(--t-fast);
    flex-shrink: 0;
}
.btn-fav svg, .btn-compare svg { width: 18px; height: 18px; }
.btn-fav:hover    { color: #ef4444; border-color: #ef4444; }
.btn-compare:hover{ color: var(--color-accent); border-color: var(--color-accent); }

.btn-fav.is-active {
    color: #ef4444;
    border-color: #ef4444;
    background: rgba(239,68,68,.08);
}
.btn-fav.is-active svg { fill: currentColor; }

.btn-compare.is-active {
    color: var(--color-accent);
    border-color: var(--color-accent);
    background: var(--color-accent-soft);
}

/* ===== Бейдж-счётчик в шапке ===== */
.header-cart-btn {
    position: relative;
    width: 40px; height: 40px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--color-muted);
    border-radius: var(--radius-sm);
    transition: color var(--t-fast), background var(--t-fast);
    text-decoration: none;
}
.header-cart-btn:hover { color: var(--color-text); background: var(--color-surface-2); }
.header-cart-btn svg { width: 20px; height: 20px; }

.cart-badge {
    position: absolute;
    top: 2px; right: 2px;
    min-width: 18px; height: 18px;
    padding: 0 5px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: var(--fw-bold); line-height: 1;
    background: var(--color-accent);
    color: #fff;
    border-radius: var(--radius-pill);
    border: 2px solid var(--color-bg);
    transition: transform var(--t-fast);
}
.cart-badge.is-empty {
    transform: scale(0);
    opacity: 0;
    pointer-events: none;
}
.cart-badge--muted { background: var(--color-muted); }
.cart-badge--info  { background: var(--color-info); }

/* ===== Шапка: группа иконок корзины ===== */
.header-commerce {
    display: flex;
    align-items: center;
    gap: 4px;
}
.header-commerce__divider {
    width: 1px;
    height: 20px;
    background: var(--color-border);
    margin: 0 6px;
}

/* ===== Мини-корзина ===== */
.mini-cart {
    padding: var(--s-4);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}
.mini-cart__head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: var(--s-3);
    padding-bottom: var(--s-3);
    border-bottom: 1px solid var(--color-border);
}
.mini-cart__title { margin: 0; font-size: 15px; font-weight: var(--fw-semibold); }
.mini-cart__count { font-size: 13px; color: var(--color-muted); }

.mini-cart__list { display: flex; flex-direction: column; gap: var(--s-3); }
.mini-cart__item {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: var(--s-3);
    align-items: center;
}
.mini-cart__item[hidden] { display: none; }
.mini-cart__item-img {
    width: 56px; height: 56px;
    border-radius: var(--radius-sm);
    background: var(--color-surface-2);
    object-fit: cover;
}
.mini-cart__item-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mini-cart__item-title {
    font-size: 14px; font-weight: var(--fw-medium);
    color: var(--color-text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mini-cart__item-price { font-size: 13px; color: var(--color-muted); }
.mini-cart__item-remove {
    width: 28px; height: 28px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--color-muted);
    border: 1px solid transparent;
    border-radius: var(--radius-xs);
    background: transparent;
    cursor: pointer;
    transition: color var(--t-fast), background var(--t-fast), border-color var(--t-fast);
}
.mini-cart__item-remove:hover { color: var(--color-danger); border-color: var(--color-danger); }

.mini-cart__foot {
    display: flex; align-items: center; justify-content: space-between; gap: var(--s-3);
    margin-top: var(--s-4);
    padding-top: var(--s-4);
    border-top: 1px solid var(--color-border);
}
.mini-cart__total-label { font-size: 13px; color: var(--color-muted); }
.mini-cart__total-value { font-size: 18px; font-weight: var(--fw-bold); }

.mini-cart__empty {
    text-align: center;
    padding: var(--s-6) var(--s-4);
    color: var(--color-muted);
    font-size: 14px;
}
.mini-cart__empty[hidden] { display: none; }

/* ===== Числовое поле количества ===== */
.qty-control {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--color-surface);
}
.qty-control__btn {
    width: 34px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent;
    border: 0;
    color: var(--color-muted);
    cursor: pointer;
    font-size: 18px; line-height: 1;
    transition: color var(--t-fast), background var(--t-fast);
}
.qty-control__btn:hover { color: var(--color-text); background: var(--color-surface-2); }
.qty-control__value {
    min-width: 40px;
    text-align: center;
    padding: 0 6px;
    font-size: 14px; font-weight: var(--fw-medium);
    font-variant-numeric: tabular-nums;
    color: var(--color-text);
    border-left: 1px solid var(--color-border);
    border-right: 1px solid var(--color-border);
    line-height: 36px;
}

/* ===== Таблица сравнения ===== */
.compare-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}
.compare-table th, .compare-table td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--color-border);
    vertical-align: top;
    text-align: left;
}
.compare-table thead th {
    background: var(--color-surface-2);
    font-weight: var(--fw-semibold);
    font-size: 13px;
}
.compare-table tbody tr:last-child th,
.compare-table tbody tr:last-child td { border-bottom: 0; }
.compare-table__attr { color: var(--color-muted); font-weight: var(--fw-medium); width: 180px; }
.compare-table__img { width: 80px; height: 80px; border-radius: var(--radius-sm); background: var(--color-surface-2); }
.compare-table__remove {
    width: 28px; height: 28px;
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border: 1px solid var(--color-border);
    border-radius: var(--radius-xs);
    color: var(--color-muted);
    cursor: pointer;
    transition: color var(--t-fast), border-color var(--t-fast);
}
.compare-table__remove:hover { color: var(--color-danger); border-color: var(--color-danger); }

/* ===== Страница корзины (полный вариант) ===== */
.cart-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.cart-table th, .cart-table td { padding: 14px 12px; border-bottom: 1px solid var(--color-border); text-align: left; }
.cart-table thead th {
    background: var(--color-surface-2);
    font-size: 12px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--color-muted); font-weight: var(--fw-semibold);
}
.cart-table__media { width: 64px; }
.cart-table__media img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--radius-sm); }
.cart-table__actions { text-align: right; }
.cart-table__price { font-family: var(--font-mono); }

.cart-summary {
    display: flex; justify-content: flex-end; gap: var(--s-6);
    padding: var(--s-5) 0;
    margin-top: var(--s-4);
    border-top: 2px solid var(--color-border);
}
.cart-summary__row { display: flex; gap: var(--s-3); align-items: baseline; }
.cart-summary__label { color: var(--color-muted); }
.cart-summary__value { font-size: var(--fs-xl); font-weight: var(--fw-bold); }

/* ===== Адаптив ===== */
@media (max-width: 640px) {
    .products-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--s-3); }
    .product-card__body { padding: var(--s-3) var(--s-4) var(--s-4); }
    .product-card__title { font-size: 14px; }
    .btn-cart { font-size: 13px; padding: 9px 12px; }
    .btn-fav, .btn-compare { width: 36px; height: 36px; }

    .mini-cart__item { grid-template-columns: 44px 1fr auto; }
    .mini-cart__item-img { width: 44px; height: 44px; }

    .compare-table { font-size: 12px; }
    .compare-table th, .compare-table td { padding: 8px 10px; }
    .compare-table__attr { width: 120px; }

    .cart-table__media { display: none; }
    .cart-table th, .cart-table td { padding: 10px 8px; font-size: 13px; }
}
/* ===== Иконка корзины в шапке ===== */
.header-cart-link {
    position: relative;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-muted);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: color var(--t-fast), background var(--t-fast);
}
.header-cart-link:hover {
    color: var(--color-text);
    background: var(--color-surface-2);
}
.header-cart-link svg { width: 20px; height: 20px; }
.header-cart-link .cart-badge { top: 3px; right: 3px; }

/* ===== Fly-to-cart анимация ===== */
.fly-to-cart {
    position: fixed;
    z-index: 9999;
    pointer-events: none;
    background-size: cover;
    background-position: center;
    border-radius: var(--radius-sm);
    box-shadow: 0 8px 24px rgba(0,0,0,.35);
    transition: transform .8s cubic-bezier(.5,-0.2,.85,.3),
                opacity .8s ease,
                border-radius .8s ease;
    will-change: transform, opacity;
    transform: translate(0, 0) scale(1);
    opacity: 1;
}

/* ===== Pop-эффект на иконке корзины ===== */
@keyframes cart-receive-pop {
    0%   { transform: scale(1); }
    25%  { transform: scale(1.35); }
    45%  { transform: scale(.9); }
    65%  { transform: scale(1.15); }
    100% { transform: scale(1); }
}
@keyframes cart-badge-pop {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.6); background: var(--color-success); }
    100% { transform: scale(1); background: var(--color-accent); }
}
.header-cart-link.is-receiving {
    animation: cart-receive-pop .7s cubic-bezier(.3,1.2,.5,1);
    color: var(--color-accent);
}
.header-cart-link.is-receiving .cart-badge {
    animation: cart-badge-pop .7s ease;
}

/* ===== Smooth-scroll и якорь ===== */
html { scroll-behavior: smooth; }

/* Чтобы sticky-шапка не перекрывала цель якоря */
#cart-demo,
#cart-lists {
    scroll-margin-top: calc(var(--header-h) + var(--s-5));
}

/* ===== Скрытие/появление бейджа с плавностью ===== */
.cart-badge {
    transition: transform var(--t-fast), opacity var(--t-fast), background var(--t-fast);
}
/* ===== Оформление заказа ===== */
.checkout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s-7);
    align-items: start;
}
@media (max-width: 900px) {
    .checkout { grid-template-columns: 1fr; gap: var(--s-5); }
}

.checkout__title {
    margin: 0 0 var(--s-4);
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
}

.checkout__summary {
    padding: var(--s-5);
    background: var(--color-surface-2);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
}

.checkout__items {
    display: flex;
    flex-direction: column;
    gap: var(--s-3);
    margin-bottom: var(--s-4);
    padding-bottom: var(--s-4);
    border-bottom: 1px solid var(--color-border);
}

.checkout__item {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: var(--s-3);
    align-items: center;
}
.checkout__item-img {
    width: 56px; height: 56px;
    object-fit: cover;
    border-radius: var(--radius-sm);
    background: var(--color-surface);
}
.checkout__item-body { min-width: 0; }
.checkout__item-name {
    font-size: 14px;
    font-weight: var(--fw-medium);
    color: var(--color-text);
    margin-bottom: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.checkout__item-meta {
    font-size: 12px;
    color: var(--color-muted);
    font-variant-numeric: tabular-nums;
}
.checkout__item-sum {
    font-size: 14px;
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.checkout__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--s-4);
}
.checkout__total-label {
    font-size: 14px;
    color: var(--color-muted);
}
.checkout__total-value {
    font-size: var(--fs-2xl);
    font-weight: var(--fw-bold);
    letter-spacing: -.02em;
}

.checkout__form {
    /* CHECKOUT-GAP-FIX */
    display: grid;
    gap: var(--s-5);
    padding: var(--s-5);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

@media (max-width: 640px) {
    .checkout__summary,
    .checkout__form { padding: var(--s-4); }
    .checkout__total-value { font-size: var(--fs-xl); }
}
/* ===== compare-table: горизонтальный скролл ===== */
/* Обёртка для .compare-table — обеспечивает overflow-x:auto на мобильных */
.compare-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--color-border-strong) var(--color-surface);
    margin: 0 calc(var(--s-3) * -1);
    padding: 0 var(--s-3);
}
.compare-table-wrap::-webkit-scrollbar { height: 8px; }
.compare-table-wrap::-webkit-scrollbar-track { background: var(--color-surface); }
.compare-table-wrap::-webkit-scrollbar-thumb {
    background: var(--color-border-strong);
    border-radius: 4px;
}

/* На мобильных таблица сравнения должна вмещать минимум по колонке */
@media (max-width: 900px) {
    .compare-table { min-width: 640px; }
}
@media (max-width: 640px) {
    .compare-table { min-width: 520px; font-size: 13px; }
    .compare-table th,
    .compare-table td { padding: 8px 10px; }
    .compare-table__img { width: 60px; height: 60px; }
}

/* === CART-ICONS-FIX === */
/* Иконки внутри .btn-cart:
   · «В корзину» — корзина
   · «В корзине» — галочка
   Используем base64-encoded SVG в mask, чтобы currentColor работал.
*/

.btn-cart::before {
    content: '';
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iOSIgY3k9IjIwIiByPSIxLjciIGZpbGw9IiMwMDAiLz48Y2lyY2xlIGN4PSIxNyIgY3k9IjIwIiByPSIxLjciIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMyA0aDJsMyAxMmgxMGwzLTlINiIvPjwvc3ZnPg==") center / contain no-repeat;
            mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iOSIgY3k9IjIwIiByPSIxLjciIGZpbGw9IiMwMDAiLz48Y2lyY2xlIGN4PSIxNyIgY3k9IjIwIiByPSIxLjciIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMyA0aDJsMyAxMmgxMGwzLTlINiIvPjwvc3ZnPg==") center / contain no-repeat;
}

.btn-cart.is-in-cart::before {
    width: 16px;
    height: 16px;
    -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTUgMTNsNCA0TDE5IDciLz48L3N2Zz4=") center / contain no-repeat;
            mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTUgMTNsNCA0TDE5IDciLz48L3N2Zz4=") center / contain no-repeat;
}

/* На мобильных иконка чуть меньше, чтобы всё влезало */
@media (max-width: 640px) {
    .btn-cart::before,
    .btn-cart.is-in-cart::before {
        width: 14px;
        height: 14px;
    }
}

/* Если иконок две (для динамической смены через CSS) — на будущее */
.btn-cart__icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    display: none;
}
.btn-cart__icon--plus {
    -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDV2MTRNNSAxMmgxNCIvPjwvc3ZnPg==") center / contain no-repeat;
            mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDV2MTRNNSAxMmgxNCIvPjwvc3ZnPg==") center / contain no-repeat;
    background: currentColor;
}


/* Дополнительные стили для страницы /cart */

.cart-table__name {
    color: var(--color-text);
    font-weight: var(--fw-medium);
    text-decoration: none;
    transition: color var(--t-fast);
}
.cart-table__name:hover { color: var(--color-accent); }

.cart-table__remove {
    width: 32px; height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--radius-xs);
    color: var(--color-muted);
    cursor: pointer;
    transition: color var(--t-fast), border-color var(--t-fast), background var(--t-fast);
}
.cart-table__remove:hover {
    color: var(--color-danger);
    border-color: var(--color-danger);
    background: rgba(239,68,68,.05);
}

.cart-actions {
    display: flex;
    justify-content: space-between;
    gap: var(--s-3);
    margin-top: var(--s-5);
    flex-wrap: wrap;
}
.cart-actions--end {
    justify-content: flex-end;
    margin-top: var(--s-6);
}

@media (max-width: 640px) {
    .cart-table th, .cart-table td {
        padding: 8px 6px;
        font-size: 13px;
    }
    .cart-table__media { display: none; }
    .cart-actions { flex-direction: column; }
    .cart-actions .btn { width: 100%; }
}

/* === CART-SQUARE-IMAGES === */
/* Квадратные фото товаров в корзине, мини-корзине и оформлении */

.cart-table__media img,
.cart-table__media a {
    display: block;
    width: 64px;
    height: 64px;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: var(--radius-sm);
    background: var(--color-surface-2);
    overflow: hidden;
}

.cart-table__media {
    width: 80px;
    padding-right: 0;
}

.mini-cart__item-img {
    width: 56px;
    height: 56px;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.checkout__item-img {
    width: 56px;
    height: 56px;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

@media (max-width: 640px) {
    .cart-table__media img,
    .cart-table__media a {
        width: 52px;
        height: 52px;
    }
}

/* CHECKOUT-GAP-FIX: убираем margin заголовка, чтобы не суммировался с gap */
.checkout__form > .checkout__title { margin-bottom: 0; }

/* === 47-input-mask.css === */
/* 47-input-mask.css — стили валидности полей с маской */

/* Поле — контейнер */
.field { position: relative; }

/* Иконка в поле (галочка / крестик) */
.field.is-valid .input,
.field.is-valid .textarea,
.field.is-valid .select {
    padding-right: 40px;
    border-color: var(--color-success);
    background-color: var(--color-surface);
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-11'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 18px 18px;
}

.field.is-invalid .input,
.field.is-invalid .textarea,
.field.is-invalid .select {
    padding-right: 40px;
    border-color: var(--color-danger);
    background-color: var(--color-surface);
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ef4444' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 18px 18px;
}

/* Мягкая подсветка контейнера-поля */
.field.is-valid .field__label { color: var(--color-success); }
.field.is-invalid .field__label { color: var(--color-danger); }

/* Мобильный — иконка меньше */
@media (max-width: 640px) {
    .field.is-valid .input,
    .field.is-invalid .input {
        padding-right: 36px;
        background-position: right 10px center;
        background-size: 16px 16px;
    }
}

/* Тёмная тема — цвета подсветки уже через токены, ничего не меняем */
[data-theme="light"] .field.is-valid .input,
[data-theme="light"] .field.is-invalid .input {
    background-color: #fff;
}

/* === 48-catalog.css === */
/* 48-catalog.css — Каталог: сетка, фильтры, категории, карточка товара */

/* ===== Категории-табы ===== */
.catalog-cats {
    display: flex;
    gap: var(--s-2);
    flex-wrap: wrap;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--s-4);
}
.catalog-cat {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: var(--radius-pill);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text-soft);
    font-size: 14px;
    font-weight: var(--fw-medium);
    text-decoration: none;
    transition: all var(--t-fast);
}
.catalog-cat:hover {
    border-color: var(--color-accent);
    color: var(--color-text);
}
.catalog-cat.is-active {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
}
.catalog-cat__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    padding: 0 6px;
    height: 20px;
    font-size: 11px;
    font-weight: var(--fw-bold);
    background: rgba(255,255,255,.15);
    border-radius: var(--radius-pill);
    color: inherit;
}
.catalog-cat.is-active .catalog-cat__count { background: rgba(255,255,255,.25); }

/* ===== Раскладка: сайдбар + товары ===== */
.catalog-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: var(--s-6);
    align-items: start;
}

.catalog-sidebar { position: sticky; top: calc(var(--header-h) + var(--s-4)); }
@media (max-width: 900px) {
    .catalog-layout { grid-template-columns: 1fr; }
    .catalog-sidebar { position: static; }
}

/* ===== Фильтры ===== */
.catalog-filters {
    display: flex;
    flex-direction: column;
    gap: var(--s-5);
    padding: var(--s-5);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}
.catalog-filters__group { display: flex; flex-direction: column; gap: var(--s-2); }
.catalog-filters__title {
    font-size: 12px;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
}
.catalog-filters__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-2); }
.catalog-filters__actions { display: flex; flex-direction: column; gap: var(--s-2); margin-top: var(--s-2); }

/* ===== Голова каталога ===== */
.catalog-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--s-5);
    gap: var(--s-3);
}
.catalog-head__count {
    font-size: 14px;
    color: var(--color-muted);
}
.catalog-head__count strong { color: var(--color-text); font-weight: var(--fw-semibold); }

.pagination-nav { margin-top: var(--s-7); }

/* ===== Карточка товара (детальная страница) ===== */
.product-detail {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s-8);
    margin-bottom: var(--s-10);
}
@media (max-width: 900px) {
    .product-detail { grid-template-columns: 1fr; gap: var(--s-6); }
}

.product-detail__media {
    display: flex;
    flex-direction: column;
    gap: var(--s-3);
    position: sticky;
    top: calc(var(--header-h) + var(--s-4));
}
@media (max-width: 900px) { .product-detail__media { position: static; } }

.product-detail__image-main {
    position: relative;
    aspect-ratio: 4 / 3;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
}
.product-detail__image-main img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.product-detail__thumbs {
    display: flex;
    gap: var(--s-2);
    flex-wrap: wrap;
}
.product-detail__thumb {
    width: 70px; height: 70px;
    border-radius: var(--radius-sm);
    border: 2px solid var(--color-border);
    background: var(--color-surface);
    overflow: hidden;
    padding: 0;
    cursor: pointer;
    transition: border-color var(--t-fast);
}
.product-detail__thumb.is-active { border-color: var(--color-accent); }
.product-detail__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.product-detail__info {
    display: flex;
    flex-direction: column;
    gap: var(--s-4);
}

.product-detail__title {
    margin: 0;
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    font-weight: var(--fw-bold);
    line-height: 1.15;
    letter-spacing: -.02em;
}
.product-detail__cat {
    display: inline-block;
    font-size: 13px;
    color: var(--color-muted);
    text-decoration: none;
    transition: color var(--t-fast);
}
.product-detail__cat:hover { color: var(--color-accent); }

.product-detail__price {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
}
.product-detail__price-value {
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: var(--fw-bold);
    letter-spacing: -.02em;
}
.product-detail__price-old {
    font-size: 1.1rem;
    color: var(--color-faint);
    text-decoration: line-through;
}

.product-detail__desc {
    margin: 0;
    font-size: 15px;
    color: var(--color-muted);
    line-height: 1.6;
}

.product-detail__actions {
    display: flex;
    gap: var(--s-2);
    flex-wrap: wrap;
    align-items: stretch;
}
.product-detail__actions .btn-cart--lg,
.product-detail__actions .btn-fav--lg,
.product-detail__actions .btn-compare--lg {
    min-height: 48px;
}
.product-detail__actions .btn-cart--lg { flex: 1; min-width: 200px; padding: 14px 24px; font-size: 15px; }
.product-detail__actions .btn-fav--lg,
.product-detail__actions .btn-compare--lg {
    width: 48px; height: 48px;
}

.product-detail__features {
    margin-top: var(--s-4);
    padding-top: var(--s-5);
    border-top: 1px solid var(--color-border);
}
.product-detail__features-title {
    font-size: 15px;
    font-weight: var(--fw-semibold);
    margin: 0 0 var(--s-3);
}
.product-detail__features-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--s-2);
}
.product-detail__features-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    color: var(--color-text-soft);
    line-height: 1.4;
}
.product-detail__features-list svg {
    width: 18px; height: 18px;
    flex-shrink: 0;
    color: var(--color-accent);
    margin-top: 1px;
}

.product-detail__attrs,
.product-detail__related { margin-top: var(--s-10); }
.product-detail__section-title {
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
    margin: 0 0 var(--s-5);
}

/* ===== Мобильные ===== */
@media (max-width: 640px) {
    .catalog-filters { padding: var(--s-4); gap: var(--s-4); }
    .catalog-head { flex-direction: column; align-items: stretch; }
    .product-detail { margin-bottom: var(--s-8); }
    .product-detail__actions .btn-cart--lg { min-width: 0; width: 100%; }
    .product-detail__attrs .table th { width: auto !important; }
}

/* === 49-blog.css === */
/* 49-blog.css — Блог и статьи */

/* ===== Сетка статей ===== */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: var(--s-6);
}

.blog-card {
    display: flex;
    flex-direction: column;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: border-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
}
.blog-card:hover {
    border-color: var(--color-border-strong);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
.blog-card__cover {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--color-surface-2);
}
.blog-card__cover img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--t-base);
}
.blog-card:hover .blog-card__cover img { transform: scale(1.04); }

.blog-card__body {
    padding: var(--s-5);
    display: flex;
    flex-direction: column;
    gap: var(--s-3);
    flex: 1;
}
.blog-card__meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--color-muted);
}
.blog-card__cat {
    color: var(--color-accent);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: .05em;
}
.blog-card__dot { color: var(--color-faint); }
.blog-card__title {
    margin: 0;
    font-size: var(--fs-md);
    font-weight: var(--fw-semibold);
    line-height: 1.3;
}
.blog-card__title a {
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--t-fast);
}
.blog-card__title a:hover { color: var(--color-accent); }
.blog-card__excerpt {
    margin: 0;
    font-size: 14px;
    color: var(--color-muted);
    line-height: 1.55;
}
.blog-card__more {
    margin-top: auto;
    padding-top: var(--s-3);
    font-size: 13px;
    font-weight: var(--fw-medium);
    color: var(--color-accent);
    text-decoration: none;
    transition: color var(--t-fast);
}
.blog-card__more:hover { color: var(--color-accent-hover); }

/* ===== Статья ===== */
.article {
    padding: var(--s-10) 0;
}
.article__header {
    margin-bottom: var(--s-7);
}
.article__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--color-muted);
    margin-bottom: var(--s-4);
}
.article__title {
    margin: 0 0 var(--s-4);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    font-weight: var(--fw-bold);
    line-height: 1.15;
    letter-spacing: -.02em;
}
.article__lead {
    margin: 0;
    font-size: var(--fs-md);
    color: var(--color-muted);
    line-height: 1.55;
}
.article__cover {
    margin-bottom: var(--s-7);
}
.article__cover img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    display: block;
}
.article__content {
    font-size: 16px;
    line-height: 1.7;
    color: var(--color-text-soft);
}
.article__content h2 {
    margin: var(--s-8) 0 var(--s-4);
    font-size: 1.5rem;
    color: var(--color-text);
}
.article__content h3 {
    margin: var(--s-6) 0 var(--s-3);
    font-size: 1.2rem;
    color: var(--color-text);
}
.article__content p { margin: 0 0 var(--s-4); }
.article__content ul, .article__content ol {
    margin: 0 0 var(--s-4);
    padding-left: 1.4em;
}
.article__content li { margin-bottom: 8px; }
.article__content code {
    font-family: var(--font-mono);
    font-size: .9em;
    background: var(--color-surface-2);
    padding: .15em .4em;
    border-radius: var(--radius-xs);
    color: var(--color-accent-hover);
}
.article__content pre {
    margin: 0 0 var(--s-5);
    padding: var(--s-4);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow-x: auto;
    line-height: 1.5;
}
.article__content pre code {
    background: transparent;
    color: var(--color-text-soft);
    padding: 0;
}
.article__content blockquote {
    margin: 0 0 var(--s-5);
    padding: var(--s-4) var(--s-5);
    border-left: 3px solid var(--color-accent);
    background: var(--color-surface);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    color: var(--color-text-soft);
    font-style: italic;
}
.article__content table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 var(--s-5);
    font-size: 14px;
}
.article__content th, .article__content td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--color-border);
    text-align: left;
}
.article__content thead th {
    background: var(--color-surface-2);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-muted);
}

.article__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--s-4);
    margin-top: var(--s-10);
    padding-top: var(--s-6);
    border-top: 1px solid var(--color-border);
    flex-wrap: wrap;
}
.article__share {
    display: flex;
    align-items: center;
    gap: var(--s-2);
    flex-wrap: wrap;
}

@media (max-width: 640px) {
    .blog-grid { grid-template-columns: 1fr; gap: var(--s-4); }
    .article { padding: var(--s-8) 0; }
    .article__footer { flex-direction: column; align-items: stretch; }
}

/* === 50-content.css === */
/* 50-content.css — Портфолио, команда, отзывы, FAQ, CTA */

/* ===== CTA-секция (общая) ===== */
.cta-section {
    margin-top: var(--s-10);
}
.cta-section__inner {
    padding: var(--s-9) var(--s-7);
    background:
        radial-gradient(circle at 15% 20%, rgba(255,91,46,.18) 0%, transparent 45%),
        radial-gradient(circle at 85% 60%, rgba(59,130,246,.16) 0%, transparent 45%),
        var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    text-align: center;
}
.cta-section__title {
    margin: 0 0 var(--s-3);
    font-size: clamp(1.4rem, 3vw, 1.9rem);
}
.cta-section__text {
    margin: 0 0 var(--s-6);
    color: var(--color-muted);
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.55;
}
.cta-section__actions {
    display: flex;
    gap: var(--s-3);
    justify-content: center;
    flex-wrap: wrap;
}

/* ===== Портфолио ===== */
.cases-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: var(--s-6);
}

.case-card {
    display: flex;
    flex-direction: column;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: border-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
}
.case-card:hover {
    border-color: var(--color-border-strong);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
.case-card__cover {
    display: block;
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--color-surface-2);
}
.case-card__cover img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform var(--t-base);
}
.case-card:hover .case-card__cover img { transform: scale(1.04); }
.case-card__cat {
    position: absolute;
    top: 12px; left: 12px;
    padding: 4px 12px;
    background: rgba(11,11,13,.75);
    color: #fff;
    font-size: 11px;
    font-weight: var(--fw-semibold);
    letter-spacing: .05em;
    text-transform: uppercase;
    border-radius: var(--radius-pill);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.case-card__body {
    padding: var(--s-5);
    display: flex;
    flex-direction: column;
    gap: var(--s-2);
    flex: 1;
}
.case-card__meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--color-muted);
}
.case-card__dot { color: var(--color-faint); }
.case-card__title {
    margin: 0;
    font-size: var(--fs-md);
    font-weight: var(--fw-semibold);
    line-height: 1.3;
}
.case-card__title a {
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--t-fast);
}
.case-card__title a:hover { color: var(--color-accent); }
.case-card__excerpt {
    margin: 0;
    font-size: 14px;
    color: var(--color-muted);
    line-height: 1.55;
}
.case-card__more {
    margin-top: auto;
    padding-top: var(--s-3);
    color: var(--color-accent);
    font-size: 13px;
    font-weight: var(--fw-medium);
    text-decoration: none;
}

/* ===== Детальная кейса ===== */
.case-detail__header {
    padding: var(--s-9) 0 var(--s-6);
}
.case-detail__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--color-muted);
    margin-bottom: var(--s-4);
}
.case-detail__title {
    margin: 0 0 var(--s-4);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    line-height: 1.15;
    letter-spacing: -.02em;
}
.case-detail__lead {
    margin: 0;
    font-size: var(--fs-md);
    color: var(--color-muted);
    max-width: 720px;
}
.case-detail__cover {
    margin-bottom: var(--s-8);
}
.case-detail__cover img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    display: block;
}
.case-detail__body {
    padding-bottom: var(--s-10);
}
.case-detail__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s-7);
    margin-bottom: var(--s-8);
}
@media (max-width: 900px) {
    .case-detail__row { grid-template-columns: 1fr; gap: var(--s-5); }
}
.case-detail__col h2 {
    margin: 0 0 var(--s-4);
    font-size: var(--fs-lg);
}
.case-detail__col p {
    margin: 0;
    color: var(--color-text-soft);
    line-height: 1.65;
}
.case-detail__result {
    margin-bottom: var(--s-8);
    padding: var(--s-6);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}
.case-detail__result h2 {
    margin: 0 0 var(--s-4);
    font-size: var(--fs-lg);
}
.case-detail__result-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--s-3);
}
.case-detail__result-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 15px;
    color: var(--color-text-soft);
    line-height: 1.5;
}
.case-detail__result-list svg {
    width: 20px; height: 20px;
    color: var(--color-success);
    flex-shrink: 0;
    margin-top: 1px;
}
.case-detail__stack {
    margin-bottom: var(--s-8);
}
.case-detail__stack h2 {
    margin: 0 0 var(--s-4);
    font-size: var(--fs-lg);
}
.case-detail__tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.case-detail__footer {
    display: flex;
    justify-content: space-between;
    gap: var(--s-3);
    padding-top: var(--s-6);
    border-top: 1px solid var(--color-border);
    flex-wrap: wrap;
}

/* ===== Команда ===== */
.team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--s-5);
}
.team-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: border-color var(--t-fast), transform var(--t-fast);
}
.team-card:hover {
    border-color: var(--color-border-strong);
    transform: translateY(-2px);
}
.team-card__photo {
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--color-surface-2);
}
.team-card__photo img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.team-card__body {
    padding: var(--s-5);
}
.team-card__name {
    margin: 0 0 4px;
    font-size: var(--fs-md);
    font-weight: var(--fw-semibold);
}
.team-card__role {
    font-size: 13px;
    color: var(--color-accent);
    font-weight: var(--fw-medium);
    margin-bottom: var(--s-3);
}
.team-card__bio {
    margin: 0 0 var(--s-4);
    font-size: 14px;
    color: var(--color-muted);
    line-height: 1.55;
}
.team-card__skills {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

/* ===== Отзывы ===== */
.reviews-rating {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: var(--s-4);
    font-size: 15px;
}
.reviews-rating__value {
    font-size: 28px;
    font-weight: var(--fw-bold);
    color: var(--color-text);
}
.reviews-rating__stars {
    display: inline-flex;
    gap: 3px;
    color: #fbbf24;
}
.reviews-rating__stars svg { width: 18px; height: 18px; }
.reviews-rating__count { color: var(--color-muted); font-size: 14px; }

.reviews-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: var(--s-5);
}
.review-card {
    padding: var(--s-6);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: var(--s-4);
}
.review-card__head {
    display: flex;
    align-items: center;
    gap: var(--s-4);
}
.review-card__avatar {
    width: 48px; height: 48px;
    border-radius: 50%;
    flex-shrink: 0;
}
.review-card__author { flex: 1; min-width: 0; }
.review-card__name { font-weight: var(--fw-semibold); }
.review-card__company { font-size: 12px; color: var(--color-muted); }
.review-card__rating { display: inline-flex; gap: 2px; color: #fbbf24; }
.review-card__rating svg { width: 14px; height: 14px; }
.review-card__text {
    margin: 0;
    color: var(--color-text-soft);
    font-size: 14px;
    line-height: 1.6;
}
.review-card__date {
    margin-top: auto;
    font-size: 12px;
    color: var(--color-faint);
}

/* ===== FAQ ===== */
.faq-group { margin-bottom: var(--s-7); }
.faq-group__title {
    margin: 0 0 var(--s-5);
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

/* ===== Мобильные ===== */
@media (max-width: 640px) {
    .cases-grid { grid-template-columns: 1fr; gap: var(--s-4); }
    .team-grid { grid-template-columns: 1fr; gap: var(--s-4); }
    .reviews-grid { grid-template-columns: 1fr; gap: var(--s-4); }
    .cta-section__inner { padding: var(--s-7) var(--s-5); }
    .case-detail__footer { flex-direction: column; }
    .case-detail__footer .btn { width: 100%; }
}

/* ===== Поиск ===== */
.search-form { margin-top: var(--s-5); max-width: 640px; }
.search-form__row { display: flex; gap: var(--s-3); flex-wrap: wrap; }
.search-form__row .input { flex: 1; min-width: 220px; }

.search-results { display: flex; flex-direction: column; gap: var(--s-4); }
.search-result {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: var(--s-4);
    padding: var(--s-4);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: border-color var(--t-fast), transform var(--t-fast);
}
.search-result:hover {
    border-color: var(--color-border-strong);
    transform: translateY(-1px);
}
.search-result__media { display: block; border-radius: var(--radius-sm); overflow: hidden; aspect-ratio: 4/3; background: var(--color-surface-2); }
.search-result__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.search-result__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.search-result__type {
    align-self: flex-start;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: .05em;
    border-radius: var(--radius-xs);
}
.search-result__type--product { background: var(--color-accent-soft); color: var(--color-accent-hover); }
.search-result__type--article { background: var(--color-info-soft); color: #60a5fa; }
.search-result__type--page    { background: var(--color-surface-2); color: var(--color-muted); }
.search-result__title { margin: 0; font-size: var(--fs-md); font-weight: var(--fw-semibold); }
.search-result__title a { color: var(--color-text); text-decoration: none; transition: color var(--t-fast); }
.search-result__title a:hover { color: var(--color-accent); }
.search-result__excerpt { margin: 0; font-size: 14px; color: var(--color-muted); line-height: 1.5; }
.search-result__price { font-size: 16px; font-weight: var(--fw-bold); color: var(--color-accent); margin-top: 4px; }

@media (max-width: 640px) {
    .search-result { grid-template-columns: 1fr; }
    .search-result__media { aspect-ratio: 16/9; }
    .search-form__row { flex-direction: column; }
    .search-form__row .btn { width: 100%; }
}
