/* ============================
   AWS Brand Site — style.css
   v6: По ТЗ Яны
   Тёплый минимализм, чередование свет/тёмный
   ============================ */

:root {
    --black: #111111;
    --dark: #1a1a1a;
    --gray-800: #333333;
    --gray-600: #666666;
    --gray-400: #6b6b6b;
    --gray-200: #d4d4d4;
    --gray-100: #f5f5f3;
    --warm-100: #f7f4ef;    /* тёплый беж — фоны секций */
    --warm-200: #ede8df;    /* беж потемнее */
    --bg-product: #d4d4d2;  /* мышиный серый — фон под товаром (везде, где лежит PNG продукта) */
    --warm-gold: #5E8C3A;   /* deep green — для светлого фона (был #c9a96e gold) */
    --white: #ffffff;
    --accent: #8CB86B;      /* AWS green — для тёмного фона */

    --font: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
    --container: 1400px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { font-size: 16px; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }

body {
    font-family: var(--font);
    background: var(--white);
    color: var(--black);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

a { text-decoration: none; color: inherit; }

/* Общая метка секции */
.label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--gray-400);
    margin-bottom: 20px;
}

/* ============================
   HEADER (glass morphism лого)
   ============================ */

.header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    transition: background 0.4s, color 0.4s, backdrop-filter 0.4s;
}

.header.dark { color: var(--white); }
.header.light { color: var(--black); }

.header.scrolled {
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    color: var(--black);
    border-bottom: 1px solid rgba(0,0,0,0.06);
}

.header__inner {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 20px 40px;
    transition: padding 0.3s;
}

.header.scrolled .header__inner { padding: 14px 40px; }

.header__left,
.header__right {
    display: flex;
    align-items: center;
    gap: 28px;
}

.header__right { justify-content: flex-end; }

.header__slogan {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: 0.5;
}

.header__link {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    opacity: 0.7;
    transition: opacity 0.3s;
}

.header__link:hover { opacity: 1; }

.header__center { display: flex; justify-content: center; }

/* Glass morphism лого */
.header__logo-img {
    height: 56px;
    width: auto;
    padding: 8px 18px;
    border-radius: 12px;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255,255,255,0.12);
    transition: all 0.4s;
}

.header.scrolled .header__logo-img {
    background: rgba(255,255,255,0.6);
    border-color: rgba(0,0,0,0.06);
}

.header.dark .header__logo-img {
    background: rgba(255,255,255,0.12);
    border-color: rgba(255,255,255,0.1);
    box-shadow: 0 4px 24px rgba(0,0,0,0.2);
}

.header.light .header__logo-img {
    background: rgba(255,255,255,0.7);
    border-color: rgba(0,0,0,0.08);
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
/* На светлом hero-слайде хедер получает плотный фон (ТОЛЬКО light без scrolled) */
.header.light:not(.scrolled) {
    background: rgba(255,255,255,0.93);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(0,0,0,0.06);
}
.header.light:not(.scrolled) .header__link { opacity: 1; }
.header.light:not(.scrolled) .header__slogan { opacity: 0.7; }
.header.light:not(.scrolled) .header__burger span { background: var(--black); }

/* Burger */
.header__burger {
    background: none;
    border: none;
    cursor: pointer;
    color: inherit;                      /* iOS Safari: button сбрасывает цвет без этого */
    -webkit-text-fill-color: currentColor;
    width: 32px;
    height: 22px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
/* Явные цвета спанов — не зависим от браузерного дефолта */
.header.dark .header__burger span { background: var(--white); }
.header.light .header__burger span,
.header.scrolled .header__burger span { background: var(--black); }

.header__burger span {
    display: block;
    width: 100%;
    height: 2.5px;
    background: currentColor;
    transition: 0.3s;
    border-radius: 2px;
}

.desktop-only { display: block; }

/* ============================
   SIDE MENU (с выпадающими категориями)
   ============================ */

.side-menu {
    position: fixed;
    inset: 0;
    z-index: 200;
    pointer-events: none;
}

.side-menu.open { pointer-events: all; }

.side-menu__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
    opacity: 0;
    transition: opacity 0.4s;
}

.side-menu.open .side-menu__overlay { opacity: 1; }

.side-menu__panel {
    position: absolute;
    top: 0; left: 0;
    width: 400px;
    max-width: 85vw;
    height: 100%;
    background: var(--white);
    transform: translateX(-100%);
    transition: transform 0.45s cubic-bezier(0.23, 1, 0.32, 1);
    display: flex;
    flex-direction: column;
    padding: 80px 40px 40px;
    overflow-y: auto;
}

.side-menu.open .side-menu__panel { transform: translateX(0); }

.side-menu__close {
    position: absolute;
    top: 24px; right: 24px;
    background: none;
    border: none;
    font-size: 28px;
    cursor: pointer;
    color: var(--black);
    line-height: 1;
    transition: color 0.3s;
}

.side-menu__close:hover { color: var(--gray-400); }

.side-menu__nav {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.side-menu__item {
    font-size: 16px;
    font-weight: 500;
    padding: 16px 0;
    border-bottom: 1px solid var(--gray-100);
    transition: color 0.3s;
}

.side-menu__item:hover { color: var(--gray-400); }

/* Категории dropdown */
.side-menu__group {
    border-bottom: 1px solid var(--gray-100);
}

.side-menu__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: none;
    border: none;
    font-family: var(--font);
    font-size: 16px;
    font-weight: 600;
    padding: 16px 0;
    cursor: pointer;
    color: var(--black);
    transition: color 0.3s;
}

.side-menu__toggle:hover { color: var(--gray-400); }

.side-menu__arrow {
    font-size: 18px;
    transition: transform 0.3s;
}

.side-menu__group.open .side-menu__arrow {
    transform: rotate(180deg);
}

.side-menu__dropdown {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
}

.side-menu__group.open .side-menu__dropdown {
    max-height: 400px;
}

.side-menu__sub {
    display: block;
    font-size: 14px;
    font-weight: 400;
    color: var(--gray-600);
    padding: 10px 0 10px 16px;
    transition: color 0.3s;
}

.side-menu__sub:hover { color: var(--black); }

.side-menu__contacts {
    margin-top: auto;
    padding-top: 32px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 14px;
    color: var(--gray-600);
}

.side-menu__social {
    display: flex;
    gap: 20px;
}

.side-menu__social a {
    color: var(--gray-400);
    transition: color 0.3s;
}

.side-menu__social a:hover { color: var(--black); }

/* ============================
   HERO SLIDER
   ============================ */

.hero {
    width: 100%;
    height: 100vh;
    height: 100svh;    /* iOS 15.4+: не включает адресную строку */
    min-height: 600px;
}

.hero-swiper {
    width: 100%;
    height: 100%;
}

.hero-slide {
    width: 100%;
    height: 100%;
    position: relative;
}

.hero-slide__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-slide__bg--dark { background-color: var(--dark); }
.hero-slide__bg--light { background-color: #e8e4de; }
.hero-slide__bg--warm { background-color: #2a2520; }

.hero-slide__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-slide__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-slide__placeholder {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.08);
    border: 1.5px dashed rgba(255,255,255,0.06);
    padding: 28px 40px;
    border-radius: 6px;
    text-align: center;
    max-width: 420px;
}

.hero-slide__placeholder--dark {
    color: rgba(0,0,0,0.08);
    border-color: rgba(0,0,0,0.06);
}

/* Hero slide 5: светлая витрина товаров */
.hero-slide--marquee { overflow: hidden; }
.hero-marquee {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
    z-index: 0;
    padding: 30px 0;
}
/* Мягкая виньетка — центр читается, края растворяются */
.hero-slide--marquee::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: radial-gradient(ellipse 55% 45% at center, rgba(247,244,239,0.92) 0%, rgba(247,244,239,0.3) 70%, transparent 100%);
    pointer-events: none;
}
.hero-marquee__row {
    overflow: hidden;
    width: 100%;
}
.hero-marquee__track {
    display: flex;
    gap: 16px;
    width: max-content;
    will-change: transform;
}
.hero-marquee__row--left .hero-marquee__track {
    animation: marqueeLeft 45s linear infinite;
}
.hero-marquee__row--right .hero-marquee__track {
    animation: marqueeRight 45s linear infinite;
}
/* Ряды с --slow двигаются медленнее → эффект глубины */
.hero-marquee__row--slow .hero-marquee__track {
    animation-duration: 70s;
}
.hero-marquee__track img {
    width: 110px;
    height: 110px;
    object-fit: contain;
    border-radius: 14px;
    background: #fff;
    padding: 14px;
    flex-shrink: 0;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
@keyframes marqueeLeft {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@keyframes marqueeRight {
    from { transform: translateX(-50%); }
    to { transform: translateX(0); }
}
/* Тёмная кнопка для светлого слайда */
.hero-slide__btn--dark {
    background: var(--black);
    color: var(--white);
    border-color: var(--black);
}
.hero-slide__btn--dark:hover {
    background: var(--gray-800);
    border-color: var(--gray-800);
}


/* Advantages 04: двойной вертикальный тикер */
.advantages__media--prices {
    position: relative;
    overflow: hidden;
    background: #1a1a1a;
    display: flex;
    gap: 12px;
    padding: 0 16px;
    max-height: 80vh;
}
.advantages__media--prices::before,
.advantages__media--prices::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    height: 70px;
    z-index: 2;
    pointer-events: none;
}
.advantages__media--prices::before {
    top: 0;
    background: linear-gradient(180deg, #1a1a1a 0%, transparent 100%);
}
.advantages__media--prices::after {
    bottom: 0;
    background: linear-gradient(0deg, #1a1a1a 0%, transparent 100%);
}
.adv-ticker {
    flex: 1;
    overflow: hidden;
    padding: 12px 0;
}
.adv-ticker__track {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
/*
 * Анимация задаётся JS в пикселях (--copy-h) для точного seamless
 * перехода одна-копия → вторая-копия. Keyframes в процентах (-50%)
 * не подходят: из-за gap между копиями точка перехода смещена.
 */
.adv-ticker--up .adv-ticker__track {
    animation: tickerUp var(--adv-ticker-dur, 90s) linear infinite;
}
.adv-ticker--down .adv-ticker__track {
    animation: tickerDown var(--adv-ticker-dur, 110s) linear infinite;
}
.adv-ticker:hover .adv-ticker__track {
    animation-play-state: paused;
}
@keyframes tickerUp {
    0% { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(0, calc(-1 * var(--copy-h, 50%)), 0); }
}
@keyframes tickerDown {
    0% { transform: translate3d(0, calc(-1 * var(--copy-h, 50%)), 0); }
    100% { transform: translate3d(0, 0, 0); }
}
.adv-price-card {
    display: flex;
    align-items: center;
    gap: 18px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 16px;
    padding: 22px 24px;
    flex-shrink: 0;
}
.adv-price-card__img {
    width: 110px;
    height: 110px;
    object-fit: contain;
    background: var(--bg-product, #d4d4d2);
    border-radius: 14px;
    padding: 8px;
    flex-shrink: 0;
}
.adv-price-card__info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}
.adv-price-card__name {
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.2px;
}
.adv-price-card__series {
    font-size: 11px;
    font-weight: 500;
    color: rgba(255,255,255,0.45);
    letter-spacing: 0.6px;
}
.adv-price-card__price {
    font-size: 22px;
    font-weight: 800;
    color: var(--accent, #8CB86B);
    white-space: nowrap;
    flex-shrink: 0;
    letter-spacing: -0.5px;
}

@media (max-width: 768px) {
    .hero-marquee__track img {
        width: 76px;
        height: 76px;
        padding: 10px;
    }
    .hero-marquee { gap: 10px; }
    .adv-ticker__track { padding: 16px 20px; gap: 12px; }
    .adv-price-card { padding: 14px 18px; gap: 14px; }
    .adv-price-card__img { width: 76px; height: 76px; padding: 6px; }
    .adv-price-card__price { font-size: 20px; }
    .hero-slide__content.hero-slide__content--center {
        padding: 32px 28px;
        border-radius: 18px;
    }
}

.hero-slide__content {
    position: absolute;
    bottom: 100px;
    left: 60px;
    z-index: 2;
    color: var(--white);
    max-width: 640px;
}

.hero-slide__content--dark { color: var(--black); }

.hero-slide__content.hero-slide__content--center {
    top: 50%;
    left: 50%;
    bottom: auto;
    right: auto;
    transform: translate(-50%, -50%);
    text-align: center;
    max-width: 640px;
    width: 90%;
    background: rgba(247,244,239,0.82);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-radius: 24px;
    padding: 48px 56px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.06);
}
.hero-slide__content--center .hero-slide__title {
    text-shadow: none;
}
.hero-slide__content--center .hero-slide__subtitle {
    text-shadow: none;
}
.hero-slide__content--center .hero-slide__btn {
    margin: 0 auto;
}

.hero-slide__label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 4px;
    text-transform: uppercase;
    opacity: 0.5;
    margin-bottom: 12px;
}

.hero-slide__title {
    font-size: clamp(36px, 5.5vw, 72px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -2px;
    margin-bottom: 16px;
    text-shadow: 0 2px 24px rgba(0, 0, 0, 0.6);
}

.hero-slide__subtitle {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    opacity: 0.6;
    margin-bottom: 28px;
}

.hero-slide__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.hero-slide__tag {
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    padding: 9px 18px;
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: 100px;
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
.hero-slide__tag:hover {
    color: var(--white);
    border-color: rgba(255,255,255,0.6);
    background: rgba(255,255,255,0.06);
}

/* === CTA «Выключатель-метафора» — тактильная клавиша бренда === */
.hero-slide__btn,
.btn-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--black);
    background: linear-gradient(180deg, #ffffff 0%, #f4f0ea 100%);
    border: none;
    padding: 18px 36px;
    border-radius: 4px;
    box-shadow:
        0 2px 0 rgba(0,0,0,0.08),
        0 8px 24px rgba(0,0,0,0.12),
        inset 0 1px 0 rgba(255,255,255,0.9);
    cursor: pointer;
    transition: transform 0.18s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.45s ease,
                color 0.25s ease;
    will-change: transform;
    text-decoration: none;
    overflow: hidden;
}

.btn-switch::after {
    content: '';
    width: 28px;
    height: 1.5px;
    background: currentColor;
    transform: scaleX(0.65);
    transform-origin: left center;
    transition: transform 0.25s ease;
    flex-shrink: 0;
    z-index: 1;
}
/* На hero-кнопках линию не показываем — там уже есть стрелка → в HTML */
.hero-slide__btn::after { display: none; }

.hero-slide__btn::before,
.btn-switch::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg,
        transparent 30%,
        rgba(255,255,255,0.85) 50%,
        transparent 70%);
    transform: translateX(-120%);
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}

.hero-slide__btn:hover,
.btn-switch:hover {
    transform: translateY(-2px) scale(1.04);
    box-shadow:
        0 6px 14px rgba(0,0,0,0.16),
        0 14px 28px -10px rgba(0,0,0,0.18),
        inset 0 1px 0 rgba(255,255,255,0.9);
    color: var(--black);
}

.hero-slide__btn:hover::before,
.btn-switch:hover::before { transform: translateX(120%); }

.btn-switch:hover::after { transform: scaleX(1); }

.hero-slide__btn:active,
.btn-switch:active {
    transform: translateY(3px);
    box-shadow:
        0 0 0 rgba(0,0,0,0.12),
        0 2px 6px rgba(0,0,0,0.2),
        inset 0 2px 4px rgba(0,0,0,0.08);
    transition-duration: 0.08s;
}

/* Тёмный вариант — чёрная клавиша */
.hero-slide__btn--dark,
.btn-switch--dark {
    color: var(--white);
    background: linear-gradient(180deg, #2a2620 0%, #1a1612 100%);
    box-shadow:
        0 2px 0 rgba(0,0,0,0.4),
        0 8px 24px rgba(0,0,0,0.35),
        inset 0 1px 0 rgba(255,255,255,0.08);
}

.hero-slide__btn--dark:hover,
.btn-switch--dark:hover {
    color: var(--white);
    box-shadow:
        0 1px 0 rgba(0,0,0,0.4),
        0 4px 14px rgba(0,0,0,0.3),
        0 14px 24px -10px rgba(140,184,107,0.55),
        inset 0 1px 0 rgba(255,255,255,0.08);
}

.hero-slide__btn--dark::before,
.btn-switch--dark::before {
    background: linear-gradient(115deg,
        transparent 30%,
        rgba(255,255,255,0.18) 50%,
        transparent 70%);
}

/* Hero pagination */
.hero-pagination {
    position: absolute;
    bottom: 36px; left: 60px;
    z-index: 10;
    display: flex;
    gap: 6px;
}

.hero-pagination .swiper-pagination-bullet {
    width: 32px;
    height: 2px;
    border-radius: 0;
    background: rgba(255,255,255,0.25);
    opacity: 1;
    transition: all 0.4s;
}

.hero-pagination .swiper-pagination-bullet-active {
    background: var(--white);
    width: 56px;
}

/* ============================
   СЕРИИ РОЗЕТОК И ВЫКЛЮЧАТЕЛЕЙ
   ============================ */

/* Film grain overlay — premium editorial feel */
.series, .categories, .about {
    position: relative;
    isolation: isolate;
}
.series::before, .categories::before, .about::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    opacity: 0.055;
    mix-blend-mode: multiply;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.9 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
    background-size: 180px 180px;
}
.series > *, .categories > *, .about > * { position: relative; z-index: 1; }

.series {
    padding: 120px 0 80px;
    background: var(--warm-100);
}

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

.series__header {
    margin-bottom: 60px;
}

.series__title {
    font-size: clamp(36px, 5vw, 68px);
    font-weight: 800;
    line-height: 1.04;
    letter-spacing: -2px;
}
.series__title em,
.categories__title em,
.about__title em {
    font-style: normal;
    font-weight: 300;
    color: var(--warm-gold, #5E8C3A);
    letter-spacing: -1.5px;
}

.series__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-bottom: 80px;
}

.series__card {
    position: relative;
    background: var(--white);
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1), box-shadow 0.5s;
}

.series__card:hover {
    transform: translateY(-8px);
    box-shadow: 0 24px 48px rgba(0,0,0,0.08);
}

.series__card[data-series="uno"] {
    box-shadow: 0 0 0 2px var(--accent);
}

.series__card[data-series="uno"]:hover {
    box-shadow: 0 0 0 2px var(--accent), 0 24px 48px rgba(140, 184, 107, 0.18);
}

.series__card-visual {
    aspect-ratio: 4/3;
    background:
        radial-gradient(circle at var(--spot-x, 50%) var(--spot-y, 50%), rgba(255,255,255,0.85) 0%, rgba(255,255,255,0) 40%),
        radial-gradient(circle at 50% 45%, #ffffff 0%, #d4d4d2 75%, #bcbcba 100%);
    --spot-x: 50%;
    --spot-y: 50%;
    transition: background 0.25s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.series__card-placeholder {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 2px;
    color: rgba(0,0,0,0.08);
    text-transform: uppercase;
    border: 1.5px dashed rgba(0,0,0,0.06);
    padding: 20px 28px;
    border-radius: 4px;
    text-align: center;
}

.series__card-info {
    padding: 28px;
}

.series__card-badge {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 5;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    background: var(--accent);
    color: var(--white);
    padding: 4px 12px;
    border-radius: 100px;
    box-shadow: 0 4px 12px rgba(140, 184, 107, 0.35);
}

.series__card-name {
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -1px;
    margin-bottom: 8px;
}

.series__card-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--gray-600);
    margin-bottom: 24px;
}

.series__card-colors {
    display: flex;
    gap: 8px;
}

.dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    transition: transform 0.3s;
}

.dot { cursor: pointer; position: relative; }
.dot:hover { transform: scale(1.2); }
.dot--white { background: #fff; border: 1.5px solid var(--gray-200); }
.dot--black { background: #1a1a1a; }
.dot.active {
    outline: 2px solid var(--accent, #8CB86B);
    outline-offset: 2px;
}

/* Статичное фото серии */
.series__photo {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
}
.series__photo-img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 14px 22px rgba(0, 0, 0, 0.14));
    transition:
      translate 0.45s cubic-bezier(.22,1,.36,1),
      transform 0.45s cubic-bezier(.22,1,.36,1),
      filter 0.45s cubic-bezier(.22,1,.36,1);
}
.series__card:hover .series__photo-img {
    translate: 0 -6px;
    transform: scale(1.06);
    filter: drop-shadow(0 24px 32px rgba(0, 0, 0, 0.22));
}
.series__photo-placeholder {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 2px;
    color: rgba(0,0,0,0.25);
    text-transform: uppercase;
    border: 1.5px dashed rgba(0,0,0,0.12);
    padding: 20px 28px;
    border-radius: 4px;
    text-align: center;
}

/* Конструктор цветов */
.constructor__label-mobile { display: none; }

.constructor {
    background: var(--white);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 24px rgba(0,0,0,0.04);
}

.constructor__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 360px;
}

.constructor__preview {
    background: radial-gradient(circle at 50% 45%, #ffffff 0%, #d4d4d2 75%, #bcbcba 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: visible;
}

.constructor__preview-img {
    width: 95%;
    height: 95%;
    object-fit: contain;
    filter: drop-shadow(0 18px 26px rgba(0, 0, 0, 0.14));
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.constructor__preview-img.fade-out {
    opacity: 0;
    transform: scale(0.96);
}

.constructor__preview-placeholder {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 2px;
    color: rgba(0,0,0,0.08);
    text-transform: uppercase;
    border: 1.5px dashed rgba(0,0,0,0.06);
    padding: 20px 28px;
    border-radius: 4px;
}

.constructor__controls {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.constructor__title {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 28px;
    letter-spacing: -0.5px;
}

.constructor__option {
    margin-bottom: 20px;
}

.constructor__option-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gray-400);
    margin-bottom: 10px;
    display: block;
}

.constructor__chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.constructor__chip {
    font-family: var(--font);
    font-size: 13px;
    font-weight: 500;
    padding: 8px 20px;
    border: 1px solid var(--gray-200);
    border-radius: 100px;
    background: none;
    cursor: pointer;
    transition: all 0.3s;
    color: var(--gray-600);
}

.constructor__chip:hover {
    border-color: var(--black);
    color: var(--black);
}

.constructor__chip.active {
    background: var(--black);
    color: var(--white);
    border-color: var(--black);
}

/* ============================
   КАТЕГОРИИ ТОВАРОВ
   ============================ */

.categories {
    padding: 120px 0;
    background: var(--white);
}

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

.categories__header {
    margin-bottom: 48px;
}

.categories__title {
    font-size: clamp(32px, 4.5vw, 60px);
    font-weight: 800;
    line-height: 1.04;
    letter-spacing: -1.8px;
}

.categories__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.categories__card {
    display: block;
    background: var(--warm-100);
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1), box-shadow 0.5s;
}

.categories__card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.06);
}

.categories__card-img {
    aspect-ratio: 4/3;
    background:
        radial-gradient(circle at var(--spot-x, 50%) var(--spot-y, 50%), rgba(255,255,255,0.9) 0%, rgba(255,255,255,0) 40%),
        radial-gradient(circle at 50% 45%, #ffffff 0%, #d4d4d2 75%, #bcbcba 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    transition: background 0.25s ease;
    padding: 12px;
    --spot-x: 50%;
    --spot-y: 50%;
}

.categories__card-img img {
    width: 85%;
    height: 85%;
    object-fit: contain;
    filter: drop-shadow(0 12px 20px rgba(0, 0, 0, 0.12));
    transition:
      translate 0.45s cubic-bezier(.22,1,.36,1),
      transform 0.45s cubic-bezier(.22,1,.36,1),
      filter 0.45s cubic-bezier(.22,1,.36,1);
}

/* Визуально мелкие из-за вытянутой формы — компенсируем масштабом */
.categories__card[data-cat="cable"] img {
    width: 95%;
    height: 95%;
}
.categories__card[data-cat="power"] img,
.categories__card[data-cat="patch"] img {
    width: 100%;
    height: 100%;
}

.categories__card:hover .categories__card-img img {
    translate: 0 -6px;
    transform: scale(1.08);
    filter: drop-shadow(0 22px 30px rgba(0, 0, 0, 0.22));
}

.categories__card-placeholder {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 2px;
    color: rgba(0,0,0,0.07);
    text-transform: uppercase;
    border: 1.5px dashed rgba(0,0,0,0.05);
    padding: 16px 24px;
    border-radius: 4px;
}

.categories__card-name {
    font-size: 16px;
    font-weight: 700;
    padding: 20px 20px 4px;
    color: var(--black);
}

.categories__card-sub {
    font-size: 13px;
    color: var(--gray-400);
    padding: 0 20px 20px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ============================
   О БРЕНДЕ (тёплый светлый фон)
   ============================ */

.about {
    padding: 160px 0;
    background: var(--warm-100);
}

.about__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 60px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

.about__title {
    font-size: clamp(40px, 5.5vw, 72px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -2px;
    margin-bottom: 24px;
}

.about__desc {
    font-size: 17px;
    line-height: 1.8;
    color: var(--gray-600);
    margin-bottom: 32px;
}

.about__link {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--black);
    border-bottom: 1px solid var(--black);
    padding-bottom: 4px;
    transition: all 0.3s;
}

.about__link:hover {
    color: var(--warm-gold);
    border-color: var(--warm-gold);
}

.about__image-placeholder {
    width: 100%;
    aspect-ratio: 4/5;
    background: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    border: 1.5px dashed var(--gray-200);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 2px;
    color: rgba(0,0,0,0.08);
    text-transform: uppercase;
    box-shadow: 0 24px 48px rgba(0,0,0,0.04);
}

/* ============================
   ПРЕИМУЩЕСТВА (чередование, градиент)
   ============================ */

.advantages {
    background: var(--dark);
    color: var(--white);
}

.advantages-swiper {
    width: 100%;
}

.advantages__slide {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 80vh;
    min-height: 80svh;
    position: relative;
}

.advantages__slide--reverse {
    direction: rtl;
}

.advantages__slide--reverse > * {
    direction: ltr;
}

.advantages__media {
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.advantages__media-placeholder {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.06);
    border: 1.5px dashed rgba(255,255,255,0.05);
    padding: 20px 28px;
    border-radius: 4px;
    text-align: center;
    max-width: 300px;
}

/* Слайд 01/04: полноразмерное фото */
.advantages__media--cover {
    min-height: 55vh;
    min-height: 55svh;
    overflow: hidden;
}
.advantages__cover-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 8s ease;
}
.advantages__media--cover:hover .advantages__cover-img {
    transform: scale(1.05);
}

/* About: анимированный логотип — 3D тилт + аврора + шeen */
.about__logo-anim {
    width: 100%;
    aspect-ratio: 4/3;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12%;
    box-sizing: border-box;
    overflow: hidden;
    border-radius: 12px;
    background: var(--white);
    box-shadow: 0 16px 48px rgba(0,0,0,0.08);
    position: relative;
    will-change: transform;
    transition: transform 0.09s ease-out;
}

/* Spotlight: мягкий световой круг следует за курсором */
.about__logo-anim.is-hovering {
    background:
        radial-gradient(
            circle 200px at var(--mx, 50%) var(--my, 50%),
            rgba(255,255,255,0.60) 0%,
            rgba(255,255,255,0.18) 45%,
            transparent 70%
        ),
        var(--white);
}

.about__logo-anim.is-returning {
    transition: transform 0.65s cubic-bezier(0.23, 1, 0.32, 1);
}

.about__logo-img {
    width: 100%;
    mix-blend-mode: multiply;
    animation: aws-logo-breathe 5s ease-in-out 1.8s infinite;
    position: relative;
    z-index: 1;
}

/* Аврора — два плавающих зелёных пятна позади логотипа */

/* Shimmer — полоса света при первом появлении */
.about__logo-anim::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 45%;
    height: 100%;
    background: linear-gradient(105deg, transparent 0%, rgba(255,255,255,0.58) 50%, transparent 100%);
    transform: skewX(-12deg) translateX(-200%);
    pointer-events: none;
    z-index: 2;
}

.about__logo-anim.is-shimmer::after {
    animation: aws-logo-shimmer 1.4s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

@keyframes aws-logo-shimmer {
    from { transform: skewX(-12deg) translateX(-200%); }
    to   { transform: skewX(-12deg) translateX(500%); }
}

@keyframes aws-logo-breathe {
    0%, 100% { scale: 1.0;   }
    50%       { scale: 1.022; }
}

/* Слайд 03: премиум-переключение цвета через sweep reveal */
.advantages__media--color-switch {
    background: radial-gradient(circle at 50% 45%, #ffffff 0%, #d4d4d2 65%, #bcbcba 100%);
    min-height: 55vh;
    min-height: 55svh;
    overflow: hidden;
    position: relative;
}
.advantages__color-img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 76%;
    max-width: 560px;
    transform: translate(-50%, -50%);
    object-fit: contain;
    filter: drop-shadow(0 20px 32px rgba(0, 0, 0, 0.16));
}
.advantages__color-img--white {
    z-index: 1;
}
.advantages__color-img--black {
    z-index: 2;
    animation: sweep-black 9s cubic-bezier(0.45, 0, 0.55, 1) infinite;
}

@keyframes sweep-black {
    /* Равное время белой и чёрной версии; движение всегда слева→направо */
    0%, 35%  { clip-path: inset(0 100% 0 0); }   /* БЕЛЫЙ виден (35% цикла) */
    50%      { clip-path: inset(0 0 0 0); }       /* чёрный приехал */
    85%      { clip-path: inset(0 0 0 0); }       /* ЧЁРНЫЙ виден (35% цикла) */
    100%     { clip-path: inset(0 0 0 100%); }    /* чёрный ушёл слева→направо, белый снова виден */
}

/* 01 — Надёжные материалы: интерактивная декомпозиция */
.advantages__media--exploded {
    background: radial-gradient(ellipse at 35% 45%, #f1f1f0 0%, #d4d4d2 55%, #bcbcba 100%);
    min-height: 55vh;
    min-height: 55svh;
    overflow: hidden;
    position: relative;
}
.advantages__decomp {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.advantages__decomp image {
    filter: drop-shadow(0 24px 40px rgba(20, 18, 14, 0.22));
}

.adv-callout { cursor: default; transition: opacity 0.25s ease; }
.adv-callout line {
    stroke: rgba(20, 18, 14, 0.35);
    stroke-width: 1.2;
    stroke-dasharray: 6 4;
    opacity: 0;
    animation: callout-line-in 0.7s cubic-bezier(0.25, 0.8, 0.3, 1) forwards,
               callout-line-flow 20s linear infinite 2s;
    transition: stroke 0.25s ease, stroke-width 0.25s ease;
}
.adv-callout text {
    font-family: 'Montserrat', system-ui, sans-serif;
    font-size: 26px;
    font-weight: 600;
    fill: rgba(20, 18, 14, 0.9);
    letter-spacing: 0.3px;
    opacity: 0;
    animation: callout-text-in 0.5s cubic-bezier(0.25, 0.8, 0.3, 1) forwards;
    transition: fill 0.25s ease;
}
.adv-callout__sub {
    font-size: 19px !important;
    font-weight: 400 !important;
    fill: rgba(20, 18, 14, 0.52) !important;
    letter-spacing: 0.2px !important;
    transition: fill 0.25s ease;
}
.adv-callout__dot {
    fill: rgba(20, 18, 14, 0.7);
    opacity: 0;
    animation: callout-dot-in 0.4s ease forwards,
               callout-dot-pulse 2.4s ease-in-out infinite 1.5s;
    transition: fill 0.25s ease;
    transform-origin: center;
    transform-box: fill-box;
}

.adv-callout--1 line, .adv-callout--1 text, .adv-callout--1 circle { animation-delay: 0.3s, 3s; }
.adv-callout--1 text { animation-delay: 0.5s; }
.adv-callout--1 circle { animation-delay: 0.3s, 1.5s; }
.adv-callout--2 line { animation-delay: 0.5s, 3.5s; }
.adv-callout--2 text { animation-delay: 0.7s; }
.adv-callout--2 circle { animation-delay: 0.5s, 1.8s; }
.adv-callout--3 line { animation-delay: 0.7s, 4s; }
.adv-callout--3 text { animation-delay: 0.9s; }
.adv-callout--3 circle { animation-delay: 0.7s, 2.1s; }
.adv-callout--4 line { animation-delay: 0.9s, 4.5s; }
.adv-callout--4 text { animation-delay: 1.1s; }
.adv-callout--4 circle { animation-delay: 0.9s, 2.4s; }
.adv-callout--5 line { animation-delay: 1.1s, 5s; }
.adv-callout--5 text { animation-delay: 1.3s; }
.adv-callout--5 circle { animation-delay: 1.1s, 2.7s; }
.adv-callout--6 line { animation-delay: 1.3s, 5.5s; }
.adv-callout--6 text { animation-delay: 1.5s; }
.adv-callout--6 circle { animation-delay: 1.3s, 3s; }

/* Интерактив: наведение на выноску — подсвечивается линия, точка и текст */
.advantages__decomp:has(.adv-callout:hover) .adv-callout { opacity: 0.35; }
.adv-callout { pointer-events: auto; }
.adv-callout:hover { opacity: 1 !important; }
.adv-callout:hover line { stroke: rgba(184, 115, 51, 0.95); stroke-width: 1.8; }
.adv-callout:hover text { fill: rgba(20, 18, 14, 1); }
.adv-callout:hover .adv-callout__sub { fill: rgba(20, 18, 14, 0.8) !important; }
.adv-callout:hover .adv-callout__dot { fill: #b87333; r: 8; }

@keyframes callout-line-in {
    from { opacity: 0; stroke-dashoffset: 120; }
    to   { opacity: 1; stroke-dashoffset: 0; }
}
@keyframes callout-line-flow {
    from { stroke-dashoffset: 0; }
    to   { stroke-dashoffset: -200; }
}
@keyframes callout-text-in {
    from { opacity: 0; transform: translateX(-6px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes callout-dot-in {
    from { opacity: 0; transform: scale(0); }
    to   { opacity: 1; transform: scale(1); }
}
@keyframes callout-dot-pulse {
    0%, 100% { transform: scale(1); opacity: 0.7; }
    50%      { transform: scale(1.5); opacity: 1; }
}

/* 02 — Точное исполнение: клемма + tech-specs */
.advantages__media--lever {
    background: radial-gradient(ellipse at 50% 45%, #ffffff 0%, #d4d4d2 65%, #bcbcba 100%);
    min-height: 55vh;
    min-height: 55svh;
    overflow: hidden;
    position: relative;
    padding: 40px 48px;
}
.advantages__lever-wrap {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 48px;
    padding: 32px 40px;
}
.advantages__lever-img {
    flex: 1 1 auto;
    width: auto;
    max-width: 68%;
    max-height: 82%;
    object-fit: contain;
    filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.22));
}

/* Интерактивный селектор сечения */
.lever-selector {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 240px;
    max-width: 280px;
    font-family: 'Montserrat', system-ui, sans-serif;
}
.lever-selector__label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: rgba(20, 18, 14, 0.45);
}
.lever-selector__active {
    display: flex;
    align-items: baseline;
    gap: 6px;
}
.lever-selector__val {
    font-size: 56px;
    font-weight: 700;
    line-height: 1;
    color: rgba(20, 18, 14, 0.92);
    letter-spacing: -1.5px;
    transition: color 0.25s ease;
    font-variant-numeric: tabular-nums;
}
.lever-selector__unit {
    font-size: 20px;
    font-weight: 500;
    color: rgba(20, 18, 14, 0.55);
}
.lever-selector__sub {
    font-size: 13px;
    font-weight: 500;
    color: rgba(20, 18, 14, 0.6);
    letter-spacing: 0.2px;
    min-height: 20px;
    transition: color 0.25s ease;
}
.lever-selector__bar {
    position: relative;
    height: 6px;
    background: rgba(20, 18, 14, 0.08);
    border-radius: 3px;
    overflow: hidden;
}
.lever-selector__bar-fill {
    position: absolute;
    top: 0; left: 0; bottom: 0;
    width: 2%;
    background: linear-gradient(90deg, #b87333 0%, #e69143 100%);
    border-radius: 3px;
    transition: width 0.55s cubic-bezier(0.25, 0.8, 0.3, 1);
}

.lever-gauges {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
    gap: 4px;
}
.lever-gauge {
    flex: 1 1 0;
    text-align: center;
    padding: 8px 4px;
    font-size: 12px;
    font-weight: 600;
    color: rgba(20, 18, 14, 0.42);
    background: transparent;
    border: 1px solid rgba(20, 18, 14, 0.1);
    border-radius: 6px;
    cursor: pointer;
    user-select: none;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.2s ease;
}
.lever-gauge:hover,
.lever-gauge:focus-visible {
    color: rgba(20, 18, 14, 0.85);
    border-color: rgba(184, 115, 51, 0.5);
    outline: none;
    transform: translateY(-1px);
}
.lever-gauge.is-active {
    background: #f26a1a;
    color: #fff;
    border-color: #f26a1a;
    box-shadow: 0 4px 12px rgba(242, 106, 26, 0.35);
}

@media (max-width: 1100px) {
    .advantages__lever-wrap { flex-direction: column; gap: 24px; padding: 24px; }
    .advantages__lever-img { max-width: 320px; max-height: 40%; }
    .lever-selector { min-width: 0; max-width: 100%; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .adv-callout line, .adv-callout text, .adv-callout__dot,
    .advantages__lever-img, .lever-selector__bar-fill {
        animation: none;
        transition: none;
    }
}

/* Видео в advantages */
.advantages__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Градиент вместо чёткой границы */
.advantages__gradient { display: none; }

.advantages__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px;
    position: relative;
    z-index: 3;
}

.advantages__num {
    font-size: 64px;
    font-weight: 900;
    color: rgba(255,255,255,0.05);
    line-height: 1;
    margin-bottom: 20px;
    letter-spacing: -2px;
}

.advantages__heading {
    font-size: clamp(24px, 3vw, 40px);
    font-weight: 700;
    margin-bottom: 16px;
    letter-spacing: -0.5px;
}

.advantages__text {
    font-size: 16px;
    line-height: 1.8;
    color: var(--gray-400);
    max-width: 400px;
}

.advantages-pagination {
    position: absolute;
    bottom: 32px; left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    gap: 6px;
}

.advantages-pagination .swiper-pagination-bullet {
    width: 32px;
    height: 2px;
    border-radius: 0;
    background: rgba(255,255,255,0.15);
    opacity: 1;
    transition: all 0.4s;
}

.advantages-pagination .swiper-pagination-bullet-active {
    background: var(--white);
    width: 56px;
}

/* ============================
   ГДЕ КУПИТЬ (с логотипами)
   ============================ */

.where-buy {
    padding: 120px 0;
    background: var(--white);
}

.where-buy__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 60px;
}

.where-buy__title {
    font-size: clamp(32px, 4.5vw, 56px);
    font-weight: 800;
    letter-spacing: -2px;
    margin-bottom: 60px;
}

.where-buy__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
}

.where-buy__card {
    display: flex;
    flex-direction: column;
    padding: 48px 36px;
    background: var(--warm-100);
    transition: background 0.4s, color 0.4s;
    position: relative;
    overflow: hidden;
}

.where-buy__card:hover {
    background: #fff;
    box-shadow: 0 20px 50px rgba(0,0,0,0.08);
    z-index: 2;
}

.where-buy__card-label {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--gray-400);
    margin-bottom: 20px;
}

.where-buy__card-name {
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 10px;
    letter-spacing: -0.5px;
    color: var(--black);
}

.where-buy__card-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--gray-600);
    margin-bottom: 28px;
}

.where-buy__card-arrow {
    font-size: 24px;
    margin-top: auto;
    transition: transform 0.3s;
}

.where-buy__card:hover .where-buy__card-arrow { transform: translateX(8px); }

/* ============================
   FOOTER
   ============================ */

.footer {
    background: var(--black);
    color: var(--white);
    padding: 80px 0 40px;
}

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

.footer__top {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 60px;
}

.footer__brand {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.footer__logo {
    height: 48px;
    width: auto;
    padding: 6px 14px;
    border-radius: 8px;
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,0.08);
    align-self: flex-start;
}

.footer__brand-text {
    font-size: 12px;
    color: var(--gray-600);
    letter-spacing: 4px;
    text-transform: uppercase;
}

.footer__nav {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.footer__nav a {
    font-size: 14px;
    color: var(--gray-400);
    transition: color 0.3s;
}

.footer__nav a:hover { color: var(--white); }

.footer__contacts {
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: right;
}

.footer__contacts a {
    font-size: 14px;
    color: var(--gray-400);
    transition: color 0.3s;
}

.footer__contacts a:hover { color: var(--white); }

.footer__social {
    display: flex;
    gap: 20px;
    justify-content: flex-end;
}

.footer__bottom {
    padding-top: 40px;
    border-top: 1px solid rgba(255,255,255,0.06);
    font-size: 12px;
    color: var(--gray-600);
}

/* ============================
   ANIMATIONS
   ============================ */

.fade-up {
    opacity: 0;
    transform: translateY(40px);
}

/* ============================
   RESPONSIVE
   ============================ */

@media (max-width: 1024px) {
    .header__inner { padding: 16px 24px; }
    .desktop-only { display: none; }

    .series__inner,
    .categories__inner,
    .about__inner,
    .where-buy__inner,
    .footer__inner { padding: 0 24px; }

    .series__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .constructor__inner { grid-template-columns: 1fr; }
    .constructor__preview { min-height: 240px; }

    .categories__grid { grid-template-columns: 1fr 1fr; }

    /* О бренде: уменьшаем gap, но НЕ стекируем */
    .about__inner { gap: 40px; }

    /* Преимущества: горизонтально с меньшим соотношением медиа */
    .advantages__slide { grid-template-columns: 2fr 3fr; min-height: 60svh; min-height: 60svh; }
    .advantages__slide--reverse { direction: rtl; }
    .advantages__slide--reverse > * { direction: ltr; }
    .advantages__media { min-height: 60svh; }
    .advantages__content { padding: 40px 28px; }
    .advantages__gradient { display: none; }

    .where-buy__grid { grid-template-columns: 1fr; }

    .footer__top {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .footer__contacts { text-align: left; }
    .footer__social { justify-content: flex-start; }
}

@media (max-width: 768px) {
    /* === Секции: компактные отступы вместо desktop 120–160px === */
    .series { padding: 60px 0 44px; }
    .categories { padding: 60px 0; }
    .about { padding: 64px 0; }
    .where-buy { padding: 60px 0; }

    /* === Контейнеры: 16px на мобильных === */
    .series__inner,
    .categories__inner,
    .about__inner,
    .where-buy__inner { padding: 0 16px; }

    /* === Заголовки секций: меньше размер и gap === */
    .series__title { font-size: clamp(24px, 6.5vw, 36px); letter-spacing: -0.5px; }
    .categories__title { font-size: clamp(22px, 6vw, 32px); letter-spacing: -0.5px; }
    .about__title { font-size: clamp(24px, 6.5vw, 36px); letter-spacing: -0.5px; }
    .series__header { margin-bottom: 32px; }
    .categories__header { margin-bottom: 28px; }

    /* === Hero === */
    .hero-slide__content { bottom: 80px; left: 24px; right: 24px; }
    .hero-slide__title { font-size: clamp(28px, 8vw, 48px); }
    .hero-pagination { left: 24px; }

    /* === О бренде: тесный gap, title чуть меньше === */
    .about__inner { gap: 16px; }
    .about__title { font-size: clamp(20px, 5vw, 28px); letter-spacing: -0.5px; }
    .about__desc { font-size: 14px; line-height: 1.6; margin-bottom: 20px; }

    /* === Преимущества: горизонтально, меньше высота и padding === */
    .advantages__slide { min-height: 55svh; }
    .advantages__media { min-height: 55svh; }
    .advantages__content { padding: 28px 16px; }
    .advantages__title { font-size: clamp(20px, 5.5vw, 28px); letter-spacing: -0.5px; }

    /* === Серии: горизонтальные карточки (фото слева, текст справа) === */
    .series__grid { grid-template-columns: 1fr; gap: 10px; margin-bottom: 20px; }
    .series__card { display: flex; flex-direction: row; align-items: stretch; min-height: 110px; }
    .series__card-visual {
        width: 120px;
        flex-shrink: 0;
        aspect-ratio: unset;
        align-self: stretch;
    }
    .series__card-info {
        flex: 1;
        padding: 14px 18px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
    }
    .series__card-name { font-size: 17px; margin-bottom: 0; }
    .series__card-desc { font-size: 12px; line-height: 1.45; margin-bottom: 0; }

    /* === Конструктор: aspect-ratio 1/1 убивает мобильный — квадрат 360×360px === */
    .constructor__preview { aspect-ratio: unset; max-height: 200px; min-height: unset !important; }
    .constructor__inner { min-height: auto; }
    .constructor__controls { padding: 24px 20px; }
    .constructor__title { font-size: 18px; margin-bottom: 16px; }

    /* === Категории: block-layout + явная ширина img-блока гарантируют одинаковый aspect-ratio === */
    .categories__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; align-items: start; }
    .categories__card { display: block; }
    .categories__card-img { width: 100%; }
    .categories__card-name { font-size: 14px; padding: 0 12px; height: 52px; display: flex; align-items: center; }
    .categories__card-sub { font-size: 12px; padding: 0 12px 12px; color: var(--gray-600); }

    /* === Где купить === */
    .where-buy__card { padding: 24px 16px; }
    .where-buy__grid { gap: 10px; }

    /* === CTA секция (Astro) === */
    .cat-cta { padding: 56px 0 !important; }
    .cat-cta__title { font-size: clamp(22px, 6.5vw, 32px) !important; letter-spacing: -0.5px !important; }
    .cat-cta__sub { font-size: 15px !important; margin-bottom: 24px !important; }

    /* === Доп. секции (compare / faq / docs): убираем 160px === */
    .compare { padding: 56px 0; }
    .faq { padding: 56px 0; }
    .docs { padding: 56px 0; }
    .compare__inner, .faq__inner, .docs__inner { padding: 0 16px; }

    /* === Боковое меню: на весь экран === */
    .side-menu__panel {
        width: 100%;
        max-width: 100%;
        padding: 80px 20px 20px;
    }
}

@media (max-width: 600px) {
    /* Серии: 1 колонка на телефонах */
    .series__grid { grid-template-columns: 1fr; }

    /* Конструктор: меньше padding в узком пространстве */
    .constructor__controls { padding: 24px; }
    .constructor__title { font-size: 20px; margin-bottom: 20px; }

    /* Модалка «Где купить» */
    .buy-modal__panel { padding: 28px 20px; }
    .buy-modal__title { font-size: 20px; }
}

@media (max-width: 480px) {
    /* === Hero === */
    .hero-slide__btn { padding: 14px 32px; font-size: 14px; }
    .hero-slide__tags { gap: 6px; }
    .hero-slide__tag { font-size: 9px; padding: 6px 12px; }

    /* === Header: компактнее на 390px === */
    .header__inner { padding: 8px 16px; }
    .header.scrolled .header__inner { padding: 6px 16px; }
    .header__logo-img { height: 40px; padding: 6px 14px; }

    /* === Категории: явная высота img-блока через calc — aspect-ratio нестабилен в iOS Safari === */
    /* Формула: (100vw - padding×2 - gap) / 2 × 0.75 = (100vw - 42px) × 0.375 */
    .categories__card-img { height: calc((100vw - 42px) * 0.375); }

    /* === Секции: совсем плотно на маленьких экранах === */
    .series { padding: 48px 0 36px; }
    .categories { padding: 48px 0; }
    .about { padding: 52px 0; }
    .where-buy { padding: 48px 0; }

    /* === О бренде: на 480px стекируем, скрываем placeholder === */
    .about__inner { grid-template-columns: 1fr; gap: 20px; }
    .about__image-placeholder { display: none; }

    /* === Преимущества: стекируем, медиа как баннер === */
    .advantages__slide { grid-template-columns: 1fr; min-height: auto; }
    .advantages__slide--reverse { direction: ltr; }
    .advantages__media { min-height: 56vw; }
    .advantages__content { padding: 20px 14px; }
    /* Клемма: при стекированном layout дать ей больше высоты */
    .advantages__lever-wrap { flex-direction: column; gap: 12px; padding: 12px; }
    .advantages__lever-img { max-height: 65%; max-width: 55%; }
    .lever-selector { min-width: auto; width: 100%; }
    .lever-selector__val { font-size: 40px; }

    /* === Конструктор: ещё компактнее === */
    .constructor__preview { max-height: 220px; }
    .constructor__controls { padding: 20px 16px; }
    .constructor__title { font-size: 16px; margin-bottom: 12px; }
    /* Внешний лейбл "Конструктор" скрываем — заголовок внутри блока уже есть */
    .constructor__label-mobile { display: none; }

    /* === Серии: на 480px → компактный вертикальный layout === */
    .series__card { flex-direction: column; min-height: auto; }
    .series__card-visual { width: 100%; height: 180px; flex-shrink: 0; }
    .series__grid { gap: 8px; }
    /* Точки цвета — вправо, текст занимает левую колонку */
    .series__card-info {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 2px 12px;
        padding: 10px 14px 12px;
        align-items: center;
    }
    .series__card-name { grid-column: 1; grid-row: 1; font-size: 20px; margin-bottom: 0; align-self: center; }
    /* Описание серии скрываем — экономим высоту карточки */
    .series__card-desc { display: none; }
    .series__card-colors {
        grid-column: 2;
        grid-row: 1;
        flex-direction: column;
        gap: 6px;
        align-self: center;
    }
    /* Hover-подъём карточек на мобильном отключаем — карточки перекрывают друг друга */
    .series__card:hover,
    .series__card[data-series="uno"]:hover { transform: none !important; }
    /* Скрываем подпись "Розетки и выключатели" — экономим место */
    .series__header .label { display: none; }
    /* Показываем лейбл "Конструктор" над блоком */
    .constructor__label-mobile { display: block; margin-top: 28px; margin-bottom: 8px; }

    /* === Отзывы: карточки уже → больше видно === */
    .review-card { width: 220px; min-height: 145px; padding: 14px 16px; }
    .review-card__text { -webkit-line-clamp: 3; font-size: 13px; }
    .review-card__source img { height: 28px; }

    /* === Категории: скрываем subtitle === */
    .categories__card-sub { display: none; }

    /* === О бренде: кнопка убрана, описание читабельнее, место под фото === */
    .about__link { display: none; }
    .about__desc { font-size: 15px; }
    .about__image-placeholder { display: flex !important; min-height: 140px; }

    /* === Преимущества: полная переработка для 480px === */
    .advantages__num { display: none; }
    /* Слайды 1–3: медиа крупнее текста, без обрезки */
    .advantages__media { min-height: 68vw; max-height: none; overflow: hidden; }
    /* Пагинация не перекрывает текст */
    .advantages__content { padding-bottom: 72px !important; }

    /* Слайд 2 (клемма): горизонтальное расположение — изображение слева, селектор справа */
    .advantages__media--lever { min-height: 68vw; }
    .advantages__lever-wrap { flex-direction: row !important; gap: 10px; padding: 14px; align-items: center; }
    .advantages__lever-img { max-width: 40%; max-height: 100%; flex-shrink: 0; flex: none; }
    .lever-selector { flex: 1; min-width: 0; max-width: none; width: auto; }
    .lever-selector__val { font-size: 28px; }
    .lever-gauges { display: none; }

    /* Слайд 4 (тикер с ценами): один тикер на всю ширину, карточки не обрезаются */
    .advantages__media--prices { flex-direction: column; min-height: 64vw; max-height: 64vw; padding: 0; overflow: hidden; }
    .adv-ticker--down { display: none; }
    .adv-ticker { padding: 4px 0; }
    .adv-ticker__track { padding: 8px 14px; gap: 8px; }
    .adv-price-card { min-width: unset; width: 100%; padding: 10px 14px; gap: 10px; flex-shrink: 0; }
    .adv-price-card__series { display: none; }
    .adv-price-card__img { width: 56px; height: 56px; padding: 4px; flex-shrink: 0; }
    .adv-price-card__info { flex: 1; min-width: 0; }
    .adv-price-card__name { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .adv-price-card__price { font-size: 14px; font-weight: 700; white-space: nowrap; flex-shrink: 0; }

    /* === Отзывы: фиксированная высота — линия и автор всегда на одном уровне === */
    .review-card {
        width: 210px;
        height: 250px;
        padding: 14px 16px;
        gap: 0;
        display: flex;
        flex-direction: column;
    }
    .review-card__head { flex-shrink: 0; margin-bottom: 8px; }
    .review-card__text {
        flex: 1;
        font-size: 12px;
        line-height: 1.5;
        display: -webkit-box;
        -webkit-line-clamp: 6;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .review-card__author {
        flex-shrink: 0;
        padding-top: 8px;
        margin-top: 8px;
    }
    .review-card__source img { height: 26px; }
    .review-card__source { height: 26px; }
    .review-card__name { font-size: 12px; }
    .review-card__product { font-size: 10px; }

    /* === FAQ: компактные элементы === */
    .faq__list { gap: 6px; }
    .faq-item__q { padding: 12px 16px; font-size: 14px; gap: 12px; }
    .faq-item__q::after { font-size: 22px; }
    .faq-item__a { padding: 0 16px 12px; font-size: 13px; line-height: 1.55; }

    /* === Контейнеры: минимум 12px === */
    .series__inner,
    .categories__inner,
    .about__inner,
    .where-buy__inner { padding: 0 12px; }

    /* === Заголовки: минимальные === */
    .series__title { font-size: clamp(26px, 7.5vw, 36px); }
    .categories__title { font-size: clamp(18px, 5vw, 24px); }
    .about__title { font-size: clamp(20px, 5.5vw, 28px); }
    .series__header { margin-bottom: 20px; }
    .categories__header { margin-bottom: 16px; }

    /* === CTA === */
    .cat-cta { padding: 44px 0 !important; }
    .cat-cta__title { font-size: clamp(20px, 6vw, 28px) !important; }

    /* === Доп. секции === */
    .compare { padding: 44px 0; }
    .faq { padding: 44px 0; }
    .docs { padding: 44px 0; }
    .compare__inner, .faq__inner, .docs__inner { padding: 0 12px; }

    /* === Footer v2 === */
    .footer-v2__inner { padding: 0 16px; }
    .footer-v2 { padding: 60px 0 32px; }
}

/* === GLOBAL CTA section override (для всех Astro страниц) === */
.cat-cta {
    background: var(--dark, #1a1612) !important;
    padding: 120px 0 !important;
    text-align: center !important;
}
.cat-cta__inner { max-width: 720px; margin: 0 auto; padding: 0 24px; }
.cat-cta__title {
    font-size: clamp(32px, 4vw, 56px) !important;
    font-weight: 800 !important;
    line-height: 1.05 !important;
    letter-spacing: -1px !important;
    margin-bottom: 16px !important;
    color: #ffffff !important;
}
.cat-cta__sub {
    font-size: 17px !important;
    line-height: 1.6 !important;
    color: rgba(255,255,255,0.65) !important;
    margin-bottom: 40px !important;
}
.cat-cta .btn-switch { margin: 0 auto; }
/* На тёмном фоне cat-cta кнопка чище — без линии и без любого цветного свечения */
.cat-cta .btn-switch::after { display: none; }
.cat-cta .btn-switch:hover {
    box-shadow:
        0 6px 14px rgba(0,0,0,0.35),
        0 16px 28px -10px rgba(0,0,0,0.45),
        inset 0 1px 0 rgba(255,255,255,0.9) !important;
}

/* === GLOBAL: модалка «Где купить» === */
.buy-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; }
.buy-modal[hidden] { display: none !important; }
.buy-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(8px); }
.buy-modal__panel {
    position: relative; background: #fff; border-radius: 16px;
    padding: 48px; max-width: 480px; width: calc(100% - 40px); max-height: 90vh; overflow: auto;
    box-shadow: 0 24px 80px rgba(0,0,0,0.4); animation: buyModalIn 0.3s ease;
}
@keyframes buyModalIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.buy-modal__close {
    position: absolute; top: 16px; right: 16px; width: 36px; height: 36px;
    background: transparent; border: none; cursor: pointer; font-size: 28px; color: #999;
    transition: color 0.2s;
}
.buy-modal__close:hover { color: #111; }
.buy-modal__title { font-size: 24px; font-weight: 700; margin: 12px 0 4px; color: #111; }
.buy-modal__article { font-size: 12px; color: #999; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 28px; }
.buy-modal__links { display: flex; flex-direction: column; gap: 12px; }
.buy-modal__link {
    display: flex; align-items: center; gap: 16px;
    padding: 18px 20px; border: 1px solid #ddd; border-radius: 10px;
    text-decoration: none; color: #111;
    transition: all 0.2s ease;
}
.buy-modal__link:hover { background: #111; color: #fff; border-color: #111; transform: translateX(4px); }
.buy-modal__link-logo { font-size: 13px; font-weight: 800; letter-spacing: 1px; width: 50px; flex-shrink: 0; }
.buy-modal__link-text { flex-grow: 1; font-size: 14px; font-weight: 500; }
.buy-modal__link-arrow { font-size: 18px; opacity: 0.5; transition: transform 0.2s; }
.buy-modal__link:hover .buy-modal__link-arrow { transform: translateX(4px); opacity: 1; }

/* ============================
   FOOTER v2 — editorial premium
   ============================ */
.footer-v2 {
    background: #0a0908;
    color: #fff;
    padding: 120px 0 40px;
    position: relative;
    overflow: hidden;
}
.footer-v2::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(140,184,107,0.35), transparent);
}
.footer-v2__inner {
    max-width: 1480px;
    margin: 0 auto;
    padding: 0 60px;
}

/* Crown */
.footer-v2__crown {
    padding-bottom: 80px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    margin-bottom: 72px;
}
.footer-v2__kicker {
    font-size: 12px; font-weight: 500; letter-spacing: 3px; text-transform: uppercase;
    color: rgba(255,255,255,0.5); margin-bottom: 28px;
}
.footer-v2__email {
    display: inline-flex; align-items: center; gap: 14px;
    font-size: clamp(18px, 2vw, 28px);
    font-weight: 700; letter-spacing: -0.5px; line-height: 1.1;
    color: #fff; text-decoration: none;
    transition: color 0.3s ease;
}
.footer-v2__email:hover { color: #8CB86B; }
.footer-v2__email-arrow {
    font-size: 0.6em; font-weight: 400;
    transform: translateX(0);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.footer-v2__email:hover .footer-v2__email-arrow { transform: translateX(16px); }

/* Columns */
.footer-v2__cols {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 48px;
    margin-bottom: 100px;
}
.footer-v2__col {
    display: flex; flex-direction: column; gap: 14px;
}
.footer-v2__col-title {
    font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
    color: #8CB86B; margin-bottom: 12px;
}
.footer-v2__col a {
    font-size: 15px; font-weight: 400;
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    transition: color 0.2s ease;
    display: inline-flex; align-items: center; gap: 8px;
    width: fit-content;
}
.footer-v2__col a:hover {
    color: #fff;
}
.footer-v2__icon {
    width: 16px; height: 16px; display: inline-flex;
    color: rgba(255,255,255,0.5);
}
.footer-v2__icon svg { width: 100%; height: 100%; }
.footer-v2__col a:hover .footer-v2__icon { color: #8CB86B; }

/* Gigantic word mark — выходит за края контейнера */
.footer-v2__markrow {
    position: relative;
    margin: 0 0 60px;
    overflow: visible;
}
.footer-v2__mark-svg {
    display: block;
    width: 115%;
    margin-left: -7.5%;
    height: auto;
    pointer-events: none;
    user-select: none;
    overflow: visible;
}
.footer-v2__mark-svg text {
    vector-effect: non-scaling-stroke;
}

/* Bottom strip */
.footer-v2__bottom {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 32px; align-items: center;
    padding-top: 40px;
    border-top: 1px solid rgba(255,255,255,0.06);
}
.footer-v2__brand {
    display: flex; align-items: center; gap: 12px;
    font-size: 11px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase;
    color: rgba(255,255,255,0.4);
}
.footer-v2__logo {
    height: 28px; width: auto;
    padding: 4px 10px;
    border-radius: 6px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
}
.footer-v2__legal {
    display: flex; justify-content: center; align-items: center; gap: 12px;
    font-size: 12px; color: rgba(255,255,255,0.4);
    flex-wrap: wrap;
}
.footer-v2__legal a,
.footer-v2__legal-soon {
    color: rgba(255,255,255,0.4);
    text-decoration: none;
    transition: color 0.2s ease;
}
.footer-v2__legal a:hover { color: #fff; }
.footer-v2__legal-soon { cursor: default; }
.side-menu__soon { color: rgba(255,255,255,0.4); cursor: default; }
.footer-v2__sep { opacity: 0.4; }
.footer-v2__loc {
    font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
    color: rgba(255,255,255,0.3);
    text-align: right;
}

/* Скрыть старый footer */
.footer { display: none !important; }

/* Адаптив */
@media (max-width: 1024px) {
    .footer-v2__cols { grid-template-columns: repeat(2, 1fr); gap: 40px; }
}
@media (max-width: 720px) {
    .footer-v2 { padding: 80px 0 32px; }
    .footer-v2__inner { padding: 0 24px; }
    .footer-v2__crown { padding-bottom: 48px; margin-bottom: 48px; }
    .footer-v2__cols { grid-template-columns: 1fr; gap: 32px; margin-bottom: 60px; }
    .footer-v2__markrow { margin: 0 -24px; padding: 0 24px; margin-bottom: 40px; }
    .footer-v2__bottom { grid-template-columns: 1fr; gap: 16px; text-align: left; }
    .footer-v2__legal { justify-content: flex-start; }
    .footer-v2__loc { text-align: left; }
    .footer-v2__email { gap: 14px; }
}

/* ============================
   LOADING SPLASH
   ============================ */
.splash {
    position: fixed; inset: 0;
    background: #0a0908;
    z-index: 10000;
    display: flex; align-items: center; justify-content: center;
    opacity: 1;
    transition: opacity 0.6s ease;
    pointer-events: none;
}
.splash.is-hiding { opacity: 0; }

.splash__logo-wrap {
    position: relative;
    display: flex; flex-direction: column; align-items: center; gap: 32px;
    animation: splashIn 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.splash__logo {
    height: 64px; width: auto;
    padding: 10px 22px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 10px;
    backdrop-filter: blur(10px);
}
.splash__line {
    width: 140px; height: 2px;
    background: rgba(255,255,255,0.08);
    position: relative; overflow: hidden;
    border-radius: 2px;
}
.splash__line::after {
    content: '';
    position: absolute; top: 0; left: 0;
    width: 40%; height: 100%;
    background: linear-gradient(90deg, transparent, #8CB86B, transparent);
    animation: splashShimmer 1.6s infinite cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes splashIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes splashShimmer {
    0%   { transform: translateX(-120%); }
    100% { transform: translateX(320%); }
}

/* ============================
   VIEW TRANSITIONS (Astro built-in + cross-document)
   ============================ */

/* Включаем cross-document переходы для главной (HTML без ClientRouter).
   Работает в Chrome/Edge 126+. В Firefox/Safari старых — обычный reload. */
@view-transition {
    navigation: auto;
}

@keyframes vt-fade-in  { from { opacity: 0; }                      to { opacity: 1; } }
@keyframes vt-fade-out { from { opacity: 1; }                      to { opacity: 0; } }
@keyframes vt-slide-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes vt-slide-out { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-6px); } }

/* root: лёгкий fade — играет при ЛЮБОМ view transition (включая внутренние
   через startViewTransition в конструкторе/etc), поэтому держим максимально
   спокойным. Главная «вау» приходит от морфинга named-элементов ниже. */
::view-transition-old(root) {
    animation: vt-fade-out 0.35s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
::view-transition-new(root) {
    animation: vt-slide-in 0.45s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* Морфинг картинки/заголовка серии: НЕТ статичного view-transition-name —
   он проставляется через JS только в момент клика по карточке (см. script.js).
   Иначе VT-name создаёт снэпшот при ЛЮБОМ view transition (конструктор и т.п.)
   и карточки серий «дёргаются» вместе с другими переходами. */

/* Кастомная скорость и кривая для морфинга серий-элементов */
::view-transition-old(series-uno-image),  ::view-transition-new(series-uno-image),
::view-transition-old(series-aura-image), ::view-transition-new(series-aura-image),
::view-transition-old(series-uno-title),  ::view-transition-new(series-uno-title),
::view-transition-old(series-aura-title), ::view-transition-new(series-aura-title),
::view-transition-old(series-design-title), ::view-transition-new(series-design-title) {
    animation-duration: 0.6s;
    animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Уважаем prefers-reduced-motion: отключаем все view transitions */
@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root),
    ::view-transition-new(root),
    ::view-transition-old(series-uno-image),  ::view-transition-new(series-uno-image),
    ::view-transition-old(series-aura-image), ::view-transition-new(series-aura-image),
    ::view-transition-old(series-uno-title),  ::view-transition-new(series-uno-title),
    ::view-transition-old(series-aura-title), ::view-transition-new(series-aura-title),
    ::view-transition-old(series-design-title), ::view-transition-new(series-design-title) {
        animation: none !important;
    }
}

/* ============================
   3D TILT (универсальный)
   элементы с [data-tilt] наклоняются за курсором
   ============================ */
[data-tilt] {
    transform-style: preserve-3d;
    transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
}
[data-tilt]:hover {
    transition: transform 0.15s ease-out;
}
[data-tilt-inner] {
    transform: translateZ(30px);
    transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

/* ============================
   SCROLL PROGRESS BAR
   ============================ */
.scroll-progress {
    position: fixed; top: 0; left: 0; right: 0;
    height: 2px; z-index: 9999;
    background: transparent;
    pointer-events: none;
}
.scroll-progress__bar {
    height: 100%;
    background: linear-gradient(90deg, #5E8C3A, #8CB86B);
    transform-origin: left center;
    transform: scaleX(0);
    transition: transform 0.1s ease-out;
}

/* ============================
   STICKY SECTION HEADER
   первые 120px секции "прилипают" при скролле
   ============================ */
.sticky-head {
    position: sticky;
    top: 72px;
    z-index: 4;
    background: inherit;
    padding-block: 32px;
    backdrop-filter: blur(10px);
}

/* ============================
   MENU PREVIEW (desktop only)
   ============================ */
.side-menu__preview {
    position: absolute;
    top: 0; left: 100%;
    width: 340px; height: 100%;
    background: #faf8f4;
    border-left: 1px solid rgba(0,0,0,0.05);
    padding: 60px 32px;
    display: flex; flex-direction: column; justify-content: center;
    opacity: 0; pointer-events: none;
    transform: translateX(-20px);
    transition: opacity 0.35s ease, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.side-menu__preview.is-visible {
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
}
.side-menu__preview-img-wrap {
    aspect-ratio: 1/1;
    background: var(--warm-200, #ede7de);
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    padding: 32px;
    margin-bottom: 20px;
    overflow: hidden;
}
.side-menu__preview-img {
    max-width: 100%; max-height: 100%; object-fit: contain;
    mix-blend-mode: multiply;
    transition: opacity 0.3s ease;
}
.side-menu__preview-placeholder {
    font-size: 11px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase;
    color: rgba(0,0,0,0.3);
    border: 1.5px dashed rgba(0,0,0,0.1);
    padding: 14px 22px; border-radius: 4px;
}
.side-menu__preview-title {
    font-size: 18px; font-weight: 700; color: var(--black, #111);
    letter-spacing: -0.3px;
}

@media (max-width: 900px) {
    .side-menu__preview { display: none; }
}

/* ============================
   FOOTER NEWSLETTER
   ============================ */
.footer-v2__crown {
    display: grid !important;
    grid-template-columns: 1fr auto;
    gap: 64px;
    align-items: end;
}
.footer-v2__newsletter {
    max-width: 360px;
    padding-bottom: 8px;
}
.footer-v2__news-label {
    font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
    color: #8CB86B; margin-bottom: 12px;
}
.footer-v2__news-text {
    font-size: 14px; line-height: 1.5;
    color: rgba(255,255,255,0.6); margin-bottom: 20px;
}
.footer-v2__news-form {
    display: flex; gap: 10px;
    flex-wrap: wrap;
}
.footer-v2__news-input {
    flex: 1; min-width: 180px;
    padding: 14px 18px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 8px;
    color: #fff; font-family: inherit; font-size: 14px;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.footer-v2__news-input:focus {
    outline: none;
    border-color: #8CB86B;
    background: rgba(255,255,255,0.08);
}
.footer-v2__news-input::placeholder { color: rgba(255,255,255,0.3); }
.footer-v2__news-btn {
    padding: 14px 22px;
    background: #fff;
    color: #0a0908;
    border: none; border-radius: 8px;
    font-family: inherit; font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
    cursor: pointer;
    transition: all 0.2s ease;
}
.footer-v2__news-btn:hover {
    background: #8CB86B;
    color: #0a0908;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(140,184,107,0.3);
}
.footer-v2__news-msg {
    flex-basis: 100%;
    font-size: 13px; color: #8CB86B;
    margin-top: 8px;
    min-height: 16px;
}
.footer-v2__news-form.is-sent .footer-v2__news-input,
.footer-v2__news-form.is-sent .footer-v2__news-btn {
    opacity: 0.5; pointer-events: none;
}
.footer-v2__news-note {
    font-size: 11px;
    color: rgba(255,255,255,0.45);
    margin-top: 10px;
    letter-spacing: 0.3px;
}

/* "Скоро" — неактивные ссылки (соцсети без аккаунтов, DESIGN серия) */
.footer-v2__soon {
    cursor: default;
    opacity: 0.55;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.footer-v2__soon:hover { color: inherit !important; }
.footer-v2__soon:hover .footer-v2__icon { color: inherit !important; }
.footer-v2__soon-badge {
    display: inline-block;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
    background: rgba(255,255,255,0.08);
    padding: 2px 7px;
    border-radius: 999px;
    margin-left: 6px;
    vertical-align: middle;
}

@media (max-width: 1024px) {
    .footer-v2__crown { grid-template-columns: 1fr; gap: 40px; }
    .footer-v2__newsletter { max-width: 100%; }
}

/* ============================
   GLOBAL REVEAL ON SCROLL
   универсальная анимация появления для всех Astro-страниц
   ============================ */
[data-reveal-section],
[data-reveal-item] {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}
[data-reveal-section].is-visible,
[data-reveal-item].is-visible {
    opacity: 1;
    transform: translateY(0);
}
/* Поддержка для пользователей, отключивших анимации */
@media (prefers-reduced-motion: reduce) {
    [data-reveal-section],
    [data-reveal-item] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ============================
   HERO: вариант с текстом справа (слайды 2-3)
   ============================ */
.hero-slide__content--right {
    left: auto !important;
    right: 60px;
    text-align: right;
    align-items: flex-end !important;
    max-width: 640px;
}
.hero-slide__content--right .hero-slide__title {
    text-align: right;
}
.hero-slide__content--right .hero-slide__btn {
    align-self: flex-end;
}
.hero-slide__content--right .hero-slide__tags {
    justify-content: flex-end;
    align-self: stretch;
}

/* Лёгкое затемнение правой части кадра — чтобы белый текст читался */
.hero-slide__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
}
.hero-slide__overlay--right {
    background: linear-gradient(
        to left,
        rgba(0, 0, 0, 0.55) 0%,
        rgba(0, 0, 0, 0.25) 35%,
        rgba(0, 0, 0, 0) 70%
    );
}

@media (max-width: 720px) {
    .hero-slide__content--right {
        right: 24px;
        left: 24px !important;
        text-align: left;
        align-items: flex-start !important;
    }
    .hero-slide__content--right .hero-slide__title {
        text-align: left;
    }
    .hero-slide__content--right .hero-slide__btn {
        align-self: flex-start;
    }
    /* Теги выравниваем влево вместе с текстом */
    .hero-slide__content--right .hero-slide__tags {
        justify-content: flex-start;
        align-self: auto;
    }
    .hero-slide__overlay--right {
        background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.15) 50%, transparent 100%);
    }

    /* Слайд 1 и 4: 33% (выключатель в центре-левее) */
    .hero-slide__video { object-position: 33% center; }
    .hero-slide__img   { object-position: 33% center; }

    /* Слайды 2 и 3 (интерьерные): чуть правее левого края — пропускаем пустую стену */
    .swiper-slide:nth-child(2) .hero-slide__video,
    .swiper-slide:nth-child(3) .hero-slide__video {
        object-position: 12% center;
    }

    /* Слайд 4: убираем принудительный <br> в субтитре — тире не уходит на отдельную строку */
    .swiper-slide:nth-child(4) .hero-slide__subtitle br { display: none; }

    /* Header: при скролле — прозрачный frosted glass вместо плотного белого */
    .header.scrolled {
        background: rgba(255, 255, 255, 0.55);
    }
}

/* ============================
   ABOUT STATS — цифры бренда
   ============================ */
.about__stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.about-stat {
    background: var(--white);
    border-radius: 16px;
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: transform 0.3s, box-shadow 0.3s;
    border: 1px solid rgba(0,0,0,0.04);
}
.about-stat:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.06);
}
.about-stat--wide {
    grid-column: 1 / -1;
    background: linear-gradient(135deg, #1a1a1a 0%, #252118 100%);
    color: #fff;
}
.about-stat__num {
    font-size: clamp(44px, 4vw, 64px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -2px;
    color: var(--warm-gold);
    font-variant-numeric: tabular-nums;
}
.about-stat__num--alt {
    font-size: clamp(18px, 1.6vw, 22px);
    font-weight: 800;
    letter-spacing: 2px;
    color: var(--warm-gold);
}
.about-stat__label {
    font-size: 13px;
    font-weight: 500;
    color: var(--gray-600);
    line-height: 1.4;
    letter-spacing: 0.3px;
}
.about-stat--wide .about-stat__label {
    color: rgba(255,255,255,0.7);
}

/* ============================
   СРАВНЕНИЕ
   ============================ */
.compare {
    padding: 160px 0 110px;
    background: var(--white);
}
.compare__inner {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 32px;
}
.compare__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    margin-bottom: 56px;
}
.compare__title {
    font-size: clamp(28px, 3.2vw, 44px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -1px;
    margin-bottom: 0;
    color: var(--black);
}
.compare__subtitle {
    font-size: 15px;
    color: var(--gray-600);
    margin: 0;
    max-width: 360px;
    text-align: right;
}
.compare__table-wrap {
    overflow-x: auto;
    border-radius: 20px;
    border: 1px solid rgba(0,0,0,0.06);
    background: var(--white);
    box-shadow: 0 4px 24px rgba(0,0,0,0.03);
}
.compare__table {
    width: 100%;
    border-collapse: collapse;
    min-width: 0;
    table-layout: fixed;
}
.compare__th-feature { width: 32%; }
.compare__th { width: 17%; }
.compare__th,
.compare__th-feature {
    padding: 18px 12px;
    text-align: left;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.3px;
    background: var(--warm-100);
    border-bottom: 2px solid rgba(0,0,0,0.06);
    color: var(--gray-800);
    vertical-align: middle;
}
.compare__th {
    text-align: center;
}
.compare__th--us {
    background: linear-gradient(135deg, #1a1a1a 0%, #252118 100%);
    color: var(--warm-gold);
    position: relative;
}
.compare__brand-name {
    display: block;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: -0.3px;
    color: #fff;
    margin-bottom: 4px;
}
.compare__brand-tag {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--warm-gold);
    background: rgba(94,140,58,0.15);
    padding: 3px 10px;
    border-radius: 99px;
    text-transform: uppercase;
}
.compare__feature {
    padding: 14px 20px;
    font-size: 15px;
    font-weight: 600;
    color: var(--gray-800);
    border-bottom: 1px solid rgba(0,0,0,0.05);
}
.compare__cell {
    padding: 14px 14px;
    text-align: center;
    font-size: 15px;
    color: var(--gray-800);
    border-bottom: 1px solid rgba(0,0,0,0.05);
}
.compare__cell--us {
    background: rgba(94,140,58,0.08);
    color: var(--black);
}
.compare__cell--us strong {
    font-weight: 800;
    color: var(--black);
}
.compare__yes {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px; height: 26px;
    border-radius: 50%;
    background: #8CB86B;
    color: #fff;
    font-weight: 800;
    font-size: 14px;
    box-shadow: 0 2px 6px rgba(140,184,107,0.3);
}
.compare__cell--us .compare__yes {
    background: var(--warm-gold);
    box-shadow: 0 2px 8px rgba(94,140,58,0.4);
}

/* Строка с ценой — выделена и подчёркивает главный аргумент */
.compare__row--price .compare__feature {
    font-size: 16px;
    font-weight: 700;
    color: var(--black);
    background: rgba(94,140,58,0.04);
}
.compare__cell--price {
    font-size: 17px !important;
    font-weight: 800 !important;
    padding: 18px 14px !important;
    background: rgba(94,140,58,0.04);
}
.compare__cell--us.compare__cell--price {
    background: rgba(94,140,58,0.18);
    position: relative;
}
.compare__cell--us.compare__cell--price strong {
    color: var(--warm-gold);
    font-size: 22px;
    display: block;
    line-height: 1.1;
    white-space: nowrap;
}
.compare__price-tag {
    display: inline-block;
    margin-top: 8px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #fff;
    background: #8CB86B;
    padding: 4px 10px;
    border-radius: 99px;
}
.compare__no {
    color: rgba(0,0,0,0.25);
    font-size: 18px;
    font-weight: 300;
}
.compare__table tbody tr:last-child td {
    border-bottom: none;
}
.compare__footnote {
    font-size: 12px;
    color: var(--gray-400);
    margin-top: 20px;
    font-style: italic;
}

/* ============================
   ОТЗЫВЫ — бесконечная лента (2 ряда)
   ============================ */
.reviews {
    padding: 80px 0;
    background: var(--warm-100);
    overflow: hidden;
}
.reviews__inner {
    max-width: var(--container);
    margin: 0 auto 40px;
    padding: 0 60px;
}
.reviews__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
}
.reviews__title {
    font-size: clamp(28px, 3.2vw, 44px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -1px;
    margin-bottom: 0;
    color: var(--black);
}
.reviews__subtitle {
    font-size: 15px;
    color: var(--gray-600);
    margin: 0;
    max-width: 360px;
    text-align: right;
}

/* Маска с плавным fade по краям для красивого исчезновения */
.reviews__marquee {
    width: 100%;
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
    padding: 12px 0;
}
.reviews__track {
    display: flex;
    gap: 20px;
    width: max-content;
    will-change: transform;
}
.reviews__marquee--left .reviews__track {
    animation: reviewsLeft 60s linear infinite;
}
.reviews__marquee--right .reviews__track {
    animation: reviewsRight 75s linear infinite;
}
@keyframes reviewsLeft {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@keyframes reviewsRight {
    from { transform: translateX(-50%); }
    to { transform: translateX(0); }
}
/* Пауза ленты при hover → можно прочитать отзыв */
.reviews__marquee:hover .reviews__track {
    animation-play-state: paused;
}

.review-card {
    background: var(--white);
    border-radius: 18px;
    padding: 24px 26px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 380px;
    min-height: 200px;
    flex-shrink: 0;
    transition: transform 0.3s, box-shadow 0.3s;
    border: 1px solid rgba(0,0,0,0.04);
}
.review-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.08);
    z-index: 2;
}
.review-card__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}
.review-card__stars {
    font-size: 16px;
    color: #FFB800;
    letter-spacing: 2px;
}
.review-card__source {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    padding: 0;
    background: transparent;
}
.review-card__source img {
    height: 48px;
    width: auto;
    display: block;
    object-fit: contain;
}
.review-card__text {
    font-size: 14px;
    line-height: 1.55;
    color: var(--gray-800);
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.review-card__author {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-top: 12px;
    border-top: 1px solid rgba(0,0,0,0.06);
}
.review-card__name {
    font-size: 13px;
    font-weight: 700;
    color: var(--black);
}
.review-card__product {
    font-size: 11px;
    color: var(--gray-400);
    letter-spacing: 0.3px;
}
.reviews__note {
    font-size: 11px;
    color: var(--gray-400);
    margin: 32px auto 0;
    font-style: italic;
    text-align: center;
    max-width: var(--container);
    padding: 0 60px;
}

@media (max-width: 900px) {
    .reviews__head { flex-direction: column; align-items: flex-start; }
    .reviews__subtitle { text-align: left; }
    .review-card { width: 260px; min-height: 165px; padding: 18px 20px; }
    .review-card__source,
    .review-card__source img { height: 36px; }
}

/* ============================
   FAQ
   ============================ */
.faq {
    padding: 160px 0;
    background: var(--white);
}
.faq__inner {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 60px;
}
.faq__title {
    font-size: clamp(36px, 4.5vw, 64px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -1.5px;
    margin-bottom: 56px;
    color: var(--black);
}
.faq__list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.faq-item {
    background: var(--warm-100);
    border-radius: 16px;
    padding: 0;
    overflow: hidden;
    transition: background 0.2s;
}
.faq-item[open] {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 4px 20px rgba(0,0,0,0.04);
}
.faq-item__q {
    padding: 24px 28px;
    font-size: 17px;
    font-weight: 700;
    color: var(--black);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    list-style: none;
    user-select: none;
    transition: color 0.2s;
}
.faq-item__q::-webkit-details-marker { display: none; }
.faq-item__q::after {
    content: '+';
    font-size: 28px;
    font-weight: 300;
    color: var(--gray-400);
    transition: transform 0.3s;
    flex-shrink: 0;
}
.faq-item[open] .faq-item__q::after {
    transform: rotate(45deg);
    color: var(--warm-gold);
}
.faq-item__q:hover {
    color: var(--warm-gold);
}
.faq-item__a {
    padding: 0 28px 24px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--gray-600);
}

/* ============================
   ДОКУМЕНТЫ
   ============================ */
.docs {
    padding: 160px 0;
    background: var(--warm-100);
}
.docs__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 60px;
}
.docs__title {
    font-size: clamp(36px, 4.5vw, 64px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -1.5px;
    margin-bottom: 16px;
    color: var(--black);
}
.docs__subtitle {
    font-size: 17px;
    color: var(--gray-600);
    margin-bottom: 56px;
}
.docs__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.doc-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 16px;
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: relative;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
}
.doc-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.06);
    border-color: var(--warm-gold);
}
.doc-card--disabled {
    cursor: default;
    opacity: 0.75;
}
.doc-card--disabled:hover {
    transform: translateY(-4px);
    border-color: rgba(0,0,0,0.12);
    box-shadow: 0 8px 20px rgba(0,0,0,0.04);
}
.doc-card__icon {
    width: 44px; height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(94,140,58,0.12);
    color: var(--warm-gold);
    border-radius: 12px;
    margin-bottom: 8px;
}
.doc-card__icon svg {
    width: 22px; height: 22px;
}
.doc-card__title {
    font-size: 16px;
    font-weight: 700;
    color: var(--black);
    letter-spacing: -0.2px;
}
.doc-card__desc {
    font-size: 13px;
    line-height: 1.5;
    color: var(--gray-600);
    flex: 1;
}
.doc-card__badge {
    position: absolute;
    top: 20px; right: 20px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
    color: var(--gray-400);
    background: rgba(0,0,0,0.04);
    padding: 4px 9px;
    border-radius: 99px;
}
.docs__note {
    font-size: 13px;
    color: var(--gray-600);
    margin-top: 32px;
    text-align: center;
}
.docs__note a {
    color: var(--black);
    border-bottom: 1px solid var(--black);
    text-decoration: none;
}

/* ============================
   WHERE-BUY — watermark лого на фоне (scale on hover)
   ============================ */
.where-buy__watermark {
    position: absolute;
    bottom: -5%;
    right: -5%;
    width: 80%;
    height: 95%;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    opacity: 0.45;
    transform-origin: bottom right;
    transform: scale(1);
    transition: opacity 0.6s cubic-bezier(0.22,1,0.36,1), transform 0.6s cubic-bezier(0.22,1,0.36,1);
    pointer-events: none;
}
.where-buy__watermark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: bottom right;
    /* Все 3 лого — прозрачные PNG, blend-mode не нужен */
}
/* ЭЦ PNG теперь 1600×900 с прозрачным padding — как Ozon/WB.
   Override не нужен, используется общее правило. */

/* На hover — лого увеличивается и становится ярче */
.where-buy__card:hover .where-buy__watermark {
    opacity: 0.9;
    transform: scale(1.22);
}

/* Контент поверх watermark'а */
.where-buy__card-label,
.where-buy__card-name,
.where-buy__card-desc,
.where-buy__card-arrow {
    position: relative;
    z-index: 2;
}

/* ============================
   АДАПТИВ новых блоков
   ============================ */
@media (max-width: 900px) {
    .about__stats { grid-template-columns: 1fr 1fr; }
    .reviews__grid { grid-template-columns: 1fr; }
    .docs__grid { grid-template-columns: 1fr 1fr; }
    .compare { padding: 100px 0; }
    .compare__inner, .reviews__inner, .faq__inner, .docs__inner { padding: 0 24px; }
    .faq-item__q { padding: 20px 22px; font-size: 15px; }
    .faq-item__a { padding: 0 22px 20px; font-size: 14px; }
}
@media (max-width: 560px) {
    .about__stats { grid-template-columns: 1fr; }
    .docs__grid { grid-template-columns: 1fr; }
    .compare__feature, .compare__cell, .compare__th, .compare__th-feature {
        padding: 14px 10px;
        font-size: 12px;
    }
    .compare__brand-name { font-size: 13px; }
}

/* ============================
   DOCS — компактный вариант
   ============================ */
.docs--compact {
    padding: 80px 0 40px;
}
.docs--compact .docs__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    margin-bottom: 28px;
}
.docs--compact .docs__title {
    font-size: clamp(24px, 2.4vw, 32px);
    letter-spacing: -0.5px;
    margin-bottom: 0;
    line-height: 1.1;
}
.docs--compact .docs__subtitle {
    font-size: 13px;
    margin-bottom: 0;
    text-align: right;
    max-width: 280px;
    color: var(--gray-600);
}
.docs--compact .docs__subtitle a {
    color: var(--black);
    text-decoration: none;
    border-bottom: 1px solid var(--black);
}
.docs--compact .docs__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.docs--compact .doc-card {
    padding: 16px 18px;
    gap: 6px;
    flex-direction: row;
    align-items: center;
}
.docs--compact .doc-card__icon {
    width: 36px;
    height: 36px;
    margin-bottom: 0;
    flex-shrink: 0;
}
.docs--compact .doc-card__icon svg {
    width: 18px;
    height: 18px;
}
.docs--compact .doc-card__title {
    font-size: 13px;
    flex: 1;
    line-height: 1.25;
}
.docs--compact .doc-card__badge {
    position: static;
    font-size: 9px;
    padding: 3px 7px;
    flex-shrink: 0;
}

/* ============================
   FAQ — компактный 2 колонки
   ============================ */
.faq--compact {
    padding: 40px 0 80px;
    background: var(--warm-100);
}
.faq--compact .faq__inner {
    max-width: var(--container);
}
.faq--compact .faq__head {
    margin-bottom: 40px;
}
.faq--compact .faq__title {
    font-size: clamp(28px, 3vw, 40px);
    letter-spacing: -1px;
    margin-bottom: 0;
    line-height: 1.1;
}
.faq__list--cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 20px;
    align-content: start;
}
.faq--compact .faq-item {
    background: #fff;
    border-radius: 12px;
    height: fit-content;
    align-self: start;
}
.faq--compact .faq-item[open] {
    border: 1px solid rgba(0,0,0,0.06);
}
.faq--compact .faq-item__q {
    padding: 18px 22px;
    font-size: 14px;
    font-weight: 600;
}
.faq--compact .faq-item__q::after {
    font-size: 22px;
}
.faq--compact .faq-item__a {
    padding: 0 22px 18px;
    font-size: 13px;
    line-height: 1.6;
}

@media (max-width: 900px) {
    .docs--compact .docs__head { flex-direction: column; align-items: flex-start; gap: 16px; }
    .docs--compact .docs__subtitle { text-align: left; }
    .docs--compact .docs__grid { grid-template-columns: 1fr 1fr; }
    .faq__list--cols { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .docs--compact .docs__grid { grid-template-columns: 1fr; }
    .where-buy__watermark img { transform: translateX(20%); }
}

/* ============================
   JS-REVEAL — анимация появления новых блоков
   (class добавляется в script.js, is-visible через IntersectionObserver)
   ============================ */
.js-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition:
        opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}
.js-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
    .js-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ============================
   HERO 5 — SHOWCASE (6 категорий витрина)
   ============================ */
.hero-slide--showcase {
    overflow: hidden;
}
/* Белый фон + тёплая атмосфера: мягкое световое пятно + пылинки */
.hero-slide__bg--mesh {
    background-color: #fdfbf6;
    overflow: hidden;
}
/* Тёплый свет сверху-слева — лёгкий ореол */
.hero-slide__bg--mesh::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 50% 45% at 18% 15%, rgba(255,240,210,0.5) 0%, transparent 55%),
        radial-gradient(ellipse 40% 35% at 85% 85%, rgba(255,230,195,0.3) 0%, transparent 60%);
    z-index: 0;
    pointer-events: none;
    animation: bgBreath 18s ease-in-out infinite;
}
@keyframes bgBreath {
    0%, 100% { opacity: 0.85; transform: scale(1); }
    50%      { opacity: 1;    transform: scale(1.05); }
}

/* Premium-слой: тонкая виньетка по краям + grain (шум) */
.hero-slide__bg--mesh .hero-vignette {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    background:
        radial-gradient(ellipse 100% 80% at 50% 50%, transparent 50%, rgba(60,40,10,0.08) 100%);
}
/* SVG grain — еле заметный шум для премиум-ощущения */
.hero-slide__bg--mesh .hero-grain {
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
    opacity: 0.12;
    mix-blend-mode: multiply;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
    background-size: 200px 200px;
}

/* Пылинки — 2 слоя (за и перед товарами, но ВСЕГДА под текстом) */
.hero-dust {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}
.hero-slide__bg--mesh .hero-dust--back { z-index: 2; }
/* --front вставлен внутрь .hero-showcase (stacking context),
   там __center z-index: 20, поэтому front z-index: 5 — над плитками,
   под центральным текстом */
.hero-showcase > .hero-dust--front { z-index: 5; }

.hero-dust__particle {
    position: absolute;
    border-radius: 50%;
    animation-name: dustFloat;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}
/* ДАЛЬНИЕ — маленькие, размытые, тёплый блик */
.hero-dust__particle--far {
    background: radial-gradient(circle,
        rgba(200,160,100,0.7) 0%,
        rgba(180,140,80,0.3) 45%,
        transparent 80%);
    box-shadow: 0 0 6px rgba(200,160,100,0.25);
    filter: blur(0.8px);
}
/* БЛИЖНИЕ — совсем мелкие, чёткие, чуть ярче */
.hero-dust__particle--near {
    background: radial-gradient(circle,
        rgba(200,160,100,0.85) 0%,
        rgba(180,140,80,0.35) 50%,
        transparent 85%);
    box-shadow: 0 0 4px rgba(200,160,100,0.3);
    filter: blur(0.3px);
}
@keyframes dustFloat {
    0%   { transform: translate(0, 100vh) scale(0.8); opacity: 0; }
    10%  { opacity: 0.9; }
    50%  { transform: translate(var(--dx), 45vh) scale(1); opacity: 1; }
    90%  { opacity: 0.6; }
    100% { transform: translate(calc(var(--dx) * 1.5), -20vh) scale(0.6); opacity: 0; }
}
.hero-showcase {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    /* top 120px = 96px header + 24px воздуха; side 2% для максимальной ширины товаров */
    padding: 120px 2% 40px;
    z-index: 1;
}
.hero-showcase__row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 36px;
    width: 100%;
    max-width: 1700px;
    flex: 1; /* ряд занимает доступную высоту автоматически */
    min-height: 0;
}

/* Центральный текст — ПОВЕРХ карточек (frosted glass) */
.hero-showcase__center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.94);
    z-index: 20;
    text-align: center;
    padding: 44px 64px;
    background: rgba(247,244,239, 0.78);
    backdrop-filter: blur(22px) saturate(120%);
    -webkit-backdrop-filter: blur(22px) saturate(120%);
    border-radius: 26px;
    box-shadow: 0 24px 70px rgba(0,0,0,0.1), 0 0 0 1px rgba(255,255,255,0.4) inset;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    opacity: 0;
    transition: opacity 0.6s cubic-bezier(0.22,1,0.36,1), transform 0.6s cubic-bezier(0.22,1,0.36,1);
    pointer-events: none;
}
.hero-showcase__center > * { pointer-events: auto; }
.hero-slide--showcase.is-active .hero-showcase__center {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.hero-showcase__center .hero-slide__label {
    color: var(--gray-600);
    margin: 0;
}
.hero-showcase__center .hero-slide__title {
    font-size: clamp(56px, 8vw, 120px);
    margin: 0;
    text-shadow: none;
    color: var(--black);
    line-height: 0.95;
    letter-spacing: -3px;
    font-weight: 900;
}
.hero-showcase__center .hero-slide__btn {
    margin-top: 8px;
}

/* Плитка — товар ПЛАВАЕТ в тумане (нет белого прямоугольника) */
.hero-showcase__tile {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
    opacity: 0;
    transform: translateY(18px);
    transition:
        opacity 0.55s cubic-bezier(0.22,1,0.36,1),
        transform 0.55s cubic-bezier(0.22,1,0.36,1);
    cursor: pointer;
    --parallax-x: 0px;
    --parallax-y: 0px;
    overflow: visible;
}
.hero-showcase__tile.is-revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Синхронная смена — все плитки одновременно "дышат" (быстро: 300мс out + 350мс in) */
.hero-slide--showcase.is-pulsing .hero-showcase__img {
    opacity: 0;
    transform: scale(0.92) translateY(-5px);
    filter: drop-shadow(0 6px 12px rgba(85,60,20,0.12)) blur(6px);
}
.hero-slide--showcase.is-pulsing .hero-showcase__shadow {
    transform: scaleY(0.6) scale(0.6);
    opacity: 0.35;
}

/* Hover — товар слегка приподнимается + тень расширяется (стоит на полу) */
.hero-showcase__tile:hover { z-index: 15; }
.hero-showcase__tile:hover .hero-showcase__img {
    transform: translateY(-6%) scale(1.03) translate(var(--parallax-x), var(--parallax-y));
    filter: drop-shadow(0 18px 28px rgba(85,60,20,0.22))
            drop-shadow(0 6px 10px rgba(0,0,0,0.12));
}
.hero-showcase__tile:hover .hero-showcase__shadow {
    transform: scaleY(0.6) scale(1.15);
    opacity: 0.75;
    filter: blur(12px);
}

.hero-showcase__inner {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    /* НЕТ фона, НЕТ рамки — товар плавает в тумане */
}

/* Эллиптическая тень под товаром — "стоит на полу" */
.hero-showcase__shadow {
    position: absolute;
    bottom: 8%;
    left: 20%;
    right: 20%;
    height: 30px;
    background: radial-gradient(ellipse at center, rgba(60,40,10,0.35) 0%, rgba(60,40,10,0.15) 40%, transparent 70%);
    filter: blur(8px);
    transform: scaleY(0.6);
    z-index: 0;
    pointer-events: none;
    transition: transform 0.7s cubic-bezier(0.22,1,0.36,1),
                opacity 0.5s cubic-bezier(0.22,1,0.36,1);
}

/* Товар — реально прозрачный PNG, multiply НЕ нужен,
   drop-shadow работает чисто по контуру */
.hero-showcase__img {
    position: relative;
    z-index: 1;
    max-width: 78%;
    max-height: 78%;
    object-fit: contain;
    filter: drop-shadow(0 8px 16px rgba(85,60,20,0.15))
            drop-shadow(0 2px 4px rgba(0,0,0,0.08));
    transition:
        opacity 0.7s cubic-bezier(0.22,1,0.36,1),
        transform 0.7s cubic-bezier(0.22,1,0.36,1),
        filter 0.7s cubic-bezier(0.22,1,0.36,1);
    will-change: transform, opacity, filter;
}

/* Back — frosted dark overlay при hover. inset:0 — СТРОГО в границах плитки */
.hero-showcase__back {
    position: absolute;
    inset: 0;
    z-index: 5;
    background: linear-gradient(140deg, rgba(26,26,26,0.94) 0%, rgba(42,36,26,0.96) 100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 20px;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 8px;
    padding: 18px 16px;
    box-sizing: border-box;
    transform: translateY(15%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.45s cubic-bezier(0.22,1,0.36,1),
                opacity 0.35s ease;
}
.hero-showcase__tile:hover .hero-showcase__back {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}
.hero-showcase__cat {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--warm-gold);
}
.hero-showcase__price {
    font-size: clamp(22px, 2.4vw, 30px);
    font-weight: 900;
    letter-spacing: -0.8px;
    line-height: 1;
    color: #fff;
}
.hero-showcase__desc {
    font-size: 12px;
    line-height: 1.5;
    color: rgba(255,255,255,0.75);
    max-width: 220px;
}
.hero-showcase__arrow {
    margin-top: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: rgba(94,140,58,0.18);
    color: var(--warm-gold);
    font-weight: 800;
    font-size: 14px;
}

/* Адаптив */
@media (max-width: 1100px) {
    .hero-showcase__row { gap: 18px; }
    .hero-showcase__center { padding: 32px 44px; }
}
@media (max-width: 900px) {
    .hero-showcase { padding: 100px 18px 60px; gap: 12px; }
    .hero-showcase__row { grid-template-columns: repeat(3, 1fr); gap: 14px; }
    .hero-showcase__center { padding: 24px 28px; }
    .hero-showcase__center .hero-slide__title { font-size: clamp(40px, 7vw, 64px); letter-spacing: -1.5px; }
}
@media (max-width: 560px) {
    .hero-showcase__row { grid-template-columns: 1fr 1fr; }
    .hero-showcase__desc { font-size: 11px; }
    .hero-showcase__center { padding: 20px 22px; }
}
@media (max-width: 380px) {
    /* На самых маленьких экранах — 1 колонка плиток */
    .hero-showcase__row { grid-template-columns: repeat(3, 1fr); gap: 8px; }
    .hero-showcase { padding: 80px 12px 48px; gap: 8px; }
    .hero-showcase__desc { display: none; }
    .hero-showcase__arrow { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .hero-showcase__tile,
    .hero-showcase__center {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ЭЦ лого в отзывах — шире по аспекту */
.review-card__source--ec img {
    height: 40px;
    max-width: 140px;
}

/* ============================
   DOC MODAL — просмотр сертификата
   ============================ */
.doc-card {
    font: inherit;
    text-align: left;
    cursor: pointer;
    border: 1px solid rgba(0,0,0,0.06);
    background: #fff;
    color: inherit;
}
.doc-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.06);
    border-color: var(--warm-gold);
}

.doc-modal[hidden] { display: none !important; }
.doc-modal {
    position: fixed;
    inset: 0;
    z-index: 9998;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    animation: docModalIn 0.3s cubic-bezier(0.22,1,0.36,1);
}
@keyframes docModalIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
.doc-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(20,18,15,0.75);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    cursor: pointer;
}
.doc-modal__panel {
    position: relative;
    background: #fff;
    border-radius: 20px;
    max-width: 1100px;
    width: 100%;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 40px 100px rgba(0,0,0,0.3);
    animation: docPanelIn 0.4s cubic-bezier(0.22,1,0.36,1);
}
@keyframes docPanelIn {
    from { transform: translateY(20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}
.doc-modal__close {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 3;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(0,0,0,0.05);
    border: none;
    font-size: 28px;
    line-height: 1;
    color: var(--black);
    cursor: pointer;
    transition: background 0.2s;
}
.doc-modal__close:hover { background: rgba(0,0,0,0.1); }
.doc-modal__body {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    overflow-y: auto;
    max-height: 90vh;
}

/* A4 preview — левая часть */
.doc-modal__preview {
    background: linear-gradient(135deg, #ede8df 0%, #e3ded3 100%);
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.doc-modal__sheet {
    width: 100%;
    max-width: 380px;
    aspect-ratio: 1 / 1.414; /* A4 */
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.15), 0 4px 12px rgba(0,0,0,0.08);
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
}
.doc-modal__sheet-watermark {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(80px, 18vw, 160px);
    font-weight: 900;
    color: rgba(94,140,58,0.08);
    letter-spacing: 4px;
    transform: rotate(-18deg);
    pointer-events: none;
}
.doc-modal__sheet-content {
    position: relative;
    text-align: center;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
}
.doc-modal__sheet-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 3px;
    color: var(--warm-gold);
    background: rgba(94,140,58,0.12);
    padding: 6px 14px;
    border-radius: 99px;
}
.doc-modal__sheet-hint {
    font-size: 13px;
    line-height: 1.6;
    color: var(--gray-600);
    max-width: 240px;
}

/* Info — правая часть */
.doc-modal__info {
    padding: 48px 44px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.doc-modal__info .label { margin: 0; }
.doc-modal__title {
    font-size: clamp(26px, 2.6vw, 34px);
    font-weight: 800;
    letter-spacing: -0.8px;
    line-height: 1.15;
    color: var(--black);
    margin: 0;
}
.doc-modal__desc {
    font-size: 15px;
    line-height: 1.65;
    color: var(--gray-600);
    margin: 0;
    flex: 1;
}
.doc-modal__actions {
    display: flex;
    gap: 24px;
    align-items: center;
    flex-wrap: wrap;
}
.doc-modal__download {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.doc-modal__download[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}
.doc-modal__request {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--black);
    text-decoration: none;
    border-bottom: 1px solid var(--black);
    padding-bottom: 2px;
}
.doc-modal__request:hover { color: var(--warm-gold); border-color: var(--warm-gold); }
.doc-modal__note {
    font-size: 12px;
    color: var(--gray-400);
    font-style: italic;
    margin: 0;
}

@media (max-width: 800px) {
    .doc-modal__body { grid-template-columns: 1fr; }
    .doc-modal__preview { padding: 24px; }
    .doc-modal__sheet { max-width: 260px; }
    .doc-modal__info { padding: 28px 24px; }
}

/* ============================
   REVEAL ENGINE — scrub-based, плавная привязка к скроллу
   --reveal-progress (0→1) выставляется ScrollTrigger из script.js
   Вниз → progress растёт. Вверх → убывает. Без дискретных переключений.
   ============================ */

[data-reveal] {
    --p: var(--reveal-progress, 0);
    will-change: translate, scale, opacity;
}

/* focus — наводка объектива: blur+scale → чёткость. Глаз притягивается к буквам.
   translate/scale отдельно от transform — не конфликтуют с hover-transform на карточках. */
/* Без filter blur — только fade с трансформами. Соседние блоки не размываются. */
[data-reveal="focus"] {
    scale: calc(1.03 - var(--p) * 0.03);
    opacity: calc(0.4 + var(--p) * 0.6);
}

[data-reveal="blur"] {
    opacity: calc(0.4 + var(--p) * 0.6);
    translate: 0 calc((1 - var(--p)) * 12px);
}

[data-reveal="slide"] {
    opacity: calc(0.45 + var(--p) * 0.55);
    translate: 0 calc((1 - var(--p)) * 18px);
}

/* zoom — для крупных hero-картинок: «приближение к продукту» */
[data-reveal="zoom"] {
    opacity: calc(0.55 + var(--p) * 0.45);
    scale: calc(1.06 - var(--p) * 0.06);
}

@media (prefers-reduced-motion: reduce) {
    [data-reveal] {
        --p: 1;
    }
}

/* Section connectors — только между близкими тонами. JS-ом в script.js. */
/* Section connector — настоящий blur на стыке через backdrop-filter.
   Лежит поверх стыка (negative margin -40 сверху и снизу), прозрачный,
   размывает то что за ним — нижние 40px верхней секции и верхние 40px
   нижней. Дает «замыленный» переход вместо резкой границы.
   z-index: 5 + backdrop-filter создают свой stacking context — гарантирует
   видимость поверх секций с isolation: isolate. */
.section-connector {
    height: 80px;
    margin-top: -40px;
    margin-bottom: -40px;
    pointer-events: none;
    position: relative;
    z-index: 5;
    background: transparent;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

/* ============================
   ПРАВКИ 2026-05-07: фон карточек, hero pagination, soft-touch velvet, advantages controls
   ============================ */

/* (фон карточек серий + конструктор обновлён прямо в базовых правилах — бежевые тона
   #f2efe8/#ebe7dd/#e8e4dc заменены на #d4d4d2/#bcbcba) */

/* --- Hero pagination: крупнее --- */
.hero-pagination {
    bottom: 44px;
    gap: 10px;
}
.hero-pagination .swiper-pagination-bullet {
    width: 56px;
    height: 4px;
    background: rgba(255,255,255,0.32);
}
.hero-pagination .swiper-pagination-bullet-active {
    background: var(--white);
    width: 88px;
    box-shadow: 0 0 12px rgba(255,255,255,0.35);
}
@media (max-width: 720px) {
    .hero-pagination { bottom: 28px; gap: 8px; }
    .hero-pagination .swiper-pagination-bullet { width: 36px; height: 3px; }
    .hero-pagination .swiper-pagination-bullet-active { width: 60px; }
}

/* --- Hero 4 — Soft-touch velvet-фон (заглушка под будущий ролик) --- */
.hero-slide__bg--velvet {
    background:
        radial-gradient(ellipse 70% 90% at 32% 55%, rgba(120, 96, 84, 0.55) 0%, rgba(60, 48, 42, 0.25) 40%, transparent 70%),
        radial-gradient(ellipse 50% 70% at 78% 50%, rgba(35, 28, 25, 0.6) 0%, transparent 60%),
        linear-gradient(135deg, #1c1815 0%, #100c0a 60%, #0a0807 100%);
    overflow: hidden;
}
.hero-velvet {
    position: absolute; inset: 0;
    pointer-events: none;
    overflow: hidden;
}
.hero-velvet__glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    mix-blend-mode: screen;
}
.hero-velvet__glow--a {
    width: 55%; height: 70%;
    left: -10%; top: 10%;
    background: radial-gradient(circle, rgba(190, 152, 124, 0.32) 0%, rgba(120, 96, 78, 0) 60%);
    animation: heroVelvetA 14s ease-in-out infinite alternate;
}
.hero-velvet__glow--b {
    width: 40%; height: 50%;
    left: 18%; top: 35%;
    background: radial-gradient(circle, rgba(220, 188, 148, 0.18) 0%, rgba(140, 110, 80, 0) 65%);
    animation: heroVelvetB 18s ease-in-out infinite alternate;
}
.hero-velvet__weave {
    position: absolute; inset: 0;
    background-image:
        repeating-linear-gradient(45deg, rgba(255,255,255,0.012) 0 1px, transparent 1px 3px),
        repeating-linear-gradient(-45deg, rgba(0,0,0,0.04) 0 1px, transparent 1px 3px);
    opacity: 0.7;
}
@keyframes heroVelvetA {
    from { transform: translate(0, 0) scale(1); opacity: 0.85; }
    to   { transform: translate(40px, -20px) scale(1.08); opacity: 1; }
}
@keyframes heroVelvetB {
    from { transform: translate(0, 0) scale(1); opacity: 0.6; }
    to   { transform: translate(-30px, 18px) scale(1.12); opacity: 0.9; }
}
@media (prefers-reduced-motion: reduce) {
    .hero-velvet__glow--a, .hero-velvet__glow--b { animation: none; }
}

/* --- Hero 4: плавающий выключатель АУРА --- */
.hero-product-float {
    position: absolute;
    z-index: 3;
    right: 60px;
    top: 80px;      /* под хедером */
    bottom: 340px;  /* над блоком текста */
    width: 480px;
    pointer-events: none;
    opacity: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end; /* правый край img = правый край враппера = right: 60px */
}
.hero-product-float__glow {
    position: absolute;
    inset: -30px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.10) 0%, transparent 68%);
    pointer-events: none;
}
.hero-product-float__img {
    flex: 0 1 auto;
    min-height: 0;
    height: 100%;
    width: auto;
    max-height: 480px;
    max-width: 100%;
    display: block;
    will-change: transform, opacity;
    filter: drop-shadow(0 16px 22px rgba(0,0,0,0.52)) drop-shadow(0 5px 10px rgba(0,0,0,0.28));
}
.hero-product-float__shadow {
    flex-shrink: 0;
    align-self: center;
    width: 52%;
    height: 18px;
    background: rgba(0,0,0,0.28);
    border-radius: 50%;
    filter: blur(14px);
    margin: 8px 0 0;
    transform-origin: center;
}

/* Всё стартует одновременно: вход (0.85s) → loop (5.4s infinite) */
.hero-product-float--active { opacity: 1; }

.hero-product-float--active .hero-product-float__img {
    animation:
        heroProductEnter   0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards,
        heroProductFloat   5.4s  ease-in-out 0.85s infinite;
}
.hero-product-float--active .hero-product-float__shadow {
    animation:
        heroProductShadowEnter 0.85s ease-out forwards,
        heroProductShadow      5.4s ease-in-out 0.85s infinite;
}
.hero-product-float--active .hero-product-float__glow {
    animation:
        heroProductGlowEnter 0.85s ease-out forwards,
        heroProductGlow      5.4s ease-in-out 0.85s infinite;
}

/* Вход */
@keyframes heroProductEnter {
    from { transform: translateY(26px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}
@keyframes heroProductShadowEnter {
    from { transform: scaleX(0.3); opacity: 0;    filter: blur(6px); }
    to   { transform: scaleX(1);   opacity: 0.28; filter: blur(14px); }
}
@keyframes heroProductGlowEnter {
    from { opacity: 0;   transform: scale(0.85); }
    to   { opacity: 0.5; transform: scale(0.94); }
}

/* Loop */
@keyframes heroProductFloat {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    38%       { transform: translateY(-14px) rotate(1.1deg); }
    68%       { transform: translateY(-8px) rotate(-0.6deg); }
}
@keyframes heroProductShadow {
    0%, 100% { transform: scaleX(1);    opacity: 0.28; }
    38%       { transform: scaleX(0.60); opacity: 0.11; }
    68%       { transform: scaleX(0.75); opacity: 0.17; }
}
@keyframes heroProductGlow {
    0%, 100% { opacity: 0.5; transform: scale(0.94); }
    50%       { opacity: 1;   transform: scale(1.07); }
}

@media (max-width: 720px) {
    .hero-product-float {
        right: auto;
        left: 50%;
        transform: translateX(-50%);
        top: 80px;
        bottom: 300px;
        width: 220px;
        align-items: center;
        justify-content: center;
    }
    .hero-product-float__img { max-height: 240px; }
    .hero-product-float__shadow { width: 60%; height: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .hero-product-float--active .hero-product-float__img,
    .hero-product-float--active .hero-product-float__shadow,
    .hero-product-float--active .hero-product-float__glow { animation: none; opacity: 1; }
    .hero-product-float--active { opacity: 1; }
}

/* --- Advantages: панель навигации (next + pause) --- */
.advantages-controls {
    position: absolute;
    bottom: 28px; right: 32px;
    z-index: 11;
    display: flex;
    align-items: center;
    gap: 10px;
}
.adv-ctl {
    width: 44px; height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.18);
    color: rgba(255,255,255,0.85);
    border-radius: 50%;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease, color 0.2s ease;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.adv-ctl:hover {
    background: rgba(255,255,255,0.14);
    border-color: rgba(255,255,255,0.4);
    color: #fff;
    transform: translateY(-1px);
}
.adv-ctl svg { width: 16px; height: 16px; fill: currentColor; }
.adv-ctl[data-state="play"] .adv-ctl__pause,
.adv-ctl[data-state="pause"] .adv-ctl__play { display: none; }
@media (max-width: 720px) {
    .advantages-controls { bottom: 20px; right: 16px; gap: 6px; }
    .adv-ctl { width: 36px; height: 36px; }
    .adv-ctl svg { width: 12px; height: 12px; }
}

/* ============================
   NAVIGATION PROGRESS BAR
   Тонкая полоска вверху при переходе между страницами
   ============================ */
.nav-progress {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 2px;
    z-index: 9999;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
}
.nav-progress.is-active { opacity: 1; }
.nav-progress__fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #8CB86B 0%, rgba(140, 184, 107, 0.5) 100%);
    border-radius: 0 2px 2px 0;
    will-change: width;
}
.nav-progress.is-animating .nav-progress__fill {
    animation: nav-progress-go 10s cubic-bezier(0.05, 0.8, 0.3, 1) forwards;
}
.nav-progress.is-done .nav-progress__fill {
    width: 100% !important;
    animation: none;
    transition: width 0.15s ease, opacity 0.3s ease 0.15s;
}
@keyframes nav-progress-go {
    0%   { width: 0% }
    20%  { width: 38% }
    50%  { width: 65% }
    80%  { width: 83% }
    100% { width: 90% }
}

/* ============================
   МОБИЛЬНЫЙ: сброс transform-hover
   На iOS Safari hover «залипает» при тапе — убираем смещения
   ============================ */
@media (hover: none), (pointer: coarse) {
    .series__card:hover { transform: none; box-shadow: none; }
    .series__card[data-series="uno"]:hover { box-shadow: 0 0 0 2px var(--accent); }
    .series__card:hover .series__photo-img {
        translate: none;
        transform: none;
        filter: drop-shadow(0 14px 22px rgba(0,0,0,0.14));
    }
    .categories__card:hover { transform: none; box-shadow: none; }
    .categories__card:hover .categories__card-img img,
    .categories__card[data-cat="power"]:hover .categories__card-img img,
    .categories__card[data-cat="cable"]:hover .categories__card-img img,
    .categories__card[data-cat="patch"]:hover .categories__card-img img {
        translate: none;
        transform: none;
        filter: drop-shadow(0 12px 20px rgba(0,0,0,0.12));
    }
    .hero-slide__btn:hover,
    .btn-switch:hover,
    .hero-slide__btn--dark:hover,
    .btn-switch--dark:hover { transform: none; }
    .dot:hover { transform: none; }
    .about-stat:hover { transform: none; box-shadow: none; }
    .doc-card:hover { transform: none; box-shadow: none; border-color: rgba(0,0,0,0.06); }
    .advantages__media--cover:hover .advantages__cover-img { transform: none; }
    .where-buy__card:hover .where-buy__card-arrow { transform: none; }
    .buy-modal__link:hover { transform: none; }
    .buy-modal__link:hover .buy-modal__link-arrow { transform: none; }
    .adv-ctl:hover { transform: none; }
    .footer-v2__email:hover .footer-v2__email-arrow { transform: none; }
    .hero-showcase__tile:hover { transform: none; }
    .hero-showcase__center:hover { transform: none; }
    /* Callout-выноски всегда видны на тач (hover-диммирование не работает) */
    .advantages__decomp:has(.adv-callout:hover) .adv-callout { opacity: 1; }
}

/* ============================
   МОБИЛЬНЫЙ: touch-цели минимум 44×44px
   ============================ */
@media (pointer: coarse) {
    /* Бургер: невидимая зона касания через псевдоэлемент */
    .header__burger { position: relative; touch-action: manipulation; }
    .header__burger::after {
        content: '';
        position: absolute;
        inset: -11px -8px;
    }

    /* Цветовые точки: невидимая зона */
    .dot { position: relative; }
    .dot::after {
        content: '';
        position: absolute;
        inset: -12px;
    }

    /* Hero пагинация: dot-стиль (легче тапать, чем линии 2px) */
    .hero-pagination { bottom: 40px; left: 24px; gap: 10px; }
    .hero-pagination .swiper-pagination-bullet {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: rgba(255,255,255,0.4);
        opacity: 1;
    }
    .hero-pagination .swiper-pagination-bullet-active {
        width: 24px;
        height: 8px;
        border-radius: 4px;
        background: #fff;
    }

    /* Чипы конструктора */
    .constructor__chip { padding: 12px 20px; touch-action: manipulation; }

    /* Пункты бокового меню */
    .side-menu__item { padding: 20px 0; }
    .side-menu__toggle { padding: 20px 0; }
    .side-menu__sub { padding: 14px 0 14px 16px; }

    /* Кнопка закрытия меню: минимум 44×44 */
    .side-menu__close {
        width: 44px;
        height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* Кнопки — убираем 300ms задержку старых браузеров */
    button, .hero-slide__btn, .btn-switch, .hero-slide__tag { touch-action: manipulation; }
}
