/* ============================================================
   AromaPack — ультрасовременная тема Shop-Script
   Оптовая упаковка для кофе и чая
   ============================================================ */

/* ------------------------------------------------------------
   1. Переменные и базовые стили
------------------------------------------------------------ */
:root {
    --ap-bg: #eef3f9;
    --ap-surface: #ffffff;
    --ap-surface-soft: #f5f9fd;
    --ap-ink: #0b1a30;
    --ap-ink-soft: #56657c;
    --ap-ink-faint: #8a98ac;
    --ap-line: #dce5f0;
    --ap-accent: #2acbc5;
    --ap-accent-dark: #18b8b3;
    --ap-accent-soft: #e8fbfa;
    --ap-accent-2: #2acbc5;
    --ap-dark: #081226;
    --ap-dark-2: #0f2142;
    --ap-green: #2acbc5; /* «успех/наличие» — фирменный Tiffany */
    --ap-red: #e0524b;   /* оставлен только для ошибок и удаления */
    --ap-radius: 20px;
    --ap-radius-sm: 12px;
    --ap-radius-pill: 999px;
    --ap-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --ap-font-display: "Oswald", "Arial Narrow", sans-serif;
    --ap-shadow: 0 1px 2px rgba(8, 18, 38, .05), 0 8px 24px rgba(8, 18, 38, .08);
    --ap-shadow-lg: 0 4px 12px rgba(8, 18, 38, .10), 0 24px 48px rgba(8, 18, 38, .16);
    --ap-transition: .22s cubic-bezier(.4, 0, .2, 1);

    /* переменные для чекаута (css/order.css) — нейтральная чёрно-серая палитра */
    --text-color: #16130f;
    --text-color-additional: #6b7280;
    --link-color: #16130f;
    --input-border-color: transparent;
    --input-bg-color: #f1f2f4;
    --bg-color: #ffffff;
    --bg-color-accent: #f3f4f6;
    --divider-color: #e6e8ec;
    --red: #e0524b;
    --white: #ffffff;
    --white-auto: #ffffff;
    --header-menu-pages-link-color: #16130f;
    --wa-delivery-type-hover-bg: #eef0f2;
    --accent-color: #16130f;
    --bg-color-light: #f4f2ee;
    --bg-color-dark: #16130f;
    --element-border-radius: 12px;
    --font-family: var(--ap-font);
    --font-size: 15px;
    --chevron-svg: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18 9L12 15L6 9' stroke='%23000000' stroke-opacity='0.5' stroke-width='1.875' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --check-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none'%3E%3Cpath d='M5.81 11.333c-.276.44-.682.667-1.154.667-.486 0-.866-.2-1.22-.654L.341 7.488C.118 7.208 0 6.914 0 6.594c0-.654.498-1.188 1.141-1.188.393 0 .708.147 1.023.56l2.44 3.164L9.783.667c.275-.44.63-.667 1.023-.667C11.423 0 12 .44 12 1.108c0 .294-.157.614-.328.894l-5.862 9.33Z' fill='%23000000'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; }

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--ap-bg);
    color: var(--ap-ink);
    font-family: var(--ap-font);
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; border: 0; }
svg { vertical-align: middle; }

a {
    color: var(--ap-ink);
    text-decoration: none;
    transition: color var(--ap-transition), opacity var(--ap-transition);
}
a:hover { color: var(--ap-accent-dark); }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--ap-font-display);
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 .6em;
    text-transform: uppercase;
    letter-spacing: .01em;
}

p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.2em; }

input, select, textarea, button {
    font-family: var(--ap-font);
    font-size: 15px;
    color: var(--ap-ink);
}

input[type="text"], input[type="search"], input[type="email"],
input[type="password"], input[type="tel"], input[type="number"],
select, textarea {
    width: auto;
    padding: 10px 14px;
    background: var(--ap-surface);
    border: 1.5px solid var(--ap-line);
    border-radius: var(--ap-radius-sm);
    outline: none;
    transition: border-color var(--ap-transition), box-shadow var(--ap-transition);
}
input:focus, select:focus, textarea:focus {
    border-color: var(--ap-ink);
    box-shadow: 0 0 0 3px rgba(22, 19, 15, .08);
}

button { cursor: pointer; }

table { border-collapse: collapse; }

::selection { background: var(--ap-accent); color: #fff; }

.ap-container {
    max-width: 1360px;
    margin: 0 auto;
    padding: 0 32px;
}

.ap-main { min-height: 50vh; }

.nowrap { white-space: nowrap; }
.ap-mt-24 { margin-top: 24px !important; display: inline-flex; }

/* плавный скролл выключаем для тех, кто просил reduce motion */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* ------------------------------------------------------------
   2. Кнопки, чипы, бейджи, иконки
------------------------------------------------------------ */
.ap-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 22px;
    border: 1.5px solid transparent;
    border-radius: var(--ap-radius-pill);
    font-family: var(--ap-font);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    transition: all var(--ap-transition);
    -webkit-tap-highlight-color: transparent;
}

.ap-btn--dark { background: var(--ap-accent); color: var(--ap-dark); }
.ap-btn--dark:hover { background: var(--ap-accent-dark); color: var(--ap-dark); transform: translateY(-1px); }

.ap-btn--accent { background: var(--ap-accent); color: var(--ap-dark); }
.ap-btn--accent:hover { background: var(--ap-accent-dark); color: var(--ap-dark); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(10, 186, 181, .28); }

.ap-btn--ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .35); }
.ap-btn--ghost:hover { border-color: #fff; color: #fff; background: rgba(255,255,255,.08); }

.ap-btn--ghost-dark { background: transparent; color: var(--ap-ink); border-color: var(--ap-line); }
.ap-btn--ghost-dark:hover { border-color: var(--ap-ink); color: var(--ap-ink); }

.ap-btn--muted { background: var(--ap-bg); color: var(--ap-ink-soft); border-color: var(--ap-line); }
.ap-btn--muted:hover { color: var(--ap-ink); border-color: var(--ap-ink-faint); }

.ap-btn--success { background: var(--ap-accent); color: var(--ap-dark); }
.ap-btn--success:hover { background: var(--ap-accent-dark); color: var(--ap-dark); }

.ap-btn--lg { padding: 16px 32px; font-size: 16px; }
.ap-btn--sm { padding: 8px 16px; font-size: 13px; }

.ap-btn[disabled], .ap-btn:disabled { opacity: .55; cursor: not-allowed; transform: none !important; }

.ap-iconbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--ap-ink);
    transition: background var(--ap-transition), color var(--ap-transition);
}
.ap-iconbtn:hover { background: rgba(22, 19, 15, .06); color: var(--ap-ink); }

.ap-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    list-style: none;
    margin: 0 0 28px;
    padding: 0;
}
.ap-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 9px 18px;
    background: var(--ap-surface);
    border: 1.5px solid var(--ap-line);
    border-radius: var(--ap-radius-pill);
    font-size: 14px;
    font-weight: 500;
    transition: all var(--ap-transition);
}
.ap-chip:hover { border-color: var(--ap-ink); color: var(--ap-ink); transform: translateY(-1px); }
.ap-chip__hash { color: var(--ap-accent); font-weight: 700; }
.ap-chip--sm { padding: 5px 12px; font-size: 13px; }

.ap-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: var(--ap-radius-pill);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
}
.ap-badge--sale { background: var(--ap-dark); color: #fff; }

/* бейджи Shop-Script (новинка, хит и т.п.) */
.badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: var(--ap-radius-pill);
    background: var(--ap-dark);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}
.badge.new { background: var(--ap-dark); }
.badge.bestseller { background: var(--ap-accent); }
.badge.low-price { background: var(--ap-ink-soft); }

/* ------------------------------------------------------------
   3. Шапка
------------------------------------------------------------ */
.ap-header {
    position: sticky;
    top: 0;
    z-index: 200;
    background: var(--ap-bg);
    transition: box-shadow var(--ap-transition);
}
.ap-header.is-stuck { box-shadow: 0 4px 24px rgba(22, 19, 15, .1); }

.ap-topbar {
    background: var(--ap-dark);
    color: rgba(255, 255, 255, .75);
    font-size: 13px;
}
.ap-topbar__in {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 44px;
    padding-top: 4px;
    padding-bottom: 4px;
}
.ap-topbar__note { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-topbar__links { display: flex; align-items: center; gap: 20px; flex-shrink: 0; }
.ap-topbar a { color: rgba(255, 255, 255, .75); }
.ap-topbar a:hover { color: #fff; }
.ap-topbar__auth { font-weight: 600; color: #fff !important; }
.ap-topbar__hours { opacity: .8; }

.ap-headbar { border-bottom: 1px solid var(--ap-line); background: #fff; }
.ap-headbar__in {
    display: flex;
    align-items: center;
    gap: 22px;
    min-height: 76px;
    padding-top: 10px;
    padding-bottom: 10px;
}

/* логотип */
.ap-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}
.ap-logo__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: var(--ap-dark);
    color: #fff;
    transition: transform var(--ap-transition), background var(--ap-transition);
}
.ap-logo:hover .ap-logo__badge { background: var(--ap-accent); transform: rotate(-6deg); }
.ap-logo__text {
    font-family: var(--ap-font-display);
    font-size: 22px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ap-ink);
}

/* главное меню */
.ap-mainnav { display: flex; align-items: center; gap: 18px; min-width: 0; }
.ap-mainnav__pages {
    display: flex;
    align-items: center;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
}
.ap-mainnav__pages a {
    display: inline-block;
    padding: 8px 12px;
    border-radius: var(--ap-radius-pill);
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
}
.ap-mainnav__pages a:hover,
.ap-mainnav__pages .selected a { background: rgba(22, 19, 15, .06); color: var(--ap-ink); }

/* кнопка каталога + мегаменю */
.ap-catalog-btn { gap: 10px; }
.ap-catalog-btn__chevron { transition: transform var(--ap-transition); }
.ap-megamenu-wrap { position: relative; }
.ap-megamenu-wrap.is-open .ap-catalog-btn__chevron { transform: rotate(180deg); }

.ap-megamenu {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    min-width: 640px;
    max-width: min(86vw, 980px);
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-lg);
    padding: 28px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity var(--ap-transition), transform var(--ap-transition), visibility var(--ap-transition);
    z-index: 50;
}
.ap-megamenu-wrap.is-open .ap-megamenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
/* мобайл: мегаменю — фикс-панель во всю ширину, чтобы не было горизонтального скролла */
@media (max-width: 900px) {
    .ap-megamenu {
        position: fixed;
        top: 66px; left: 10px; right: 10px;
        min-width: 0; max-width: none; width: auto;
        max-height: 76vh; overflow-y: auto;
        padding: 18px;
    }
}
.ap-megamenu__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 24px 28px;
}
.ap-megamenu__title {
    display: block;
    font-family: var(--ap-font-display);
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    margin-bottom: 10px;
}
.ap-megamenu__title em {
    font-style: normal;
    font-family: var(--ap-font);
    font-size: 12px;
    color: var(--ap-ink-faint);
    font-weight: 500;
}
.ap-megamenu__title:hover { color: var(--ap-accent-dark); }
.ap-megamenu__list { list-style: none; margin: 0; padding: 0; }
.ap-megamenu__list a {
    display: block;
    padding: 4px 0;
    font-size: 14px;
    color: var(--ap-ink-soft);
}
.ap-megamenu__list a:hover { color: var(--ap-accent-dark); }
.ap-megamenu__empty { color: var(--ap-ink-faint); margin: 0; }

/* поиск */
.ap-search {
    display: flex;
    align-items: center;
    flex: 1 1 220px;
    min-width: 0;
    max-width: 380px;
    position: relative;
}
.ap-search input {
    width: 100%;
    padding: 11px 48px 11px 18px;
    border-radius: var(--ap-radius-pill);
    background: var(--ap-surface);
    border-color: var(--ap-line);
    font-size: 14px;
}
.ap-search button {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--ap-ink-soft);
    transition: background var(--ap-transition), color var(--ap-transition);
}
.ap-search button:hover { background: var(--ap-dark); color: #fff; }
.ap-search-toggle { display: none; }

/* контакты и корзина */
.ap-headbar__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    flex-shrink: 0;
}
.ap-headbar__phone {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    margin-right: 8px;
    line-height: 1.25;
}
.ap-headbar__phone-num { font-weight: 700; font-size: 15px; white-space: nowrap; }
.ap-headbar__phone-label { font-size: 12px; color: var(--ap-ink-faint); }

.ap-cart { position: relative; }
.ap-cart__link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 18px 9px 14px;
    background: var(--ap-dark);
    color: #fff;
    border-radius: var(--ap-radius-pill);
    transition: background var(--ap-transition), transform var(--ap-transition);
}
.ap-cart__link:hover { background: var(--ap-accent); color: #fff; transform: translateY(-1px); }
.ap-cart__icon { position: relative; display: inline-flex; }
.ap-cart__count {
    position: absolute;
    top: -7px;
    right: -10px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ap-accent);
    color: #fff;
    border-radius: var(--ap-radius-pill);
    font-size: 11px;
    font-weight: 700;
    transition: transform .18s ease;
}
.ap-cart.empty .ap-cart__count { display: none; }
.ap-cart__count.is-bumped { transform: scale(1.35); }
.ap-cart__label { font-size: 14px; font-weight: 600; }

/* бургер */
.ap-burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 10px;
    border: 0;
    background: transparent;
    border-radius: var(--ap-radius-sm);
}
.ap-burger span {
    display: block;
    height: 2px;
    background: var(--ap-ink);
    border-radius: 2px;
    transition: transform var(--ap-transition), opacity var(--ap-transition);
}

/* мобильное меню */
.ap-mobilemenu {
    position: fixed;
    inset: 0;
    z-index: 400;
    visibility: hidden;
    pointer-events: none;
}
.ap-mobilemenu.is-open { visibility: visible; pointer-events: auto; }
.ap-mobilemenu__overlay {
    position: absolute;
    inset: 0;
    background: rgba(22, 19, 15, .5);
    opacity: 0;
    transition: opacity .25s ease;
}
.ap-mobilemenu.is-open .ap-mobilemenu__overlay { opacity: 1; }
.ap-mobilemenu__panel {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(86vw, 360px);
    background: var(--ap-surface);
    padding: 20px 24px 40px;
    overflow-y: auto;
    transform: translateX(-102%);
    transition: transform .3s cubic-bezier(.4, 0, .2, 1);
}
.ap-mobilemenu.is-open .ap-mobilemenu__panel { transform: translateX(0); }
.ap-mobilemenu__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}
.ap-search--mobile { max-width: none; margin-bottom: 20px; }
.ap-mobilemenu__section {
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: .08em;
    color: var(--ap-ink-faint);
    margin: 20px 0 8px;
}
.ap-mobilemenu__cats,
.ap-mobilemenu__pages { list-style: none; margin: 0; padding: 0; }
.ap-mobilemenu__cats > li > a {
    display: block;
    padding: 10px 0;
    font-family: var(--ap-font-display);
    font-size: 17px;
    text-transform: uppercase;
    font-weight: 600;
    border-bottom: 1px solid var(--ap-line);
}
.ap-mobilemenu__cats ul { list-style: none; margin: 4px 0 10px; padding: 0 0 0 14px; }
.ap-mobilemenu__cats ul a { display: block; padding: 6px 0; color: var(--ap-ink-soft); }
.ap-mobilemenu__pages a { display: block; padding: 8px 0; }
.ap-mobilemenu__contacts {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid var(--ap-line);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ap-mobilemenu__phone { font-size: 19px; font-weight: 700; }

/* хлебные крошки */
.ap-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 0px 0 4px;
    font-size: 13px;
}
.ap-breadcrumbs a { color: var(--ap-ink-faint); }
.ap-breadcrumbs a:hover { color: var(--ap-ink); }
.ap-breadcrumbs__sep { color: var(--ap-ink-faint); }

/* ------------------------------------------------------------
   4. Главная: герой
------------------------------------------------------------ */
.ap-hero {
    position: relative;
    background: #f3f7f7;
    color: var(--ap-ink);
    overflow: hidden;
}
.ap-hero__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.ap-hero__bg::before {
    display: none;
}
.ap-hero__bg::after {
    content: "";
    position: absolute;
    z-index: 2;
    top: -16%;
    bottom: -16%;
    left: 36%;
    width: 14%;
    opacity: 0;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, .46) 46%,
        rgba(255, 255, 255, .12) 66%,
        transparent
    );
    filter: blur(12px);
    transform: translate3d(-180%, 0, 0) skewX(-12deg);
    animation: ap-hero-light-sweep 16s cubic-bezier(.2, .7, .2, 1) infinite;
}
.ap-hero__photo {
    --ap-hero-photo-opacity: 1;
    position: absolute;
    top: 0;
    right: 0;
    width: 66%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center 52%;
    filter: saturate(1.05) contrast(1.03);
    -webkit-mask-image: linear-gradient(
        90deg,
        transparent 0%,
        transparent 4%,
        rgba(0, 0, 0, .14) 12%,
        rgba(0, 0, 0, .66) 21%,
        #000 30%,
        #000 100%
    );
    mask-image: linear-gradient(
        90deg,
        transparent 0%,
        transparent 4%,
        rgba(0, 0, 0, .14) 12%,
        rgba(0, 0, 0, .66) 21%,
        #000 30%,
        #000 100%
    );
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    transform-origin: 62% 54%;
    backface-visibility: hidden;
    will-change: opacity, transform;
}
.ap-hero__photo--primary {
    z-index: 0;
    opacity: var(--ap-hero-photo-opacity);
    animation: ap-hero-photo-primary 24s linear infinite;
}
.ap-hero__photo--secondary {
    z-index: 1;
    opacity: 0;
    object-position: 53% 52%;
    animation: ap-hero-photo-secondary 24s linear infinite;
}
.ap-hero__photo--tertiary {
    z-index: 2;
    opacity: 0;
    object-position: center 52%;
    animation: ap-hero-photo-tertiary 24s linear infinite;
}
@keyframes ap-hero-photo-primary {
    0% {
        opacity: var(--ap-hero-photo-opacity);
        transform: translate3d(1.2%, .8%, 0) scale(1.035);
    }
    27% {
        opacity: var(--ap-hero-photo-opacity);
        transform: translate3d(-2.4%, -.8%, 0) scale(1.095);
    }
    33.333% {
        opacity: 0;
        transform: translate3d(-4%, -1.4%, 0) scale(1.13);
    }
    94% {
        opacity: 0;
        transform: translate3d(2.2%, 1%, 0) scale(1.04);
    }
    100% {
        opacity: var(--ap-hero-photo-opacity);
        transform: translate3d(1.2%, .8%, 0) scale(1.035);
    }
}
@keyframes ap-hero-photo-secondary {
    0%,
    27% {
        opacity: 0;
        transform: translate3d(3.6%, 1.2%, 0) scale(1.13);
    }
    33.333% {
        opacity: var(--ap-hero-photo-opacity);
        transform: translate3d(2%, .5%, 0) scale(1.08);
    }
    60% {
        opacity: var(--ap-hero-photo-opacity);
        transform: translate3d(-2.6%, -1%, 0) scale(1.13);
    }
    66.666%,
    100% {
        opacity: 0;
        transform: translate3d(-4%, -1.5%, 0) scale(1.16);
    }
}
@keyframes ap-hero-photo-tertiary {
    0%,
    60% {
        opacity: 0;
        transform: translate3d(3.2%, 1.1%, 0) scale(1.12);
    }
    66.666% {
        opacity: var(--ap-hero-photo-opacity);
        transform: translate3d(1.4%, .4%, 0) scale(1.075);
    }
    94% {
        opacity: var(--ap-hero-photo-opacity);
        transform: translate3d(-2.2%, -.9%, 0) scale(1.125);
    }
    100% {
        opacity: 0;
        transform: translate3d(-3.8%, -1.4%, 0) scale(1.15);
    }
}
@keyframes ap-hero-light-sweep {
    0%,
    37% {
        opacity: 0;
        transform: translate3d(-180%, 0, 0) skewX(-12deg);
    }
    44% { opacity: .42; }
    51% {
        opacity: 0;
        transform: translate3d(520%, 0, 0) skewX(-12deg);
    }
    52%,
    87% {
        opacity: 0;
        transform: translate3d(-180%, 0, 0) skewX(-12deg);
    }
    94% { opacity: .38; }
    100% {
        opacity: 0;
        transform: translate3d(520%, 0, 0) skewX(-12deg);
    }
}
@media (prefers-reduced-motion: reduce) {
    .ap-hero__photo {
        animation: none !important;
        transform: none !important;
        will-change: auto;
    }
    .ap-hero__photo--primary { opacity: var(--ap-hero-photo-opacity); }
    .ap-hero__photo--secondary,
    .ap-hero__photo--tertiary { display: none; }
    .ap-hero__bg::after { display: none; }
}
.ap-hero__blob {
    position: absolute;
    z-index: 2;
    border-radius: 50%;
    filter: blur(90px);
    opacity: .12;
    animation: ap-blob-drift 16s ease-in-out infinite alternate;
}
.ap-hero__blob--1 {
    width: 560px; height: 560px;
    left: -160px; top: -180px;
    background: radial-gradient(circle, #1763c7 0%, transparent 70%);
}
.ap-hero__blob--2 {
    width: 640px; height: 640px;
    right: -200px; bottom: -260px;
    background: radial-gradient(circle, #0e6f7d 0%, transparent 70%);
    animation-delay: -8s;
}
@keyframes ap-blob-drift {
    0%   { transform: translate(0, 0) scale(1); }
    100% { transform: translate(60px, 40px) scale(1.15); }
}
.ap-hero__grain {
    position: absolute;
    inset: 0;
    z-index: 3;
    opacity: .08;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}

.ap-hero__in {
    position: relative;
    z-index: 4;
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 48px;
    align-items: center;
    padding-top: 84px;
    padding-bottom: 84px;
}

.ap-hero__progress {
    position: absolute;
    right: 12px;
    bottom: 16px;
    z-index: 6;
    display: grid;
    grid-template-columns: auto 58px;
    gap: 7px;
    align-items: center;
    min-width: 0;
    padding: 0;
    color: #15333a;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;
}
.ap-hero__progress-count {
    display: flex;
    align-items: baseline;
    color: rgba(9, 26, 48, .38);
    font-size: 9px;
    font-style: normal;
    font-weight: 800;
    letter-spacing: .06em;
}
.ap-hero__progress-count i { font-style: normal; }
.ap-hero__progress-current {
    position: relative;
    display: inline-block;
    width: 18px;
    height: 11px;
    color: var(--ap-accent);
}
.ap-hero__progress-num {
    position: absolute;
    inset: 0 auto auto 0;
    font-size: 10px;
    line-height: 11px;
}
.ap-hero__progress-num--primary {
    animation: ap-hero-count-primary 24s steps(1, end) infinite;
}
.ap-hero__progress-num--secondary {
    opacity: 0;
    animation: ap-hero-count-secondary 24s steps(1, end) infinite;
}
.ap-hero__progress-num--tertiary {
    opacity: 0;
    animation: ap-hero-count-tertiary 24s steps(1, end) infinite;
}
.ap-hero__progress-track {
    position: relative;
    display: block;
    width: 58px;
    height: 2px;
    overflow: hidden;
    background: rgba(9, 26, 48, .14);
    border-radius: 999px;
}
.ap-hero__progress-track i {
    position: absolute;
    inset: 0;
    background: var(--ap-accent);
    border-radius: inherit;
    transform: scaleX(0);
    transform-origin: left center;
    animation: ap-hero-progress-fill 8s linear infinite;
}
@keyframes ap-hero-count-primary {
    0%,
    33.332% { opacity: 1; }
    33.333%,
    99.999% { opacity: 0; }
    100% { opacity: 1; }
}
@keyframes ap-hero-count-secondary {
    0%,
    33.332% { opacity: 0; }
    33.333%,
    66.665% { opacity: 1; }
    66.666%,
    100% { opacity: 0; }
}
@keyframes ap-hero-count-tertiary {
    0%,
    66.665% { opacity: 0; }
    66.666%,
    99.999% { opacity: 1; }
    100% { opacity: 0; }
}
@keyframes ap-hero-progress-fill {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}
@media (prefers-reduced-motion: reduce) {
    .ap-hero__progress-num,
    .ap-hero__progress-track i { animation: none !important; }
    .ap-hero__progress-num--primary { opacity: 1; }
    .ap-hero__progress-num--secondary,
    .ap-hero__progress-num--tertiary { display: none; }
    .ap-hero__progress-track i { transform: scaleX(1); }
}

.ap-hero__title {
    margin: 0 0 22px;
    font-size: clamp(38px, 5.2vw, 76px);
    font-weight: 700;
    line-height: 1.02;
    letter-spacing: .01em;
}
.ap-hero__title-line { display: block; }
.ap-hero__title-line--muted { color: rgba(11, 26, 48, .54); }

.ap-hero__subtitle {
    max-width: 560px;
    font-size: 17px;
    line-height: 1.6;
    color: rgba(11, 26, 48, .72);
    margin-bottom: 32px;
}

.ap-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 48px; }
.ap-hero .ap-btn--accent {
    background: var(--ap-accent-2);
    color: var(--ap-dark);
}
.ap-hero .ap-btn--accent:hover {
    background: #49cbd0;
    color: var(--ap-dark);
    box-shadow: 0 8px 24px rgba(22, 183, 190, .28);
}
.ap-hero .ap-btn--ghost {
    background: rgba(255, 255, 255, .42);
    border-color: rgba(11, 26, 48, .28);
    color: var(--ap-ink);
}
.ap-hero .ap-btn--ghost:hover {
    background: rgba(255, 255, 255, .72);
    border-color: var(--ap-ink);
    color: var(--ap-ink);
}

.ap-hero__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
}
.ap-stat { display: flex; flex-direction: column; }
.ap-stat__num {
    font-family: var(--ap-font-display);
    font-size: 40px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--ap-accent-2);
}
.ap-stat__num::after { content: "+"; opacity: .6; }
.ap-stat__num--plain::after { content: none; }
.ap-stat__label { font-size: 13px; color: rgba(11, 26, 48, .64); max-width: 140px; }

/* иллюстрация героя — премиальный продуктовый кадр */
.ap-hero__art {
    position: relative;
    height: 460px;
    display: none;
    perspective: 1200px;
    -webkit-user-select: none;
    user-select: none;
}
@media (min-width: 1021px) { .ap-hero__art { display: block; } }

/* мягкое световое гало за пакетом */
.ap-hero__halo {
    position: absolute;
    width: 380px;
    height: 380px;
    left: 50%;
    top: 46%;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle, rgba(0, 82, 177, .42) 0%, rgba(0, 82, 177, .10) 42%, transparent 70%);
    filter: blur(8px);
    animation: ap-halo-pulse 7s ease-in-out infinite;
}
@keyframes ap-halo-pulse {
    0%, 100% { opacity: .8; transform: translate(-50%, -50%) scale(1); }
    50%      { opacity: 1;  transform: translate(-50%, -50%) scale(1.06); }
}

/* кольцо «Сатурна»: наклонённая 3D-орбита с бегущим текстом */
.ap-saturn {
    position: absolute;
    width: 560px;
    height: 560px;
    left: 50%;
    top: 48%;
    transform: translate(-50%, -50%) rotateX(68deg) rotateZ(-20deg);
    transform-style: preserve-3d;
    pointer-events: none;
    -webkit-user-select: none;
    user-select: none;
}
.ap-saturn--back  { z-index: 1; }
.ap-saturn--front { z-index: 3; clip-path: inset(50% 0 0 0); }

.ap-saturn__spin {
    width: 100%;
    height: 100%;
    animation: ap-saturn-spin 34s linear infinite;
}
.ap-saturn__svg { width: 100%; height: 100%; display: block; overflow: visible; }

.ap-saturn__band { fill: none; }
.ap-saturn__band--out { stroke: rgba(255, 255, 255, .16); stroke-width: 1.5; stroke-dasharray: 2 9; }
.ap-saturn__band--in  { stroke: rgba(63, 143, 224, .38); stroke-width: 1.5; }

.ap-saturn__text {
    fill: rgba(214, 228, 247, .72);
    font-family: var(--ap-font-display);
    font-size: 21px;
    font-weight: 500;
    letter-spacing: .26em;
    text-transform: uppercase;
}
@keyframes ap-saturn-spin { to { transform: rotate(360deg); } }

/* отражение/контактная тень на полу */
.ap-hero__floor {
    position: absolute;
    width: 280px;
    height: 60px;
    left: 50%;
    bottom: 24px;
    transform: translateX(-50%);
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, .55) 0%, transparent 70%);
    filter: blur(6px);
}

/* сам пакет (3D-вьюер + SVG-постер) */
.ap-hero__pack {
    position: absolute;
    width: 380px;
    height: 460px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}
/* model-viewer */
.ap-hero__mv {
    width: 100%;
    height: 100%;
    background: transparent;
    --poster-color: transparent;
    --progress-bar-color: var(--ap-accent);
    cursor: grab;
}
.ap-hero__mv:active { cursor: grabbing; }
.ap-hero__mv::part(default-progress-mask) { background: transparent; }
/* прячем штатный прогресс-бар — показываем свой спиннер */
.ap-hero__mv::part(default-progress-bar) { display: none; }
/* мягкое плавное исчезновение спиннера при показе модели */
.ap-hero__mv::part(default-poster) { transition: opacity .6s ease; border: none; background: transparent; }

/* спиннер загрузки модели */
.ap-hero__loader {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ap-spinner {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    border: 3px solid rgba(255, 255, 255, .14);
    border-top-color: var(--ap-accent);
    animation: ap-spin .85s linear infinite;
}
@keyframes ap-spin { to { transform: rotate(360deg); } }

/* SVG-постер: показывается, когда нет файла .glb */
.ap-hero__poster {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 34px 50px rgba(0, 0, 0, .55));
    animation: ap-pack-float 9s ease-in-out infinite;
}
@keyframes ap-pack-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-12px); }
}

/* стеклянные спец-карточки */
.ap-spec {
    position: absolute;
    z-index: 4;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 11px 16px;
    border-radius: 14px;
    background: rgba(28, 24, 18, .45);
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .08);
    -webkit-backdrop-filter: blur(14px) saturate(1.2);
            backdrop-filter: blur(14px) saturate(1.2);
    animation: ap-spec-float 8s ease-in-out infinite;
    animation-delay: var(--spec-delay, 0s);
}
.ap-spec__k {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--ap-accent);
}
.ap-spec__v {
    font-size: 14px;
    font-weight: 600;
    color: rgba(255, 255, 255, .92);
    white-space: nowrap;
}
.ap-spec--1 { left: -4%;  top: 14%; --spec-delay: 0s; }
.ap-spec--2 { right: -6%; top: 40%; --spec-delay: -2.6s; }
.ap-spec--3 { left: 2%;   bottom: 12%; --spec-delay: -5.2s; }
@keyframes ap-spec-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-9px); }
}

/* лёгкое парение (промо-баннер) */
.ap-float { animation: ap-float 6s ease-in-out infinite; animation-delay: var(--float-delay, 0s); }
@keyframes ap-float {
    0%, 100% { translate: 0 0; }
    50%      { translate: 0 -16px; }
}

/* бегущая строка */
.ap-marquee {
    background: var(--ap-accent-2);
    color: var(--ap-dark);
    overflow: hidden;
    padding: 12px 0;
}
.ap-marquee__track {
    display: flex;
    width: max-content;
    animation: ap-marquee 114s linear infinite;
    will-change: transform;
}
.ap-marquee__group {
    display: flex;
    flex: 0 0 auto;
}
.ap-marquee__track span {
    flex: 0 0 auto;
    font-family: var(--ap-font-display);
    font-size: 16px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    white-space: nowrap;
}
@keyframes ap-marquee {
    to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .ap-marquee__track {
        animation: none;
        transform: none;
        will-change: auto;
    }
}

/* ------------------------------------------------------------
   5. Секции главной
------------------------------------------------------------ */
.ap-section { padding: 72px 0 8px; }
.ap-section--tight { padding: 40px 0 8px; }

.ap-section__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 32px;
}
.ap-section__head .ap-section__title { margin-bottom: 0; }

.ap-section__title {
    font-size: clamp(26px, 3vw, 40px);
    font-weight: 700;
    margin-bottom: 32px;
}
.ap-section__title-accent { color: var(--ap-accent); }
.ap-section__title--light { color: #fff; }

.ap-section__more {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 15px;
}
.ap-section__more svg { transition: transform var(--ap-transition); }
.ap-section__more:hover svg { transform: translateX(4px); }

/* появление при прокрутке */
.ap-reveal {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .7s cubic-bezier(.22, .8, .36, 1), transform .7s cubic-bezier(.22, .8, .36, 1);
    transition-delay: var(--reveal-delay, 0ms);
}
.ap-reveal.is-visible { opacity: 1; transform: none; }
html.no-js .ap-reveal, html.no-io .ap-reveal { opacity: 1; transform: none; }

/* плитка категорий */
.ap-cats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.ap-cat-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 190px;
    padding: 28px;
    background: var(--ap-dark);
    color: #fff;
    border-radius: var(--ap-radius);
    overflow: hidden;
    isolation: isolate;
    transition: transform var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-cat-tile::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(120% 90% at 100% 100%, rgba(0, 82, 177, .35) 0%, transparent 55%),
        linear-gradient(150deg, #241e17 0%, var(--ap-dark) 70%);
    transition: transform .4s ease;
}
.ap-cat-tile:hover { color: #fff; transform: translateY(-4px); box-shadow: var(--ap-shadow-lg); }
.ap-cat-tile:hover::before { transform: scale(1.08); }
.ap-cat-tile__icon { color: var(--ap-accent); margin-bottom: auto; }
.ap-cat-tile__name {
    font-family: var(--ap-font-display);
    font-size: 21px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1.2;
}
.ap-cat-tile__count { font-size: 13px; color: rgba(255, 255, 255, .55); }
.ap-cat-tile__arrow {
    position: absolute;
    right: 22px;
    bottom: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .1);
    transition: background var(--ap-transition), transform var(--ap-transition);
}
.ap-cat-tile:hover .ap-cat-tile__arrow { background: var(--ap-accent); transform: translateX(4px); }

/* ====== Две главные категории: премиальные интерактивные карточки ====== */
@property --ap-feat-angle { syntax: "<angle>"; initial-value: 0deg; inherits: false; }

.ap-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: stretch;
    gap: 26px;
}
.ap-features--with-promo {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(250px, .72fr);
}
.ap-feature {
    --feat: var(--ap-accent);
    --feat-soft: var(--ap-accent);
    --mx: 50%; --my: 50%;
    --rx: 0deg; --ry: 0deg;
    display: block;
    height: 100%;
    border-radius: 26px;
    perspective: 1100px;
    color: var(--ap-ink);
}
/* единый сдержанный акцент для всех плиток (без разноцветья) */
.ap-feature--teal { --feat: var(--ap-accent); --feat-soft: var(--ap-accent); }
/* перекрываем глобальный a:hover, чтобы текст не темнел при наведении */
.ap-feature:hover, .ap-feature:focus { color: var(--ap-ink); }

.ap-feature__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 300px;
    height: 100%;
    padding: 30px;
    box-sizing: border-box;
    border-radius: inherit;
    overflow: hidden;
    isolation: isolate;
    transform-style: preserve-3d;
    transform: rotateX(var(--rx)) rotateY(var(--ry));
    transition: transform .5s cubic-bezier(.22, .61, .36, 1), box-shadow .4s ease;
    background:
        radial-gradient(135% 115% at 0% 0%, rgba(255, 255, 255, .2) 0%, transparent 52%),
        var(--ap-accent);
    border: 1px solid rgba(8, 18, 38, .12);
    box-shadow: 0 18px 42px rgba(4, 82, 80, .14);
    will-change: auto;
}
.ap-feature:hover .ap-feature__inner { box-shadow: 0 26px 58px rgba(4, 82, 80, .2); }

/* анимированная градиентная рамка */
.ap-feature__inner::before {
    content: "";
    position: absolute; inset: 0;
    border-radius: inherit;
    padding: 1.5px;
    background: conic-gradient(from var(--ap-feat-angle),
        transparent 0 28%, var(--feat-soft) 42%, var(--feat) 50%, transparent 64% 100%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
            mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    opacity: .4;
    animation: ap-feat-rotate 7s linear infinite;
    transition: opacity .4s ease;
    z-index: 4;
    pointer-events: none;
}
.ap-feature:hover .ap-feature__inner::before { opacity: 1; }
@keyframes ap-feat-rotate { to { --ap-feat-angle: 360deg; } }

/* спот-свет за курсором */
.ap-feature__glow {
    position: absolute; inset: 0; z-index: 0;
    background: radial-gradient(440px 440px at var(--mx) var(--my),
        color-mix(in srgb, var(--feat) 42%, transparent) 0%, transparent 60%);
    opacity: 0;
    transition: opacity .4s ease;
    pointer-events: none;
}
.ap-feature:hover .ap-feature__glow { opacity: 1; }

/* диагональный блик при наведении */
.ap-feature__sheen {
    position: absolute; top: -60%; left: 0; z-index: 1;
    width: 45%; height: 220%;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .16), transparent);
    transform: translateX(-260%) rotate(9deg);
    pointer-events: none;
}
.ap-feature:hover .ap-feature__sheen { transition: transform 1.1s ease; transform: translateX(560%) rotate(9deg); }

/* большой призрачный номер */
.ap-feature__num {
    position: absolute; top: 2px; right: 24px; z-index: 0;
    font-family: var(--ap-font-display);
    font-size: 168px; font-weight: 700; line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(8, 18, 38, .24);
    transform: translateZ(18px);
    transition: color .4s ease, -webkit-text-stroke-color .4s ease;
    pointer-events: none;
}
.ap-feature:hover .ap-feature__num {
    color: rgba(255, 255, 255, .08);
    -webkit-text-stroke-color: rgba(8, 18, 38, .42);
}

.ap-feature__icon {
    position: relative; z-index: 2;
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border: 1px solid rgba(255, 255, 255, .68);
    border-radius: 16px;
    background: rgba(255, 255, 255, .52);
    color: var(--ap-ink);
    margin-bottom: auto;
    transform: translateZ(45px);
    box-shadow: 0 8px 22px rgba(4, 82, 80, .12);
    transition: background .3s ease, transform .3s ease, box-shadow .3s ease;
}
.ap-feature__icon svg { width: 32px; height: 32px; }
.ap-feature:hover .ap-feature__icon {
    background: rgba(255, 255, 255, .78);
    transform: translateZ(45px) scale(1.04);
    box-shadow: 0 10px 26px rgba(4, 82, 80, .18);
}
.ap-feature__body { position: relative; z-index: 2; transform: translateZ(32px); }
.ap-feature__name {
    display: block;
    color: var(--ap-ink);
    font-family: var(--ap-font-display);
    font-size: clamp(26px, 3vw, 40px);
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.05;
}
.ap-feature__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 14px; }
.ap-feature__tag { font-size: 13px; color: var(--ap-ink-soft); }

.ap-feature__cta {
    position: relative; z-index: 2;
    display: inline-flex; align-items: center; gap: 12px;
    margin-top: 24px;
    font-weight: 600; font-size: 15px;
    color: var(--ap-ink);
    transform: translateZ(28px);
}
.ap-feature__cta svg {
    width: 22px; height: 22px;
    padding: 9px;
    box-sizing: content-box;
    border-radius: 50%;
    background: color-mix(in srgb, var(--feat) 24%, white);
    transition: background .3s ease, transform .3s ease;
}
.ap-feature:hover .ap-feature__cta svg { background: var(--feat); transform: translateX(5px); }

/* Карточка приветственной скидки в ряду главных категорий */
.ap-welcome-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 300px;
    height: 100%;
    padding: 30px;
    box-sizing: border-box;
    overflow: hidden;
    border: 1px solid rgba(8, 18, 38, .1);
    border-radius: 26px;
    background:
        radial-gradient(circle at 100% 0%, rgba(10, 186, 181, .16), transparent 44%),
        rgba(255, 255, 255, .94);
    box-shadow: 0 18px 42px rgba(4, 82, 80, .12);
}
.ap-welcome-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    color: var(--ap-accent);
}
.ap-welcome-card__head > i { margin-top: 8px; font-size: 25px; }
.ap-welcome-card__discount {
    font-family: var(--ap-font-display);
    font-size: clamp(46px, 4.2vw, 68px);
    font-weight: 700;
    line-height: .9;
    letter-spacing: -.03em;
}
.ap-welcome-card__title {
    margin: 18px 0 0;
    color: var(--ap-ink);
    font-family: var(--ap-font-display);
    font-size: clamp(21px, 1.7vw, 28px);
    font-weight: 700;
    line-height: 1.05;
    text-transform: uppercase;
}
.ap-welcome-card__text {
    margin: 9px 0 20px;
    color: var(--ap-ink-soft);
    font-size: 13px;
    line-height: 1.45;
}
.ap-welcome-card__code {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 48px;
    margin-top: auto;
    padding: 10px 13px;
    border: 1px dashed color-mix(in srgb, var(--ap-accent) 58%, white);
    border-radius: 13px;
    background: color-mix(in srgb, var(--ap-accent) 12%, white);
    color: var(--ap-ink);
    cursor: pointer;
    transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.ap-welcome-card__code:hover {
    border-color: var(--ap-accent);
    background: color-mix(in srgb, var(--ap-accent) 18%, white);
}
.ap-welcome-card__code:active { transform: translateY(1px); }
.ap-welcome-card__code:focus-visible { outline: 2px solid var(--ap-accent); outline-offset: 3px; }
.ap-welcome-card__code span {
    min-width: 0;
    overflow: hidden;
    font-family: var(--ap-font-display);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .04em;
    text-overflow: ellipsis;
}
.ap-welcome-card__copy,
.ap-welcome-card__check {
    margin-left: auto;
    font-size: 17px;
}
.ap-welcome-card__check { display: none; color: var(--ap-accent); }
.ap-welcome-card__code.is-copied .ap-welcome-card__copy { display: none; }
.ap-welcome-card__code.is-copied .ap-welcome-card__check { display: inline-block; }
.ap-welcome-card__cta {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 13px;
    background: var(--ap-accent);
    color: var(--ap-ink);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    transition: transform .2s ease, filter .2s ease;
}
.ap-welcome-card__cta:hover { color: var(--ap-ink); filter: brightness(.96); }
.ap-welcome-card__cta:active { transform: translateY(1px); }

/* промо-слайды из бэкенда */
.ap-promos { list-style: none; margin: 0; padding: 0; }
.ap-promos__title {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    padding: 32px;
    background: var(--ap-dark);
    color: #fff;
    border-radius: var(--ap-radius);
    font-family: var(--ap-font-display);
    font-size: 28px;
    font-weight: 700;
    text-transform: uppercase;
    text-align: center;
}
.ap-paging-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 16px 0;
    color: var(--ap-ink-faint);
}
.ap-promos li { border-radius: var(--ap-radius); overflow: hidden; }
.ap-promos img { display: block; width: 100%; border-radius: var(--ap-radius); }

/* преимущества */
.ap-section--dark {
    background: var(--ap-dark);
    color: #fff;
    padding-bottom: 72px;
    margin-top: 64px;
}
.ap-advantages { margin-top: 0; }
.ap-advantages__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.ap-advantages__head {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: clamp(24px, 5vw, 76px);
    align-items: end;
    margin-bottom: 34px;
}
.ap-advantages__head .ap-section__title { margin-bottom: 0; }
.ap-advantages__lead {
    max-width: 620px;
    margin: 0 0 4px;
    color: rgba(255, 255, 255, .68);
    font-size: 15px;
    line-height: 1.65;
}
.ap-advantage {
    padding: 28px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: var(--ap-radius);
    transition: background var(--ap-transition), transform var(--ap-transition);
}
.ap-advantage:hover { background: rgba(255, 255, 255, .07); transform: translateY(-4px); }
.ap-advantage__num {
    display: block;
    font-family: var(--ap-font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--ap-accent);
    margin-bottom: 18px;
    line-height: 1.1;
}
.ap-advantage h3 { font-size: 19px; margin-bottom: 10px; }
.ap-advantage p { margin: 0; font-size: 14px; line-height: 1.6; color: rgba(255, 255, 255, .65); }
.ap-advantage--accent {
    background: linear-gradient(145deg, rgba(0, 112, 224, .22), rgba(255, 255, 255, .045));
    border-color: rgba(78, 170, 255, .34);
}

/* промо-баннер */
.ap-banner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 1fr);
    gap: 32px;
    align-items: center;
    padding: 56px;
    background: var(--ap-dark);
    color: #fff;
    border-radius: calc(var(--ap-radius) + 8px);
    overflow: hidden;
}
.ap-banner__rings { position: absolute; inset: 0; pointer-events: none; }
.ap-banner__rings span {
    position: absolute;
    right: -120px;
    top: 50%;
    width: 420px;
    height: 420px;
    margin-top: -210px;
    border: 1.5px solid rgba(0, 82, 177, .35);
    border-radius: 50%;
    animation: ap-pulse 5s ease-out infinite;
}
.ap-banner__rings span:nth-child(2) { animation-delay: 1.6s; }
.ap-banner__rings span:nth-child(3) { animation-delay: 3.2s; }
@keyframes ap-pulse {
    0%   { transform: scale(.55); opacity: 0; }
    35%  { opacity: .8; }
    100% { transform: scale(1.25); opacity: 0; }
}
.ap-banner__title { font-size: clamp(24px, 3vw, 38px); margin-bottom: 14px; }
.ap-banner__text { max-width: 560px; color: rgba(255, 255, 255, .7); margin-bottom: 26px; }
.ap-banner__art { position: relative; display: flex; justify-content: center; }
.ap-banner__art svg { width: 150px; filter: drop-shadow(0 20px 30px rgba(0, 0, 0, .45)); }

/* блог */
.ap-blogposts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.ap-blogpost {
    display: flex;
    flex-direction: column;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 20px;
    box-shadow: var(--ap-shadow);
    transition: transform var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-blogpost:hover { transform: translateY(-4px); box-shadow: var(--ap-shadow-lg); }
.ap-blogpost__img { display: block; border-radius: var(--ap-radius-sm); overflow: hidden; margin-bottom: 16px; }
.ap-blogpost__img img { display: block; width: 100%; transition: transform .4s ease; }
.ap-blogpost:hover .ap-blogpost__img img { transform: scale(1.04); }
.ap-blogpost__date { font-size: 13px; color: var(--ap-ink-faint); margin-bottom: 6px; }
.ap-blogpost__title { font-weight: 700; font-size: 17px; line-height: 1.35; margin-bottom: 8px; }
.ap-blogpost__excerpt { margin: 0; font-size: 14px; color: var(--ap-ink-soft); }

/* SEO-текст */
.ap-welcome-note {
    padding: 32px 36px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    color: var(--ap-ink-soft);
    font-size: 15px;
}

/* ------------------------------------------------------------
   6. Карточки товаров
------------------------------------------------------------ */
.ap-grid {
    display: grid;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.ap-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ap-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ap-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ap-card {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 0;
    box-shadow: var(--ap-shadow);
    transition: transform var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-card:hover {box-shadow: var(--ap-shadow-lg); }

.ap-card__top {
  display: flex;
align-items: flex-start;
justify-content: flex-start;
gap: 8px;
margin-bottom: 0px;
position: absolute;
z-index: 9999;
width: 100%;
padding: 10px;
background: transparent;
pointer-events: none;
}
.ap-card__top .ap-badge { pointer-events: auto; }
.ap-card__badges { display: flex; flex-wrap: wrap; gap: 6px; z-index: 2; }
.ap-card__rating {
    position: relative;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ap-ink-faint);
    background: transparent;
}
.ap-card__rating svg { color: var(--accent-color); }
.ap-card__rating em { font-style: normal; color: var(--ap-ink-faint); font-weight: 400; }

.ap-card__imglink {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    aspect-ratio: 4 / 3;
    margin-bottom: 16px;
    border-radius: var(--ap-radius);
    overflow: hidden;
    background: #dedede;
    cursor: pointer;
}
.ap-card__img,
.ap-card__imglink img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
    transition: transform .35s ease;
}
.ap-card:hover .ap-card__imglink img { transform: scale(1.045); }

/* hover-слайдер изображений в карточке */
.product_image_slider { position: relative; }
/* все кадры лежат стопкой, занимая весь контейнер — без переключения position, без reflow */
.product_image_slider .image-item { position: absolute; inset: 0; }
.product_image_slider .image-frame {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #dedede;
    opacity: 0;
    z-index: 1;
    transition: opacity .14s ease, transform .35s ease;
}
/* первое фото — постоянный нижний слой: при переключении никогда не мелькает белый фон */
.product_image_slider .image-item:first-child .image-frame { opacity: 1; }
/* зоны наведения делят ширину карточки */
.product_image_slider .image-zone {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 3;
}
/* JS поднимает кадр только после загрузки и декодирования изображения */
.product_image_slider .image-item.is-active .image-frame { opacity: 1; z-index: 2; }
.product_image_slider .slider-indicators {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 8px;
    display: flex;
    justify-content: center;
    gap: 5px;
    visibility: hidden;
    z-index: 5;
}
/* индикаторы — только для уже готового выбранного кадра */
.product_image_slider:hover .image-item.is-active .slider-indicators { visibility: visible; }
.product_image_slider .slider-indicator {
    width: 22px;
    height: 3px;
    border-radius: 2px;
    background: rgba(11, 26, 48, .2);
    margin-top: 10px;
    z-index: 9999;
}
.product_image_slider .slider-indicator.inactive { background: rgba(11, 26, 48, .2); }
.product_image_slider .slider-indicator.active { background: var(--ap-accent); }

.ap-card__body { display: flex; flex-direction: column; gap: 8px; flex: 1 1 auto; padding: 5px 18px 5px; }

.ap-card__name {
    display: -webkit-box;
    min-height: 2.5em;
    overflow: hidden;
    font-family: var(--ap-font-display);
    font-size: 17px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1.25;
    letter-spacing: .01em;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.ap-card__summary { margin: 0; font-size: 13.5px; color: var(--ap-ink-soft); }

/* характеристики-чипы (вес · микроны · цвет) */
.ap-card__specs {
    display: flex;
    flex-wrap: nowrap;
    gap: 7px;
    margin-top: 4px;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 1px 1px 5px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
    touch-action: pan-x pan-y;
}
.ap-card__specs::-webkit-scrollbar { display: none; }
.ap-card__specs:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--ap-accent) 55%, transparent);
    outline-offset: 2px;
    border-radius: 10px;
}
.ap-card__specs:empty { display: none; }
.ap-card__spec {
    position: static;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 7px;
    margin: 0;
    padding: 6px 11px;
    background: var(--ap-bg);
    border: 0;
    border-radius: 10px;
    font-size: 12.5px;
    color: var(--ap-ink);
    line-height: 1;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    animation: none;
    white-space: nowrap;
    scroll-snap-align: start;
}
.ap-card__spec i { color: var(--ap-ink-faint); font-size: 13px; }
.ap-card__spec b { font-weight: 700; }

@media (hover: hover) and (pointer: fine) {
    .ap-card__specs { cursor: grab; }
    .ap-card__specs.is-dragging {
        cursor: grabbing;
        user-select: none;
    }
}

.ap-card__footer { margin-top: 6px;padding: 1px 18px 20px; }
.ap-card__pricing {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 8px;
    margin-bottom: 12px;
}
.ap-card__price { font-size: 20px; font-weight: 700; }
.ap-card__oldprice { font-size: 14px; color: var(--ap-ink-faint); text-decoration: line-through; }
.ap-card__bulk-hint {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 45px;
    margin: -2px 0 12px;
    padding: 8px 10px;
    border: 1px solid color-mix(in srgb, var(--ap-accent) 32%, var(--ap-line));
    border-radius: 12px;
    background: color-mix(in srgb, var(--ap-accent) 10%, white);
}
.ap-card__bulk-hint > i {
    display: grid;
    flex: 0 0 29px;
    place-items: center;
    width: 29px;
    height: 29px;
    border-radius: 9px;
    background: var(--ap-accent);
    color: var(--ap-dark);
    font-size: 13px;
}
.ap-card__bulk-hint > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 1px;
}
.ap-card__bulk-hint b {
    color: var(--ap-ink);
    font-size: 11.5px;
    line-height: 1.2;
}
.ap-card__bulk-hint small {
    overflow: hidden;
    color: var(--ap-ink-soft);
    font-size: 10px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ap-card__skus-hint {
    font-size: 12px;
    color: var(--ap-ink-faint);
    background: var(--ap-bg);
    padding: 3px 8px;
    border-radius: var(--ap-radius-pill);
}

.ap-card__actions { display: flex; align-items: center; gap: 8px; }
.addtocart-btn-wrapper { position: relative; flex: 1 1 auto; }
.ap-card__buy { width: 100%; border-radius: 12px; }
.ap-card__compare { flex-shrink: 0; color: var(--ap-ink-faint); }
.ap-card__compare:hover { color: var(--ap-ink); }
svg.compare.active { color: var(--ap-accent); }

.wa-hide { display: none !important; }

/* мини-карточки (карусели) */
.ap-minilist { list-style: none; margin: 0; padding: 0; }
/* когда товаров мало (помещаются) — раскладка на всю ширину без слайдера/стрелок */
.ap-minilist--static {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 210px));
    gap: 14px;
    justify-content: start;
}
.ap-minicard {
    background: var(--ap-surface);
    border-radius: var(--ap-radius-sm);
    padding: 14px;
    box-shadow: var(--ap-shadow);
}
.ap-minicard__imglink {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: 10px;
    overflow: hidden;
    background: var(--ap-surface-soft);
    margin-bottom: 10px;
}
.ap-minicard__imglink img { width: 100%; height: 100%; object-fit: contain; }
.ap-minicard__imglink .ap-badge { position: absolute; left: 8px; top: 8px; }
.ap-minicard__name {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.3;
    margin-bottom: 6px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.ap-minicard__pricing { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ap-minicard__price { font-weight: 700; font-size: 15px; }
.ap-minicard__oldprice { font-size: 12.5px; color: var(--ap-ink-faint); text-decoration: line-through; }

/* пагинация */
.ap-paging { margin: 36px 0 8px; text-align: center; }
.ap-paging ul.menu-h {
    display: inline-flex;
    gap: 6px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.ap-paging ul.menu-h li a,
.ap-paging ul.menu-h li.selected span,
.ap-paging ul.menu-h li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border-radius: var(--ap-radius-pill);
    background: var(--ap-surface);
    font-weight: 600;
}
.ap-paging ul.menu-h li a:hover { background: var(--ap-dark); color: #fff; }
.ap-paging ul.menu-h li.selected a,
.ap-paging ul.menu-h li.selected span { background: var(--ap-dark); color: #fff; }
.lazyloading-load-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 24px auto;
    padding: 13px 32px;
    border-radius: var(--ap-radius-pill);
    background: var(--ap-dark);
    color: #fff;
    font-weight: 600;
}
.lazyloading-load-more:hover { background: var(--ap-accent); color: #fff; }

/* ------------------------------------------------------------
   7. Каталог: шапка категории, тулбар, фильтры
------------------------------------------------------------ */
.ap-cat-head {
    display: flex;
    align-items: baseline;
    gap: 16px;
    flex-wrap: wrap;
    margin: 16px 0 18px;
}
.ap-page-title {
    font-size: clamp(28px, 3.4vw, 44px);
    font-weight: 700;
    margin: 0;
}
.ap-cat-head__count { font-size: 14px; color: var(--ap-ink-faint); }
.ap-cat-description { max-width: 760px; color: var(--ap-ink-soft); margin-bottom: 20px; }

.ap-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}
.ap-toolbar__filters-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: var(--ap-surface);
    border: 1.5px solid var(--ap-line);
    border-radius: var(--ap-radius-pill);
    font-weight: 600;
    font-size: 14px;
    transition: all var(--ap-transition);
}
.ap-toolbar__filters-btn:hover { border-color: var(--ap-ink); }
.ap-toolbar__filters-btn.is-active { background: var(--ap-dark); color: #fff; border-color: var(--ap-dark); }
.ap-toolbar__guide-btn {
    display: inline-flex; align-items: center; gap: 8px;
    margin-right: auto;                 /* держим рядом с «Фильтры», сортировку — вправо */
    padding: 10px 18px;
    border: none; border-radius: var(--ap-radius-pill);
    font-weight: 600; font-size: 14px; cursor: pointer; color: #fff;
    background: linear-gradient(120deg, #2f6bff, #6a5cff 55%, #9b4dff);
    box-shadow: 0 8px 20px rgba(80,70,220,.26);
    transition: transform var(--ap-transition), box-shadow var(--ap-transition), filter var(--ap-transition);
}
.ap-toolbar__guide-btn:hover { transform: translateY(-1px); box-shadow: 0 12px 26px rgba(80,70,220,.32); filter: brightness(1.04); }
.ap-toolbar__guide-btn svg { animation: apPulse 2.6s ease-in-out infinite; border-radius: 50%; }
@media (max-width: 560px) {
    .ap-toolbar__guide-btn span { display: none; }
    .ap-toolbar__guide-btn { padding: 10px 14px; }
}

/* сортировка */
.ap-sorting { margin-left: auto; }
.sorting-dropdown { position: relative; }
.sorting-dropdown__toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: var(--ap-surface);
    border: 1.5px solid var(--ap-line);
    border-radius: var(--ap-radius-pill);
    font-weight: 600;
    font-size: 14px;
    transition: border-color var(--ap-transition);
}
.sorting-dropdown__toggle:hover { border-color: var(--ap-ink); }
.sorting-dropdown__toggle svg { transition: transform var(--ap-transition); }
.sorting-dropdown.is-open .sorting-dropdown__toggle svg { transform: rotate(180deg); }
.sorting-dropdown__current-order { color: var(--ap-accent); }
.sorting-dropdown__menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 60;
    min-width: 230px;
    list-style: none;
    margin: 0;
    padding: 8px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius-sm);
    box-shadow: var(--ap-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: all var(--ap-transition);
}
.sorting-dropdown.is-open .sorting-dropdown__menu {
    opacity: 1;
    visibility: visible;
    transform: none;
}
.sorting-dropdown__item a {
    display: block;
    padding: 9px 14px;
    border-radius: 8px;
    font-size: 14px;
}
.sorting-dropdown__item a:hover { background: var(--ap-bg); color: var(--ap-ink); }
.sorting-dropdown__item.is-selected a {
    background: var(--ap-dark);
    color: #fff;
    font-weight: 600;
}

/* раскладка каталога */
.ap-catalog { display: block; }
.ap-catalog--with-filters {
    display: grid;
    grid-template-columns: 264px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

/* фильтры */
.ap-catalog__filters .filters { position: sticky; top: 96px; }
.filters-form-wrapper {
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 22px;
    box-shadow: var(--ap-shadow);
}
.filter-param { position: relative; padding: 14px 0; border-bottom: 1px solid var(--ap-line); }
.filter-param:first-child { padding-top: 0; }
.filter-param__title {
    font-size: 13px;
    letter-spacing: .04em;
    margin-bottom: 12px;
}
.filter-range { display: flex; gap: 10px; }
.filter-range__field { display: flex; flex-direction: column; gap: 4px; flex: 1 1 0; min-width: 0; }
.filter-range__field input { width: 100%; padding: 8px 10px; font-size: 14px; }
.s-label { font-size: 12px; color: var(--ap-ink-faint); }

.ap-check {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
    cursor: pointer;
    font-size: 14px;
}
.ap-check input { flex: 0 0 auto; accent-color: var(--ap-ink); width: 16px; height: 16px; }
.filter-value__text { min-width: 0; }
.filter-param[data-filter-code="razmer_paketa"] .ap-check {
    align-items: flex-start;
    padding: 6px 0;
}
.filter-param[data-filter-code="razmer_paketa"] .ap-check input {
    margin-top: 1px;
}
.filter-param[data-filter-code="razmer_paketa"] .filter-value__text {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.35;
    overflow-wrap: normal;
    word-break: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* кружок-образец цвета в фильтре по цвету */
.filter-param .ap-check .icon16.color {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    margin-right: 8px;
    border: 1px solid rgba(11, 26, 48, .18);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45);
    flex: 0 0 auto;
}

/* заголовок фильтра + кнопка-подсказка «?» ↔ «×» */
.filter-param__title { display: flex; align-items: center; gap: 8px; }
.filter-param__name { flex: 1 1 auto; }
.filter-param__info {
    flex: 0 0 auto;
    width: 18px; height: 18px;
    padding: 0; border: none; cursor: pointer;
    border-radius: 50%;
    background: var(--ap-surface-soft, #eef1f5);
    color: var(--ap-ink-soft, #5a6b82);
    font-size: 13px; line-height: 1;
    display: inline-flex; align-items: center; justify-content: center;
    transition: background .15s, color .15s;
}
.filter-param__info:hover { background: rgba(11, 26, 48, .12); color: var(--ap-ink, #0b1a30); }
.filter-param__info-x { display: none; font-size: 16px; }
.filter-param__info[aria-expanded="true"] .filter-param__info-q { display: none; }
.filter-param__info[aria-expanded="true"] .filter-param__info-x { display: inline; }
.filter-param__help {
    position: absolute;
    left: 0;
    right: 0;
    z-index: 30;
    margin: 0;
    padding: 12px 14px;
    background: linear-gradient(155deg, #1a2742 0%, #0c1626 60%, #0a1322 100%);
    color: #efeff5;
    border: none;
    border-radius: 16px;
    box-shadow: var(--ap-shadow-lg, 0 14px 34px rgba(11, 26, 48, .16));
    font-size: 12px;
    line-height: 1.45;
    letter-spacing: 0;
    text-transform: none;
    font-weight: 400;
}

/* фильтр: показать максимум 5 значений + «Показать больше» */
.filter-values.is-collapsed .ap-check:nth-of-type(n+6) { display: none; }
.filter-values__more {
    margin-top: 8px;
    padding: 0; border: none; background: none; cursor: pointer;
    color: var(--ap-accent, #2f6bff);
    font-size: 14px; font-weight: 500;
    letter-spacing: 0; text-transform: none;
}
.filter-values__more:hover { text-decoration: underline; }

/* развёрнутый список: фиксированная высота со скроллом внутри */
.filter-group--collapsible .filter-values:not(.is-collapsed) {
    max-height: 232px;
    overflow-y: auto;
    margin-right: -8px;
    padding-right: 8px;
    overscroll-behavior: contain;
}
.filter-group--collapsible .filter-values:not(.is-collapsed)::-webkit-scrollbar { width: 6px; }
.filter-group--collapsible .filter-values:not(.is-collapsed)::-webkit-scrollbar-thumb {
    background: rgba(11, 26, 48, .18); border-radius: 3px;
}
/* поле поиска, появляется при развороте */
.filter-search:not([hidden]) {
    display: block;
    width: 100%;
    margin-bottom: 10px;
    padding: 9px 12px;
    border: 1px solid var(--ap-line);
    border-radius: 10px;
    font-size: 14px;
    letter-spacing: 0; text-transform: none;
    background: var(--ap-surface, #fff);
    color: var(--ap-ink, #0b1a30);
}
.filter-search:focus { outline: none; border-color: var(--ap-accent, #2f6bff); }

/* ============ Кнопка «Примерить дизайн» в герое ============ */
.ap-hero__designer {
    display: inline-flex; align-items: center; gap: 8px;
    margin-top: 16px; padding: 10px 16px;
    border-radius: 999px; font-size: 14px; font-weight: 600;
    color: var(--ap-ink, #0b1a30);
    background: rgba(255, 255, 255, .72);
    border: 1.5px solid var(--ap-line);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    transition: transform .16s, box-shadow .16s, border-color .16s;
}
.ap-hero__designer:hover { transform: translateY(-1px); border-color: var(--ap-accent, #2f6bff); box-shadow: 0 12px 26px rgba(11,26,48,.12); }
.ap-hero__designer-badge { font-size: 10px; font-weight: 700; letter-spacing: .05em; color: #fff; background: linear-gradient(120deg, #2f6bff, #9b4dff); padding: 3px 7px; border-radius: 999px; }

/* ============ Гид-подбор: кнопка запуска (не используется) ============ */
.ap-guide-launch { margin: 0 0 20px; }
.ap-guide-launch__btn {
    width: 100%;
    display: flex; align-items: center; gap: 16px;
    padding: 16px 20px;
    border: 1px solid transparent;
    border-radius: var(--ap-radius, 16px);
    cursor: pointer;
    text-align: left;
    color: #fff;
    background: linear-gradient(120deg, #2f6bff 0%, #6a5cff 55%, #9b4dff 100%);
    box-shadow: 0 12px 30px rgba(80, 70, 220, .28);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.ap-guide-launch__btn:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(80, 70, 220, .34); filter: brightness(1.03); }
.ap-guide-launch__spark {
    flex: 0 0 auto; width: 46px; height: 46px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, .18);
    animation: apPulse 2.4s ease-in-out infinite;
}
@keyframes apPulse { 0%,100%{ box-shadow: 0 0 0 0 rgba(255,255,255,.35);} 50%{ box-shadow: 0 0 0 8px rgba(255,255,255,0);} }
.ap-guide-launch__text { flex: 1 1 auto; line-height: 1.3; }
.ap-guide-launch__text b { display: block; font-size: 16px; font-weight: 700; }
.ap-guide-launch__text small { font-size: 12.5px; opacity: .85; }
.ap-guide-launch__go { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px; font-weight: 600; font-size: 14px; padding: 8px 12px; border-radius: 10px; background: rgba(255,255,255,.16); }

/* ============ Модальный визард ============ */
.ap-wizard { position: fixed; inset: 0; z-index: 4000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.ap-wizard[hidden] { display: none; }
.ap-wizard__backdrop { position: absolute; inset: 0; background: rgba(11, 18, 38, .55); backdrop-filter: blur(3px); opacity: 0; transition: opacity .26s ease; }
.ap-wizard.is-open .ap-wizard__backdrop { opacity: 1; }
.ap-wizard__dialog {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: 260px 1fr;
    width: min(760px, 100%); max-height: calc(100vh - 40px);
    background: var(--ap-surface, #fff);
    border-radius: 22px; overflow: hidden;
    box-shadow: 0 40px 90px rgba(11, 18, 38, .4);
    transform: translateY(24px) scale(.96); opacity: 0;
    transition: transform .3s cubic-bezier(.2,.9,.3,1.2), opacity .26s ease;
}
.ap-wizard.is-open .ap-wizard__dialog { transform: translateY(0) scale(1); opacity: 1; }
.ap-wizard__close {
    position: absolute; top: 12px; right: 12px; z-index: 3;
    width: 34px; height: 34px; border: none; border-radius: 50%;
    background: rgba(11,26,48,.06); color: var(--ap-ink, #0b1a30); cursor: pointer;
    display: flex; align-items: center; justify-content: center; transition: background .15s;
}
.ap-wizard__close:hover { background: rgba(11,26,48,.14); }

/* левая панель с пакетом */
.ap-wizard__preview {
    background: radial-gradient(120% 90% at 50% 0%, #eef1fb 0%, #e6e9f7 60%, #dfe3f4 100%);
    display: flex; align-items: center; justify-content: center; padding: 24px 12px;
}
.ap-bag-wrap { text-align: center; }
.ap-bag { width: 170px; height: auto; overflow: visible; filter: drop-shadow(0 14px 20px rgba(11,26,48,.16)); transform-origin: 50% 92%; transition: transform .6s cubic-bezier(.22,.68,.24,1); }
.ap-bag__shadow { fill: rgba(11,26,48,.14); animation: apBagFloatShadow 3.4s ease-in-out infinite; }
.ap-bag__body, .ap-bag__cap { fill: #d6dce4; transition: fill .4s ease; }
.ap-bag__outline { fill: none; stroke: rgba(11,26,48,.28); stroke-width: 2.4; }
.ap-bag__zip { fill: rgba(11,26,48,.18); }
.ap-bag__zip2 { fill: rgba(11,26,48,.10); }
.ap-bag__fold { stroke: rgba(11,26,48,.13); stroke-width: 1.5; }
.ap-bag__seam { stroke: rgba(11,26,48,.16); stroke-width: 2; }
.ap-bag__fill-g { transform: translateY(206px); transition: transform 1s cubic-bezier(.22,.68,.24,1); will-change: transform; }
.ap-bag__fill, .ap-bag__wave { fill: #cdb99a; transition: fill .4s ease; }
.ap-bag__wave { animation: apWave 3.2s ease-in-out infinite; }
.ap-bag__valve circle { fill: #2a3242; transition: opacity .3s ease; }
.ap-bag__valve-hole { fill: #566072 !important; }
@keyframes apWave { 0%,100%{ transform: translateX(0);} 50%{ transform: translateX(-16px);} }
@keyframes apBagFloatShadow { 0%,100%{ transform: scaleX(1); opacity:.14;} 50%{ transform: scaleX(.86); opacity:.1;} }
.ap-bag__caption { margin-top: 14px; font-size: 13px; font-weight: 500; color: var(--ap-ink-soft, #5a6b82); min-height: 34px; line-height: 1.35; }

/* правая панель — шаги */
.ap-wizard__main { display: flex; flex-direction: column; padding: 22px 24px 20px; min-width: 0; }
.ap-wizard__progress { display: flex; gap: 8px; margin-bottom: 20px; }
.ap-wizard__dot { flex: 1 1 0; height: 5px; border-radius: 3px; background: rgba(11,26,48,.1); transition: background .3s; }
.ap-wizard__dot.is-done { background: var(--ap-accent, #2f6bff); }
.ap-wizard__dot.is-active { background: linear-gradient(90deg, var(--ap-accent, #2f6bff), #9b4dff); }
.ap-wizard__steps { flex: 1 1 auto; position: relative; overflow-y: auto; }
.ap-step { display: none; animation: apStepIn .34s ease both; }
.ap-step.is-active { display: block; }
/* сброс общих карточных стилей .ap-step (с секции «как работаем») внутри визарда */
.ap-wizard__steps .ap-step { padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.ap-wizard__steps .ap-step:hover { transform: none; box-shadow: none; }
.ap-wizard__steps .ap-step::after { display: none; }
@keyframes apStepIn { from{ opacity:0; transform: translateX(14px);} to{ opacity:1; transform: translateX(0);} }
.ap-step__title { font-family: var(--ap-font-display); font-size: 19px; font-weight: 700; margin: 0 0 4px; }
.ap-step__hint { font-size: 13.5px; color: var(--ap-ink-soft, #5a6b82); margin: 0 0 16px; }

.ap-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ap-cards--weight { grid-template-columns: repeat(3, 1fr); }
.ap-card-opt {
    position: relative;
    display: flex; flex-direction: column; gap: 2px; align-items: flex-start;
    padding: 14px 14px; min-height: 58px;
    border: 1.5px solid var(--ap-line); border-radius: 14px;
    background: var(--ap-surface, #fff); color: var(--ap-ink, #0b1a30);
    font-size: 15px; font-weight: 600; cursor: pointer; text-align: left;
    transition: border-color .16s, transform .16s, box-shadow .16s, background .16s;
}
.ap-card-opt small { font-weight: 400; font-size: 11.5px; color: var(--ap-ink-soft, #5a6b82); }
.ap-card-opt::before { content: attr(data-emoji); position: absolute; top: 12px; right: 12px; font-size: 18px; opacity: .9; }
.ap-cards--weight .ap-card-opt { align-items: center; justify-content: center; text-align: center; font-size: 16px; min-height: 54px; }
.ap-cards--weight .ap-card-opt::before { content: none; }
.ap-card-opt:hover { border-color: #b9c2d6; transform: translateY(-1px); }
.ap-card-opt.is-selected {
    border-color: var(--ap-accent, #2f6bff);
    background: linear-gradient(180deg, rgba(47,107,255,.07), rgba(155,77,255,.05));
    box-shadow: 0 8px 20px rgba(80,70,220,.16);
}
/* аккуратная галочка-бейдж в углу выбранной карточки фасовки */
.ap-cards--weight .ap-card-opt.is-selected::after {
    content: "✓";
    position: absolute; top: 7px; right: 8px;
    width: 18px; height: 18px; border-radius: 50%;
    background: var(--ap-accent, #2f6bff); color: #fff;
    font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
    box-shadow: 0 2px 6px rgba(47,107,255,.4);
    animation: apPop .25s ease;
}
@keyframes apPop { from{ transform: scale(0);} to{ transform: scale(1);} }

/* цветовые образцы */
.ap-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 10px; }
.ap-swatch { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 6px; border: 1.5px solid var(--ap-line); border-radius: 12px; background: var(--ap-surface, #fff); cursor: pointer; transition: border-color .16s, transform .16s, box-shadow .16s; }
.ap-swatch:hover { transform: translateY(-1px); border-color: #b9c2d6; }
.ap-swatch.is-selected { border-color: var(--ap-accent, #2f6bff); box-shadow: 0 8px 18px rgba(80,70,220,.16); }
.ap-swatch__dot { width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(11,26,48,.18); box-shadow: inset 0 0 0 1px rgba(255,255,255,.4); }
.ap-swatch__dot--any { background: conic-gradient(#ff5f6d, #ffc371, #47e08b, #2f6bff, #9b4dff, #ff5f6d); }
.ap-swatch__name { font-size: 12px; color: var(--ap-ink-soft, #5a6b82); }

/* результат */
.ap-step--result { text-align: center; }
.ap-result__pop { font-family: var(--ap-font-display); font-size: 21px; font-weight: 700; margin: 6px 0 16px; animation: apPopIn .5s cubic-bezier(.2,.9,.3,1.4) both; }
@keyframes apPopIn { from{ opacity:0; transform: scale(.6);} to{ opacity:1; transform: scale(1);} }
.ap-result__card {
    text-align: left;
    border: 1px solid var(--ap-line);
    border-radius: 16px;
    padding: 16px 18px;
    background: var(--ap-surface-soft, #f5f7fb);
    margin-bottom: 18px;
}
.ap-result__pkg {
    display: inline-block; margin-bottom: 12px;
    padding: 7px 16px; border-radius: 999px;
    font-size: 15px; font-weight: 700; color: #fff;
    background: linear-gradient(120deg, #2f6bff, #9b4dff);
}
.ap-result__specs { list-style: none; margin: 0; padding: 0; }
.ap-result__specs li { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 6px 0; font-size: 14px; border-top: 1px solid rgba(11,26,48,.06); }
.ap-result__specs li:first-child { border-top: 0; }
.ap-result__specs li span { color: var(--ap-ink-soft, #5a6b82); }
.ap-result__specs li b { font-weight: 600; text-align: right; }
.ap-result__cap { margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(11,26,48,.08); font-size: 13px; line-height: 1.5; color: var(--ap-ink-soft, #5a6b82); }
.ap-result__cap b { color: var(--ap-ink, #0b1a30); }
.ap-result__cap--warn { color: #a2591b; }
.ap-result__cap--warn b { color: #a2591b; }
.ap-result__cta { width: 100%; padding: 14px; border: none; border-radius: 14px; cursor: pointer; font-size: 15px; font-weight: 600; color: #fff; background: linear-gradient(120deg, #2f6bff, #6a5cff); box-shadow: 0 8px 20px rgba(80,70,220,.22); transition: transform .16s, filter .16s; }
.ap-result__cta:hover { transform: translateY(-2px); filter: brightness(1.05); }
.ap-result__cta:focus { outline: none; }

/* навигация */
.ap-wizard__nav { display: flex; gap: 10px; margin-top: 18px; }
.ap-wizard__back { padding: 12px 18px; border: 1.5px solid var(--ap-line); border-radius: 12px; background: var(--ap-surface, #fff); color: var(--ap-ink, #0b1a30); font-size: 14px; font-weight: 500; cursor: pointer; transition: background .15s; }
.ap-wizard__back:hover { background: rgba(11,26,48,.05); }
.ap-wizard__next { flex: 1 1 auto; padding: 12px 18px; border: none; border-radius: 12px; background: var(--ap-accent, #2f6bff); color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; transition: filter .15s, opacity .15s; }
.ap-wizard__next:hover { filter: brightness(1.06); }
.ap-wizard__next:disabled { opacity: .4; cursor: not-allowed; }

@media (max-width: 640px) {
    .ap-wizard { padding: 0; }
    .ap-wizard__dialog { grid-template-columns: 1fr; width: 100%; max-height: 100vh; height: 100%; border-radius: 0; }
    .ap-wizard__preview { padding: 14px; }
    .ap-bag { width: 110px; }
    .ap-bag__caption { display: none; }
    .ap-cards { grid-template-columns: 1fr 1fr; }
}

.filter-slider { margin: 16px 6px 6px; }
.filters .ui-slider {
    position: relative;
    height: 4px;
    background: var(--ap-line);
    border: 0;
    border-radius: 4px;
}
.filters .ui-slider .ui-slider-range { position: absolute; height: 100%; background: var(--ap-ink); border-radius: 4px; }
.filters .ui-slider .ui-slider-handle {
    position: absolute;
    top: -7px;
    width: 18px;
    height: 18px;
    margin-left: -9px;
    background: var(--ap-surface);
    border: 2px solid var(--ap-ink);
    border-radius: 50%;
    cursor: grab;
    outline: none;
}

.filters-mobile-header, .filters-mobile-footer { display: none; }
.filters-reset-btn-desktop { margin-top: 16px; width: 100%; }

/* скелетоны */
.skeleton-line {
    display: block;
    border-radius: 8px;
    background: linear-gradient(90deg, #ece8e1 25%, #f6f3ee 50%, #ece8e1 75%);
    background-size: 200% 100%;
    animation: ap-skeleton 1.2s ease-in-out infinite;
    margin-bottom: 10px;
}
@keyframes ap-skeleton { to { background-position: -200% 0; } }
.ap-skeleton-list { padding: 0; }
.ap-skeleton-card {
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 18px;
}
.ap-skeleton-img { aspect-ratio: 1 / 1; height: auto; width: 100%; }

.ap-empty {
    padding: 48px 32px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    text-align: center;
    color: var(--ap-ink-soft);
}

#product-image {
    border-radius: 15px;
}

/* ------------------------------------------------------------
   8. Карточка товара
------------------------------------------------------------ */
.ap-product {
    position: relative;
    margin-top: 12px;
}
.ap-product__layout {
    display: grid;
    grid-template-columns: minmax(0, 44fr) minmax(0, 56fr);
    gap: 32px;
    align-items: start;
    margin-bottom: 48px;
}
/* правая часть — одна колонка: информация, затем блок покупки (как в референсе) */
.ap-product__right {
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.ap-product__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin-bottom: 4px;
}
.ap-product__infocol { min-width: 0; margin-bottom: 22px; }
.ap-product__purchase { min-width: 0; }

.ap-product__media {
    display: flex;
    gap: 14px;
    position: sticky;
    top: 135px;
    min-width: 0;
}
.img-thumbs { width: 64px; flex-shrink: 0; }
.img-thumbs .image {
    border-radius: 10px;
    overflow: hidden;
    border: 2px solid transparent;
    cursor: pointer;
    background: var(--ap-surface);
    transition: border-color var(--ap-transition);
}
.img-thumbs .image img { display: block; width: 100%; }
.img-thumbs .image.selected,
.img-thumbs .image:hover { border-color: var(--ap-ink); }
.img-main { flex: 1 1 auto; min-width: 0; }
.ap-product__figure { margin: 0; }
.ap-product__figure .image,
#product-core-image {
    position: relative;
    border-radius: var(--ap-radius);
    background: var(--ap-surface);
    overflow: hidden;
}
#product-core-image { aspect-ratio: 1 / 1; }
.ap-product__mainimg-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 16px;
}
#product-image { width: 100%; height: 100%; max-height: none; object-fit: contain; border-radius: 15px; }
#switching-image {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, .6);
}
.switching-image-loading {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}
.video-container { border-radius: var(--ap-radius); overflow: hidden; margin-bottom: 16px; }
.video-container iframe { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; }

/* колонка покупки */
.ap-product__meta {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 6px;
    font-size: 13px;
}
.ap-product__rating { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.ap-product__rating svg { color: var(--ap-accent); }
.ap-product__rating a { color: var(--ap-ink-faint); font-weight: 400; }
.ap-product__cat {
    color: var(--ap-ink-faint);
    text-transform: lowercase;
}
.ap-product__title {
    font-family: var(--ap-font);
    font-size: 22px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.15;
    margin: 0;
    text-align: center;
}
.ap-product__key-specs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: -2px 0 12px;
}
.ap-product__key-spec {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 11px;
    border: 1px solid color-mix(in srgb, var(--ap-accent) 22%, var(--ap-line));
    border-radius: 10px;
    background: color-mix(in srgb, var(--ap-accent) 7%, var(--ap-surface));
    color: var(--ap-ink);
    font-size: 12.5px;
    line-height: 1;
}
.ap-product__key-spec i { color: var(--ap-accent); font-size: 13px; }
.ap-product__key-spec span { color: var(--ap-ink-faint); }
.ap-product__key-spec b { font-weight: 700; }

.ap-product__cart {
    background: var(--ap-surface);
    border: 1px solid var(--ap-line);
    border-radius: 22px;
    padding: 22px 24px;
    box-shadow: 0 18px 40px -24px rgba(8, 18, 38, .35);
}

/* блок product.cart.html (легаси-классы) */
.add2cart { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.add2cart.js-top { margin-bottom: 8px; }
.s-price-wrapper { display: flex; flex-direction: column; }
.s-price, .js-product-price {
    font-size: 25px;
    font-weight: 500;
    font-family: var(--ap-font);
}
.s-base-price { font-size: 13px; color: var(--ap-ink-faint); }
.s-ratio-wrapper { font-size: 12.5px; color: var(--ap-ink-faint); }
.compare-at-price {
    color: var(--ap-ink-faint);
    text-decoration: line-through;
}
.s-compare-price { font-size: 17px; }
.s-compare-price.is-hidden { display: none; }
.s-product-desc { color: var(--ap-ink-soft); margin: 6px 0 14px; }

/* выбор артикулов */
.options { margin: 14px 0; }
.inline-select { margin-bottom: 14px; }
.inline-select p { margin-bottom: 8px; font-size: 13.5px; color: var(--ap-ink-soft); }
.inline-select a {
    display: inline-flex;
    align-items: center;
    margin: 0 8px 8px 0;
    padding: 9px 16px;
    border: 1.5px solid var(--ap-line);
    border-radius: var(--ap-radius-pill);
    font-size: 14px;
    font-weight: 500;
    transition: all var(--ap-transition);
}
.inline-select a:hover { border-color: var(--ap-ink); color: var(--ap-ink); }
.inline-select a.selected {
    background: var(--ap-dark);
    border-color: var(--ap-dark);
    color: #fff;
}
.inline-select.color a { border-radius: 50%; width: 38px; height: 38px; padding: 0; justify-content: center; }
.inline-select.color a .color_name { display: none; }

ul.skus { list-style: none; margin: 14px 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
ul.skus label {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border: 1.5px solid var(--ap-line);
    border-radius: var(--ap-radius-sm);
    cursor: pointer;
    transition: border-color var(--ap-transition), background var(--ap-transition);
}
ul.skus label:hover { border-color: var(--ap-ink); }
ul.skus label.disabled { opacity: .5; cursor: not-allowed; }
ul.skus input[type="radio"] { accent-color: var(--ap-ink); }
ul.skus label:has(input:checked) { border-color: var(--ap-ink); background: var(--ap-surface-soft); }
ul.skus .price { margin-left: auto; font-weight: 700; }
ul.skus .hint { font-size: 12px; color: var(--ap-ink-faint); }

/* количество */
.quantity-wrapper { margin: 6px 0; }
.quantity-wrapper.hidden { display: none; }
.volume-buttons button.increase-volume {
    width: 44px;
    height: 44px;
    border: 1.5px solid var(--ap-line);
    border-radius: 50%;
    background: var(--ap-surface);
    font-size: 18px;
    font-weight: 600;
    transition: all var(--ap-transition);
}
.volume-buttons button.increase-volume:hover { border-color: var(--ap-ink); background: var(--ap-dark); color: #fff; }
.s-field-wrapper { display: inline-block; }
.js-quantity-field {
    width: 76px;
    text-align: center;
    font-weight: 700;
    font-size: 16px;
    padding: 10px 8px;
}
.s-description { font-size: 12px; color: var(--ap-ink-faint); }

/* кнопка покупки в карточке товара */
.purchase .add2cart button[type="submit"] {
    flex: 1 1 auto;
    min-height: 48px;
    padding: 12px 20px;
    background: var(--ap-accent);
    color: #fff;
    border: 0;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    transition: all var(--ap-transition);
}
.purchase .add2cart button[type="submit"]:hover {
    background: var(--ap-accent-dark);
    box-shadow: 0 10px 24px rgba(0, 82, 177, .35);
    transform: translateY(-1px);
}
.purchase .add2cart button[type="submit"][disabled] { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.purchase .gotocart-btn {
    flex: 1 1 auto;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 8px 20px;
    background: var(--ap-green);
    color: #fff;
    border-radius: 12px;
    font-weight: 600;
    line-height: 1.25;
}
.purchase .gotocart-btn:hover { background: #268a4e; color: #fff; }
.purchase .gotocart-btn .smaller { font-size: 12px; opacity: .85; }

/* услуги */
.services { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.services label { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; }
.services input[type="checkbox"] { accent-color: var(--ap-ink); }
.service-variants { margin-top: 6px; width: 100%; }

/* наличие */
.stocks { margin-top: 14px; font-size: 13px; }
.text-green, .stock-ok { color: var(--ap-accent); font-weight: 600; }
.stock-low, .text-orange { color: var(--ap-ink-soft); font-weight: 500; }
.stock-none { color: var(--ap-ink-faint); font-weight: 500; }
.text-gray { color: var(--ap-ink-faint); }

.ap-product__wholesale {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 8px 12px;
    background: var(--ap-accent-soft);
    border-radius: 10px;
    font-size: 11.5px;
    line-height: 1.4;
    color: var(--ap-accent-dark);
}
.ap-product__wholesale i { flex-shrink: 0; font-size: 14px; }

.ap-product__tools {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 16px;
    font-size: 13.5px;
}
.ap-product__tools a { display: inline-flex; align-items: center; gap: 6px; color: var(--ap-ink-soft); }
.ap-product__tools a:hover { color: var(--ap-ink); }

/* вкладки товара */
/* ── табы: Обзор · Оплата · Доставка · Возврат ── */
.ap-tabs { margin-bottom: 24px; }
.ap-tabs__bar {
    position: relative;
    display: flex;
    gap: 4px;
    justify-content: center;
    border-bottom: 1px solid var(--ap-line);
    overflow-x: auto;
    scrollbar-width: none;
}
.ap-tabs__bar::-webkit-scrollbar { display: none; }
.ap-tabs__tab {
    position: relative;
    padding: 14px 20px;
    background: none;
    border: 0;
    font-family: var(--ap-font-display);
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--ap-ink-faint);
    white-space: nowrap;
    cursor: pointer;
    transition: color .2s ease;
}
.ap-tabs__tab:hover { color: var(--ap-ink-soft); }
.ap-tabs__tab.is-active { color: var(--ap-ink); }
.ap-tabs__ink {
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 0;
    height: 2.5px;
    border-radius: 2px;
    background: var(--ap-accent);
    transition: left .32s cubic-bezier(.4, 0, .2, 1), width .32s cubic-bezier(.4, 0, .2, 1);
}
.ap-tabs__panels { padding-top: 28px; }
.ap-tabs__panel { display: none; }
.ap-tabs__panel.is-active { display: block; animation: ap-tab-in .38s cubic-bezier(.22, .8, .36, 1); }
@keyframes ap-tab-in {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
}

/* содержимое вкладок Оплата/Доставка/Возврат */
.ap-pane {
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 26px 28px;
}
.ap-pane-list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ap-pane-list li { display: flex; align-items: flex-start; gap: 14px; padding: 12px 0; border-top: 1px solid var(--ap-line); }
.ap-pane-list li:first-child { border-top: 0; }
.ap-pane-list i {
    flex: none;
    width: 42px; height: 42px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 12px;
    background: var(--ap-accent-soft);
    color: var(--ap-accent);
    font-size: 18px;
}
.ap-pane-list strong { display: block; font-size: 15px; margin-bottom: 2px; }
.ap-pane-list span { display: block; color: var(--ap-ink-soft); font-size: 13.5px; line-height: 1.5; }
.ap-product__tags { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.ap-product__nav-count { font-size: 14px; color: var(--ap-ink-faint); font-weight: 500; }

/* описание и характеристики */
.ap-h3 { font-size: 24px; }

/* центрированная колонка описания/характеристик/отзывов (как в референсе) */
.ap-product__info { max-width: 880px; margin: 0 auto; }

.ap-product__info-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
    margin-bottom: 36px;
}
/* «О товаре» — белая карточка как «Характеристики» */
.ap-product__description {
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 26px;
    align-self: start;
}
.ap-rte { color: var(--ap-ink-soft); font-size: 15px; }
.ap-rte img { border-radius: var(--ap-radius-sm); }
.ap-rte table { width: 100%; }
.ap-rte td, .ap-rte th { padding: 8px 12px; border: 1px solid var(--ap-line); }

.ap-product__features {
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 26px;
    align-self: start;
}
.ap-features-list { list-style: none; margin: 0; padding: 0; }
.ap-features-list__item {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 7px 0;
    font-size: 14px;
}
.ap-features-list__item .name { color: var(--ap-ink-faint); flex-shrink: 0; }
.ap-features-list__item .feature-dot-divider {
    flex: 1 1 auto;
    border-bottom: 1px dotted var(--ap-line);
    transform: translateY(-3px);
}
.ap-features-list__item .value { font-weight: 600; text-align: right; }
.ap-features-list__divider h5 { margin: 14px 0 6px; font-size: 13px; letter-spacing: .05em; }

.ap-product__taxonomy { margin-bottom: 36px; }
.ap-product__taxonomy p { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.ap-product__taxonomy-label { color: var(--ap-ink-faint); font-size: 14px; }

/* отзывы */
.ap-product__reviews { margin-bottom: 24px; margin-top: 24px; }
.ap-reviews-summary {
    display: flex;
    align-items: center;
    gap: 40px;
    flex-wrap: wrap;
    padding: 24px 28px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    margin-bottom: 24px;
}
.ap-reviews-summary__score { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.ap-reviews-summary__score strong { font-size: 44px; line-height: 1; font-family: var(--ap-font-display); }
.ap-reviews-summary__score em { font-style: normal; font-size: 13px; color: var(--ap-ink-faint); }
.rating-distribution { flex: 1 1 280px; max-width: 460px; }
.rating-distribution td { padding: 3px 8px; font-size: 13px; }
.ap-reviews-summary__stars { white-space: nowrap; color: var(--ap-ink-soft); }
.ap-reviews-summary__bar-cell { width: 100%; }
.rating-distribution .bar {
    height: 8px;
    background: var(--ap-bg);
    border-radius: 6px;
    overflow: hidden;
}
.rating-distribution .filling { height: 100%; background: var(--ap-accent); border-radius: 6px; }
.ap-reviews-summary__count { color: var(--ap-ink-faint); }

.ap-reviews-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
.ap-reviews-list > li,
.s-review-wrapper {
    background: none;
    padding: 0;
    border-radius: 0;
}

/* рейтинг-звёзды Shop-Script */
.rating { color: var(--ap-accent); }
.rating .star, .rating .star-empty, .rating .star-half {
    display: inline-block;
    width: 1em;
    height: 1em;
    font-style: normal;
}
i.icon10.star::before, i.star::before { content: "★"; color: var(--ap-accent); }
i.icon10.star-empty::before, i.star-empty::before { content: "☆"; color: var(--ap-ink-faint); }
i.icon10.star-half::before, i.star-half::before { content: "★"; color: var(--ap-accent); opacity: .55; }

/* виджет выбора оценки (.rate): фиксируем ширину звезды, чтобы при наведении не дёргалось */
.rate { display: inline-flex; align-items: center; gap: 2px; line-height: 1; white-space: nowrap; }
.rate i, .rate .star, .rate .star-empty, .rate .star-half {
    display: inline-block;
    width: 1.05em;
    text-align: center;
    font-style: normal;
    vertical-align: middle;
}
.rate i::before { content: "☆"; color: var(--ap-ink-faint); }
.rate i.star::before, .rate i.hover::before, .rate i.selected::before { content: "★"; color: var(--ap-accent); }

/* похожие товары */
.ap-product__related {
    width: 100%;
    max-width: 880px;
    margin: 52px auto 18px;
}
.ap-similar {
    position: relative;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.ap-similar__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
}
.ap-similar__title {
    margin: 0;
    color: var(--ap-ink);
    font-family: var(--ap-font-display);
    font-size: clamp(25px, 2.5vw, 36px);
    line-height: 1;
    text-transform: uppercase;
}
.ap-similar__subtitle {
    margin: 8px 0 0;
    color: var(--ap-ink-faint);
    font-size: 13.5px;
}
.ap-similar__nav { display: flex; flex: 0 0 auto; gap: 12px; }
.ap-similar.has-no-overflow .ap-similar__nav { display: none; }
.ap-similar__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--ap-ink);
    cursor: pointer;
    transition: color var(--ap-transition), opacity var(--ap-transition), transform var(--ap-transition);
}
.ap-similar__arrow:hover { background: transparent; color: var(--ap-accent-dark); transform: translateX(-2px); }
.ap-similar__arrow[data-similar-next]:hover { transform: translateX(2px); }
.ap-similar__arrow:disabled { opacity: .25; cursor: default; }
.ap-similar .ap-grid.ap-similar__track {
    display: grid;
    grid-auto-flow: column;
    grid-template-columns: none;
    grid-auto-columns: calc((100% - 40px) / 3);
    gap: 20px;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scroll-behavior: smooth;
    scroll-snap-type: inline mandatory;
    touch-action: pan-y pinch-zoom;
    cursor: grab;
    -webkit-user-select: none;
    user-select: none;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.ap-similar .ap-grid.ap-similar__track.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    scroll-snap-type: none;
}
.ap-similar__track img,
.ap-similar__track a {
    -webkit-user-drag: none;
}
.ap-similar .ap-grid.ap-similar__track.is-dragging .ap-card {
    pointer-events: none;
}
.ap-similar .ap-grid.ap-similar__track::-webkit-scrollbar { display: none; }
.ap-similar .ap-card {
    min-width: 0;
    scroll-snap-align: start;
    box-shadow: none;
}
.ap-similar .ap-card:hover { box-shadow: none; }
@media (max-width: 1100px) {
    .ap-similar .ap-grid.ap-similar__track { grid-auto-columns: calc((100% - 20px) / 2); }
}
@media (max-width: 760px) {
    .ap-product__related { margin-top: 34px; }
    .ap-similar__head { align-items: center; margin-bottom: 18px; }
    .ap-similar__subtitle { display: none; }
    .ap-similar__title { font-size: 25px; }
    .ap-similar .ap-grid.ap-similar__track { grid-auto-columns: minmax(260px, 84vw); gap: 12px; }
}

/* ------------------------------------------------------------
   9. bxSlider override
------------------------------------------------------------ */
.bx-wrapper {
    box-shadow: none;
    border: 0;
    background: transparent;
    margin-bottom: 24px;
}
.bx-wrapper .bx-pager.bx-default-pager a {
    width: 24px;
    height: 4px;
    border-radius: 4px;
    background: rgba(22, 19, 15, .2);
}
.bx-wrapper .bx-pager.bx-default-pager a:hover,
.bx-wrapper .bx-pager.bx-default-pager a.active { background: var(--ap-accent); }
.bx-wrapper .bx-prev, .bx-wrapper .bx-next { opacity: .8; }

/* нативная навигация миниатюр без слоёв bxSlider поверх фотографий */
.img-thumbs[data-product-gallery-shell] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
#product-gallery.more-images {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 64px;
    max-height: 376px;
    overflow-x: hidden;
    overflow-y: auto;
    scroll-snap-type: y mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    overscroll-behavior: contain;
}
#product-gallery.more-images::-webkit-scrollbar { display: none; }
#product-gallery.more-images .image { flex: 0 0 64px; scroll-snap-align: start; }
.ap-gallery-arrow {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--ap-line, #dfe6f0);
    border-radius: 50%;
    background: rgba(255,255,255,.94);
    box-shadow: 0 4px 12px rgba(20,32,58,.08);
    color: var(--ap-ink, #14203a);
    font: 700 17px/1 var(--ap-font, sans-serif);
    cursor: pointer;
    transition: border-color .18s ease, color .18s ease, opacity .18s ease;
}
.ap-gallery-arrow:hover,
.ap-gallery-arrow:focus-visible { border-color: var(--ap-accent, #0052b1); color: var(--ap-accent, #0052b1); }
.ap-gallery-arrow:focus-visible { outline: 3px solid rgba(0,82,177,.2); outline-offset: 2px; }
.ap-gallery-arrow:disabled { opacity: .28; cursor: default; }
.img-thumbs.has-no-gallery-overflow .ap-gallery-arrow { visibility: hidden; }

@media (max-width: 760px) {
    .img-thumbs[data-product-gallery-shell] { flex-direction: row; width: 100%; gap: 6px; }
    #product-gallery.more-images {
        flex: 1 1 auto;
        flex-direction: row;
        width: auto;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
    }
    .ap-gallery-arrow--prev span,
    .ap-gallery-arrow--next span { font-size: 0; }
    .ap-gallery-arrow--prev span::before { content: '←'; font-size: 17px; }
    .ap-gallery-arrow--next span::before { content: '→'; font-size: 17px; }
}

/* ------------------------------------------------------------
   10. Диалог (выбор артикула из списка), сравнение, cookie
------------------------------------------------------------ */
.dialog { display: none; position: fixed; inset: 0; z-index: 500; }
.dialog-background {
    position: absolute;
    inset: 0;
    background: rgba(22, 19, 15, .55);
    backdrop-filter: blur(2px);
}
.dialog-window {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(92vw, 560px);
    max-height: 86vh;
    overflow-y: auto;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 32px;
    box-shadow: var(--ap-shadow-lg);
    animation: ap-dialog-in .25s cubic-bezier(.22, .8, .36, 1);
}
@keyframes ap-dialog-in {
    from { opacity: 0; transform: translate(-50%, -46%); }
    to   { opacity: 1; transform: translate(-50%, -50%); }
}
.dialog-window a.dialog-close {
    position: absolute;
    right: 18px;
    top: 14px;
    font-size: 28px;
    line-height: 1;
    color: var(--ap-ink-faint);
}
.dialog-window a.dialog-close:hover { color: var(--ap-ink); }

#compare-leash {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 300;
    background: var(--ap-dark);
    padding: 12px 0;
    text-align: center;
}
#compare-leash a { color: #fff; font-weight: 600; }
#compare-leash a.just-added { color: var(--ap-accent); }
#compare-leash:has(a[style*="display: none"]) { display: none !important; }

.ap-cookie {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 600;
    display: flex;
    align-items: center;
    gap: 14px;
    width: min(430px, calc(100vw - 40px));
    padding: 14px 16px;
    background: var(--ap-dark);
    color: rgba(255, 255, 255, .88);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 14px;
    box-shadow: var(--ap-shadow-lg);
    font-size: 13px;
    line-height: 1.45;
    transition: opacity .3s ease, transform .3s ease;
}
.ap-cookie__text {
    flex: 1 1 auto;
    min-width: 0;
}
.ap-cookie__text a {
    margin-left: 3px;
    color: #8fc1ff;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.ap-cookie__text a:hover { color: #fff; }
.ap-cookie__actions {
    flex: 0 0 auto;
}
.ap-cookie__button {
    min-height: 44px;
    padding: 10px 18px;
    border: 1px solid transparent;
    border-radius: 12px;
    font: inherit;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    touch-action: manipulation;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.ap-cookie__button:hover { transform: translateY(-1px); }
.ap-cookie__button:focus-visible {
    outline: 3px solid rgba(143, 193, 255, .7);
    outline-offset: 2px;
}
.ap-cookie__button--accept {
    background: var(--ap-accent);
    color: #fff;
}
.ap-cookie__button--accept:hover { background: #0a6bdc; }
.ap-cookie.is-hiding { opacity: 0; transform: translateY(12px); }
@media (prefers-reduced-motion: reduce) {
    .ap-cookie,
    .ap-cookie__button {
        transition: none;
    }
    .ap-cookie__button:hover { transform: none; }
}

/* ------------------------------------------------------------
   11. Подвал
------------------------------------------------------------ */
.ap-footer {
    margin-top: 96px;
    background: #fff;
    color: var(--ap-ink-soft);
    border-top: 1px solid var(--ap-line);
    padding: 64px 0 28px;
}
.ap-footer a { color: var(--ap-ink-soft); }
.ap-footer a:hover { color: var(--ap-accent-dark); }
.ap-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 2.5fr) minmax(0, 2.5fr) minmax(0, 3fr);
    gap: 40px;
    padding-bottom: 44px;
    border-bottom: 1px solid var(--ap-line);
}
.ap-logo--footer .ap-logo__text { color: var(--ap-ink); }
.ap-logo--footer .ap-logo__badge { color: var(--ap-dark); background: var(--ap-accent); }
.ap-footer__about { margin-top: 18px; font-size: 14px; max-width: 360px; }
.ap-footer__social { display: flex; gap: 10px; margin-top: 20px; }
.ap-footer__social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: var(--ap-ink);
    background: var(--ap-accent-soft);
    transition: background var(--ap-transition), transform var(--ap-transition);
}
.ap-footer__social a:hover { color: var(--ap-dark); background: var(--ap-accent); transform: translateY(-2px); }
.ap-footer__col h4 {
    color: var(--ap-ink);
    font-size: 14px;
    letter-spacing: .08em;
    margin-bottom: 18px;
}
.ap-footer__col ul { list-style: none; margin: 0; padding: 0; }
.ap-footer__col li { margin-bottom: 9px; font-size: 14px; }
.ap-footer__contacts p { font-size: 14px; margin-bottom: 8px; }
.ap-footer__contact-label {
    display: block;
    margin-bottom: 3px;
    color: var(--ap-ink-faint);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.ap-footer__phone {
    display: block;
    font-size: 21px;
    font-weight: 700;
    color: var(--ap-ink) !important;
    margin-bottom: 12px;
}
.ap-footer__phone--office { font-size: 17px; }
.ap-footer__email { display: block; margin-bottom: 14px; }
.ap-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 24px;
    font-size: 13px;
    color: var(--ap-ink-faint);
}
.ap-footer__legal {
    display: flex;
    justify-content: flex-end;
    gap: 8px 20px;
    flex-wrap: wrap;
}
.ap-footer__legal a {
    font-size: 12px;
    color: var(--ap-ink-faint);
}

.ap-legal {
    width: min(1180px, calc(100% - 40px));
    margin: 48px auto 0;
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}
.ap-legal__nav {
    position: sticky;
    top: 120px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 10px;
    border: 1px solid var(--ap-border);
    border-radius: 18px;
    background: #fff;
}
.ap-legal__nav a {
    padding: 11px 13px;
    border-radius: 11px;
    color: var(--ap-muted);
    font-size: 14px;
    font-weight: 600;
}
.ap-legal__nav a:hover,
.ap-legal__nav a.is-active {
    color: var(--ap-ink);
    background: var(--ap-bg);
}
.ap-legal__document {
    padding: clamp(28px, 5vw, 64px);
    border: 1px solid var(--ap-border);
    border-radius: 28px;
    background: #fff;
}
.ap-legal__eyebrow {
    margin: 0 0 10px;
    color: var(--ap-accent);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ap-legal__document > h1 {
    margin: 0 0 36px;
    font-family: var(--ap-font-display);
    font-size: clamp(36px, 5vw, 64px);
    line-height: .98;
    text-transform: uppercase;
}
.ap-legal__content {
    max-width: 820px;
    color: #47566d;
}
.ap-legal__content h2 {
    margin: 34px 0 12px;
    color: var(--ap-ink);
    font-size: 22px;
}
.ap-legal__content h3 {
    margin: 24px 0 9px;
    color: var(--ap-ink);
    font-size: 17px;
}
.ap-legal__content p,
.ap-legal__content li {
    line-height: 1.7;
}
.ap-legal__content ul,
.ap-legal__content ol {
    padding-left: 22px;
}
.ap-legal__content a {
    color: var(--ap-accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 760px) {
    .ap-footer__bottom { align-items: flex-start; }
    .ap-footer__legal { justify-content: flex-start; }
    .ap-legal {
        width: min(100% - 24px, 1180px);
        margin-top: 24px;
        grid-template-columns: 1fr;
    }
    .ap-legal__nav {
        position: static;
        flex-direction: row;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .ap-legal__nav::-webkit-scrollbar { display: none; }
    .ap-legal__nav a { flex: 0 0 auto; }
    .ap-legal__document {
        padding: 24px 20px;
        border-radius: 20px;
    }
}

/* ------------------------------------------------------------
   12. Утилиты-совместимость для легаси-шаблонов
   (личный кабинет, чекаут, сравнение, отзывы)
------------------------------------------------------------ */
.wa-flex { display: flex; }
.wa-flex-column { flex-direction: column; }
.wa-flex-wrap { flex-wrap: wrap; }
.wa-flex-fill { flex: 1 1 auto; min-width: 0; }
.wa-flex-none { flex: none; }
.wa-inline-block { display: inline-block; }
.align-items-center { align-items: center; }
.align-items-end { align-items: flex-end; }
.align-items-baseline { align-items: baseline; }
.justify-content-between { justify-content: space-between; }
.justify-content-center { justify-content: center; }
.justify-content-end { justify-content: flex-end; }
.wa-ml-auto { margin-left: auto; }
.wa-mr-auto { margin-right: auto; }
.w-100 { width: 100%; }
.overflow-hidden { overflow: hidden; }
body.overflow-hidden { overflow: hidden; }
.align-center, .text-center { text-align: center; }
.align-right { text-align: right; }

.space-025 { gap: 4px; }
.space-05 { gap: 8px; }
.space-1 { gap: 16px; }
.space-2 { gap: 32px; }
.gap8 { gap: 8px; }
.gap16 { gap: 16px; }
.gap20 { gap: 20px; }
.gap32 { gap: 32px; }

.wa-mt-0 { margin-top: 0; } .wa-mb-0 { margin-bottom: 0; }
.wa-mt-4 { margin-top: 4px; } .wa-mb-4 { margin-bottom: 4px; }
.wa-ml-4 { margin-left: 4px; } .wa-mr-4 { margin-right: 4px; }
.wa-mt-8 { margin-top: 8px; } .wa-mb-8 { margin-bottom: 8px; }
.wa-ml-8 { margin-left: 8px; } .wa-mr-8 { margin-right: 8px; }
.wa-mt-12 { margin-top: 12px; } .wa-mb-12 { margin-bottom: 12px; }
.wa-ml-12 { margin-left: 12px; } .wa-mr-12 { margin-right: 12px; }
.wa-mt-16 { margin-top: 16px; } .wa-mb-16 { margin-bottom: 16px; }
.wa-ml-16 { margin-left: 16px; } .wa-mr-16 { margin-right: 16px; }
.wa-mt-20 { margin-top: 20px; } .wa-mb-20 { margin-bottom: 20px; }
.wa-mt-24 { margin-top: 24px; } .wa-mb-24 { margin-bottom: 24px; }
.wa-mt-28 { margin-top: 28px; } .wa-mb-28 { margin-bottom: 28px; }
.wa-mt-32 { margin-top: 32px; } .wa-mb-32 { margin-bottom: 32px; }
.wa-pt-12 { padding-top: 12px; } .wa-pb-12 { padding-bottom: 12px; }
.wa-pl-12 { padding-left: 12px; } .wa-pr-12 { padding-right: 12px; }
.wa-pt-16 { padding-top: 16px; } .wa-pb-16 { padding-bottom: 16px; }
.wa-pt-20 { padding-top: 20px; } .wa-pb-20 { padding-bottom: 20px; }

.row { display: flex; flex-wrap: wrap; gap: 16px; }
.row.wa-flex-column { flex-direction: column; }
.col { flex: 1 1 0; min-width: 0; }
.col.w3 { flex: 0 0 calc(25% - 16px); }
.col.w4 { flex: 0 0 calc(33.333% - 16px); }
.col.w6 { flex: 0 0 calc(50% - 16px); }
.col.w9 { flex: 0 0 calc(75% - 16px); }
.col.w12 { flex: 0 0 100%; }
.unstyled { list-style: none; margin: 0; padding: 0; }

.small { font-size: 13px; }
.smaller, .smallest { font-size: 12px; }
.large { font-size: 17px; }
.bold { font-weight: 700; }
.semibold { font-weight: 600; }
.fw-normal { font-weight: 400; }
.gray, .hint { color: var(--ap-ink-faint); }
.text-black-auto { color: var(--ap-ink); }
.text-white { color: #fff; }
.error, .errormsg { color: var(--ap-red); }
.font-size-big { font-size: 16px; }
.inline-link { border-bottom: 1px dotted currentColor; }
.thin { font-weight: 300; }

/* кнопки легаси */
.button, input[type="submit"], input[type="reset"], input[type="button"], button.blink {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 22px;
    background: var(--ap-dark);
    color: #222;
    border: 1.5px solid var(--ap-dark);
    border-radius: 10px;
    font-size: 14px;
    font-weight: 500;
    transition: all var(--ap-transition);
    cursor: pointer;
}
.button:hover, input[type="submit"]:hover, button.blink:hover {
    background: #2e2820;
    color: #fff;
}
.button.gray, input.gray, button.gray, .bg-tr-10 {
    background: transparent;
    color: var(--ap-ink-soft);
    border-color: var(--ap-line);
}
.button.gray:hover, input.gray:hover, button.gray:hover { color: var(--ap-ink); border-color: var(--ap-ink); }
.ap-btn.js-filters-reset-btn { background: transparent; }

button.blink:active, .ap-btn:active { transform: scale(.98); }

/* формы легаси (личный кабинет, авторизация) */
.wa-form .wa-field { margin-bottom: 16px; }
.wa-form .wa-field .wa-name { font-size: 13px; color: var(--ap-ink-soft); margin-bottom: 4px; }
.wa-form .wa-field .wa-value input[type="text"],
.wa-form .wa-field .wa-value input[type="email"],
.wa-form .wa-field .wa-value input[type="password"],
.wa-form .wa-field .wa-value input[type="tel"],
.wa-form .wa-field .wa-value select,
.wa-form .wa-field .wa-value textarea { width: 100%; max-width: 420px; }

/* контент личного кабинета и статических страниц */
.my .ap-content > .ap-container > *,
.ap-page { animation: ap-fade-in .35s ease; }
@keyframes ap-fade-in { from { opacity: 0; } to { opacity: 1; } }

table.table { width: 100%; background: var(--ap-surface); border-radius: var(--ap-radius-sm); overflow: hidden; }
table.table th, table.table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--ap-line); }
table.table tr:last-child td { border-bottom: 0; }

/* иконки-спиннеры */
i.icon16, i.icon32 { display: inline-block; vertical-align: middle; }
i.icon16.loading, i.icon32.loading {
    width: 16px;
    height: 16px;
    border: 2px solid var(--ap-line);
    border-top-color: var(--ap-ink);
    border-radius: 50%;
    animation: ap-spin .7s linear infinite;
}
i.icon32.loading { width: 28px; height: 28px; border-width: 3px; }
@keyframes ap-spin { to { transform: rotate(360deg); } }

.s-loading-section {
    position: fixed;
    inset: 0;
    z-index: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(244, 242, 238, .65);
}

/* отзывы (reviews.html легаси-разметка) */
.review-field { margin-bottom: 14px; }
.reviews-branch { list-style: none; padding-left: 0; }
.reviews-branch .reviews-branch { padding-left: 28px; }
.review {
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 22px 24px;
    margin: 0;
    box-shadow: var(--ap-shadow);
    transition: box-shadow var(--ap-transition);
}
.review:hover { box-shadow: var(--ap-shadow-lg); }
.review .userpic { border-radius: 50%; }
.review .summary { margin-bottom: 14px; }
.review .summary > .row { align-items: center; gap: 12px; flex-wrap: nowrap; }
.review .image {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--ap-bg);
}
.review .username { font-weight: 700; font-size: 15px; }
.review .staff {
    font-size: 11px;
    font-weight: 600;
    color: var(--ap-accent-dark);
    background: var(--ap-accent-soft);
    padding: 2px 8px;
    border-radius: 6px;
}
.review .date { margin-left: auto; font-size: 12.5px; color: var(--ap-ink-faint); white-space: nowrap; }
.review h6 { font-size: 15px; margin: 0 0 6px; text-transform: none; letter-spacing: 0; }
.review > p { color: var(--ap-ink-soft); font-size: 14.5px; margin: 0; line-height: 1.55; }
.review .s-images-list { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.review .s-images-list .s-image,
.review .s-images-list .s-image-wrapper { width: 72px; height: 72px; border-radius: 10px; overflow: hidden; }
.review .s-images-list .s-image { width: 100%; height: 100%; object-fit: cover; }

/* интервалы списка отзывов на отдельной странице (карточка = .review) */
.ap-prodrev__list { display: flex; flex-direction: column; gap: 16px; }

/* композер отзыва (как лента/соцсеть) */
.ap-rcompose {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    text-align: left;
    background: var(--ap-surface);
    border: 1.5px solid var(--ap-line);
    border-radius: var(--ap-radius);
    padding: 14px 18px;
    margin: 0 0 20px;
    cursor: pointer;
    transition: border-color var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-rcompose:hover { border-color: var(--ap-ink-faint); box-shadow: var(--ap-shadow); }
.ap-rcompose__avatar {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--ap-accent-soft);
    color: var(--ap-accent-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    font-size: 18px;
}
.ap-rcompose__avatar img { width: 100%; height: 100%; object-fit: cover; }
.ap-rcompose__placeholder { flex: 1 1 auto; color: var(--ap-ink-faint); font-size: 15px; }
.ap-rcompose__pen { flex-shrink: 0; color: var(--ap-ink-faint); font-size: 17px; }

/* приветственный промокод — «билет» с градиентом и отрывным корешком */
.ap-promo {
    position: relative;
    display: flex;
    align-items: stretch;
    margin: 14px 0 0;
    border-radius: 18px;
    background:
        radial-gradient(120% 130% at 100% 0%, rgba(0, 82, 177, .35) 0%, transparent 55%),
        linear-gradient(135deg, #241e17 0%, var(--ap-dark) 72%);
    color: #fff;
    cursor: pointer;
}
/* левый круглый вырез */
.ap-promo::before {
    content: "";
    position: absolute;
    left: -11px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--ap-bg);
}
.ap-promo:focus-visible { outline: 2px solid var(--ap-accent); outline-offset: 3px; }
.ap-promo__main { flex: 1 1 auto; min-width: 0; padding: 16px 18px; }
.ap-promo__title {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-family: var(--ap-font-display);
    font-weight: 700;
    font-size: 16px;
}
.ap-promo__code {
    background: rgba(255, 255, 255, .14);
    color: #fff;
    padding: 3px 11px;
    border-radius: 8px;
    font-size: 13px;
    letter-spacing: .04em;
    white-space: nowrap;
    border: 1px dashed rgba(255, 255, 255, .45);
}
.ap-promo__sub { margin-top: 5px; font-size: 13.5px; color: rgba(255, 255, 255, .62); }
/* отрывной корешок с пунктиром и вырезами сверху/снизу */
.ap-promo__tear {
    position: relative;
    flex: 0 0 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-left: 2px dashed rgba(255, 255, 255, .32);
}
.ap-promo__tear::before,
.ap-promo__tear::after {
    content: "";
    position: absolute;
    left: -11px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--ap-bg);
}
.ap-promo__tear::before { top: -10px; }
.ap-promo__tear::after { bottom: -10px; }
.ap-promo__ic {
    position: absolute;
    font-size: 18px;
    color: #fff;
    transition: opacity .2s ease, transform .2s ease;
}
.ap-promo__ic--check { opacity: 0; transform: scale(.5); }
.ap-promo.is-copied .ap-promo__ic--arrow { opacity: 0; transform: scale(.5); }
.ap-promo.is-copied .ap-promo__ic--check { opacity: 1; transform: scale(1); color: #1f9c54; }

/* ------------------------------------------------------------
   12b. Варианты в карточке, степпер, панели, избранное, живой поиск
------------------------------------------------------------ */

/* чипы вариантов в карточке — компактно, в одну строку (размер | клапан) */
.ap-card__variants {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 10px 0 12px;
    align-items: start;
}
.ap-card__variants .ap-variants__row { margin: 0; min-width: 0; }
.ap-card__variants .ap-variants__group { gap: 5px; }
.ap-card__variants .ap-variant {
    padding: 6px 9px;
    font-size: 11.5px;
    border-radius: 8px;
    min-height: 0;
}
.ap-card__variants .ap-dd__toggle {
    padding: 7px 9px;
    min-height: 0;
    font-size: 11.5px;
    background: var(--ap-bg);
    border: 0;
    box-shadow: none;
    border-radius: 9px;
}
.ap-card__variants .ap-dd__chevron { width: 10px; height: 10px; }
/* меню открывается во всю ширину области вариантов и не вылезает за карточку */
.ap-card__variants { position: relative; }
.ap-card__variants .ap-dd { position: static; }
.ap-card__variants .ap-dd__menu {
    left: 0; right: 0; min-width: 0; max-width: none;
    top: calc(100% + 6px);
    z-index: 9999999;
}
.ap-card__variants .ap-dd__option { font-size: 12.5px; padding: 9px 11px; margin-bottom: 5px;}
/* единственный вариант — селект статичный (выбора нет) */
.ap-card__variants .ap-dd[data-locked] .ap-dd__toggle { pointer-events: none; }
.ap-card__variants .ap-dd[data-locked] .ap-dd__chevron { opacity: .3; }
.ap-variants__group {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.ap-variants__group + .ap-variants__group { margin-top: 8px; }
.ap-variant {
    padding: 7px 13px;
    background: var(--ap-bg);
    border: 1.5px solid transparent;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ap-ink);
    transition: all var(--ap-transition);
}
.ap-variant:hover { border-color: var(--ap-ink-faint); }
.ap-variant.is-selected {
    background: var(--ap-dark);
    color: #fff;
    border-color: var(--ap-dark);
}
.ap-variant.is-disabled {
    opacity: .4;
    cursor: not-allowed;
    text-decoration: line-through;
}

/* селект вариантов (длинные/многочисленные значения) */
.ap-select-wrap { position: relative; }
.ap-select-wrap + .ap-select-wrap,
.ap-select-wrap + .ap-variants__group,
.ap-variants__group + .ap-select-wrap { margin-top: 8px; }
.ap-variant-select {
    width: 100%;
    padding: 10px 36px 10px 14px;
    background: var(--ap-bg);
    border: 1.5px solid transparent;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ap-ink);
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: border-color var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-variant-select:hover { border-color: var(--ap-ink-faint); }
.ap-variant-select:focus { border-color: var(--ap-ink); box-shadow: none; }
.ap-select-wrap::after {
    content: "";
    position: absolute;
    right: 14px;
    top: 50%;
    width: 9px;
    height: 9px;
    margin-top: -7px;
    border-right: 2px solid var(--ap-ink-soft);
    border-bottom: 2px solid var(--ap-ink-soft);
    transform: rotate(45deg);
    pointer-events: none;
}
.ap-variant-select option[data-na="1"] { color: var(--ap-ink-faint); }

/* рейтинг в карточке */
.ap-card__rating b { font-weight: 500; color: var(--ap-ink); }
.ap-card__reviews {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: var(--ap-ink);
    font-weight: 500;
}
.ap-card__reviews:hover { color: var(--ap-ink); }

/* степпер количества */
.ap-stepper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    width: 100%;
    background: var(--ap-dark);
    border-radius: 12px;
    padding: 4px;
}
.ap-stepper__btn {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border: 0;
    border-radius: 10px;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
    transition: background var(--ap-transition);
}
.ap-stepper__btn:hover { background: var(--ap-accent); }
.ap-stepper__qty {
    flex: 1 1 auto;
    text-align: center;
    color: #fff;
    font-weight: 700;
    font-size: 15px;
}
.ap-stepper--sm { width: auto; padding: 3px; background: var(--ap-bg); }
.ap-stepper--sm .ap-stepper__btn {
    width: 28px;
    height: 28px;
    font-size: 15px;
    background: var(--ap-surface);
    color: var(--ap-ink);
    box-shadow: 0 1px 3px rgba(22,19,15,.12);
}
.ap-stepper--sm .ap-stepper__btn:hover { background: var(--ap-dark); color: #fff; }
.ap-stepper--sm .ap-stepper__qty { color: var(--ap-ink); min-width: 34px; font-size: 14px; }

/* подсветка карточки при добавлении */
.ap-card.is-added { box-shadow: 0 0 0 2px var(--ap-green), var(--ap-shadow-lg); }

/* кнопка избранного */
.ap-card__fav { flex-shrink: 0; color: var(--ap-ink-faint); }
.ap-card__fav:hover { color: var(--ap-accent); }
.js-fav-toggle.is-active { color: var(--ap-accent) !important; }
.js-fav-toggle.is-pop svg { animation: ap-heart-pop .35s ease; }
@keyframes ap-heart-pop {
    0% { transform: scale(1); }
    40% { transform: scale(1.4); }
    100% { transform: scale(1); }
}
.ap-fav-textbtn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: 0;
    padding: 0;
    font-size: 13.5px;
    color: var(--ap-ink-soft);
    transition: color var(--ap-transition);
}
.ap-fav-textbtn:hover { color: var(--ap-accent); }

/* счётчик на иконке шапки */
.ap-iconbtn__stack { position: relative; display: inline-flex; }
.ap-counter {
    position: absolute;
    top: -8px;
    right: -10px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ap-accent);
    color: #fff;
    border-radius: var(--ap-radius-pill);
    font-size: 10.5px;
    font-weight: 700;
    font-style: normal;
}

/* боковые панели */
.ap-drawer {
    position: fixed;
    inset: 0;
    overflow: hidden;              /* off-canvas панель не создаёт горизонтальный скролл */
    z-index: 800;
    visibility: hidden;
    pointer-events: none;
}
.ap-drawer.is-open { visibility: visible; pointer-events: auto; }
.ap-drawer__overlay {
    position: absolute;
    inset: 0;
    background: rgba(22, 19, 15, .5);
    backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity .25s ease;
}
.ap-drawer.is-open .ap-drawer__overlay { opacity: 1; }
.ap-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(92vw, 440px);
    display: flex;
    flex-direction: column;
    background: var(--ap-surface);
    transform: translateX(102%);
    transition: transform .3s cubic-bezier(.4, 0, .2, 1);
}
.ap-drawer.is-open .ap-drawer__panel { transform: translateX(0); }

/* десктоп: корзина — выпадающий дропдаун при наведении (позиция задаётся в JS) */
@media (min-width: 901px) {
    .ap-drawer--cart,
    .ap-drawer--cart.is-open { pointer-events: none; }
    .ap-drawer--cart .ap-drawer__overlay { display: none; }
    .ap-drawer--cart .ap-drawer__panel {
        position: fixed;
        top: 72px;
        right: 16px;
        bottom: auto;
        width: min(440px, calc(100vw - 32px));
        max-height: min(78vh, 620px);
        border-radius: var(--ap-radius);
        box-shadow: var(--ap-shadow-lg);
        overflow: hidden;
        transform: translateY(-10px);
        opacity: 0;
        transition: opacity .16s ease, transform .16s ease;
        pointer-events: auto;
    }
    .ap-drawer--cart.is-open .ap-drawer__panel { transform: translateY(0); opacity: 1; }
}
.ap-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px 14px;
    border-bottom: 1px solid var(--ap-line);
    flex-shrink: 0;
}
.ap-drawer__title { margin: 0; font-size: 21px; }
.ap-drawer__count { color: var(--ap-ink-faint); font-size: 15px; font-family: var(--ap-font); font-weight: 500; }

/* мини-корзина */
.ap-minicart__items,
.ap-favorites__items {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 8px 24px;
}
.ap-minicart__item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 0;
    border-bottom: 1px solid var(--ap-line);
}
.ap-minicart__item:last-child { border-bottom: 0; }
.ap-minicart__img {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: 10px;
    background: var(--ap-surface-soft);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ap-minicart__img img { width: 100%; height: 100%; object-fit: contain; }
.ap-minicart__info { flex: 1 1 auto; min-width: 0; }
.ap-minicart__name {
    display: block;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.35;
    margin-bottom: 2px;
}
.ap-minicart__sku {
    display: block;
    font-size: 12.5px;
    color: var(--ap-ink-faint);
    margin-bottom: 8px;
}
.ap-minicart__controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 6px;
}
.ap-minicart__price { font-weight: 700; font-size: 14.5px; white-space: nowrap; }
.ap-minicart__remove {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--ap-ink-faint);
    transition: all var(--ap-transition);
}
.ap-minicart__remove:hover { background: rgba(210, 74, 67, .1); color: var(--ap-red); }

.ap-minicart__empty {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 32px;
    text-align: center;
    color: var(--ap-ink-soft);
}
.ap-minicart__footer {
    flex-shrink: 0;
    padding: 16px 24px 24px;
    border-top: 1px solid var(--ap-line);
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--ap-surface);
}
.ap-minicart__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 6px;
    font-size: 15px;
}
.ap-minicart__total strong { font-size: 22px; font-weight: 700; }
.ap-favorites__goto { font-size: 12.5px; color: var(--ap-accent-dark); }

/* избранное: функциональная панель с карточками товаров */
.ap-drawer--favorites .ap-drawer__panel {
    width: min(94vw, 500px);
    background: #f3f7fb;
    box-shadow: -20px 0 60px rgba(8, 18, 38, .18);
}
.ap-drawer--favorites .ap-drawer__head {
    position: relative;
    z-index: 3;
    min-height: 88px;
    padding: 18px 20px;
    border-bottom-color: #dce6f1;
    background: rgba(255, 255, 255, .96);
}
.ap-favorites__heading {
    min-width: 0;
}
.ap-favorites__eyebrow {
    display: block;
    margin-bottom: 3px;
    color: var(--ap-accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .11em;
    line-height: 1.2;
    text-transform: uppercase;
}
.ap-favorites__titleline {
    display: flex;
    align-items: center;
    gap: 9px;
}
.ap-drawer--favorites .ap-drawer__title {
    font-size: 27px;
    line-height: 1.1;
}
.ap-favorites__count {
    min-width: 25px;
    height: 25px;
    display: inline-grid;
    place-items: center;
    padding: 0 7px;
    border-radius: var(--ap-radius-pill);
    background: var(--ap-accent-soft);
    color: var(--ap-accent-dark);
    font-size: 12px;
    font-weight: 800;
}
.ap-favorites__count:empty {
    display: none;
}
.ap-drawer--favorites .ap-drawer__close {
    width: 44px;
    height: 44px;
    border: 1px solid var(--ap-line);
    background: var(--ap-surface-soft);
    color: var(--ap-ink);
}
.ap-drawer--favorites .ap-drawer__close:hover {
    border-color: #bfd2ec;
    background: var(--ap-accent-soft);
    color: var(--ap-accent-dark);
}
.ap-favorites__toolbar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 20px 8px;
}
.ap-favorites__hint {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--ap-ink-soft);
    font-size: 11px;
}
.ap-favorites__hint i {
    color: var(--ap-accent);
    font-size: 14px;
}
.ap-favorites__clear {
    min-height: 44px;
    padding: 6px 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--ap-ink-soft);
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    transition: color var(--ap-transition), background var(--ap-transition);
}
.ap-favorites__clear:hover {
    background: #fbeceb;
    color: #a63a35;
}
.ap-favorites__status {
    position: absolute;
    top: 96px;
    right: 20px;
    left: 20px;
    z-index: 8;
    padding: 10px 14px;
    border: 1px solid #c7ddf5;
    border-radius: 12px;
    background: #edf6ff;
    color: #0c376d;
    box-shadow: 0 10px 30px rgba(8, 35, 70, .12);
    font-size: 12px;
    font-weight: 700;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity .18s ease, transform .18s ease;
}
.ap-favorites__status:empty {
    display: none;
}
.ap-favorites__status.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.ap-drawer--favorites .ap-favorites__items {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 0;
    padding: 8px 18px 18px;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.ap-favorite-card {
    position: relative;
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 13px;
    padding: 12px;
    border: 1px solid #dce6f1;
    border-radius: 16px;
    background: var(--ap-surface);
    box-shadow: 0 5px 18px rgba(8, 18, 38, .055);
    transition: border-color var(--ap-transition), box-shadow var(--ap-transition), transform var(--ap-transition);
}
.ap-favorite-card:hover {
    border-color: #c5d6e8;
    box-shadow: 0 10px 26px rgba(8, 18, 38, .09);
    transform: translateY(-1px);
}
.ap-favorite-card__image {
    width: 92px;
    height: 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 12px;
    background: #eef3f8;
}
.ap-favorite-card__image img {
    width: auto;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    display: block;
    object-fit: contain;
    transition: transform .25s ease;
}
.ap-favorite-card:hover .ap-favorite-card__image img {
    transform: scale(1.035);
}
.ap-favorite-card__placeholder {
    color: var(--ap-ink-faint);
    font-size: 25px;
}
.ap-favorite-card__body {
    min-width: 0;
    padding-right: 35px;
}
.ap-favorite-card__name {
    display: -webkit-box;
    overflow: hidden;
    color: var(--ap-ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.ap-favorite-card__name:hover {
    color: var(--ap-accent-dark);
}
.ap-favorite-card__variant {
    display: block;
    overflow: hidden;
    margin-top: 4px;
    color: var(--ap-ink-soft);
    font-size: 10.5px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ap-favorite-card__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 7px;
}
.ap-favorite-card__price {
    color: var(--ap-ink);
    font-size: 14px;
    line-height: 1.2;
}
.ap-favorite-card__stock {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--ap-ink-faint);
    font-size: 9.5px;
    font-weight: 700;
}
.ap-favorite-card__stock i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}
.ap-favorite-card__stock.is-available {
    color: #16834f;
}
.ap-favorite-card__actions {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 9px;
}
.ap-favorite-card__open,
.ap-favorite-card__cart {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 11px;
    border: 1px solid var(--ap-line);
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition: border-color var(--ap-transition), background var(--ap-transition), color var(--ap-transition);
}
.ap-favorite-card__open {
    background: var(--ap-surface);
    color: var(--ap-ink-soft);
}
.ap-favorite-card__open:hover {
    border-color: #bfd2ec;
    background: var(--ap-accent-soft);
    color: var(--ap-accent-dark);
}
.ap-favorite-card__cart {
    border-color: var(--ap-dark);
    background: var(--ap-dark);
    color: #fff;
}
.ap-favorite-card__cart:hover {
    border-color: var(--ap-accent);
    background: var(--ap-accent);
    color: #fff;
}
.ap-favorite-card__cart.is-added {
    border-color: #c8e7d7;
    background: #edf8f2;
    color: #147348;
}
.ap-favorite-card__cart.is-loading i {
    animation: ap-fav-spin .75s linear infinite;
}
@keyframes ap-fav-spin {
    to { transform: rotate(360deg); }
}
.ap-favorite-card__actions > :only-child {
    flex: 1 1 auto;
}
.ap-favorite-card__remove {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--ap-ink-faint);
    cursor: pointer;
    transition: color var(--ap-transition), background var(--ap-transition);
}
.ap-favorite-card__remove:hover {
    background: #fbeceb;
    color: #a63a35;
}
.ap-favorite-card__open:focus-visible,
.ap-favorite-card__cart:focus-visible,
.ap-favorite-card__remove:focus-visible,
.ap-favorites__clear:focus-visible {
    outline: 3px solid rgba(0, 82, 177, .22);
    outline-offset: 2px;
}
.ap-favorites__empty {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 34px;
    text-align: center;
}
.ap-favorites__empty-icon {
    width: 76px;
    height: 76px;
    display: inline-grid;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 50%;
    background: var(--ap-accent-soft);
    color: var(--ap-accent);
}
.ap-favorites__empty h4 {
    margin: 0 0 8px;
    color: var(--ap-ink);
    font-size: 22px;
}
.ap-favorites__empty p {
    max-width: 330px;
    margin: 0 0 22px;
    color: var(--ap-ink-soft);
    font-size: 13px;
    line-height: 1.55;
}
.ap-favorites__empty .ap-btn {
    min-width: 190px;
}
.ap-favorites__footer {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 20px 20px;
    border-top: 1px solid #dce6f1;
    background: rgba(255, 255, 255, .96);
}
.ap-favorites__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--ap-ink-soft);
    font-size: 11px;
}
.ap-favorites__summary strong {
    color: var(--ap-ink);
    font-size: 14px;
}
.ap-favorites__footer .ap-btn {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
}

@media (min-width: 601px) {
    .ap-drawer--favorites .ap-drawer__panel {
        border-radius: 22px 0 0 22px;
        overflow: hidden;
    }
}

@media (max-width: 600px) {
    .ap-drawer--favorites .ap-drawer__panel {
        width: 100vw;
    }
    .ap-drawer--favorites .ap-drawer__head {
        min-height: 78px;
        padding: 14px 16px;
    }
    .ap-drawer--favorites .ap-drawer__title {
        font-size: 24px;
    }
    .ap-favorites__toolbar {
        padding-right: 16px;
        padding-left: 16px;
    }
    .ap-drawer--favorites .ap-favorites__items {
        padding: 8px 12px 14px;
    }
    .ap-favorite-card {
        grid-template-columns: 78px minmax(0, 1fr);
        gap: 10px;
        padding: 10px;
        border-radius: 14px;
    }
    .ap-favorite-card__image {
        width: 78px;
        height: 78px;
    }
    .ap-favorite-card__name {
        font-size: 13px;
    }
    .ap-favorite-card__body {
        padding-right: 32px;
    }
    .ap-favorite-card__actions {
        gap: 6px;
    }
    .ap-favorite-card__open,
    .ap-favorite-card__cart {
        min-height: 44px;
        padding-right: 9px;
        padding-left: 9px;
        font-size: 10.5px;
    }
    .ap-favorites__footer {
        padding: 12px 16px max(16px, env(safe-area-inset-bottom));
    }
}

@media (prefers-reduced-motion: reduce) {
    .ap-drawer--favorites .ap-drawer__panel,
    .ap-drawer--favorites .ap-drawer__overlay,
    .ap-favorite-card,
    .ap-favorite-card__image img,
    .ap-favorites__status {
        transition: none;
    }
    .ap-favorite-card:hover {
        transform: none;
    }
}

/* выбор города */
.ap-topbar__left {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}
.ap-city {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 0;
    background: none;
    border: 0;
    color: var(--ap-ink-soft);
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    transition: color var(--ap-transition);
}
.ap-city:hover { color: var(--ap-accent-dark); }
.ap-city .js-city-name { border-bottom: 1px dashed currentColor; }
.ap-city--mobile { margin-bottom: 16px; font-size: 14px; }
.ap-city svg:last-child { opacity: .55; }

.ap-city-confirm {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: auto;
    z-index: 300;
    width: 312px;
    padding: 16px 18px;
    background: var(--ap-surface);
    color: var(--ap-ink);
    border-radius: var(--ap-radius-sm);
    box-shadow: var(--ap-shadow-lg);
    animation: ap-dialog-in-up .25s ease;
}
@keyframes ap-dialog-in-up {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: none; }
}
.ap-city-confirm.ap-city-confirm--right { left: auto; right: 0; }
.ap-city-confirm.ap-city-confirm--right::before { left: auto; right: 26px; }
.ap-city-confirm::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 26px;
    width: 12px;
    height: 12px;
    background: var(--ap-surface);
    transform: rotate(45deg);
}
.ap-city-confirm p { margin: 0 0 12px; font-size: 14px; }
.ap-city-confirm__actions { display: flex; gap: 8px; flex-wrap: nowrap; }
.ap-city-confirm__actions .ap-btn { flex: 1 1 auto; white-space: nowrap; padding: 9px 12px; }
.ap-city-confirm .js-city-open { color: var(--ap-ink); }

.ap-citymodal {
    position: fixed;
    inset: 0;
    z-index: 650;
    visibility: hidden;
    pointer-events: none;
}
.ap-citymodal.is-open { visibility: visible; pointer-events: auto; }
.ap-citymodal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(22, 19, 15, .55);
    backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity .25s ease;
}
.ap-citymodal.is-open .ap-citymodal__overlay { opacity: 1; }
.ap-citymodal__window {
    position: absolute;
    left: 50%;
    top: 12vh;
    transform: translateX(-50%) translateY(10px);
    width: min(92vw, 560px);
    max-height: 76vh;
    overflow-y: auto;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 26px 28px 28px;
    box-shadow: var(--ap-shadow-lg);
    opacity: 0;
    transition: opacity .25s ease, transform .25s ease;
}
.ap-citymodal.is-open .ap-citymodal__window { opacity: 1; transform: translateX(-50%) translateY(0); }
.ap-citymodal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}
.ap-citymodal__head h3 { margin: 0; font-size: 22px; }
.ap-citymodal__search { position: relative; margin-bottom: 18px; }
.ap-citymodal__search input { width: 100%; }
.ap-citymodal__suggest {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 5;
    background: var(--ap-surface);
    border-radius: var(--ap-radius-sm);
    box-shadow: var(--ap-shadow-lg);
    overflow: hidden;
}
.ap-citymodal__suggest button {
    display: block;
    width: 100%;
    padding: 10px 14px;
    background: none;
    border: 0;
    text-align: left;
    font-size: 14px;
    transition: background var(--ap-transition);
}
.ap-citymodal__suggest button:hover { background: var(--ap-bg); }
.ap-citymodal__nothing {
    display: block;
    padding: 12px 14px;
    color: var(--ap-ink-faint);
    font-size: 13.5px;
}
.ap-citymodal__popular {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.ap-citymodal__city {
    padding: 8px 16px;
    background: var(--ap-bg);
    border: 1.5px solid transparent;
    border-radius: var(--ap-radius-pill);
    font-size: 13.5px;
    font-weight: 500;
    transition: all var(--ap-transition);
}
.ap-citymodal__city:hover { border-color: var(--ap-ink); }
.ap-citymodal__city.is-current {
    background: var(--ap-dark);
    color: #fff;
}

/* живой поиск */
.ap-search { position: relative; }
.ap-livesearch {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 90;
    background: var(--ap-surface);
    border-radius: var(--ap-radius-sm);
    box-shadow: var(--ap-shadow-lg);
    overflow: hidden;
    max-height: 70vh;
    overflow-y: auto;
}
.ap-livesearch__item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    transition: background var(--ap-transition);
}
.ap-livesearch__item:hover { background: var(--ap-bg); }
.ap-livesearch__item img,
.ap-livesearch__noimg {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    background: var(--ap-surface-soft);
    object-fit: contain;
}
.ap-livesearch__name {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.3;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.ap-livesearch__price { font-weight: 700; font-size: 13.5px; white-space: nowrap; }
.ap-livesearch__all {
    display: block;
    padding: 12px 14px;
    text-align: center;
    font-weight: 600;
    font-size: 13.5px;
    background: var(--ap-bg);
}
.ap-livesearch__all:hover { background: var(--ap-dark); color: #fff; }
.ap-livesearch__empty {
    padding: 18px 14px;
    text-align: center;
    color: var(--ap-ink-faint);
    font-size: 13.5px;
}
.ap-search.is-searching button[type="submit"] svg { animation: ap-spin .7s linear infinite; }

/* ------------------------------------------------------------
   12c. Кастомный дропдаун вариантов
------------------------------------------------------------ */
.ap-dd { position: relative; }
.ap-dd + .ap-dd,
.ap-dd + .ap-variants__group,
.ap-variants__group + .ap-dd { margin-top: 8px; }
.ap-dd__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 11px 14px;
    background: var(--ap-bg);
    border: 1.5px solid transparent;
    border-radius: 12px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ap-ink);
    text-align: left;
    transition: border-color var(--ap-transition), background var(--ap-transition);
}
.ap-dd__toggle:hover { border-color: var(--ap-ink-faint); }
.ap-dd.is-open .ap-dd__toggle { border-color: var(--ap-ink); background: var(--ap-surface); }
.ap-dd__value {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ap-dd__chevron { flex-shrink: 0; color: var(--ap-ink-soft); transition: transform var(--ap-transition); }
.ap-dd.is-open .ap-dd__chevron { transform: rotate(180deg); }

.ap-dd__menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 80;
    max-height: 290px;
    overflow-y: auto;
    padding: 6px;
    background: var(--ap-surface);
    border-radius: 14px;
    box-shadow: var(--ap-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity var(--ap-transition), transform var(--ap-transition), visibility var(--ap-transition);
}
.ap-dd.is-open .ap-dd__menu {
    opacity: 1;
    visibility: visible;
    transform: none;
}
.ap-dd__option {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 10px 12px;
    background: none;
    border: 0;
    border-radius: 9px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--ap-ink);
    text-align: left;
    transition: background var(--ap-transition);
}
.ap-dd__option:hover { background: var(--ap-bg); }
.ap-dd__option.is-selected { background: var(--ap-dark); color: #fff; font-weight: 600; }
.ap-dd__option.is-disabled { color: var(--ap-ink-faint); cursor: not-allowed; }
.ap-dd__check { visibility: hidden; flex-shrink: 0; display: inline-flex; }
.ap-dd__option.is-selected .ap-dd__check { visibility: visible; }
.ap-dd__na { font-style: normal; font-size: 11.5px; color: var(--ap-ink-faint); }
.ap-dd__option.is-selected .ap-dd__na { color: rgba(255, 255, 255, .6); }

/* ------------------------------------------------------------
   12d. Страница товара: промо авторизации, варианты, аннотация
------------------------------------------------------------ */
.ap-product__summary {
    color: var(--ap-ink-soft);
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 18px;
}
.ap-auth-promo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
    padding: 12px 16px;
    background: var(--ap-surface);
    border: 1.5px dashed var(--ap-line);
    border-radius: var(--ap-radius-sm);
    transition: border-color var(--ap-transition), transform var(--ap-transition);
}
.ap-auth-promo:hover { border-color: var(--ap-accent); transform: translateY(-1px); color: inherit; }
.ap-auth-promo__text { display: flex; flex-direction: column; gap: 2px; }
.ap-auth-promo__text strong { font-size: 15px; }
.ap-auth-promo__text span { font-size: 13px; color: var(--ap-ink-faint); }
.ap-auth-promo__icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--ap-accent-soft);
    color: var(--ap-accent-dark);
    transition: background var(--ap-transition), color var(--ap-transition), transform var(--ap-transition);
}
.ap-auth-promo:hover .ap-auth-promo__icon { background: var(--ap-accent); color: #fff; transform: translateX(3px); }
.ap-auth-promo--compact {
    width: min(100%, 276px);
    margin: 0;
    padding: 6px 7px 6px 10px;
    gap: 8px;
    border-style: solid;
    border-radius: 13px;
    box-shadow: 0 10px 24px -20px rgba(8, 18, 38, .45);
}
.ap-auth-promo--compact .ap-auth-promo__text { min-width: 0; }
.ap-auth-promo--compact .ap-auth-promo__text strong {
    overflow: hidden;
    font-size: 12px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ap-auth-promo--compact .ap-auth-promo__text span {
    overflow: hidden;
    font-size: 10px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ap-auth-promo--compact .ap-auth-promo__icon {
    width: 28px;
    height: 28px;
}

.ap-skus-hidden { display: none !important; }
.ap-variants--product { margin: 0 0 8px; }
.ap-variants--product .ap-variants__row { margin-bottom: 16px; }
.ap-variants--product .ap-variants__label { font-size: 13px; margin-bottom: 8px; }
.ap-variants--product .ap-variant {
    background: var(--ap-surface);
    border-color: var(--ap-line);
    min-height: 40px;
    box-shadow: var(--ap-shadow);
}
.ap-variants--product .ap-variant:hover { border-color: var(--ap-ink); }
.ap-variants--product .ap-variant.is-selected { background: var(--ap-dark); border-color: var(--ap-dark); }
.ap-variants--product .ap-dd__toggle {
    background: var(--ap-bg);
    border: 1.5px solid transparent;
    min-height: 46px;
    box-shadow: none;
}
.ap-variants--product .ap-dd__toggle:hover { background: var(--ap-line); border-color: transparent; }
.ap-variants--product .ap-dd.is-open .ap-dd__toggle { background: var(--ap-line); border-color: transparent; }
.ap-variant--lg { padding: 8px 14px; font-size: 13.5px; border-radius: 10px; }
.ap-variants--product .ap-dd__toggle { padding: 11px 15px; font-size: 13.5px; }
/* выпадающий список — мягче, без тяжёлой тени */
.ap-variants--product .ap-dd__menu {
    box-shadow: 0 14px 32px -18px rgba(8, 18, 38, .28);
    border: 1px solid var(--ap-line);
}

/* подписи групп вариантов */
.ap-variants__row { margin-bottom: 12px; }
.ap-variants__row:last-child { margin-bottom: 0; }
.ap-variants__label {
    display: block;
    margin-bottom: 7px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--ap-ink-faint);
}
.ap-variants__label b { color: var(--ap-ink); font-weight: 600; }
.ap-card__variants .ap-variants__label {
    font-size: 10px; margin-bottom: 6px;
    text-transform: uppercase; letter-spacing: .04em; font-weight: 700;
    color: var(--ap-ink-faint);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* строка артикула и сравнения */
.ap-product__codeline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin: -8px 0 16px;
    font-size: 13px;
    color: var(--ap-ink-faint);
}
.ap-product__code b { color: var(--ap-ink); font-weight: 600; }
.ap-product__codeline-sep { width: 1px; height: 14px; background: var(--ap-line); }
.ap-product__codeline-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--ap-ink-soft);
    font-weight: 500;
}
.ap-product__codeline-link:hover { color: var(--ap-ink); }
.ap-product__codeline-link.is-active { color: var(--ap-accent-dark); }

/* панель покупки: [В корзину][− n +][♥] */
.ap-buybar {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
    margin-top: 4px;
}
.ap-buybar .ap-buybar__buy { flex: 1 1 auto; }
.ap-buybar__added {
    flex: 1 1 auto;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 7px 14px;
    background: var(--ap-accent);
    color: #fff;
    border: 0;
    border-radius: 12px;
    line-height: 1.2;
    white-space: nowrap;
    transition: background var(--ap-transition), transform var(--ap-transition);
}
.ap-buybar__added:hover { background: var(--ap-accent-dark); }
.ap-buybar__added b { font-size: 14.5px; font-weight: 700; }
.ap-buybar__added span { font-size: 12px; opacity: .8; }
.ap-buybar__added i { font-size: 13px; }
.ap-buybar__stepper {
    flex: 1 1 100%;
    order: -1;
    width: auto;
    min-height: 48px;
    background: var(--ap-surface);
    border: 1.5px solid var(--ap-line);
    border-radius: 12px;
    padding: 4px;
}
.ap-buybar__stepper .ap-stepper__btn {
    width: 38px;
    height: 38px;
    border-radius: 9px;
    background: var(--ap-bg);
    color: var(--ap-ink);
    font-size: 19px;
    box-shadow: none;
}
.ap-buybar__stepper .ap-stepper__btn:hover { background: var(--ap-dark); color: #fff; }
.ap-stepper__center {
    flex: 1 1 auto;
    text-align: center;
    color: var(--ap-ink-faint);
    font-size: 13px;
    font-weight: 500;
}
.ap-stepper__center .ap-stepper__qty { color: var(--ap-ink); font-size: 16.5px; font-weight: 700; }
.ap-buybar__fav {
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    align-self: center;
    border: 1.5px solid var(--ap-line);
    border-radius: 12px;
    background: var(--ap-surface);
    color: var(--ap-ink-faint);
}
.ap-buybar__fav:hover { color: var(--ap-accent); border-color: var(--ap-accent); background: var(--ap-surface); }
.ap-force-hide { display: none !important; }

.ap-product__cart .s-product-desc { display: none; }

/* ============================================================
   Блок покупки в стиле маркетплейса (Тираж | Клапан · цены · купить)
   ============================================================ */
.ap-product__cart form { display: flex; flex-direction: column; align-items: stretch; }
/* выбор параметров через характеристики (fallback) — наверх блока */
.ap-product__cart form > .options { order: -1; margin: 0 0 14px; }
.ap-product__cart form > ul.skus { flex: 1 1 100%; }
.ap-product__cart .options { margin: 0 0 4px; }
.ap-product__cart .badge.low-price { display: none; }

.ap-buy { display: flex; flex-direction: column; }
.ap-buy__label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ap-ink-faint);
}

/* ── строка 1: РАЗМЕР | КЛАПАН ── */
.ap-buy__params {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
    align-items: start;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--ap-line);
}
.ap-buy__params.is-empty { display: none; }
.ap-buy__pcell { min-width: 0; }
.ap-buy__valve:not(:empty) { padding-left: 22px; border-left: 1px solid var(--ap-line); }
.ap-buy__params .ap-variants { margin: 0; }
.ap-buy__params .ap-variants__row { margin: 0; }
.ap-buy__params .ap-variants__label {
    font-size: 11px; font-weight: 700; letter-spacing: .05em;
    text-transform: uppercase; color: var(--ap-ink-faint); margin: 0 0 9px;
}
.ap-buy__params .ap-variants__group { display: flex; flex-wrap: wrap; gap: 8px; }
.ap-buy__params .ap-variant {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 46px; padding: 9px 18px; font-size: 13.5px;
}
.ap-buy__params .ap-dd { width: 100%; }

/* ── строка 2: цена за штуку | за партию ── */
.ap-buy__prices {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
    padding: 16px 0;
    border-bottom: 1px solid var(--ap-line);
}
.ap-buy__price { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.ap-buy__price--batch { padding-left: 22px; border-left: 1px solid var(--ap-line); }
.ap-buy__priceline { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.ap-buy__now, .ap-buy__batch {
    font-size: 24px; font-weight: 800; font-family: var(--ap-font);
    color: var(--ap-ink); line-height: 1.05;
    transition: color .25s ease;
    font-variant-numeric: tabular-nums;
}
/* подсветка во время пересчёта */
.ap-buy__now.is-counting, .ap-buy__batch.is-counting { color: var(--ap-accent); }
.ap-buy__was { font-size: 14px; color: var(--ap-ink-faint); text-decoration: line-through; }
.ap-buy__off {
    display: inline-flex; align-items: center;
    padding: 3px 9px; background: var(--ap-dark); color: #fff;
    border-radius: 8px; font-size: 12px; font-weight: 700;
}
.ap-buy .ap-price-sub { display: flex; align-items: center; padding-top: 12px; }
.ap-buy .ap-price-sub:empty { display: none; padding: 0; }
.ap-buy__price-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    align-self: flex-end;
    flex: 0 1 170px;
    min-width: 150px;
    max-width: 170px;
    height: 56px;
    min-height: 56px;
    padding: 0 12px;
    border: 0;
    border-radius: 14px;
    background: var(--ap-dark);
    color: #fff;
    font-family: var(--ap-font-display);
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: color var(--ap-transition), background var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-buy__price-link:hover {
    color: #fff;
    background: var(--ap-accent);
    box-shadow: 0 10px 24px rgba(0, 82, 177, .3);
}
.ap-buy__price-link i { font-size: 15px; }

/* ── строка 3: Тираж + Купить + ♥ + доставка ── */
.ap-buy__action { display: flex; align-items: flex-end; flex-wrap: nowrap; gap: 10px; width: 100%; min-width: 0; padding-top: 16px; }
.ap-buy__field--qty { flex: 0 0 auto; display: flex; flex-direction: column; gap: 8px; }
.ap-buy__action .ap-buybar { width: auto; min-width: 0; flex: 1 1 auto; flex-wrap: nowrap; margin: 0; }
.ap-buy__action .ap-buybar__buy { min-width: 170px; padding-left: 20px; padding-right: 20px; }
.ap-buy__eta { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--ap-ink-soft); padding-bottom: 6px; }
.ap-buy__eta svg { color: var(--ap-accent); flex: none; }
.ap-buy__eta b { color: var(--ap-ink); font-weight: 700; white-space: nowrap; }

/* Тираж — степпер */
.ap-buy .quantity-wrapper { display: block !important; margin: 0; }
.ap-buy .quantity-wrapper .wa-mb-8 { display: none; }
.ap-buy .quantity-wrapper > .wa-flex.justify-content-between:not(.wa-mb-8) {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px;
    background: var(--ap-surface);
    border: 1.5px solid var(--ap-line);
    border-radius: 14px;
}
.ap-buy .volume-buttons button.increase-volume {
    width: 40px; height: 40px; border: 0; border-radius: 10px;
    background: var(--ap-dark); color: #fff; font-size: 20px; font-weight: 600;
}
.ap-buy .volume-buttons button.increase-volume:hover { background: var(--ap-accent); color: #fff; }
.ap-buy .s-field-wrapper { margin: 0 !important; }
.ap-buy .js-quantity-field {
    width: 96px; border: 0; background: transparent;
    text-align: center; font-size: 18px; font-weight: 700; padding: 8px 4px;
}

/* кнопка покупки с итоговой ценой партии */
button.ap-buybar__buy {
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    min-height: 52px; padding: 12px 22px;
    background: var(--ap-dark); color: #fff; border: 0; border-radius: 14px;
    font-family: var(--ap-font); text-transform: none; letter-spacing: 0;
    font-size: 18px; font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.ap-buybar__buy i { font-size: 16px; }
.ap-buybar__buytext { line-height: 1; white-space: nowrap; }
button.ap-buybar__buy:hover { background: var(--ap-accent); color: #fff; box-shadow: 0 10px 24px rgba(0, 82, 177, .3); transform: translateY(-1px); }
button.ap-buybar__buy.is-incart { background: var(--ap-accent); }
button.ap-buybar__buy.is-incart:hover { background: var(--ap-accent-dark); }

/* избранное — нейтральная серая кнопка, чтобы не бросалась в глаза */
button.ap-buybar__fav {
    align-self: stretch; height: auto; min-height: 56px; width: 56px;
    color: var(--ap-ink-faint); background: var(--ap-bg);
    border: 0; border-radius: 14px;
    transition: background var(--ap-transition), color var(--ap-transition);
}
button.ap-buybar__fav i { font-size: 19px; }
button.ap-buybar__fav:hover { color: var(--ap-ink); background: var(--ap-line); }
/* активное избранное — синяя заливка как у кнопки «В корзину», белое сердце */
button.ap-buybar__fav.is-active { color: #fff !important; background: var(--ap-accent) !important; }
button.ap-buybar__fav.is-active:hover { background: var(--ap-accent-dark) !important; }

/* наличие / под заказ — рядом с артикулом */
.ap-product__codeline .ap-codeline-stock {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
}
.ap-product__codeline .ap-codeline-stock .row { gap: 0; }

/* ── под карточкой: опт + доставка в одну строку, промокод + мин.заказ в одну строку ── */
.ap-product__extras,
.ap-product__notes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: stretch;
    margin-top: 16px;
}
.ap-product__extras--single,
.ap-product__notes--single { grid-template-columns: 1fr; }
.ap-product__extras > .ap-bulk,
.ap-product__extras > .ap-delivery { margin: 0; height: 100%; }
.ap-product__notes > .ap-promo,
.ap-product__notes > .ap-product__wholesale { margin: 0; }
.ap-product__notes > .ap-product__wholesale { align-self: stretch; }

/* доставка и оплата */
.ap-delivery {
    margin-top: 12px;
    padding: 14px 16px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
}
.ap-delivery__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}
.ap-delivery__head h3 { margin: 0; font-size: 12.5px; letter-spacing: .05em; }
.ap-delivery__city {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: none;
    border: 0;
    padding: 0;
    font-size: 13px;
    color: var(--ap-ink-faint);
    transition: color var(--ap-transition);
}
.ap-delivery__city:hover { color: var(--ap-ink); }
.ap-delivery__city b { color: var(--ap-accent-dark); font-weight: 600; border-bottom: 1px dashed currentColor; }
.ap-delivery__estimate {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    margin-bottom: 11px;
    padding: 10px 12px;
    overflow: hidden;
    background:
        radial-gradient(circle at 94% 10%, color-mix(in srgb, var(--ap-accent) 20%, transparent), transparent 42%),
        var(--ap-accent-soft);
    border: 1px solid color-mix(in srgb, var(--ap-accent) 20%, var(--ap-line));
    border-radius: 13px;
}
.ap-delivery__estimate-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: var(--ap-ink);
    background: rgba(255, 255, 255, .72);
    border-radius: 11px;
    box-shadow: 0 8px 18px -14px rgba(8, 18, 38, .55);
}
.ap-delivery__estimate-icon i { font-size: 17px; }
.ap-delivery__estimate-copy { display: flex; flex-direction: column; min-width: 0; }
.ap-delivery__estimate-copy small {
    margin-bottom: 2px;
    color: var(--ap-ink-soft);
    font-size: 10.5px;
    line-height: 1.2;
}
.ap-delivery__estimate-copy strong {
    color: var(--ap-ink);
    font-family: var(--ap-font-display);
    font-size: clamp(19px, 2vw, 24px);
    line-height: 1.05;
    letter-spacing: .01em;
}
.ap-delivery__estimate-copy em {
    margin-top: 3px;
    color: var(--ap-ink-soft);
    font-size: 9.5px;
    font-style: normal;
    line-height: 1.3;
}
.ap-delivery__estimate.is-loading .ap-delivery__estimate-icon i { animation: ap-spin .8s linear infinite; }
.ap-delivery__rows { display: flex; flex-direction: column; gap: 9px; }
.ap-delivery__row { display: flex; align-items: flex-start; gap: 10px; }
.ap-delivery__icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: var(--ap-bg);
    color: var(--ap-accent-dark);
}
.ap-delivery__icon svg { width: 17px; height: 17px; }
.ap-delivery__row strong { display: block; font-size: 12.5px; margin-bottom: 1px; }
.ap-delivery__row div span { display: block; font-size: 11.5px; line-height: 1.25; color: var(--ap-ink-soft); }

/* ------------------------------------------------------------
   12e. Главная: шаги, доверие, отзывы, FAQ, CTA
------------------------------------------------------------ */
.ap-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    counter-reset: step;
}
.ap-step {
    position: relative;
    padding: 28px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
    transition: transform var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-step:hover { transform: translateY(-4px); box-shadow: var(--ap-shadow-lg); }
.ap-step::after {
    content: "";
    position: absolute;
    right: -16px;
    top: 50%;
    width: 12px;
    height: 12px;
    margin-top: -6px;
    border-top: 2.5px solid var(--ap-ink-faint);
    border-right: 2.5px solid var(--ap-ink-faint);
    transform: rotate(45deg);
}
.ap-step:last-child::after { display: none; }
.ap-step__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 18px;
    background: var(--ap-dark);
    color: var(--ap-accent);
    border-radius: 14px;
    font-family: var(--ap-font-display);
    font-size: 21px;
    font-weight: 700;
}
.ap-step h3 { font-size: 18px; margin-bottom: 8px; }
.ap-step p { margin: 0; font-size: 14px; color: var(--ap-ink-soft); }

/* «нам доверяют» */
.ap-trust { margin-top: 64px; padding: 26px 0; border-top: 1px solid var(--ap-line); border-bottom: 1px solid var(--ap-line); overflow: hidden; }
.ap-trust__label {
    margin: 0 0 18px;
    font-size: 13px;
    color: var(--ap-ink-faint);
    text-transform: uppercase;
    letter-spacing: .08em;
}
.ap-trust__track {
    display: flex;
    align-items: center;
    gap: 36px;
    width: max-content;
    animation: ap-marquee 46s linear infinite;
}
.ap-trust__track span {
    font-family: var(--ap-font-display);
    font-size: 22px;
    font-weight: 600;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--ap-ink);
    opacity: .45;
    transition: opacity var(--ap-transition);
}
.ap-trust__track span:hover { opacity: 1; }
.ap-trust__track i { font-style: normal; color: var(--ap-accent); }

/* отзывы клиентов */
.ap-testimonials {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.ap-testimonial {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 28px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
}
.ap-testimonial blockquote {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--ap-ink-soft);
    position: relative;
    padding-top: 26px;
}
.ap-testimonial blockquote::before {
    content: "“";
    position: absolute;
    top: -6px;
    left: -2px;
    font-family: Georgia, serif;
    font-size: 56px;
    line-height: 1;
    color: var(--ap-accent);
}
.ap-testimonial figcaption { display: flex; flex-direction: column; margin-top: auto; }
.ap-testimonial figcaption strong { font-size: 14.5px; }
.ap-testimonial figcaption span { font-size: 13px; color: var(--ap-ink-faint); }

/* FAQ */
.ap-faq-layout {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: 40px;
    align-items: start;
}
.ap-faq-side p { color: var(--ap-ink-soft); }
.ap-faq-side__phone { font-weight: 700; white-space: nowrap; }
.ap-faq { display: flex; flex-direction: column; gap: 12px; }
.ap-faq__item {
    background: var(--ap-surface);
    border-radius: var(--ap-radius-sm);
    box-shadow: var(--ap-shadow);
    overflow: hidden;
}
.ap-faq__item summary {
    list-style: none;
    cursor: pointer;
    padding: 18px 52px 18px 22px;
    position: relative;
    font-weight: 600;
    font-size: 15.5px;
    transition: color var(--ap-transition);
}
.ap-faq__item summary::-webkit-details-marker { display: none; }
.ap-faq__item summary::after {
    content: "";
    position: absolute;
    right: 22px;
    top: 50%;
    width: 9px;
    height: 9px;
    margin-top: -7px;
    border-right: 2px solid var(--ap-ink-soft);
    border-bottom: 2px solid var(--ap-ink-soft);
    transform: rotate(45deg);
    transition: transform var(--ap-transition);
}
.ap-faq__item[open] summary { color: var(--ap-accent-dark); }
.ap-faq__item[open] summary::after { transform: rotate(225deg); margin-top: -2px; }
.ap-faq__body {
    padding: 0 22px 20px;
    color: var(--ap-ink-soft);
    font-size: 14.5px;
}

/* ── CTA «оптовый прайс»: тёмная продающая панель с превью PDF ── */
.ap-cta2 {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 40px;
    align-items: center;
    padding: 52px 56px 48px;
    border-radius: calc(var(--ap-radius) + 10px);
    background: radial-gradient(120% 130% at 12% 0%, #1d2f4e 0%, #14203a 52%, #0a1322 100%);
    color: #fff;
    overflow: hidden;
}
.ap-cta2__glow {
    position: absolute;
    right: -120px;
    top: -120px;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(63, 143, 224, .3) 0%, transparent 68%);
    animation: apCtaGlow 6s ease-in-out infinite alternate;
    pointer-events: none;
}
@keyframes apCtaGlow { from { transform: scale(.85); opacity: .6; } to { transform: scale(1.2); opacity: 1; } }
.ap-cta2__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    border-radius: 999px;
    background: rgba(63, 143, 224, .16);
    border: 1px solid rgba(126, 176, 255, .35);
    color: #9cc4f4;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.ap-cta2__badge::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #59d98c;
    animation: apCtaPulse 1.7s ease-out infinite;
}
@keyframes apCtaPulse { 0% { box-shadow: 0 0 0 0 rgba(89, 217, 140, .6); } 100% { box-shadow: 0 0 0 9px rgba(89, 217, 140, 0); } }
.ap-cta2__title { margin: 18px 0 10px; font-size: clamp(26px, 3vw, 40px); line-height: 1.08; }
.ap-cta2__title em { font-style: normal; color: #7eb0ff; }
.ap-cta2__sub { margin: 0; max-width: 520px; font-size: 15px; line-height: 1.6; color: rgba(255, 255, 255, .75); }
.ap-cta2__feats { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 26px; padding: 0; }
.ap-cta2__feats li {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 9px 15px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .12);
    font-size: 13px;
    font-weight: 600;
    opacity: 0;
    transform: translateY(10px);
}
.ap-cta2__feats li i { color: #7eb0ff; font-size: 13px; }
.ap-reveal.is-visible .ap-cta2__feats li { animation: apCtaFeatIn .5s ease forwards; animation-delay: calc(.35s + var(--i, 0) * .13s); }
@keyframes apCtaFeatIn { to { opacity: 1; transform: none; } }
.ap-cta2__actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.ap-cta2__btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 11px;
    border: none;
    cursor: pointer;
    padding: 16px 30px;
    border-radius: 14px;
    background: var(--ap-accent);
    color: var(--ap-dark);
    font-size: 16px;
    font-weight: 700;
    overflow: hidden;
    transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.ap-cta2__btn:hover { background: var(--ap-accent-dark); color: var(--ap-dark); transform: translateY(-2px); box-shadow: 0 14px 34px rgba(10, 186, 181, .3); }
.ap-cta2__btn i { transition: transform .2s ease; }
.ap-cta2__btn:hover i { transform: translateX(4px); }
.ap-cta2__btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: -80%;
    width: 55%;
    height: 100%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .28), transparent);
    transform: skewX(-20deg);
    transition: left .55s ease;
}
.ap-cta2__btn:hover::after { left: 130%; }
.ap-cta2__phone { display: inline-flex; align-items: center; gap: 9px; color: #fff; font-size: 16px; font-weight: 700; text-decoration: none; opacity: .9; }
.ap-cta2__phone:hover { opacity: 1; color: #7eb0ff; }
.ap-cta2__phone i { font-size: 14px; color: #7eb0ff; }
/* мини-превью PDF */
.ap-cta2__doc { position: relative; justify-self: center; cursor: pointer; animation: apCtaDocFloat 6s ease-in-out infinite; }
@keyframes apCtaDocFloat { 0%, 100% { transform: translateY(0) rotate(4deg); } 50% { transform: translateY(-10px) rotate(4deg); } }
.ap-cta2__doc:hover { animation-play-state: paused; }
.ap-cta2__page {
    display: flex;
    flex-direction: column;
    width: 218px;
    height: 154px;
    padding: 18px 20px;
    border-radius: 12px;
    background: linear-gradient(135deg, #22355a 0%, #14203a 60%, #0b1524 100%);
    border: 1px solid rgba(126, 176, 255, .3);
    box-shadow: 0 30px 60px rgba(0, 0, 0, .45), 0 6px 18px rgba(0, 0, 0, .3);
    transition: transform .3s ease, box-shadow .3s ease;
}
.ap-cta2__doc:hover .ap-cta2__page { transform: rotate(-4deg) scale(1.05); box-shadow: 0 40px 80px rgba(0, 0, 0, .55), 0 0 0 3px rgba(126, 176, 255, .25); }
.ap-cta2__page-brand { font-size: 9px; font-weight: 800; letter-spacing: .28em; color: #7eb0ff; }
.ap-cta2__page-kicker { margin-top: 10px; font-size: 6.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .4); }
.ap-cta2__page-title { font-size: 34px; font-weight: 800; letter-spacing: -.01em; line-height: 1; margin-top: 2px; }
.ap-cta2__page-year { font-size: 9px; font-weight: 700; letter-spacing: .3em; color: rgba(255, 255, 255, .45); text-transform: uppercase; margin-top: 3px; }
.ap-cta2__page-lines { display: flex; flex-direction: column; gap: 4px; margin-top: auto; }
.ap-cta2__page-lines i { display: block; height: 3px; border-radius: 2px; background: rgba(255, 255, 255, .14); }
.ap-cta2__page-lines i:nth-child(2) { width: 72%; }
.ap-cta2__page-lines i:nth-child(3) { width: 46%; }
.ap-cta2__doc-badge {
    position: absolute;
    left: 50%;
    bottom: -16px;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
    padding: 8px 14px;
    border-radius: 999px;
    background: #fff;
    color: var(--ap-ink, #14203a);
    font-size: 11.5px;
    font-weight: 700;
    box-shadow: 0 10px 26px rgba(0, 0, 0, .35);
}
.ap-cta2__doc-badge i { color: #c0392b; font-size: 13px; }
@media (max-width: 900px) {
    .ap-cta2 { grid-template-columns: 1fr; padding: 36px 26px 56px; gap: 34px; }
    .ap-cta2__doc { justify-self: start; margin-left: 8px; }
}
@media (prefers-reduced-motion: reduce) {
    .ap-cta2__glow, .ap-cta2__doc, .ap-cta2__badge::before { animation: none !important; }
    .ap-cta2__feats li { opacity: 1; transform: none; }
}

/* ── брендированная упаковка: полноэкранная scroll-сцена ── */
.ap-brand-section {
    width: 100vw;
    max-width: none;
    margin-inline: calc(50% - 50vw);
    padding: clamp(28px, 5vw, 72px) 0;
    overflow: clip;
}
.ap-brand {
    --ap-brand-y: 0px;
    --ap-brand-scale: 1.065;
    --ap-brand-flare: 0px;
    --ap-brand-bars: 1;
    --ap-brand-vignette: .24;
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    height: min(860px, 84svh);
    min-height: 680px;
    overflow: hidden;
    isolation: isolate;
    background: #087bd0;
    color: #fff;
}
.ap-brand__media,
.ap-brand__shade,
.ap-brand__flare { position: absolute; inset: 0; pointer-events: none; }
.ap-brand__media { z-index: 0; overflow: hidden; }
.ap-brand__media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center 56%;
    transform: translate3d(0, var(--ap-brand-y), 0) scale(var(--ap-brand-scale));
    transform-origin: 50% 58%;
    will-change: auto;
}
.ap-brand__shade {
    z-index: 1;
    background:
        linear-gradient(270deg, rgba(3, 21, 45, .96) 0%, rgba(3, 28, 57, .83) 30%, rgba(4, 41, 77, .24) 59%, transparent 74%),
        linear-gradient(0deg, rgba(2, 15, 34, var(--ap-brand-vignette)) 0%, transparent 42%),
        linear-gradient(180deg, rgba(1, 14, 31, .14), transparent 26%);
}
.ap-brand__flare {
    z-index: 2;
    left: -32%;
    right: auto;
    width: 32%;
    background: linear-gradient(100deg, transparent 8%, rgba(126, 211, 255, .03) 32%, rgba(214, 241, 255, .19) 51%, rgba(116, 200, 255, .025) 69%, transparent 92%);
    filter: blur(14px);
    transform: translate3d(var(--ap-brand-flare), 0, 0) skewX(-12deg);
    mix-blend-mode: screen;
    will-change: transform;
}
.ap-brand::after {
    content: '';
    position: absolute;
    z-index: 3;
    inset: 0;
    pointer-events: none;
    opacity: .055;
    background:
        repeating-linear-gradient(0deg, rgba(255,255,255,.2) 0, rgba(255,255,255,.2) 1px, transparent 1px, transparent 3px),
        repeating-linear-gradient(90deg, transparent 0, transparent 5px, rgba(0,20,45,.18) 6px);
    mix-blend-mode: soft-light;
}
.ap-brand__letterbox {
    position: absolute;
    left: 0;
    right: 0;
    z-index: 6;
    height: clamp(14px, 2.2vw, 34px);
    background: #020a13;
    transform: scaleY(var(--ap-brand-bars));
    pointer-events: none;
    will-change: transform;
}
.ap-brand__letterbox--top { top: 0; transform-origin: top; }
.ap-brand__letterbox--bottom { bottom: 0; transform-origin: bottom; }
.ap-brand.is-scrolling .ap-brand__media img,
.ap-brand.is-scrolling .ap-brand__flare,
.ap-brand.is-scrolling .ap-brand__letterbox { will-change: transform; }
.ap-brand__content {
    position: relative;
    z-index: 5;
    width: min(430px, 32vw);
    margin-left: auto;
    margin-right: clamp(34px, 5vw, 104px);
    padding: 38px 0;
}
.ap-brand__kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(255,255,255,.82);
}
.ap-brand__kicker i { width: 26px; height: 1px; background: #fff; }
.ap-brand__title {
    max-width: 430px;
    margin: 0;
    font-family: var(--ap-display, 'Oswald', sans-serif);
    font-size: clamp(42px, 3.35vw, 60px);
    font-weight: 600;
    line-height: 1.02;
    letter-spacing: -.025em;
    text-transform: uppercase;
    text-wrap: balance;
}
.ap-brand__text {
    max-width: 430px;
    margin: 20px 0 22px;
    color: rgba(255,255,255,.82);
    font-size: 15px;
    line-height: 1.65;
}
.ap-brand__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 26px; }
.ap-brand__facts span {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    padding: 10px 11px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 12px;
    background: rgba(5, 27, 54, .24);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: rgba(255,255,255,.66);
    font-size: 10.5px;
    line-height: 1.25;
}
.ap-brand__facts b { color: #fff; font-size: 15px; line-height: 1.2; }
.ap-brand__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 52px;
    padding: 0 24px;
    border: 0;
    border-radius: 13px;
    background: #fff;
    color: #073b71;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease;
}
.ap-brand__button:hover { transform: translateY(-2px); background: #edf7ff; }
.ap-brand__button i { transition: transform .2s ease; }
.ap-brand__button:hover i { transform: translateX(4px); }
.ap-brand__number {
    position: absolute;
    z-index: 5;
    left: clamp(24px, 3.5vw, 68px);
    top: clamp(24px, 3.5vw, 54px);
    color: rgba(255,255,255,.62);
    font: 700 10px/1 var(--ap-font);
    letter-spacing: .16em;
}
.ap-brand__scroll {
    position: absolute;
    z-index: 5;
    left: clamp(24px, 3.5vw, 68px);
    bottom: clamp(24px, 3.5vw, 50px);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: rgba(255,255,255,.58);
    font: 700 9px/1 var(--ap-font);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.ap-brand__scroll i { display: block; width: 44px; height: 1px; background: currentColor; }

/* Вход сцены: короткий reveal; дальнейшее движение задаёт прогресс скролла. */
.ap-brand.is-cinema-ready .ap-brand__content > * {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition: opacity .5s ease, transform .62s cubic-bezier(.2,.75,.25,1);
}
.ap-brand.is-cinema-ready.is-inview .ap-brand__content > * { opacity: 1; transform: none; }
.ap-brand.is-cinema-ready.is-inview .ap-brand__content > :nth-child(2) { transition-delay: .07s; }
.ap-brand.is-cinema-ready.is-inview .ap-brand__content > :nth-child(3) { transition-delay: .13s; }
.ap-brand.is-cinema-ready.is-inview .ap-brand__content > :nth-child(4) { transition-delay: .19s; }
.ap-brand.is-cinema-ready.is-inview .ap-brand__content > :nth-child(5) { transition-delay: .25s; }

/* На планшетах и телефонах фото и текст — отдельные кадры: композиция ничем не перекрыта. */
@media (max-width: 1700px) {
    .ap-brand { display: block; height: auto; min-height: 0; background: #061b34; }
    .ap-brand__media {
        position: relative;
        inset: auto;
        width: 100%;
        height: min(66.667vw, 760px);
    }
    .ap-brand__media img { object-position: center bottom; }
    .ap-brand__shade { display: none; }
    .ap-brand__flare { bottom: auto; height: min(66.667vw, 760px); }
    .ap-brand__content {
        width: auto;
        max-width: 720px;
        margin: 0 auto;
        padding: 44px clamp(24px, 6vw, 56px) 52px;
    }
    .ap-brand__title { max-width: 650px; font-size: clamp(42px, 7vw, 60px); }
    .ap-brand__text { max-width: 650px; }
    .ap-brand__number { color: rgba(255,255,255,.82); text-shadow: 0 1px 8px rgba(0,0,0,.35); }
    .ap-brand__scroll { display: none; }
}
@media (max-width: 640px) {
    .ap-brand-section { padding: 24px 0 44px; }
    .ap-brand__content { padding: 30px 20px 38px; }
    .ap-brand__title { font-size: clamp(34px, 10vw, 45px); }
    .ap-brand__text { margin: 16px 0 18px; font-size: 14px; }
    .ap-brand__facts { gap: 7px; }
    .ap-brand__facts span { padding: 9px 8px; font-size: 9px; }
    .ap-brand__facts b { font-size: 12.5px; }
    .ap-brand__button { width: 100%; }
    .ap-brand__number { top: 18px; left: 18px; }
}
@media (max-width: 420px) {
    .ap-brand__facts { grid-template-columns: 1fr; }
    .ap-brand__facts span { flex-direction: row; align-items: baseline; gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
    .ap-brand__media img { transform: none; will-change: auto; }
    .ap-brand__flare { display: none; }
    .ap-brand__letterbox { transform: scaleY(0); }
    .ap-brand.is-cinema-ready .ap-brand__content > * {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ── Scroll World: второй вариант презентации печатных проектов ── */
.ap-world-section {
    --ap-world-progress: 0;
    --ap-world-scale: 1.015;
    --ap-world-x: -1.5%;
    --ap-world-y: 1.2%;
    --ap-world-glow: .14;
    position: relative;
    width: 100vw;
    max-width: none;
    height: 280svh;
    margin-top: 50px;
    margin-inline: calc(50% - 50vw);
    background: #041326;
}
.ap-world {
    position: sticky;
    top: 0;
    display: grid;
    grid-template-columns: minmax(380px, 32vw) minmax(0, 1fr);
    width: 100%;
    height: 100svh;
    min-height: 680px;
    overflow: hidden;
    isolation: isolate;
    background: #041326;
    color: #fff;
}
.ap-world__progress { position: absolute; z-index: 20; top: 0; left: 0; width: 100%; height: 3px; background: rgba(255,255,255,.13); pointer-events: none; }
.ap-world__progress i { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, #43b7ff, #fff); transform: scaleX(var(--ap-world-progress)); transform-origin: left center; }
.ap-world__story {
    position: relative;
    z-index: 5;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: clamp(40px, 6vh, 72px) clamp(30px, 4vw, 74px);
    background: radial-gradient(circle at 18% 18%, rgba(25,115,196,.24), transparent 34%), linear-gradient(145deg, #061d39 0%, #03101f 72%);
    border-right: 1px solid rgba(255,255,255,.12);
}
.ap-world__story::after { content: ''; position: absolute; right: -1px; top: 0; bottom: 0; width: 84px; background: linear-gradient(90deg, rgba(3,16,31,.35), transparent); transform: translateX(100%); pointer-events: none; }
.ap-world__variant { display: block; color: rgba(255,255,255,.52); font-size: 10px; font-weight: 800; letter-spacing: .19em; text-transform: uppercase; }
.ap-world__chapters { position: relative; flex: 1; min-height: 390px; }
.ap-world__chapter {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, 28px, 0);
    transition: opacity .42s ease, transform .52s cubic-bezier(.2,.72,.2,1), visibility .42s;
    pointer-events: none;
}
.ap-world__chapter.is-active { opacity: 1; visibility: visible; transform: translate3d(0, -50%, 0); pointer-events: auto; }
.ap-world__eyebrow { display: block; margin-bottom: 18px; color: #68c4ff; font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.ap-world__title {
    max-width: 520px;
    margin: 0;
    font-family: var(--ap-display, 'Oswald', sans-serif);
    font-size: clamp(42px, 4vw, 72px);
    font-weight: 600;
    line-height: .98;
    letter-spacing: -.025em;
    text-transform: uppercase;
    text-wrap: balance;
}
.ap-world__chapter p { max-width: 460px; margin: 24px 0 0; color: rgba(255,255,255,.7); font-size: clamp(14px, 1.1vw, 17px); line-height: 1.65; }
.ap-world__hint { display: inline-flex; align-items: center; gap: 11px; margin-top: 30px; color: rgba(255,255,255,.48); font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.ap-world__hint i { width: 42px; height: 1px; background: currentColor; }
.ap-world__tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 25px; }
.ap-world__tags span { padding: 8px 12px; border: 1px solid rgba(255,255,255,.17); border-radius: 999px; color: rgba(255,255,255,.76); font-size: 11px; font-weight: 700; }
.ap-world__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 24px; }
.ap-world__facts span { display: flex; flex-direction: column; gap: 2px; padding: 11px 12px; border: 1px solid rgba(255,255,255,.17); border-radius: 12px; color: rgba(255,255,255,.56); font-size: 10px; }
.ap-world__facts b { color: #fff; font-size: 15px; }
.ap-world__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 52px;
    margin-top: 22px;
    padding: 0 23px;
    border: 0;
    border-radius: 13px;
    background: #fff;
    color: #073b71;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease;
}
.ap-world__button:hover { transform: translateY(-2px); background: #e9f6ff; }
.ap-world__button:focus-visible, .ap-world__nav button:focus-visible { outline: 3px solid #68c4ff; outline-offset: 3px; }
.ap-world__nav { display: grid; gap: 4px; }
.ap-world__nav button {
    display: grid;
    grid-template-columns: 18px 1fr;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    padding: 0;
    border: 0;
    background: transparent;
    color: rgba(255,255,255,.38);
    font: 700 10px/1 var(--ap-font);
    letter-spacing: .13em;
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
    transition: color .25s ease;
}
.ap-world__nav button i { width: 6px; height: 6px; border: 1px solid currentColor; border-radius: 50%; transition: background .25s, transform .25s; }
.ap-world__nav button.is-active { color: #fff; }
.ap-world__nav button.is-active i { background: #68c4ff; border-color: #68c4ff; transform: scale(1.35); }
.ap-world__visual { position: relative; min-width: 0; overflow: hidden; background: #0786dc; }
.ap-world__camera { position: absolute; inset: -5%; overflow: hidden; }
.ap-world__camera img {
    width: 110%;
    height: 110%;
    display: block;
    object-fit: cover;
    object-position: center 57%;
    transform: translate3d(var(--ap-world-x), var(--ap-world-y), 0) scale(var(--ap-world-scale));
    transform-origin: 54% 57%;
}
.ap-world.is-moving .ap-world__camera img, .ap-world.is-moving .ap-world__atmosphere { will-change: transform, opacity; }
.ap-world__atmosphere {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at 52% 49%, rgba(255,255,255,var(--ap-world-glow)) 0, transparent 23%), linear-gradient(115deg, rgba(5,27,56,.42) 0, transparent 32%, rgba(91,195,255,.12) 62%, transparent 80%), linear-gradient(0deg, rgba(2,16,34,.35), transparent 24%, transparent 78%, rgba(2,16,34,.18));
    mix-blend-mode: soft-light;
}
.ap-world__visual::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .06; background: repeating-linear-gradient(0deg, rgba(255,255,255,.18) 0 1px, transparent 1px 4px); mix-blend-mode: soft-light; }
.ap-world__focus {
    position: absolute;
    z-index: 2;
    left: 55%;
    top: 49%;
    width: clamp(130px, 17vw, 260px);
    aspect-ratio: 1;
    opacity: calc(.12 + var(--ap-world-progress) * .36);
    transform: translate(-50%, -50%) rotate(calc(var(--ap-world-progress) * 35deg));
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 50%;
    pointer-events: none;
}
.ap-world__focus::before, .ap-world__focus::after { content: ''; position: absolute; background: rgba(255,255,255,.45); }
.ap-world__focus::before { left: 50%; top: -14px; width: 1px; height: calc(100% + 28px); }
.ap-world__focus::after { top: 50%; left: -14px; height: 1px; width: calc(100% + 28px); }
.ap-world__focus i { position: absolute; width: 18px; height: 18px; border-color: rgba(255,255,255,.74); border-style: solid; }
.ap-world__focus i:nth-child(1) { top: 12px; left: 12px; border-width: 1px 0 0 1px; }
.ap-world__focus i:nth-child(2) { top: 12px; right: 12px; border-width: 1px 1px 0 0; }
.ap-world__focus i:nth-child(3) { bottom: 12px; right: 12px; border-width: 0 1px 1px 0; }
.ap-world__focus i:nth-child(4) { bottom: 12px; left: 12px; border-width: 0 0 1px 1px; }
.ap-world__caption, .ap-world__counter {
    position: absolute;
    z-index: 3;
    bottom: clamp(28px, 4vw, 60px);
    color: rgba(255,255,255,.68);
    font: 800 9px/1 var(--ap-font);
    letter-spacing: .16em;
    text-transform: uppercase;
    text-shadow: 0 1px 10px rgba(0,24,54,.35);
}
.ap-world__caption { left: clamp(24px, 3vw, 54px); }
.ap-world__counter { right: clamp(24px, 3vw, 54px); }
.ap-world__counter b { color: #fff; font-size: 18px; }
@media (max-width: 1280px) {
    .ap-world { grid-template-columns: minmax(350px, 38vw) minmax(0, 1fr); }
    .ap-world__story { padding-inline: clamp(26px, 3vw, 44px); }
    .ap-world__title { font-size: clamp(38px, 4.4vw, 58px); }
}
@media (max-width: 980px) {
    .ap-world-section { height: auto; padding: 28px 0 50px; }
    .ap-world { position: relative; top: auto; display: flex; flex-direction: column; height: auto; min-height: 0; }
    .ap-world__progress, .ap-world__nav, .ap-world__focus { display: none; }
    .ap-world__visual { order: 1; width: 100%; height: min(66.667vw, 640px); }
    .ap-world__camera { inset: 0; }
    .ap-world__camera img { width: 100%; height: 100%; object-position: center bottom; transform: none; }
    .ap-world__story { order: 2; min-height: 0; padding: 40px clamp(22px, 7vw, 64px) 48px; border: 0; }
    .ap-world__chapters { min-height: 0; margin-top: 38px; }
    .ap-world__chapter { display: none; position: relative; top: auto; transform: none; }
    .ap-world__chapter.is-active { display: block; transform: none; }
    .ap-world__title { max-width: 720px; font-size: clamp(40px, 8vw, 64px); }
    .ap-world__chapter p { max-width: 680px; }
}
@media (max-width: 560px) {
    .ap-world-section { padding-top: 20px; }
    .ap-world__story { padding: 30px 20px 38px; }
    .ap-world__variant { font-size: 9px; }
    .ap-world__chapters { margin-top: 30px; }
    .ap-world__title { font-size: clamp(34px, 10vw, 46px); }
    .ap-world__chapter p { margin-top: 17px; font-size: 14px; }
    .ap-world__facts { grid-template-columns: 1fr; }
    .ap-world__facts span { flex-direction: row; align-items: baseline; gap: 7px; }
    .ap-world__button { width: 100%; }
    .ap-world__caption { bottom: 18px; left: 18px; }
    .ap-world__counter { right: 18px; bottom: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .ap-world-section { height: auto; padding-block: 28px 50px; }
    .ap-world { position: relative; top: auto; height: auto; min-height: 680px; }
    .ap-world__progress, .ap-world__nav, .ap-world__focus { display: none; }
    .ap-world__camera img { transform: none; }
    .ap-world__chapter { transition: none; }
}

/* ── 3D Lab: третий вариант презентации на реальной GLB-модели ── */
.ap-lab-section {
    position: relative;
    width: 100vw;
    max-width: none;
    height: 320svh;
    margin-inline: calc(50% - 50vw);
    background: #020914;
}
.ap-lab {
    --ap-lab-progress: 0;
    --ap-lab-pointer-x: 0px;
    --ap-lab-pointer-y: 0px;
    --ap-lab-spin: 0deg;
    --ap-lab-scan-y: -115%;
    --ap-lab-depth: -42px;
    --ap-lab-depth-neg: 42px;
    --ap-lab-depth-near: -23px;
    --ap-lab-zip-x: 28px;
    --ap-lab-body-x: 0px;
    --ap-lab-progress-pct: 0%;
    position: sticky;
    top: 0;
    display: grid;
    grid-template-columns: minmax(520px, 40vw) minmax(0, 1fr);
    width: 100%;
    height: 100svh;
    min-height: 700px;
    overflow: hidden;
    isolation: isolate;
    color: #f7fbff;
    background: #020914;
}
.ap-lab::before {
    content: '';
    position: absolute;
    z-index: 20;
    inset: 0;
    pointer-events: none;
    box-shadow: inset 0 0 140px rgba(0,0,0,.7);
}
.ap-lab__story {
    position: relative;
    z-index: 8;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: clamp(38px, 5.5vh, 66px) clamp(34px, 5vw, 92px);
    border-right: 1px solid rgba(115,193,255,.16);
    background:
        radial-gradient(circle at 14% 12%, rgba(0,118,218,.2), transparent 30%),
        linear-gradient(145deg, rgba(4,25,49,.98), rgba(2,9,20,.99) 72%);
}
.ap-lab__story::after {
    content: '';
    position: absolute;
    right: -70px;
    top: 0;
    bottom: 0;
    width: 70px;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(2,9,20,.46), transparent);
}
.ap-lab__topline { display: flex; justify-content: space-between; gap: 16px; color: rgba(255,255,255,.45); font-size: 9px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.ap-lab__live { display: inline-flex; align-items: center; gap: 7px; }
.ap-lab__live i { width: 6px; height: 6px; border-radius: 50%; background: #58d7ff; box-shadow: 0 0 0 5px rgba(88,215,255,.08), 0 0 18px #58d7ff; }
.ap-lab__chapters { position: relative; flex: 1; min-height: 430px; }
.ap-lab__chapter {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, 34px, 0);
    transition: opacity .38s ease, transform .56s cubic-bezier(.17,.75,.2,1), visibility .38s;
    pointer-events: none;
}
.ap-lab__chapter.is-active { opacity: 1; visibility: visible; transform: translate3d(0, -50%, 0); pointer-events: auto; }
.ap-lab__eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 20px; color: #58d7ff; font-size: 10px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.ap-lab__eyebrow::before { content: ''; width: 28px; height: 1px; background: currentColor; box-shadow: 0 0 9px currentColor; }
.ap-lab__title {
    max-width: 610px;
    margin: 0;
    font-family: var(--ap-display, 'Oswald', sans-serif);
    font-size: clamp(48px, 4.4vw, 80px);
    font-weight: 600;
    line-height: .97;
    letter-spacing: -.03em;
    text-transform: uppercase;
    text-wrap: balance;
}
.ap-lab__chapter p { max-width: 520px; margin: 24px 0 0; color: rgba(226,239,252,.68); font-size: clamp(14px, 1vw, 17px); line-height: 1.65; }
.ap-lab__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.ap-lab__chips span { padding: 8px 12px; border: 1px solid rgba(88,215,255,.22); border-radius: 999px; background: rgba(34,145,220,.06); color: rgba(229,245,255,.74); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.ap-lab__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 24px; }
.ap-lab__facts span { display: flex; flex-direction: column; gap: 3px; padding: 11px 13px; border: 1px solid rgba(88,215,255,.2); border-radius: 12px; background: rgba(21,101,157,.06); color: rgba(226,239,252,.5); font-size: 10px; }
.ap-lab__facts b { color: #fff; font-size: 15px; }
.ap-lab__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 52px;
    margin-top: 22px;
    padding: 0 24px;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 13px;
    background: #f8fcff;
    color: #063d73;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 10px 40px rgba(23,145,230,.16);
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.ap-lab__button:hover { transform: translateY(-2px); background: #e8f7ff; box-shadow: 0 14px 48px rgba(23,145,230,.26); }
.ap-lab__button:focus-visible, .ap-lab__timeline button:focus-visible { outline: 3px solid #58d7ff; outline-offset: 3px; }
.ap-lab__more {
    display: inline-flex;
    min-height: 44px;
    margin: 22px 0 0 14px;
    align-items: center;
    gap: 8px;
    color: rgba(220, 239, 255, .72);
    font-size: 12px;
    font-weight: 750;
}
.ap-lab__more:hover { color: #fff; }
.ap-lab__more:focus-visible { outline: 3px solid #58d7ff; outline-offset: 3px; }
@media (max-width: 620px) {
    .ap-lab__more { margin-left: 0; }
}
.ap-lab__timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.ap-lab__timeline button { position: relative; min-height: 48px; padding: 18px 6px 0 0; border: 0; background: transparent; color: rgba(255,255,255,.34); font-size: 9px; font-weight: 800; letter-spacing: .14em; text-align: left; text-transform: uppercase; cursor: pointer; transition: color .22s ease; }
.ap-lab__timeline button::before { content: ''; position: absolute; left: 0; right: 5px; top: 7px; height: 1px; background: rgba(255,255,255,.14); }
.ap-lab__timeline button i { position: absolute; z-index: 1; left: 0; top: 3px; width: 9px; height: 9px; border: 1px solid currentColor; border-radius: 50%; background: #041329; transition: background .22s, box-shadow .22s, transform .22s; }
.ap-lab__timeline button.is-active { color: #fff; }
.ap-lab__timeline button.is-active i { background: #58d7ff; border-color: #58d7ff; box-shadow: 0 0 16px rgba(88,215,255,.75); transform: scale(1.25); }

.ap-lab__stage {
    position: relative;
    min-width: 0;
    overflow: hidden;
    perspective: 1100px;
    background:
        radial-gradient(circle at 52% 43%, rgba(15,133,218,.34), transparent 25%),
        radial-gradient(circle at 72% 18%, rgba(95,46,205,.16), transparent 31%),
        linear-gradient(135deg, #041a34, #020916 62%, #071327);
}
.ap-lab__stage::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: .24;
    pointer-events: none;
    background-image: linear-gradient(rgba(90,205,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(90,205,255,.12) 1px, transparent 1px);
    background-size: 54px 54px;
    transform: perspective(700px) rotateX(66deg) scale(1.5) translateY(22%);
    transform-origin: center bottom;
    mask-image: linear-gradient(to bottom, transparent 4%, #000 45%, #000);
}
.ap-lab__stage::after { content: ''; position: absolute; z-index: 7; inset: 0; pointer-events: none; opacity: .06; background: repeating-linear-gradient(0deg, rgba(255,255,255,.22) 0 1px, transparent 1px 4px); mix-blend-mode: soft-light; }
.ap-lab__depth { position: absolute; inset: 0; transform-style: preserve-3d; transform: translate3d(var(--ap-lab-pointer-x), var(--ap-lab-pointer-y), 0); transition: transform .24s ease-out; }
.ap-lab__plane { position: absolute; display: block; border: 1px solid rgba(92,212,255,.12); background: linear-gradient(135deg, rgba(42,155,231,.035), transparent 52%); box-shadow: inset 0 0 40px rgba(31,144,219,.035); }
.ap-lab__plane--1 { width: 44%; height: 32%; right: 8%; top: 9%; transform: translateZ(var(--ap-lab-depth)) rotateY(-13deg) rotateX(5deg); }
.ap-lab__plane--2 { width: 35%; height: 25%; left: 7%; bottom: 12%; transform: translateZ(var(--ap-lab-depth-neg)) rotateY(15deg) rotateX(-7deg); }
.ap-lab__plane--3 { width: 21%; aspect-ratio: 1; right: 13%; bottom: 10%; border-radius: 50%; transform: translateZ(var(--ap-lab-depth-near)); }
.ap-lab__orbit { position: absolute; z-index: 2; left: 52%; top: 50%; aspect-ratio: 1; border: 1px solid rgba(88,215,255,.22); border-radius: 50%; transform-style: preserve-3d; pointer-events: none; }
.ap-lab__orbit--outer { width: min(68vw, 730px); transform: translate(-50%, -50%) rotateX(68deg) rotateZ(var(--ap-lab-spin)); }
.ap-lab__orbit--inner { width: min(48vw, 510px); transform: translate(-50%, -50%) rotateY(68deg) rotateZ(calc(var(--ap-lab-spin) * -.72)); border-color: rgba(156,119,255,.21); }
.ap-lab__orbit i { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: #58d7ff; box-shadow: 0 0 18px #58d7ff; }
.ap-lab__orbit i:nth-child(1) { top: -4px; left: 50%; }
.ap-lab__orbit i:nth-child(2) { right: 10%; bottom: 17%; width: 5px; height: 5px; }
.ap-lab__orbit i:nth-child(3) { left: 8%; bottom: 20%; width: 4px; height: 4px; background: #a985ff; box-shadow: 0 0 15px #a985ff; }
.ap-lab__model-wrap {
    position: absolute;
    z-index: 4;
    left: 52%;
    top: 50%;
    width: min(45vw, 610px);
    height: min(76vh, 720px);
    min-height: 520px;
    transform: translate(calc(-50% + var(--ap-lab-pointer-x)), calc(-50% + var(--ap-lab-pointer-y)));
    transition: transform .25s ease-out;
}
.ap-lab__model { width: 100%; height: 100%; display: block; background: transparent; --poster-color: transparent; --progress-bar-color: transparent; filter: drop-shadow(0 34px 40px rgba(0,0,0,.42)); }
.ap-lab__model::part(default-progress-bar), .ap-lab__model::part(default-progress-mask) { display: none; }
.ap-lab__model::part(default-poster) { background: transparent; border: 0; transition: opacity .45s ease; }
.ap-lab__loader { display: grid; place-items: center; width: 100%; height: 100%; }
.ap-lab__loader span { width: 58px; height: 58px; border: 1px solid rgba(88,215,255,.28); border-top-color: #58d7ff; border-radius: 50%; box-shadow: 0 0 24px rgba(88,215,255,.18); animation: ap-lab-loader .8s linear infinite; }
@keyframes ap-lab-loader { to { transform: rotate(360deg); } }
.ap-lab__aura { position: absolute; z-index: -1; left: 50%; top: 48%; width: 72%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(47,177,255,.24), rgba(58,88,231,.08) 46%, transparent 70%); filter: blur(22px); opacity: calc(.56 + var(--ap-lab-progress) * .35); }
.ap-lab__scan { position: absolute; z-index: 4; left: 15%; right: 15%; top: 50%; height: 2px; transform: translateY(var(--ap-lab-scan-y)); background: linear-gradient(90deg, transparent, rgba(100,224,255,.9), transparent); box-shadow: 0 0 24px rgba(100,224,255,.9), 0 0 70px rgba(54,161,239,.45); opacity: .78; pointer-events: none; }
.ap-lab__scan::after { content: ''; position: absolute; left: 10%; right: 10%; top: 0; height: 90px; transform: translateY(-100%); background: linear-gradient(0deg, rgba(69,189,255,.08), transparent); }
.ap-lab__callout { position: absolute; z-index: 6; display: flex; align-items: center; gap: 8px; color: rgba(220,239,252,.48); font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; pointer-events: none; transition: opacity .3s ease, transform .4s ease; }
.ap-lab__callout b { color: #dff5ff; font-size: 9px; }
.ap-lab__callout i { display: block; width: 48px; height: 1px; background: linear-gradient(90deg, transparent, #58d7ff); box-shadow: 0 0 7px rgba(88,215,255,.55); }
.ap-lab__callout--zip { top: 22%; right: 7%; transform: translateX(var(--ap-lab-zip-x)); }
.ap-lab__callout--body { left: 5%; top: 51%; flex-direction: row-reverse; transform: translateX(var(--ap-lab-body-x)); }
.ap-lab__callout--body i { background: linear-gradient(90deg, #58d7ff, transparent); }
.ap-lab__callout--print { right: 8%; bottom: 22%; }
.ap-lab__axis { position: absolute; z-index: 6; color: rgba(201,229,249,.32); font-size: 8px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; pointer-events: none; }
.ap-lab__axis--x { left: 4%; top: 5%; }
.ap-lab__axis--y { right: 4%; top: 5%; writing-mode: vertical-rl; }
.ap-lab__step { position: absolute; z-index: 6; right: 5%; bottom: 6%; display: flex; align-items: center; gap: 8px; color: #fff; font: 700 18px/1 var(--ap-font); }
.ap-lab__step i { width: 68px; height: 1px; background: linear-gradient(90deg, #58d7ff var(--ap-lab-progress-pct), rgba(255,255,255,.17) 0); }
.ap-lab__step em { color: rgba(255,255,255,.35); font-size: 9px; font-style: normal; }
.ap-lab.is-lab-active .ap-lab__orbit--outer { animation: ap-lab-drift-a 16s linear infinite; }
.ap-lab.is-lab-active .ap-lab__orbit--inner { animation: ap-lab-drift-b 21s linear infinite reverse; }
@keyframes ap-lab-drift-a { to { transform: translate(-50%, -50%) rotateX(68deg) rotateZ(calc(var(--ap-lab-spin) + 360deg)); } }
@keyframes ap-lab-drift-b { to { transform: translate(-50%, -50%) rotateY(68deg) rotateZ(calc(var(--ap-lab-spin) - 360deg)); } }

@media (max-width: 1320px) {
    .ap-lab { grid-template-columns: minmax(430px, 42vw) minmax(0, 1fr); }
    .ap-lab__story { padding-inline: clamp(28px, 4vw, 54px); }
    .ap-lab__title { font-size: clamp(43px, 5vw, 68px); }
    .ap-lab__model-wrap { width: min(52vw, 560px); }
    .ap-lab__callout--body { display: none; }
}
@media (max-width: 980px) {
    .ap-lab-section { height: auto; padding: 28px 0 54px; }
    .ap-lab { position: relative; top: auto; display: flex; flex-direction: column; height: auto; min-height: 0; }
    .ap-lab__stage { order: 1; height: min(112vw, 660px); min-height: 430px; }
    .ap-lab__story { order: 2; min-height: 0; padding: 38px clamp(22px, 7vw, 64px) 48px; border: 0; }
    .ap-lab__chapters { min-height: 0; margin-top: 36px; }
    .ap-lab__chapter { display: none; position: relative; top: auto; transform: none; }
    .ap-lab__chapter.is-active { display: block; transform: none; }
    .ap-lab__timeline, .ap-lab__callout, .ap-lab__axis, .ap-lab__scan { display: none; }
    .ap-lab__model-wrap { width: min(78vw, 520px); height: 88%; min-height: 0; }
    .ap-lab__orbit--outer { width: min(105vw, 650px); }
    .ap-lab__orbit--inner { width: min(78vw, 470px); }
    .ap-lab__title { max-width: 720px; font-size: clamp(42px, 8vw, 66px); }
    .ap-lab__chapter p { max-width: 680px; }
}
@media (max-width: 560px) {
    .ap-lab-section { padding-top: 20px; }
    .ap-lab__stage { height: 108vw; min-height: 390px; }
    .ap-lab__story { padding: 30px 20px 38px; }
    .ap-lab__topline { font-size: 8px; }
    .ap-lab__live { display: none; }
    .ap-lab__chapters { margin-top: 30px; }
    .ap-lab__title { font-size: clamp(35px, 10.5vw, 47px); }
    .ap-lab__chapter p { margin-top: 18px; font-size: 14px; }
    .ap-lab__facts { grid-template-columns: 1fr; }
    .ap-lab__facts span { flex-direction: row; align-items: baseline; gap: 7px; }
    .ap-lab__button { width: 100%; }
    .ap-lab__step { right: 18px; bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .ap-lab-section { height: auto; padding: 28px 0 54px; }
    .ap-lab { position: relative; top: auto; height: auto; min-height: 700px; }
    .ap-lab__orbit, .ap-lab__loader span { animation: none !important; }
    .ap-lab__scan { display: none; }
    .ap-lab__chapter { transition: none; }
}

/* ── новости на главной: свайп-слайдер карточек ── */
.ap-news-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 26px; }
.ap-news-head .ap-section__title { margin: 0; }
.ap-news-nav { display: flex; align-items: center; gap: 10px; }
.ap-news-all { margin-right: 8px; color: var(--ap-accent, #0052b1); font-weight: 700; font-size: 14.5px; text-decoration: none; }
.ap-news-all:hover { text-decoration: underline; }
.ap-news-arr {
    width: 44px;
    height: 44px;
    border: 1px solid #dfe6f0;
    border-radius: 50%;
    background: #fff;
    color: var(--ap-ink, #14203a);
    font-size: 15px;
    cursor: pointer;
    transition: background .18s, color .18s, border-color .18s, transform .18s;
}
.ap-news-arr:hover { background: var(--ap-accent, #0052b1); border-color: var(--ap-accent, #0052b1); color: #fff; transform: translateY(-2px); }
.ap-news__track {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding: 4px 4px 22px;
    margin: -4px -4px 0;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
}
.ap-news__track::-webkit-scrollbar { display: none; }
.ap-news__card {
    flex: 0 0 330px;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    text-decoration: none;
    border: 1px solid rgba(20, 32, 58, .07);
    box-shadow: none;
    transition: border-color .18s ease, background-color .18s ease;
}
.ap-news__card:hover { border-color: rgba(0, 82, 177, .28); background: #fbfdff; box-shadow: none; }
.ap-news__card:focus-visible { outline: 3px solid rgba(0, 82, 177, .34); outline-offset: 3px; }
.ap-news__img { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #eef2f8; }
.ap-news__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.ap-news__card:hover .ap-news__img img { transform: scale(1.02); }
.ap-news__img-ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #b9c6d8; font-size: 34px; background: linear-gradient(135deg, #1d2f4e, #0a1322); }
.ap-news__date {
    position: absolute;
    left: 12px;
    bottom: 12px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(10, 19, 34, .72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #fff;
    font-size: 11.5px;
    font-weight: 600;
}
.ap-news__body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; flex: 1 1 auto; }
.ap-news__title {
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    color: var(--ap-ink, #14203a);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color .18s;
}
.ap-news__card:hover .ap-news__title { color: var(--ap-accent, #0052b1); }
.ap-news__x { font-size: 13px; line-height: 1.55; color: #8a93a2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ap-news__more { margin-top: auto; padding-top: 6px; display: inline-flex; align-items: center; gap: 8px; color: var(--ap-accent, #0052b1); font-size: 13.5px; font-weight: 700; }
.ap-news__more i { transition: transform .2s ease; }
.ap-news__card:hover .ap-news__more i { transform: translateX(4px); }
@media (max-width: 640px) {
    .ap-news__card { flex-basis: 280px; }
    .ap-news-arr { display: none; }
}

/* ── «о компании в цифрах» (SEO-блок) ── */
.ap-about {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
    gap: 40px;
    padding: 40px 44px;
    background: var(--ap-surface, #fff);
    border-radius: calc(var(--ap-radius) + 8px);
    box-shadow: 0 2px 14px rgba(20, 32, 58, .05);
}
.ap-about__text { align-self: center; }
.ap-about__kicker {
    display: inline-block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--ap-accent, #0052b1);
    margin-bottom: 12px;
}
.ap-about__note { font-size: 15px; line-height: 1.7; color: var(--ap-ink-soft, #3d4756); }
.ap-about__stats { display: flex; flex-direction: column; justify-content: center; gap: 0; border-left: 1px solid #eef1f6; padding-left: 40px; }
.ap-about__stat { padding: 14px 0; opacity: 0; transform: translateY(10px); }
.ap-about__stat + .ap-about__stat { border-top: 1px solid #eef1f6; }
.ap-reveal.is-visible .ap-about__stat { animation: apCtaFeatIn .5s ease forwards; animation-delay: calc(.2s + var(--i, 0) * .15s); }
.ap-about__num { display: block; font-size: 30px; font-weight: 800; letter-spacing: -.01em; color: var(--ap-ink, #14203a); line-height: 1.1; }
.ap-about__num .ap-stat__num { color: var(--ap-accent, #0052b1); font-size: inherit; font-weight: inherit; }
/* «+» из героя тут не нужен — суффиксы в разметке */
.ap-about__num .ap-stat__num::after { content: none; }
.ap-about__lbl { display: block; margin-top: 3px; font-size: 12.5px; color: #8a93a2; line-height: 1.45; }
@media (max-width: 860px) {
    .ap-about { grid-template-columns: 1fr; padding: 28px 22px; gap: 22px; }
    .ap-about__stats { flex-direction: row; border-left: none; padding-left: 0; border-top: 1px solid #eef1f6; padding-top: 18px; gap: 18px; }
    .ap-about__stat { padding: 0; flex: 1 1 0; }
    .ap-about__stat + .ap-about__stat { border-top: none; border-left: 1px solid #eef1f6; padding-left: 16px; }
    .ap-about__num { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) { .ap-about__stat { opacity: 1; transform: none; animation: none !important; } }

/* CTA (старый блок — оставлен для совместимости) */
.ap-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
    padding: 44px 48px;
    background: linear-gradient(120deg, var(--ap-accent-dark), var(--ap-accent));
    color: #fff;
    border-radius: calc(var(--ap-radius) + 8px);
}
.ap-cta h2 { margin-bottom: 8px; font-size: clamp(22px, 2.6vw, 32px); }
.ap-cta p { margin: 0; opacity: .85; max-width: 480px; }
.ap-cta__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.ap-cta .ap-btn--accent { background: var(--ap-dark); }
.ap-cta .ap-btn--accent:hover { background: #000; box-shadow: none; }

/* ------------------------------------------------------------
   12f. Информационные страницы (О компании, Миссия, Работа, Контакты)
------------------------------------------------------------ */
.ap-page { max-width: 1060px; margin: 0 auto; }
.ap-info-lead {
    font-size: 19px;
    line-height: 1.6;
    color: var(--ap-ink);
    max-width: 800px;
    margin-bottom: 36px;
    margin-top: 16px;
}
.ap-info-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 0 0 36px;
}
.ap-info-stat {
    padding: 24px;
    background: var(--ap-dark);
    color: #fff;
    border-radius: var(--ap-radius);
}
.ap-info-stat strong {
    display: block;
    font-family: var(--ap-font-display);
    font-size: 36px;
    font-weight: 700;
    color: var(--ap-accent);
    line-height: 1.1;
}
.ap-info-stat span { font-size: 13px; opacity: .75; }

.ap-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin: 0 0 36px;
}
.ap-info-grid--4 { grid-template-columns: repeat(4, 1fr); }
.ap-info-card {
    padding: 26px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
    transition: transform var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-info-card:hover { transform: translateY(-3px); box-shadow: var(--ap-shadow-lg); }
.ap-info-card__num {
    display: block;
    font-family: var(--ap-font-display);
    font-size: 14px;
    font-weight: 600;
    color: var(--ap-accent);
    margin-bottom: 12px;
}
.ap-info-card h3 { font-size: 18px; margin-bottom: 8px; }
.ap-info-card p { margin: 0; font-size: 14px; color: var(--ap-ink-soft); }
.ap-info-card--accent { border-top: 3px solid var(--ap-accent); }

.ap-info-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    flex-wrap: wrap;
    margin: 44px 0 8px;
    padding: 38px 42px;
    background: var(--ap-dark);
    color: #fff;
    border-radius: calc(var(--ap-radius) + 6px);
}
.ap-info-banner h2 { color: #fff; margin-bottom: 6px; font-size: 24px; }
.ap-info-banner p { margin: 0; color: rgba(255, 255, 255, .7); }

.ap-info-quote {
    margin: 40px 0 40px;
    padding: 36px 42px;
    background: var(--ap-surface);
    border-left: 4px solid var(--ap-accent);
    border-radius: var(--ap-radius);
    font-size: 21px;
    line-height: 1.55;
    font-weight: 500;
    color: var(--ap-ink);
}

.ap-info-steps { display: flex; flex-direction: column; gap: 10px; margin-bottom: 36px; counter-reset: ainfo; }
.ap-info-step {
    display: flex;
    align-items: baseline;
    gap: 18px;
    padding: 18px 22px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius-sm);
    counter-increment: ainfo;
}
.ap-info-step::before {
    content: counter(ainfo, decimal-leading-zero);
    font-family: var(--ap-font-display);
    font-weight: 700;
    color: var(--ap-accent);
    flex-shrink: 0;
}
.ap-info-step strong { flex-shrink: 0; min-width: 150px; }
.ap-info-step span { color: var(--ap-ink-soft); font-size: 14.5px; }

.ap-vacancies { display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; }
.ap-vacancy {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    padding: 22px 26px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
    transition: transform var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-vacancy:hover { transform: translateY(-2px); box-shadow: var(--ap-shadow-lg); }
.ap-vacancy__info h3 { margin-bottom: 4px; font-size: 18px; }
.ap-vacancy__info p { margin: 0; font-size: 13.5px; color: var(--ap-ink-faint); }

.ap-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-bottom: 36px;
    margin-top: 16px;
}
.ap-contact-card {
    padding: 28px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
}
.ap-contact-card h3 { font-size: 16px; color: var(--ap-ink-faint); margin-bottom: 12px; }
.ap-contact-card__big {
    display: block;
    font-size: 21px;
    font-weight: 700;
    margin-bottom: 6px;
}
.ap-contact-card a { display: inline-block; margin-bottom: 6px; font-weight: 600; }
.ap-contact-card p { margin: 6px 0 0; font-size: 14px; color: var(--ap-ink-soft); }
.ap-info-requisites {
    padding: 22px 26px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius-sm);
    color: var(--ap-ink-soft);
    font-size: 14px;
}

/* Редакционный дизайн корпоративных страниц */
.ap-page--editorial {
    max-width: 1180px;
    padding-top: 20px;
}
.ap-infohero {
    position: relative;
    min-height: clamp(430px, 52vw, 600px);
    overflow: hidden;
    border-radius: 30px;
    background: #07152b;
    color: #fff;
    isolation: isolate;
}
.ap-infohero__media,
.ap-infohero__shade {
    position: absolute;
    inset: 0;
}
.ap-infohero__media {
    transform: scale(1.035);
    transition: transform 1.1s cubic-bezier(.2,.75,.25,1);
    will-change: transform;
}
.ap-infohero.is-visible .ap-infohero__media { transform: scale(1); }
.ap-infohero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: translate3d(var(--hero-x, 0), var(--hero-y, 0), 0) scale(1.035);
    transition: transform .7s cubic-bezier(.2,.75,.25,1);
    will-change: transform;
}
.ap-page--jobs .ap-infohero__media img { object-position: center 45%; }
.ap-page--contacts .ap-infohero__media img,
.ap-page--mission .ap-infohero__media img { object-position: center 52%; }
.ap-infohero__shade {
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(3,13,31,.92) 0%, rgba(3,13,31,.66) 42%, rgba(3,13,31,.08) 78%),
        linear-gradient(0deg, rgba(3,13,31,.55), transparent 45%);
}
.ap-infohero__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    width: min(650px, 72%);
    min-height: inherit;
    padding: clamp(34px, 6vw, 72px);
}
.ap-infohero__kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: #8abfff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.ap-infohero__kicker::before {
    content: "";
    width: 34px;
    height: 2px;
    background: currentColor;
}
.ap-infohero__title {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-family: var(--ap-font-display);
    font-size: clamp(48px, 7.4vw, 92px);
    line-height: .94;
    letter-spacing: -.025em;
    text-transform: uppercase;
    text-wrap: balance;
}
.ap-infohero__caption {
    max-width: 560px;
    margin: 24px 0 0;
    color: rgba(255,255,255,.76);
    font-size: clamp(15px, 1.6vw, 19px);
    line-height: 1.55;
}
.ap-infohero__index {
    position: absolute;
    z-index: 2;
    right: clamp(24px, 4vw, 52px);
    top: clamp(24px, 4vw, 48px);
    color: rgba(255,255,255,.28);
    font-family: var(--ap-font-display);
    font-size: 18px;
    letter-spacing: .12em;
}
.ap-info-content {
    margin-top: clamp(46px, 7vw, 82px);
}
.ap-info-content > h2 {
    margin: 64px 0 24px;
    font-family: var(--ap-font-display);
    font-size: clamp(30px, 4.2vw, 50px);
    line-height: 1;
    text-transform: uppercase;
}
.ap-info-content > .ap-reveal {
    transition-duration: .75s;
}
.ap-info-lead {
    position: relative;
    max-width: 920px;
    margin: 0 0 54px;
    padding-left: 42px;
    font-size: clamp(20px, 2.25vw, 28px);
    line-height: 1.48;
    font-weight: 500;
}
.ap-info-lead::before {
    content: "";
    position: absolute;
    left: 0;
    top: .25em;
    bottom: .2em;
    width: 5px;
    border-radius: 5px;
    background: var(--ap-accent);
}
.ap-info-stats {
    gap: 0;
    overflow: hidden;
    margin-bottom: 58px;
    border-radius: 24px;
    background: var(--ap-dark);
}
.ap-info-stat {
    position: relative;
    min-height: 176px;
    padding: 34px 28px;
    border-radius: 0;
    background: transparent;
}
.ap-info-stat + .ap-info-stat::before {
    content: "";
    position: absolute;
    left: 0;
    top: 30px;
    bottom: 30px;
    width: 1px;
    background: rgba(255,255,255,.13);
}
.ap-info-stat strong {
    margin-bottom: 20px;
    color: #fff;
    font-size: clamp(42px, 5vw, 64px);
    transition: color .25s ease, transform .25s ease;
}
.ap-info-stat:hover strong { color: #7db8ff; transform: translateY(-3px); }
.ap-info-stat span { display: block; max-width: 170px; line-height: 1.45; }
.ap-info-grid {
    gap: 18px;
    margin-bottom: 52px;
}
.ap-info-grid--4 { grid-template-columns: repeat(2, 1fr); }
.ap-info-card {
    position: relative;
    min-height: 220px;
    overflow: hidden;
    padding: 32px;
    border: 1px solid rgba(17,42,78,.1);
    border-radius: 22px;
    box-shadow: none;
    transition: transform .32s cubic-bezier(.2,.75,.25,1), border-color .32s ease, background .32s ease;
}
.ap-info-card::after {
    content: "";
    position: absolute;
    right: -45px;
    bottom: -55px;
    width: 150px;
    height: 150px;
    border: 1px solid rgba(17,91,185,.12);
    border-radius: 50%;
    transition: transform .45s cubic-bezier(.2,.75,.25,1), background .3s ease;
}
.ap-info-card:hover {
    transform: translateY(-7px);
    border-color: rgba(17,91,185,.28);
    box-shadow: none;
}
.ap-info-card:hover::after {
    transform: scale(1.35);
    background: rgba(17,91,185,.045);
}
.ap-info-card__num {
    margin-bottom: 34px;
    font-size: 16px;
    letter-spacing: .08em;
}
.ap-info-card h3 {
    max-width: 420px;
    margin-bottom: 12px;
    font-family: var(--ap-font-display);
    font-size: clamp(21px, 2.3vw, 28px);
    line-height: 1.08;
    text-transform: uppercase;
}
.ap-info-card p { max-width: 480px; font-size: 15px; line-height: 1.6; }
.ap-info-card--accent { border-top-width: 1px; }
.ap-info-quote {
    position: relative;
    margin: 0 0 56px;
    padding: clamp(38px, 6vw, 74px);
    overflow: hidden;
    border: 0;
    border-radius: 28px;
    background: var(--ap-dark);
    color: #fff;
    font-size: clamp(24px, 3vw, 39px);
    line-height: 1.34;
}
.ap-info-quote::before {
    content: "“";
    position: absolute;
    right: 38px;
    top: -22px;
    color: rgba(91,157,239,.18);
    font-family: Georgia, serif;
    font-size: 190px;
    line-height: 1;
}
.ap-info-steps { gap: 0; overflow: hidden; border-radius: 22px; }
.ap-info-step {
    position: relative;
    gap: 28px;
    min-height: 92px;
    padding: 26px 30px;
    border-radius: 0;
    border-bottom: 1px solid var(--ap-line);
    transition: padding-left .25s ease, background .25s ease;
}
.ap-info-step:last-child { border-bottom: 0; }
.ap-info-step:hover { padding-left: 38px; background: #f8fbff; }
.ap-info-step::before { font-size: 18px; }
.ap-info-step strong { min-width: 170px; font-size: 16px; }
.ap-info-step span { font-size: 15px; line-height: 1.55; }
.ap-vacancies { gap: 14px; }
.ap-vacancy {
    position: relative;
    padding: 28px 30px;
    border: 1px solid rgba(17,42,78,.1);
    border-radius: 20px;
    box-shadow: none;
}
.ap-vacancy:hover { transform: translateX(6px); border-color: rgba(17,91,185,.3); box-shadow: none; }
.ap-vacancy__info h3 {
    font-family: var(--ap-font-display);
    font-size: 22px;
    text-transform: uppercase;
}
.ap-contact-grid { gap: 18px; margin: 0 0 54px; }
.ap-contact-card {
    position: relative;
    min-height: 230px;
    padding: 34px;
    overflow: hidden;
    border: 1px solid rgba(17,42,78,.1);
    border-radius: 22px;
    box-shadow: none;
    transition: transform .3s cubic-bezier(.2,.75,.25,1), border-color .3s ease;
}
.ap-contact-card:hover { transform: translateY(-6px); border-color: rgba(17,91,185,.3); }
.ap-contact-card h3 {
    margin-bottom: 34px;
    color: var(--ap-accent-dark);
    font-size: 12px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ap-contact-card__big {
    font-family: var(--ap-font-display);
    font-size: clamp(23px, 2.6vw, 32px);
    line-height: 1.12;
}
.ap-info-requisites {
    padding: 30px 34px;
    border: 1px solid rgba(17,42,78,.1);
    border-radius: 18px;
    background: rgba(255,255,255,.72);
    line-height: 1.7;
}
.ap-info-banner {
    position: relative;
    min-height: 210px;
    overflow: hidden;
    margin-top: 58px;
    padding: 42px 46px;
    border-radius: 26px;
    background:
        radial-gradient(circle at 85% 20%, rgba(52,125,218,.28), transparent 34%),
        var(--ap-dark);
}
.ap-info-banner::after {
    content: "";
    position: absolute;
    right: 170px;
    top: -80px;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
}
.ap-info-banner > * { position: relative; z-index: 1; }
.ap-info-banner h2 {
    font-family: var(--ap-font-display);
    font-size: clamp(28px, 3.4vw, 42px);
    text-transform: uppercase;
}
@media (max-width: 800px) {
    .ap-page--editorial { padding-top: 8px; }
    .ap-infohero { min-height: 520px; border-radius: 22px; }
    .ap-infohero__content { width: 100%; padding: 28px 24px; }
    .ap-infohero__title { font-size: clamp(44px, 15vw, 68px); }
    .ap-infohero__shade {
        background: linear-gradient(0deg, rgba(3,13,31,.95) 0%, rgba(3,13,31,.54) 58%, rgba(3,13,31,.1) 100%);
    }
    .ap-infohero__media img { object-position: 62% center; }
    .ap-page--jobs .ap-infohero__media img { object-position: 55% center; }
    .ap-info-content { margin-top: 42px; }
    .ap-info-lead { padding-left: 24px; font-size: 19px; }
    .ap-info-stats { grid-template-columns: repeat(2, 1fr); }
    .ap-info-stat { min-height: 150px; padding: 25px 22px; }
    .ap-info-stat:nth-child(3)::before { display: none; }
    .ap-info-stat:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.13); }
    .ap-info-grid,
    .ap-info-grid--4,
    .ap-contact-grid { grid-template-columns: 1fr; }
    .ap-info-card,
    .ap-contact-card { min-height: 0; padding: 26px; }
    .ap-info-card__num { margin-bottom: 22px; }
    .ap-info-step { align-items: flex-start; flex-wrap: wrap; gap: 8px 18px; }
    .ap-info-step strong { min-width: calc(100% - 50px); }
    .ap-info-step span { padding-left: 47px; }
    .ap-info-banner { align-items: flex-start; padding: 32px 26px; }
}
@media (prefers-reduced-motion: reduce) {
    .ap-infohero__media,
    .ap-infohero__media img,
    .ap-info-card,
    .ap-contact-card,
    .ap-vacancy { transition: none !important; }
}


/* ------------------------------------------------------------
   12g. Шапка в стиле маркетплейса: действия и вторая строка
------------------------------------------------------------ */
.ap-search--main {
    flex: 1 1 320px;
    max-width: none;
}
.ap-search--main input {
    border: 2px solid var(--ap-dark);
    padding: 12px 52px 12px 18px;
    font-size: 14.5px;
}
.ap-search--main input:focus { border-color: var(--ap-accent); box-shadow: none; }
.ap-search--main button {
    width: 40px;
    height: 40px;
    background: var(--ap-dark);
    color: #fff;
}
.ap-search--main button:hover { background: var(--ap-accent); }

.ap-action {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    min-width: 58px;
    padding: 6px 8px;
    background: none;
    border: 0;
    border-radius: var(--ap-radius-sm);
    color: var(--ap-ink);
    transition: color var(--ap-transition), background var(--ap-transition);
}
.ap-action:hover { color: var(--ap-ink); background: transparent; }
.ap-action__icon { position: relative; display: inline-flex; }
.ap-action__icon i { display: inline-block; transform-origin: center; will-change: transform; }

/* корзина: пустая → иконка «с товаром», когда есть позиции (без заливки) */
.ap-action__icon .ap-ic-full { display: none; }
.ap-cart:not(.empty) .ap-action__icon .ap-ic-empty { display: none; }
.ap-cart:not(.empty) .ap-action__icon .ap-ic-full { display: inline-block; }

/* у каждой кнопки своя плавная анимация, подходящая по смыслу */

/* Кабинет — мягко «подпрыгивает», приветствуя */
.ap-action:hover .fa-circle-user,
.ap-action:hover .fa-user { animation: ap-ic-account .6s ease-in-out; }
@keyframes ap-ic-account {
    0%   { transform: translateY(0) scale(1); }
    35%  { transform: translateY(-5px) scale(1.1); }
    100% { transform: translateY(0) scale(1); }
}

/* Избранное — сердцебиение */
.ap-action:hover .fa-heart { animation: ap-ic-heart .85s ease-in-out; }
@keyframes ap-ic-heart {
    0%   { transform: scale(1); }
    18%  { transform: scale(1.26); }
    34%  { transform: scale(1); }
    52%  { transform: scale(1.16); }
    72%  { transform: scale(1); }
}

/* Корзина — плавно «катится» туда-обратно */
.ap-action--cart:hover .ap-action__icon i { animation: ap-ic-cart .62s ease-in-out; }
@keyframes ap-ic-cart {
    0%   { transform: translateX(0); }
    32%  { transform: translateX(-4px); }
    68%  { transform: translateX(4px); }
    100% { transform: translateX(0); }
}
.ap-action__label { font-size: 11.5px; font-weight: 500; line-height: 1; }
.ap-action .ap-counter { top: -7px; right: -11px; }
.ap-counter--cart { background: var(--ap-accent); }
.ap-cart.empty .ap-counter--cart { display: none; }
.ap-cart { display: inline-flex; }

.ap-subbar {
    border-bottom: 1px solid var(--ap-line);
    background: #fff;
}
.ap-subbar__in {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 44px;
}
.ap-subbar__nav { min-width: 0; overflow: hidden; }
.ap-subbar .ap-mainnav__pages { flex-wrap: nowrap; }
.ap-subbar .ap-mainnav__pages a { padding: 6px 10px; font-size: 13.5px; }
.ap-subbar__right {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    flex-shrink: 0;
}
.ap-subbar__phone { font-size: 13.5px; font-weight: 700; white-space: nowrap; }

/* ------------------------------------------------------------
   12h. Модальное окно авторизации
------------------------------------------------------------ */
.ap-authmodal__window {
    top: 50%;
    width: min(calc(100vw - 32px), 480px);
    max-width: none;
    max-height: calc(100dvh - 32px);
    padding: 30px 32px 32px;
    overflow-x: hidden;
    border: 1px solid rgba(8, 18, 38, .08);
    border-radius: 26px;
    box-shadow: 0 28px 80px rgba(8, 18, 38, .24);
    transform: translateX(-50%) translateY(calc(-50% + 12px));
}
.ap-citymodal.is-open .ap-authmodal__window {
    transform: translateX(-50%) translateY(-50%);
}
.ap-authmodal.is-signup .ap-authmodal__window {
    width: min(calc(100vw - 32px), 640px);
}
.ap-authmodal__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}
.ap-authmodal__eyebrow {
    display: block;
    margin-bottom: 4px;
    color: var(--ap-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
}
.ap-authmodal__title {
    margin: 0;
    color: var(--ap-dark);
    font-size: clamp(30px, 4vw, 38px);
    line-height: 1;
}
.ap-authmodal__head .ap-iconbtn {
    flex: 0 0 44px;
    margin: -6px -8px 0 0;
}
.ap-authmodal__tabs {
    display: flex;
    gap: 6px;
    padding: 5px;
    margin-bottom: 24px;
    background: #edf2f8;
    border: 1px solid #e5ebf3;
    border-radius: 15px;
}
.ap-authmodal__tab {
    flex: 1 1 0;
    min-height: 46px;
    padding: 11px 18px;
    background: none;
    border: 0;
    border-radius: 11px;
    color: #65748b;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.ap-authmodal__tab.is-active {
    background: #fff;
    color: var(--ap-dark);
    box-shadow: 0 4px 14px rgba(8, 18, 38, .08);
}
.ap-authmodal__tab:focus { outline: none; }
.ap-authmodal__tab:focus-visible,
.ap-authmodal__head .ap-iconbtn:focus-visible {
    outline: 3px solid rgba(0, 92, 197, .22);
    outline-offset: 2px;
}
.ap-authmodal__hint {
    margin: -3px 0 22px;
    color: var(--ap-ink-soft);
    font-size: 15px;
    line-height: 1.55;
}

.ap-authmodal .ap-authmodal__form .wa-form,
.ap-authmodal .ap-authmodal__form form { margin: 0; }
.ap-authmodal .ap-authmodal__form .wa-field {
    display: block;
    min-width: 0;
    margin: 0 0 18px;
}
.ap-authmodal .ap-authmodal__form .wa-field .wa-name {
    display: block;
    margin: 0 0 8px;
    color: #334155;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}
.ap-authmodal .ap-authmodal__form .wa-field .wa-value {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
}
.ap-authmodal .ap-authmodal__form .wa-field .wa-value > p {
    margin: 0;
}
.ap-authmodal .ap-authmodal__form--login .wa-field-password .wa-name {
    padding-right: 140px;
}
.ap-authmodal .ap-authmodal__form .wa-login-forgotpassword-url {
    position: absolute;
    right: 0;
    top: -29px;
    display: inline-block;
    margin: 0;
    color: var(--ap-accent-dark);
    font-size: 13px;
    font-weight: 600;
}
.ap-authmodal .ap-authmodal__form .wa-login-forgotpassword-url:hover {
    color: var(--ap-accent);
}
.ap-authmodal .ap-authmodal__form input[type="text"],
.ap-authmodal .ap-authmodal__form input[type="email"],
.ap-authmodal .ap-authmodal__form input[type="password"],
.ap-authmodal .ap-authmodal__form input[type="tel"],
.ap-authmodal .ap-authmodal__form input[type="number"],
.ap-authmodal .ap-authmodal__form select,
.ap-authmodal .ap-authmodal__form textarea {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: none;
    min-height: 52px;
    margin: 0;
    padding: 13px 15px;
    box-sizing: border-box;
    background: #f5f8fc;
    border: 1.5px solid #dce4ef;
    border-radius: 13px;
    box-shadow: none;
    color: var(--ap-dark);
    font-family: var(--ap-font);
    font-size: 15px;
    line-height: 1.4;
    transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.ap-authmodal .ap-authmodal__form input:hover,
.ap-authmodal .ap-authmodal__form select:hover,
.ap-authmodal .ap-authmodal__form textarea:hover {
    border-color: #b7c5d8;
}
.ap-authmodal .ap-authmodal__form input:focus,
.ap-authmodal .ap-authmodal__form select:focus,
.ap-authmodal .ap-authmodal__form textarea:focus {
    outline: none;
    background: #fff;
    border-color: var(--ap-accent);
    box-shadow: 0 0 0 4px rgba(0, 92, 197, .12);
}
.ap-authmodal .ap-authmodal__form input::placeholder {
    color: #9aa8bb;
    opacity: 1;
}
.ap-authmodal .ap-authmodal__form .wa-login-form-actions,
.ap-authmodal .ap-authmodal__form .wa-signup-form-actions {
    position: relative;
    margin: 4px 0 0;
}
.ap-authmodal .ap-authmodal__form .wa-buttons-wrapper {
    margin: 0;
}
.ap-authmodal .ap-authmodal__form input[type="submit"],
.ap-authmodal .ap-authmodal__form .wa-buttons input,
.ap-authmodal .ap-authmodal__form button[type="submit"],
.ap-authmodal .ap-authmodal__form .wa-confirm-signup-button {
    width: 100%;
    min-height: 54px;
    margin: 0;
    padding: 14px 24px;
    background: var(--ap-dark);
    border: 1px solid var(--ap-dark);
    border-radius: 13px;
    box-shadow: none;
    color: #fff;
    font-family: var(--ap-font-display);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .045em;
    line-height: 1.2;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.ap-authmodal .ap-authmodal__form input[type="submit"]:hover,
.ap-authmodal .ap-authmodal__form button[type="submit"]:hover,
.ap-authmodal .ap-authmodal__form .wa-confirm-signup-button:hover {
    background: var(--ap-accent);
    border-color: var(--ap-accent);
    color: #fff;
    transform: translateY(-1px);
}
.ap-authmodal .ap-authmodal__form input[type="submit"]:focus-visible,
.ap-authmodal .ap-authmodal__form button[type="submit"]:focus-visible {
    outline: 3px solid rgba(0, 92, 197, .22);
    outline-offset: 3px;
}
.ap-authmodal .ap-authmodal__form input[type="submit"]:disabled,
.ap-authmodal .ap-authmodal__form button[type="submit"]:disabled {
    opacity: .55;
    cursor: wait;
    transform: none;
}
.ap-authmodal .ap-authmodal__form label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}
.ap-authmodal .ap-authmodal__form input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-height: 0;
    accent-color: var(--ap-accent);
}

.ap-authmodal .ap-authmodal__form--signup .wa-signup-form-title,
.ap-authmodal .ap-authmodal__form--signup .wa-login-url,
.ap-authmodal .ap-authmodal__form--login .wa-signup-url {
    display: none !important;
}
.ap-authmodal .ap-authmodal__form--signup .wa-signup-form-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 16px;
}
.ap-authmodal .ap-authmodal__form--signup .wa-signup-form-fields .wa-field {
    margin: 0;
}
.ap-authmodal .ap-authmodal__form--signup .wa-field-email,
.ap-authmodal .ap-authmodal__form--signup .wa-field-terms-accepted,
.ap-authmodal .ap-authmodal__form--signup .wa-field.wa-separator,
.ap-authmodal .ap-authmodal__form--signup .wa-captcha-section {
    grid-column: 1 / -1;
}
.ap-authmodal .ap-authmodal__form--signup .wa-signup-form-actions {
    margin-top: 20px;
}
.ap-authmodal .ap-authmodal__form .wa-auth-adapters a,
.ap-authmodal .ap-authmodal__form .wa-auth-adapters li,
.ap-authmodal .ap-authmodal__form .wa-adapters-list a,
.ap-authmodal .ap-authmodal__form .wa-adapters-list li {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 48px;
    background: #f5f8fc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}
.ap-authmodal .ap-authmodal__form .wa-error-msg,
.ap-authmodal .ap-authmodal__form .wa-errors-block,
.ap-authmodal .ap-authmodal__form .wa-uncaught-errors,
.ap-authmodal .ap-authmodal__form .errormsg {
    color: var(--ap-red);
    font-size: 13px;
    line-height: 1.4;
    margin-top: 6px;
}
.ap-authmodal .ap-authmodal__form .wa-auth-adapters,
.ap-authmodal .ap-authmodal__form .wa-adapters-section {
    list-style: none;
    margin: 20px 0 0;
    padding: 18px 0 0;
    border-top: 1px solid var(--ap-line);
}
.ap-authmodal .ap-authmodal__form .wa-adapters-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
}
.ap-authmodal .ap-authmodal__form .wa-captcha img { border-radius: 10px; }
.ap-authmodal__loading {
    min-height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--ap-ink-faint);
    padding: 24px;
}

@media (max-width: 620px) {
    .ap-authmodal__window,
    .ap-authmodal.is-signup .ap-authmodal__window {
        width: calc(100vw - 20px);
        max-height: calc(100dvh - 20px);
        padding: 22px 18px 24px;
        border-radius: 22px;
    }
    .ap-authmodal__head { margin-bottom: 18px; }
    .ap-authmodal__title { font-size: 30px; }
    .ap-authmodal__tabs { margin-bottom: 20px; }
    .ap-authmodal__tab { min-height: 44px; padding: 9px 10px; font-size: 14px; }
    .ap-authmodal__hint { margin-bottom: 18px; font-size: 14px; }
    .ap-authmodal .ap-authmodal__form--signup .wa-signup-form-fields {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    .ap-authmodal .ap-authmodal__form--signup .wa-field-email,
    .ap-authmodal .ap-authmodal__form--signup .wa-field-terms-accepted,
    .ap-authmodal .ap-authmodal__form--signup .wa-field.wa-separator,
    .ap-authmodal .ap-authmodal__form--signup .wa-captcha-section {
        grid-column: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ap-authmodal__window,
    .ap-authmodal__tab,
    .ap-authmodal .ap-authmodal__form input,
    .ap-authmodal .ap-authmodal__form button {
        transition: none !important;
    }
}


/* отдельные страницы входа и регистрации */
.ap-content > .ap-container > #page.wa-signup-form,
.ap-content > .ap-container > #page[role="main"] {
    max-width: 460px;
    margin: 32px auto 16px;
    padding: 28px 30px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
}
#page .wa-field { display: block; margin-bottom: 12px; }
#page .wa-field .wa-name { font-size: 13px; color: var(--ap-ink-soft); margin-bottom: 4px; }
#page .wa-field .wa-value { display: block; width: 100%; max-width: none; }
#page .wa-field .wa-name { font-size: 14px; font-weight: 600; color: var(--ap-ink); margin-bottom: 6px; }
#page .wa-value input[type="text"],
#page .wa-value input[type="email"],
#page .wa-value input[type="password"],
#page .wa-value input[type="tel"],
#page .wa-value select {
    width: 100%;
    max-width: none;
    padding: 15px 16px;
    background: var(--ap-bg);
    border: 1.5px solid transparent;
    border-radius: 12px;
}
#page .wa-value input:focus { background: var(--ap-surface); border-color: var(--ap-ink); box-shadow: none; }
#page input[type="submit"] {
    width: 100%;
    padding: 15px 24px;
    border: 0;
    border-radius: 12px;
    font-family: var(--ap-font-display);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}
#page .wa-login-forgotpassword-url { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 600; color: var(--ap-accent-dark); }
#page .wa-signup-url, #page .wa-login-url { margin-top: 14px; font-size: 14px; }
#page h1, #page .wa-form-title { font-size: 24px; }

/* плавающий виджет CRM «Подписаться» скрыт */
.wa-embeded-widget-fab { display: none !important; }

/* ------------------------------------------------------------
   12i. Отзывы: страница товара (Ozon-стиль) и страница всех отзывов
------------------------------------------------------------ */
.ap-reviews-layout {
    display: grid;
    grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
    gap: 32px;
    align-items: start;
}
.ap-reviews-sortbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 18px;
    font-size: 13.5px;
    color: var(--ap-ink-faint);
}
.ap-reviews-sortchip {
    padding: 7px 14px;
    background: var(--ap-surface);
    border: 1.5px solid var(--ap-line);
    border-radius: var(--ap-radius-pill);
    font-size: 13px;
    font-weight: 600;
    color: var(--ap-ink-soft);
    transition: all var(--ap-transition);
}
.ap-reviews-sortchip:hover { border-color: var(--ap-ink); color: var(--ap-ink); }
.ap-reviews-sortchip.is-active { background: var(--ap-dark); border-color: var(--ap-dark); color: #fff; }

.ap-reviews-layout .ap-reviews-list { grid-template-columns: 1fr; }

.ap-reviews-aside { position: sticky; top: 110px; }
.ap-reviews-aside__card {
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 26px;
    box-shadow: var(--ap-shadow);
}
.ap-reviews-aside__score {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.ap-reviews-aside__score strong {
    font-family: var(--ap-font-display);
    font-size: 30px;
    font-weight: 700;
}
.ap-reviews-aside__note { font-size: 13px; color: var(--ap-ink-soft); margin-bottom: 18px; }
.ap-reviews-bars { display: flex; flex-direction: column; gap: 8px; }
.ap-reviews-bar { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.ap-reviews-bar__label { flex: 0 0 64px; color: var(--ap-ink-soft); }
.ap-reviews-bar__track {
    flex: 1 1 auto;
    height: 7px;
    background: var(--ap-bg);
    border-radius: 6px;
    overflow: hidden;
}
.ap-reviews-bar__fill { display: block; height: 100%; background: var(--ap-accent); border-radius: 6px; }
.ap-reviews-bar__count { flex: 0 0 26px; text-align: right; color: var(--ap-ink-faint); }
.ap-reviews-aside__legal { margin: 14px 0 0; font-size: 12.5px; color: var(--ap-ink-faint); }

/* отзывы на странице товара: рейтинг под сортировкой + инлайн-форма */
.ap-product__reviews .ap-reviews-main { width: 100%; }
.ap-reviews-scorebar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0 0 22px;
}
.ap-reviews-scorebar .ap-reviews-aside__score {
    margin: 0;
    justify-content: flex-start;
    gap: 10px;
}
.ap-reviews-scorebar .ap-reviews-aside__stars { color: var(--ap-accent); white-space: nowrap; }
.ap-reviews-scorebar strong { font-family: var(--ap-font-display); font-size: 20px; font-weight: 700; }
.ap-reviews-scorebar .ap-reviews-sortbar { margin: 0; }

/* пустое состояние отзывов: один компактный сценарий вместо нулевого рейтинга и пустой карточки */
.ap-product__reviews--empty .ap-h3 { margin-bottom: 16px; }
.ap-reviews-empty {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    width: 100%;
    padding: 22px 24px;
    margin-bottom: 18px;
    background:
        radial-gradient(circle at 100% 0, rgba(0, 91, 187, .09), transparent 34%),
        var(--ap-surface);
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
}
.ap-reviews-empty__icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 18px;
    background: var(--ap-accent-soft);
    color: var(--ap-accent-dark);
    font-size: 25px;
}
.ap-reviews-empty__icon .fa-star {
    position: absolute;
    right: -3px;
    bottom: -3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 3px solid var(--ap-surface);
    border-radius: 50%;
    background: var(--ap-accent);
    color: #fff;
    font-size: 9px;
}
.ap-reviews-empty__content { min-width: 0; }
.ap-reviews-empty__content h4 {
    margin: 0 0 5px;
    color: var(--ap-ink);
    font-family: var(--ap-font-display);
    font-size: 20px;
    line-height: 1.15;
    letter-spacing: .01em;
}
.ap-reviews-empty__content p {
    max-width: 690px;
    margin: 0;
    color: var(--ap-ink-soft);
    font-size: 13.5px;
    line-height: 1.5;
}
.ap-reviews-empty__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    padding: 11px 18px;
    border: 1px solid var(--ap-dark);
    border-radius: var(--ap-radius-pill);
    background: var(--ap-dark);
    color: #fff;
    font-size: 13.5px;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    transition: background var(--ap-transition), border-color var(--ap-transition), transform var(--ap-transition);
}
.ap-reviews-empty__button:hover {
    border-color: var(--ap-accent-dark);
    background: var(--ap-accent-dark);
    transform: translateY(-1px);
}
.ap-reviews-empty__button:focus-visible {
    outline: 3px solid rgba(0, 91, 187, .22);
    outline-offset: 3px;
}
.ap-rcompose[hidden] { display: none; }

/* инлайн-композер отзыва */
.ap-rinline {
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
    padding: 22px 24px;
    margin: 0 0 24px;
}
.ap-rinline__auth { margin: 0 0 14px; color: var(--ap-ink-soft); font-size: 14px; }
.ap-rinline__head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.ap-rinline__avatar {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--ap-accent-soft);
    color: var(--ap-accent-dark);
    overflow: hidden;
}
.ap-rinline__avatar img { width: 100%; height: 100%; object-fit: cover; }
.ap-rinline__who { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.ap-rinline__who strong { font-size: 15px; }
.ap-rinline__who span { font-size: 12.5px; color: var(--ap-ink-faint); }
.ap-rinline__close {
    flex-shrink: 0;
    width: 32px; height: 32px;
    border: 0; background: var(--ap-bg);
    border-radius: 50%;
    font-size: 20px; line-height: 1;
    color: var(--ap-ink-soft);
    cursor: pointer;
}
.ap-rinline__close:hover { background: var(--ap-line); color: var(--ap-ink); }
.ap-rinline__row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.ap-rinline__label { display: block; font-size: 13px; font-weight: 600; color: var(--ap-ink-faint); margin-bottom: 6px; }
.ap-rinline__title, .ap-rinline__text { width: 100%; margin-bottom: 14px; }
.ap-rinline__text { min-height: 110px; resize: vertical; }
.ap-rinline__actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ap-rinline__status { font-size: 13px; color: var(--ap-ink-soft); }
.ap-rinline__status.is-error { color: var(--ap-red); }
.ap-rinline__actions .ap-btn:disabled { opacity: .58; cursor: wait; transform: none; }
.ap-rinline__captcha { margin: 2px 0 16px; }

/* фотографии к отзыву */
.ap-review-upload { margin: 2px 0 16px; }
.ap-review-upload__head {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 7px;
}
.ap-review-upload__head .ap-rinline__label { margin: 0; }
.ap-review-upload__optional {
    color: var(--ap-ink-faint);
    font-size: 11.5px;
}
.ap-review-upload__drop {
    position: relative;
    display: flex;
    align-items: center;
    gap: 13px;
    min-height: 78px;
    padding: 14px 16px;
    overflow: hidden;
    border: 1.5px dashed #b8c9dc;
    border-radius: 16px;
    background: #f4f8fd;
    cursor: pointer;
    transition: border-color var(--ap-transition), background var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-review-upload__drop:hover,
.ap-review-upload.is-dragover .ap-review-upload__drop {
    border-color: var(--ap-accent);
    background: #eef6ff;
    box-shadow: 0 0 0 3px rgba(0, 91, 187, .08);
}
.ap-review-upload__drop:focus-within {
    border-color: var(--ap-accent);
    box-shadow: 0 0 0 3px rgba(0, 91, 187, .15);
}
.ap-review-upload__input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}
.ap-review-upload__icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: var(--ap-accent);
    color: #fff;
    font-size: 20px;
}
.ap-review-upload__icon .fa-plus {
    position: absolute;
    right: -4px;
    bottom: -4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: 3px solid #f4f8fd;
    border-radius: 50%;
    background: var(--ap-dark);
    font-size: 8px;
}
.ap-review-upload__copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 3px;
}
.ap-review-upload__copy strong {
    color: var(--ap-ink);
    font-size: 13.5px;
    line-height: 1.3;
}
.ap-review-upload__copy small {
    color: var(--ap-ink-faint);
    font-size: 11.5px;
    line-height: 1.4;
}
.ap-review-upload__previews {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
    gap: 10px;
}
.ap-review-upload__previews:not(:empty) { margin-top: 10px; }
.ap-review-upload__preview {
    position: relative;
    min-width: 0;
    padding: 6px;
    border: 1px solid var(--ap-line);
    border-radius: 13px;
    background: var(--ap-surface);
}
.ap-review-upload__preview img {
    display: block;
    width: 100%;
    height: 82px;
    border-radius: 9px;
    object-fit: cover;
    background: var(--ap-bg);
}
.ap-review-upload__remove {
    position: absolute;
    top: 10px;
    right: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(5, 18, 38, .86);
    color: #fff;
    cursor: pointer;
    transition: background var(--ap-transition), transform var(--ap-transition);
}
.ap-review-upload__remove:hover { background: var(--ap-red); transform: scale(1.04); }
.ap-review-upload__remove:focus-visible {
    outline: 3px solid rgba(0, 91, 187, .25);
    outline-offset: 2px;
}
.ap-review-upload__meta {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    padding: 7px 3px 2px;
}
.ap-review-upload__meta b,
.ap-review-upload__meta small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ap-review-upload__meta b { color: var(--ap-ink); font-size: 10.5px; font-weight: 600; }
.ap-review-upload__meta small { color: var(--ap-ink-faint); font-size: 10px; }
.ap-review-upload__errors {
    margin-top: 7px;
    color: var(--ap-red);
    font-size: 12px;
    line-height: 1.4;
}
.ap-review-upload__errors:empty { display: none; }

/* звёзды выбора оценки */
.ap-rate-pick { display: inline-flex; gap: 4px; margin-bottom: 14px; }
.ap-rate-pick__star {
    border: 0;
    background: none;
    padding: 0;
    width: 44px;
    height: 44px;
    font-size: 28px;
    line-height: 1;
    color: var(--ap-line);
    cursor: pointer;
    transition: color var(--ap-transition), transform .1s ease;
}
.ap-rate-pick__star:hover { transform: scale(1.08); }
.ap-rate-pick__star.is-on { color: var(--ap-accent); }
.ap-rate-pick__star:focus-visible {
    outline: 3px solid rgba(0, 91, 187, .2);
    outline-offset: 2px;
    border-radius: 8px;
}

@media (max-width: 520px) {
    .ap-reviews-empty {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 12px;
        padding: 17px;
        border-radius: 18px;
    }
    .ap-reviews-empty__icon {
        width: 48px;
        height: 48px;
        border-radius: 15px;
        font-size: 21px;
    }
    .ap-reviews-empty__icon .fa-star { width: 21px; height: 21px; font-size: 8px; }
    .ap-reviews-empty__content h4 { font-size: 17px; }
    .ap-reviews-empty__content p { margin-top: 6px; font-size: 13px; }
    .ap-reviews-empty__button {
        grid-column: 1 / -1;
        width: 100%;
        min-height: 46px;
    }
    .ap-review-upload__drop { min-height: 72px; padding: 12px; }
    .ap-review-upload__icon { flex-basis: 42px; width: 42px; height: 42px; border-radius: 13px; }
    .ap-review-upload__previews { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ap-rinline__row2 { grid-template-columns: 1fr; }
}

/* страница всех отзывов */
.ap-allreviews__hero {
    display: flex;
    align-items: center;
    gap: 36px;
    flex-wrap: wrap;
    padding: 30px 34px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
    margin-bottom: 28px;
    margin-top: 16px;
}
.ap-allreviews__bigscore {
    display: flex;
    align-items: center;
    gap: 14px;
}
.ap-allreviews__bigscore strong {
    font-family: var(--ap-font-display);
    font-size: 64px;
    font-weight: 700;
    line-height: 1;
    color: var(--ap-dark);
}
.ap-allreviews__bigscore span { font-size: 13px; color: var(--ap-ink-faint); }
.ap-allreviews__intro { flex: 1 1 320px; margin: 0; color: var(--ap-ink-soft); }

.ap-allreviews__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.ap-review-card {
    display: flex;
    flex-direction: column;
    padding: 22px 24px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
}
.ap-review-card__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}
.ap-review-card__avatar {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--ap-accent-soft);
    color: var(--ap-accent-dark);
    font-weight: 700;
    font-size: 16px;
}
.ap-review-card__who { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.ap-review-card__who strong { font-size: 14.5px; }
.ap-review-card__who time { font-size: 12.5px; color: var(--ap-ink-faint); }
.ap-review-card__stars { flex-shrink: 0; }
.ap-review-card__title { font-size: 16px; margin-bottom: 6px; }
.ap-review-card__text { font-size: 14.5px; color: var(--ap-ink-soft); margin-bottom: 16px; }
.ap-review-card__product {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: auto;
    padding: 10px 14px;
    background: var(--ap-bg);
    border-radius: var(--ap-radius-sm);
    transition: background var(--ap-transition);
}
.ap-review-card__product:hover { background: var(--ap-accent-soft); color: inherit; }
.ap-review-card__product img {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    object-fit: contain;
    background: var(--ap-surface);
}
.ap-review-card__product span { flex: 1 1 auto; min-width: 0; font-size: 13.5px; font-weight: 600; }
.ap-review-card__product em {
    display: block;
    font-style: normal;
    font-size: 11.5px;
    font-weight: 400;
    color: var(--ap-ink-faint);
}
.ap-review-card__product svg { flex-shrink: 0; color: var(--ap-ink-faint); }


/* ------------------------------------------------------------
   страница /reviews/ — отдельная страница отзывов товара
------------------------------------------------------------ */
.ap-prodrev {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 32px;
    align-items: start;
    margin-bottom: 48px;
}
.ap-prodrev__col { min-width: 0; }
.ap-prodrev__sidebar { position: sticky; top: 96px; min-width: 0; }

.ap-prodrev__top { margin-bottom: 22px; }
.ap-prodrev__title {
    font-family: var(--ap-font);
    font-size: 24px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.3;
    margin: 0 0 10px;
}
.ap-prodrev__rate { display: flex; align-items: center; gap: 8px; }
.ap-prodrev__rate-stars { white-space: nowrap; color: var(--ap-accent); line-height: 1; }
.ap-prodrev__rate strong { font-family: var(--ap-font-display); font-size: 20px; font-weight: 700; }
.ap-prodrev__rate-count { color: var(--ap-ink-faint); font-size: 14px; }

/* кнопка «написать отзыв» */
.ap-prodrev .write-review { margin: 0 0 20px; padding: 0; }
.ap-prodrev .write-review a.button { text-transform: uppercase; }

/* форма отзыва — карточка */
.ap-review-form {
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow);
    padding: 24px 26px;
    margin-bottom: 28px;
}
.ap-review-form .review-field { margin-bottom: 16px; }
.ap-review-form .review-field > label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ap-ink-faint);
}
.ap-review-form input[type="text"],
.ap-review-form input[type="email"],
.ap-review-form textarea { width: 100%; }
.ap-review-form textarea { min-height: 120px; resize: vertical; }
.ap-review-form .review-field strong { display: inline-flex; align-items: center; gap: 8px; }
.ap-review-form .userpic { width: 22px; height: 22px; }
.ap-review-form .rate { display: inline-flex; gap: 3px; font-size: 20px; line-height: 1; }
.ap-review-form .s-review-notice-section {
    font-size: 13px;
    color: var(--ap-ink-soft);
    background: var(--ap-bg);
    border-radius: var(--ap-radius-sm);
    padding: 10px 14px;
}
.ap-review-form .review-submit {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 6px;
}
.ap-review-form .save {
    background: var(--ap-dark);
    color: #fff;
    border: 0;
    border-radius: var(--ap-radius-pill);
    padding: 12px 28px;
    font-family: var(--ap-font-display);
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .02em;
    cursor: pointer;
    transition: background var(--ap-transition), transform var(--ap-transition);
}
.ap-review-form .save:hover { background: #2e2820; transform: translateY(-1px); }

/* список отзывов */
.ap-prodrev__list,
.ap-prodrev__list .reviews-branch { list-style: none; margin: 0; padding: 0; }
/* карточкой выступает .review, обёртку обнуляем (иначе двойной фон) */
.ap-prodrev__list > li.s-review-wrapper { background: none; padding: 0; border-radius: 0; box-shadow: none; }
.ap-prodrev__list .reviews-branch .reviews-branch { padding-left: 28px; }
.ap-prodrev__empty { margin-bottom: 24px; }

@media (max-width: 900px) {
    .ap-prodrev { grid-template-columns: 1fr; }
    .ap-prodrev__sidebar { position: static; order: -1; }
}


/* ------------------------------------------------------------
   12j. Иконки Font Awesome Pro
------------------------------------------------------------ */
.ap-action__icon i { font-size: 21px; line-height: 1.15; }
.ap-catalog-btn i.fa-grid-2 { font-size: 15px; }
.ap-search button i { font-size: 16px; }
.ap-search-toggle i { font-size: 19px; }
.ap-city i.fa-location-dot { font-size: 12px; }
.ap-city .ap-city__chev { font-size: 9px; opacity: .55; }
.ap-city--mobile i.fa-location-dot { font-size: 13px; }
.ap-card__fav i, .ap-buybar__fav i { font-size: 19px; line-height: 1; }
.js-fav-toggle i.fa-heart { transition: font-weight .1s; }
.js-fav-toggle.is-active i.fa-heart { font-weight: 900; }
.js-fav-toggle.is-pop i { animation: ap-heart-pop .35s ease; }


/* тулбар страницы всех отзывов */
.ap-allreviews__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px 24px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}
.ap-allreviews__filter,
.ap-allreviews__sort {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ap-allreviews__toolbar-label { font-size: 13px; color: var(--ap-ink-faint); }
.ap-reviews-sortchip em { font-style: normal; font-size: 11px; opacity: .65; }
.ap-reviews-sortchip.is-disabled { opacity: .4; cursor: not-allowed; }


/* страница отзывов: сайдбар фильтров */
.ap-allreviews__layout {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}
.ap-allreviews__side { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 18px; }
.ap-allreviews__side-block {
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 18px 20px;
    box-shadow: var(--ap-shadow);
}
.ap-allreviews__side-block h4 {
    font-size: 12.5px;
    letter-spacing: .06em;
    color: var(--ap-ink-faint);
    margin-bottom: 10px;
}
.ap-allreviews__side-list { display: flex; flex-direction: column; gap: 2px; }
.ap-rate-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 8px 10px;
    background: none;
    border: 0;
    border-radius: 9px;
    font-size: 13.5px;
    text-align: left;
    color: var(--ap-ink);
    transition: background var(--ap-transition);
}
.ap-rate-row:hover { background: var(--ap-bg); }
.ap-rate-row.is-active { background: var(--ap-dark); color: #fff; }
.ap-rate-row.is-disabled { opacity: .4; cursor: not-allowed; }
.ap-rate-row__stars { display: inline-flex; gap: 2px; font-size: 12px; color: var(--ap-accent); }
.ap-rate-row.is-active .ap-rate-row__stars { color: var(--ap-accent); }
.ap-rate-row__label { font-weight: 600; }
.ap-rate-row em { font-style: normal; font-size: 12px; color: var(--ap-ink-faint); }
.ap-rate-row.is-active em { color: rgba(255, 255, 255, .6); }
.ap-allreviews__list--single { grid-template-columns: 1fr; }

/* счётчик отзывов в меню */
.ap-nav-count {
    font-style: normal;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    color: var(--ap-accent-dark);
    position: relative;
    top: -5px;
    margin-left: 1px;
}


/* корзина в шапке: сумма + количество */
.ap-action--cart { flex-direction: row; gap: 9px; align-items: center; padding: 6px 10px; }
/* «Кабинет»: иконка + справа мелкая подпись и имя */
.ap-action--account { flex-direction: row; gap: 9px; align-items: center; padding: 6px 10px; min-width: 0; }
.ap-action__who { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.2; min-width: 0; }
.ap-action__hint { font-size: 11px; font-weight: 400; color: var(--ap-ink-faint); }
.ap-action__name {
    font-size: 12px; font-weight: 500; color: var(--ap-ink);
    white-space: nowrap; max-width: 120px; overflow: hidden; text-overflow: ellipsis;
}
.ap-cart__info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.25;
    /* фиксируем ширину, чтобы пересчёт цифр не сдвигал соседние пункты меню */
    min-width: 116px;
    transition: transform .18s ease;
}
.ap-cart__info.is-bumped { transform: scale(1.12); }
.ap-cart__info b { font-size: 13.5px; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ap-cart__info em { font-style: normal; font-size: 11.5px; color: var(--ap-ink-faint); white-space: nowrap; font-variant-numeric: tabular-nums; }


/* ------------------------------------------------------------
   12k. Оформление заказа (checkout v2)
------------------------------------------------------------ */
/* перебиваем table-раскладку из css/order.css */
html.is-order-page .s-order-page,
html.is-order-page .s-order-page *,
html.is-order-page .s-order-page *::before,
html.is-order-page .s-order-page *::after { box-sizing: border-box !important; }

html.is-order-page .s-order-page {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 400px;
    gap: 0 32px;
    align-items: start;
    margin-top: 12px;
    padding: 12px 0 60px;
}
html.is-order-page .s-order-page > .s-order-column {
    display: block !important;
    grid-column: 1;
    min-width: 0;
    padding: 0 !important;
}
html.is-order-page .s-order-aside {
    display: block;
    grid-column: 2;
    grid-row: 1;
    position: sticky;
    top: 135px;
    align-self: start !important;
    min-width: 0;
    height: auto !important;
    min-height: 0 !important;
}

/* секции — белые карточки с крупным радиусом, без рамки */
.s-order-section,
.wa-step-section {
    background: var(--ap-surface);
    border: 0;
    border-radius: 24px;
    box-shadow: 0 1px 2px rgba(8, 18, 38, .04), 0 18px 40px rgba(8, 18, 38, .06);
    padding: 26px 30px;
    margin-bottom: 16px;
}
.s-order-section .s-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}
.s-order-section .s-header,
.wa-step-section .wa-header,
.wa-step-section h2,
.wa-step-section h3 {
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: .01em;
    line-height: 1.15;
    color: var(--ap-ink);
    margin: 0;
}
.s-delete-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--ap-ink-faint);
}
.s-delete-button:hover { color: var(--ap-red); }
.s-delete-button svg { width: 11px; height: 11px; fill: currentColor; }
.s-back-link { margin-top: 12px; font-size: 14px; }

/* форма чекаута: секция-обёртка прозрачная, шаги — карточки */
#js-order-form {
    background: none;
    box-shadow: none;
    padding: 0;
    margin: 0;
}
#js-order-form > .s-section-header { display: none; }

/* интерьер секции — плоский, без вложенного серого/синего бокса */
.s-order-page .s-order-section > .s-section-body {
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

/* поля — заполненные светло-серые, без рамки, тёмный фокус */
.s-order-page .wa-input,
.s-order-page input[type="text"],
.s-order-page input[type="email"],
.s-order-page input[type="tel"],
.s-order-page input[type="password"],
.s-order-page input[type="number"],
.s-order-page select,
.s-order-page textarea {
    background: var(--ap-bg);
    border: 1.5px solid transparent;
    border-radius: 14px;
    padding: 14px 16px;
    font-size: 14px;
    box-shadow: none;
    transition: border-color .18s ease, background .18s ease;
}
.s-order-page input:focus,
.s-order-page select:focus,
.s-order-page textarea:focus {
    background: var(--ap-surface);
    border-color: var(--ap-ink);
    box-shadow: none;
    outline: none;
}
.s-order-page .wa-button,
.s-order-page input[type="submit"] {
    border-radius: 14px;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 700;
}

/* тёмная карточка итогов — чёрная, как в референсе */
.s-order-aside .wa-step-confirm-section {
    background: #121212;
    color: rgba(255, 255, 255, .82);
    border: 0;
    border-radius: 24px;
    padding: 26px 28px;
    box-shadow: 0 22px 50px rgba(8, 18, 38, .28);
}
.s-order-aside .wa-step-confirm-section .wa-header,
.s-order-aside .wa-step-confirm-section h2,
.s-order-aside .wa-step-confirm-section h3 {
    color: #fff;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: .01em;
}
.s-order-aside .wa-step-confirm-section a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255,255,255,.4); }
.s-order-aside .wa-price-section { font-size: 15px; }
/* строки сумм: лейбл слева приглушён, значение справа */
.s-order-aside .wa-item,
.s-order-aside .wa-price-section .wa-item {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border: 0;
}
.s-order-aside .wa-label,
.s-order-aside .wa-name,
.s-order-aside .wa-cell-name { color: rgba(255, 255, 255, .5); }
.s-order-aside .wa-value,
.s-order-aside .wa-price,
.s-order-aside .wa-cell-value { color: #fff; font-weight: 700; }
.s-order-aside .wa-price-total {
    font-family: var(--ap-font-display);
    font-size: 30px;
    font-weight: 800;
    color: #fff;
}
.s-order-aside .wa-step-confirm-section .wa-input,
.s-order-aside .wa-step-confirm-section input[type="text"] {
    background: rgba(255, 255, 255, .08);
    border-color: transparent;
    border-radius: 14px;
    color: #fff;
}
.s-order-aside .wa-step-confirm-section input::placeholder { color: rgba(255, 255, 255, .45); }
.s-order-aside .wa-step-confirm-section input:focus { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.5); box-shadow: none; }
/* кнопка подтверждения — белая, как в референсе */
.s-order-aside .wa-step-confirm-section .wa-button,
.s-order-aside .wa-step-confirm-section input[type="submit"],
.s-order-aside .wa-step-confirm-section button[type="submit"] {
    width: 100%;
    background: #fff;
    color: var(--ap-ink);
    border: 0;
    padding: 17px 24px;
    border-radius: 16px;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: .04em;
    box-shadow: none;
    transition: background .2s ease, transform .2s ease;
}
.s-order-aside .wa-step-confirm-section .wa-button:hover,
.s-order-aside .wa-step-confirm-section input[type="submit"]:hover,
.s-order-aside .wa-step-confirm-section button[type="submit"]:hover {
    background: #ececec;
    color: var(--ap-ink);
    transform: translateY(-1px);
}
.s-order-aside .wa-step-confirm-section input[type="checkbox"] { accent-color: #fff; }

/* товары в корзине заказа — чистые строки */
.s-order-page .wa-item { padding: 14px 0; border-bottom: 1px solid var(--ap-line); }
.s-order-page .wa-item:last-child { border-bottom: 0; }
.s-order-page .js-delete-product { color: var(--ap-ink-faint); }
.s-order-page .js-delete-product:hover { color: var(--ap-red); }

/* плитки выбора: адрес / тип доставки / способ оплаты — как в референсе */
.s-order-page .wa-address-variant,
.s-order-page .wa-delivery-variant,
.s-order-page .wa-type-wrapper {
    background: var(--ap-bg);
    border: 2px solid transparent;
    border-radius: 16px;
    transition: border-color .15s ease, background .15s ease;
}
.s-order-page .wa-address-variant:hover,
.s-order-page .wa-delivery-variant:hover,
.s-order-page .wa-type-wrapper:hover { border-color: var(--ap-line); }
.s-order-page .wa-address-variant.is-selected,
.s-order-page .wa-delivery-variant.is-selected,
.s-order-page .wa-type-wrapper.is-active,
.s-order-page .wa-address-variant:has(input:checked),
.s-order-page .wa-delivery-variant:has(input:checked),
.s-order-page .wa-type-wrapper:has(input:checked) {
    background: var(--ap-surface);
    border-color: var(--ap-ink);
}
/* сегментированный переключатель «курьером / в пункт выдачи» */
.s-order-page .wa-toggle {
    background: var(--ap-bg);
    border-radius: 12px;
    padding: 3px;
}
.s-order-page .wa-toggle .js-type-toggle,
.s-order-page .wa-toggle > * {
    border-radius: 9px;
    text-transform: uppercase;
    font-family: var(--ap-font-display);
    font-weight: 700;
    font-size: 13px;
}
/* радио/чекбоксы — чёрный акцент */
.s-order-page input[type="radio"],
.s-order-page input[type="checkbox"] { accent-color: var(--ap-ink); }
.s-order-page .wa-payment-name { font-weight: 600; }

/* ── способы оплаты: сетка карточек (.wa-methods-list.wide > .wa-method-wrapper) ── */
.s-order-page .wa-methods-list,
.s-order-page .wa-methods-list.wide {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important;
    gap: 12px !important;
    border: 0 !important;
    list-style: none;
    margin: 0;
    padding: 0;
}
.s-order-page .wa-method-wrapper {
    position: relative;
    background: var(--ap-bg) !important;
    border: 2px solid transparent !important;
    border-radius: 16px !important;
    padding: 16px 18px !important;
    margin: 0 !important;
    cursor: pointer;
    overflow: visible !important;
    transition: border-color .15s ease, background .15s ease;
}
.s-order-page .wa-method-wrapper:not(.is-active):hover { background: var(--ap-bg) !important; border-color: var(--ap-line) !important; }
.s-order-page .wa-method-wrapper.is-active,
.s-order-page .wa-method-wrapper.is-selected {
    background: var(--ap-surface) !important;
    border-color: var(--ap-ink) !important;
}
/* убираем синий полупрозрачный оверлей выбранной карточки */
.s-order-page .wa-method-wrapper.is-active::after { display: none !important; content: none !important; }
/* раскладка карточки: чекбокс сверху, подпись ниже */
.s-order-page .wa-method-wrapper .wa-method {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start;
    gap: 14px !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    min-height: 0 !important;
}
.s-order-page .wa-method-wrapper .wa-checkbox-wrapper { flex-shrink: 0; margin: 0 !important; }
.s-order-page .wa-method-wrapper .wa-method-body { width: 100%; }
.s-order-page .wa-method-wrapper .wa-payment-name,
.s-order-page .wa-method-wrapper .wa-payment-name a {
    font-weight: 700 !important; font-size: 14.5px !important; color: var(--ap-ink) !important; text-decoration: none !important;
}
.s-order-page .wa-method-wrapper .wa-description {
    font-size: 12.5px !important; color: var(--ap-ink-soft) !important; line-height: 1.45 !important; margin-top: 6px !important;
}

/* кастомное радио/чекбокс Webasyst (.s-radio / .s-checkbox: input + span) → наш квадрат */
.s-order-page .s-radio,
.s-order-page .s-checkbox { display: inline-flex !important; flex-shrink: 0; line-height: 1 !important; }
.s-order-page .s-radio input,
.s-order-page .s-checkbox input { display: none !important; }
.s-order-page .s-radio input + span,
.s-order-page .s-checkbox input + span {
    width: 22px !important; height: 22px !important;
    border: 2px solid var(--ap-line) !important;
    border-radius: 7px !important;
    background: var(--ap-surface) !important;
    position: relative;
    box-sizing: border-box;
    transition: background .15s ease, border-color .15s ease;
}
.s-order-page .s-radio input:checked + span,
.s-order-page .s-checkbox input:checked + span {
    background: var(--ap-ink) !important;
    border: 2px solid var(--ap-ink) !important;
}
.s-order-page .s-radio input:checked + span::after,
.s-order-page .s-checkbox input:checked + span::after {
    content: "" !important; position: absolute; left: 6px; top: 2px;
    width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
    background: none !important;
}
/* прячем встроенную SVG-иконку чекбокса, рисуем свою галочку */
.s-order-page .s-checkbox input + span .s-icon,
.s-order-page .s-radio input + span .s-icon { display: none !important; }

/* кастомные квадратные чекбоксы/радио в доставке и оплате */
.s-order-page .wa-type-wrapper input[type="radio"],
.s-order-page .wa-type-wrapper input[type="checkbox"],
.s-order-page .wa-delivery-variant input[type="radio"],
.s-order-page .wa-delivery-variant input[type="checkbox"],
.s-order-page .wa-address-variant input[type="radio"],
.s-order-page .wa-address-variant input[type="checkbox"] {
    -webkit-appearance: none; appearance: none;
    width: 22px; height: 22px; margin: 0;
    border: 2px solid var(--ap-line);
    border-radius: 7px;
    background: var(--ap-surface);
    cursor: pointer; position: relative; flex-shrink: 0;
}
.s-order-page .wa-type-wrapper input:checked,
.s-order-page .wa-delivery-variant input:checked,
.s-order-page .wa-address-variant input:checked { background: var(--ap-ink); border-color: var(--ap-ink); }
.s-order-page .wa-type-wrapper input:checked::after,
.s-order-page .wa-delivery-variant input:checked::after,
.s-order-page .wa-address-variant input:checked::after {
    content: ""; position: absolute; left: 6px; top: 2px;
    width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
}

/* согласие с условиями рядом с кнопкой в правом тёмном блоке */
.s-order-aside .wa-agreement-wrapper,
.s-order-aside .is-agreement-field,
.wa-step-confirm-section .wa-agreement-wrapper {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    margin-top: 14px;
}
.s-order-aside .wa-agreement-wrapper,
.s-order-aside .wa-agreement-wrapper label,
.s-order-aside .wa-agreement-wrapper span,
.s-order-aside .is-agreement-field,
.s-order-aside .is-agreement-field label,
.s-order-aside .is-agreement-field span { color: rgba(255, 255, 255, .55) !important; font-size: 12.5px; line-height: 1.4; }
.s-order-aside .wa-agreement-wrapper a,
.s-order-aside .is-agreement-field a { color: rgba(255, 255, 255, .8) !important; text-decoration: underline; }
/* кастомный/нативный чекбокс согласия */
.s-order-aside .wa-checkbox,
.s-order-aside .wa-checkbox-wrapper { flex-shrink: 0; }
.s-order-aside .is-agreement-field input[type="checkbox"],
.s-order-aside .wa-agreement-wrapper input[type="checkbox"],
.s-order-aside .wa-checkbox input[type="checkbox"] {
    -webkit-appearance: none; appearance: none;
    width: 22px; height: 22px; margin: 1px 0 0;
    border: 2px solid rgba(255, 255, 255, .3);
    border-radius: 7px; background: rgba(255, 255, 255, .08);
    flex-shrink: 0; cursor: pointer; position: relative;
}
.s-order-aside .is-agreement-field input[type="checkbox"]:checked,
.s-order-aside .wa-agreement-wrapper input[type="checkbox"]:checked,
.s-order-aside .wa-checkbox input[type="checkbox"]:checked { background: #fff; border-color: #fff; }
.s-order-aside .is-agreement-field input[type="checkbox"]:checked::after,
.s-order-aside .wa-agreement-wrapper input[type="checkbox"]:checked::after,
.s-order-aside .wa-checkbox input[type="checkbox"]:checked::after {
    content: ""; position: absolute; left: 6px; top: 2px;
    width: 6px; height: 11px; border: solid var(--ap-ink); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
}
/* если чекбокс рисуется SVG-иконкой Webasyst — подсветим её на тёмном фоне */
.s-order-aside .wa-checkbox svg { fill: #fff; }

/* кастомный чекбокс согласия (.s-radio) на тёмном фоне — аккуратный квадрат */
.s-order-aside .s-radio > span:last-child {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .3);
    border-radius: 7px;
}
.s-order-aside .s-radio input:checked + span { background: #fff !important; border-color: #fff !important; }
.s-order-aside .s-radio input:checked + span::after { border-color: var(--ap-ink) !important; }
/* красную «обязательность» делаем мягкой, не кричащей */
.s-order-aside .is-agreement-field.wa-error .s-radio > span:last-child,
.s-order-aside .wa-agreement-wrapper.wa-error .s-radio > span:last-child,
.s-order-aside .is-agreement-field input.wa-error + span { border-color: var(--ap-red) !important; }
.s-order-aside .wa-error-text,
.s-order-aside .is-agreement-field .wa-error-text { font-size: 11.5px; color: var(--ap-red) !important; opacity: .85; }

/* согласие в итоговом блоке — отдельной аккуратной строкой над кнопкой */
.s-order-aside .wa-agreement-wrapper,
.s-order-aside .is-agreement-field,
.s-order-aside .wa-step-confirm-section .wa-agreement-wrapper,
.s-order-aside .wa-step-confirm-section .is-agreement-field {
    width: 100%;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 22px 0 18px !important;
    padding: 0 !important;
    color: rgba(255, 255, 255, .66) !important;
}
.s-order-aside .wa-agreement-wrapper label,
.s-order-aside .is-agreement-field label,
.s-order-aside .wa-agreement-wrapper span,
.s-order-aside .is-agreement-field span {
    font-family: var(--ap-font) !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
    color: rgba(255, 255, 255, .66) !important;
}
.s-order-aside .wa-agreement-wrapper a,
.s-order-aside .is-agreement-field a {
    color: rgba(255, 255, 255, .78) !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, .22);
}
.s-order-aside .wa-agreement-wrapper a:hover,
.s-order-aside .is-agreement-field a:hover {
    color: #fff !important;
    border-bottom-color: rgba(255, 255, 255, .45);
}
.s-order-aside .wa-agreement-wrapper .s-checkbox,
.s-order-aside .is-agreement-field .s-checkbox,
.s-order-aside .wa-agreement-wrapper .wa-checkbox,
.s-order-aside .is-agreement-field .wa-checkbox {
    flex: 0 0 auto;
    margin: 0 !important;
    transform: none !important;
}
.s-order-aside .wa-step-confirm-section .wa-submit-button,
.s-order-aside .wa-step-confirm-section input[type="submit"],
.s-order-aside .wa-step-confirm-section button[type="submit"] {
    margin-top: 0 !important;
}

/* автоподсказка города и адреса (Dadata) */
.s-order-page .wa-field-wrapper:has(.js-city-field),
.s-order-page .wa-field-wrapper:has(input[name='details[shipping_address][street]']),
.s-order-page .wa-field-wrapper:has(input[name*='[shipping_address][street]']),
.s-order-page .wa-field-wrapper:has(input[name*='[street]']) { position: relative; }
.ap-dadata-dd {
    position: absolute;
    z-index: 30;
    left: 0;
    right: 0;
    top: 100%;
    margin-top: 6px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius-sm);
    box-shadow: var(--ap-shadow-lg);
    overflow: hidden;
    max-height: 320px;
    overflow-y: auto;
}
.ap-dadata-item {
    padding: 11px 14px;
    font-size: 14px;
    line-height: 1.25;
    cursor: pointer;
    border-bottom: 1px solid var(--ap-line);
}
.ap-dadata-item b {
    display: block;
    font-size: 14px;
    line-height: 1.25;
    color: var(--ap-ink);
}
.ap-dadata-item span {
    display: block;
    margin-top: 3px;
    font-size: 12px;
    line-height: 1.25;
    color: var(--ap-ink-faint);
}
.ap-dadata-item:last-child { border-bottom: 0; }
.ap-dadata-item:hover { background: var(--ap-bg); }

/* доставка только по РФ — «Страна» и «Регион» не показываем (регион ставится по городу из Dadata) */
.s-order-page .wa-field-wrapper:has(.js-country-field),
.s-order-page .wa-field-wrapper:has(.js-region-field) { display: none !important; }
/* поле города — на доступную ширину */
.s-order-page .wa-field-wrapper:has(.js-city-field) { width: 100%; max-width: 520px; }

/* ── блок выбора доставки: типы, варианты, пункты выдачи ── */
.s-order-page .wa-delivery-types-section,
.s-order-page .wa-delivery-variants-section,
.s-order-page .wa-possible-addresses-section { margin-top: 18px; }
.s-order-page .wa-header {
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .02em;
    color: var(--ap-ink);
    margin-bottom: 12px;
}

/* типы доставки (Курьер / Самовывоз / ПВЗ) — карточки в ряд */
.s-order-page .wa-types-list { display: flex; flex-wrap: wrap; gap: 12px; }
.s-order-page .wa-type-wrapper {
    flex: 1 1 190px;
    min-width: 170px;
    padding: 16px 18px;
    cursor: pointer;
    text-align: center;
    line-height: 1.35;
}
.s-order-page .wa-type-wrapper .wa-name {
    display: block;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: .02em;
    color: var(--ap-ink);
    margin-bottom: 4px;
}
.s-order-page .wa-type-wrapper .wa-price { font-weight: 700; color: var(--ap-ink); }
.s-order-page .wa-type-wrapper .wa-date { display: block; font-size: 12.5px; color: var(--ap-ink-faint); margin-top: 2px; }
.s-order-page .wa-type-wrapper.is-disabled,
.s-order-page .wa-type-wrapper.is-empty { opacity: .45; cursor: not-allowed; }

/* строки вариантов (конкретные службы доставки) */
.s-order-page .wa-delivery-variant {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    margin-bottom: 10px;
    cursor: pointer;
}
.s-order-page .wa-delivery-variant .wa-radio,
.s-order-page .wa-delivery-variant .wa-radio-wrapper { flex-shrink: 0; }
.s-order-page .wa-delivery-variant .wa-name { font-weight: 600; color: var(--ap-ink); }
.s-order-page .wa-delivery-variant .wa-additional,
.s-order-page .wa-delivery-variant .wa-date { font-size: 12.5px; color: var(--ap-ink-faint); }
.s-order-page .wa-delivery-variant .wa-delivery-price,
.s-order-page .wa-delivery-variant .wa-price { margin-left: auto; font-weight: 700; white-space: nowrap; color: var(--ap-ink); }

/* дропдаун со списком вариантов */
.s-order-page .wa-dropdown.js-variants-select .wa-dropdown-toggle {
    background: var(--ap-bg);
    border: 1.5px solid transparent;
    border-radius: 14px;
    padding: 14px 16px;
    cursor: pointer;
}
.s-order-page .wa-dropdown.js-variants-select .wa-dropdown-toggle:hover { border-color: var(--ap-line); }

/* пункты выдачи (ПВЗ) */
.s-order-page .s-points-wrapper { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; }
.s-order-page .s-point {
    padding: 12px 14px;
    background: var(--ap-bg);
    border: 2px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.s-order-page .s-point:hover { border-color: var(--ap-line); }
.s-order-page .s-point.is-selected,
.s-order-page .s-point:has(input:checked) { background: var(--ap-surface); border-color: var(--ap-ink); }

/* дата доставки */
.s-order-page .wa-input.wa-date { background: var(--ap-bg); }

/* ── блок выбранной доставки (шаг «детали»): убираем «воду» про агрегатор,
   компактная сводка в 2 столбца + расписание ПВЗ ── */
/* скрываем служебное описание про ApiShip/агрегатор — покупателю оно ни к чему */
.s-order-page .wa-details-description,
.s-order-page .wa-details-fields-section .wa-plugin-fields-wrapper .wa-description { display: none !important; }

/* сводка «Стоимость / Срок / Адрес / Служба» — компактная сетка в 2 столбца */
.s-order-page .wa-details-rates-section { margin-top: 4px; }
.s-order-page .wa-details-rates-section .wa-table {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 28px;
}
.s-order-page .wa-details-rates-section .wa-row {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 !important;
    border: 0 !important;
    margin: 0 !important;
}
/* адрес — на всю ширину строки */
.s-order-page .wa-details-rates-section .wa-row:has(.ymaps-geolink),
.s-order-page .wa-details-rates-section .wa-row:has(.google-geolink),
.s-order-page .wa-details-rates-section .wa-row:has([data-role="address"]) { grid-column: 1 / -1; }
.s-order-page .wa-details-rates-section .wa-cell-name .wa-name {
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--ap-ink-faint);
}
.s-order-page .wa-details-rates-section .wa-cell-value { font-size: 14px; color: var(--ap-ink); font-weight: 600; }
.s-order-page .wa-details-rates-section .wa-delivery-price { color: var(--ap-accent); font-weight: 700; }

/* расписание работы ПВЗ — всегда видимо, дни в 2 столбца, компактно */
/* плагин кладёт ОДИН и тот же график во все 7 дней — не размножаем его,
   показываем часы одной аккуратной строкой (часы не скрываем, просто без «портянки») */
.s-order-page .wa-schedule-wrapper { margin-top: 14px; }
.s-order-page .wa-schedule-wrapper .wa-label {
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: .03em;
    font-weight: 700;
    color: var(--ap-ink-faint);
    margin-bottom: 6px;
}
.s-order-page .wa-schedule-wrapper .wa-days-wrapper { display: block; }
.s-order-page .wa-schedule-wrapper .wa-day-wrapper:not(:first-child) { display: none; }
.s-order-page .wa-schedule-wrapper .wa-day-wrapper {
    display: block;
    padding: 0;
    border: 0;
    font-size: 14px;
}
.s-order-page .wa-schedule-wrapper .wa-day-wrapper .wa-date { display: none; }
.s-order-page .wa-schedule-wrapper .wa-day-wrapper .wa-value { text-align: left; }
/* фейковое «9:00—18:00» из плагина прячем, если есть реальный график в .wa-additional */
.s-order-page .wa-schedule-wrapper .wa-day-wrapper .wa-value:has(.wa-additional) .wa-time { display: none; }
.s-order-page .wa-schedule-wrapper .wa-additional { color: var(--ap-ink); font-weight: 600; }
/* строка «Дополнительно» дублирует часы работы — убираем */
.s-order-page .wa-details-rates-section .wa-additional-item { display: none !important; }

/* при самовывозе поле «Улица, дом, квартира» не нужно — прячем весь его блок
   (класс ap-ship-pickup вешает на <html> скрипт order.html) */
html.ap-ship-pickup .s-order-page .wa-fields-group.line:has(input[name*="[shipping_address][street]"]),
html.ap-ship-pickup .s-order-page .wa-field-wrapper:has(input[name*="[shipping_address][street]"]),
html.ap-ship-pickup .s-order-page .ap-courier-address-host { display: none !important; }

/* ── модал выбора пункта выдачи (карта + список) под наш дизайн ── */
.wa-order-dialog .wa-dialog-background,
.wa-shipping-pickup-dialog .wa-dialog-background {
    background: rgba(22, 19, 15, .5) !important;
    backdrop-filter: blur(2px);
}
.wa-order-dialog .wa-dialog-body,
.wa-shipping-pickup-dialog .wa-dialog-body {
    background: var(--ap-surface) !important;
    border: 0 !important;
    border-radius: var(--ap-radius) !important;
    box-shadow: var(--ap-shadow-lg) !important;
    overflow: hidden;
}
.wa-order-dialog .wa-dialog-header,
.wa-shipping-pickup-dialog .wa-dialog-header {
    background: var(--ap-surface) !important;
    border-bottom: 1px solid var(--ap-line) !important;
    padding: 20px 24px !important;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: .02em;
    font-size: 18px;
    color: var(--ap-ink) !important;
}
/* ── подтверждающая модалка (удаление товара из корзины и т.п.) под наш дизайн ── */
.wa-order-dialog.wa-confirm-dialog .wa-dialog-body {
    width: min(440px, 92vw) !important;
    max-width: 92vw !important;
}
.wa-order-dialog.wa-confirm-dialog .wa-dialog-header .wa-header { font-size: 17px !important; }
.wa-order-dialog.wa-confirm-dialog .wa-dialog-content {
    padding: 22px 24px 4px !important;
    font-size: 15px;
    line-height: 1.45;
    color: var(--ap-ink-soft);
}
.wa-order-dialog.wa-confirm-dialog .wa-dialog-content p { margin: 0; }
.wa-order-dialog.wa-confirm-dialog .wa-dialog-footer {
    display: flex !important;
    justify-content: flex-end;
    gap: 10px;
    padding: 20px 24px 24px !important;
    border-top: 0 !important;
    background: var(--ap-surface) !important;
}
/* обе кнопки в едином стиле темы */
.wa-order-dialog.wa-confirm-dialog .wa-dialog-footer .wa-button {
    margin: 0 !important;
    padding: 12px 22px !important;
    border-radius: var(--ap-radius-sm) !important;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .03em;
    font-size: 14px;
    box-shadow: none !important;
    cursor: pointer;
    transition: background var(--ap-transition), color var(--ap-transition), border-color var(--ap-transition);
}
/* «Не удалять» — безопасное действие по умолчанию (тёмная заливка) */
.wa-order-dialog.wa-confirm-dialog .wa-dialog-footer .wa-button.js-cancel {
    background: var(--ap-dark) !important;
    color: #fff !important;
    border: 1.5px solid var(--ap-dark) !important;
}
.wa-order-dialog.wa-confirm-dialog .wa-dialog-footer .wa-button.js-cancel:hover { background: var(--ap-dark-2) !important; border-color: var(--ap-dark-2) !important; }
/* «Удалить» — деструктивное действие (красный контур) */
.wa-order-dialog.wa-confirm-dialog .wa-dialog-footer .wa-button.js-confirm {
    background: transparent !important;
    color: var(--ap-red) !important;
    border: 1.5px solid var(--ap-red) !important;
}
.wa-order-dialog.wa-confirm-dialog .wa-dialog-footer .wa-button.js-confirm:hover { background: var(--ap-red) !important; color: #fff !important; }

/* список ПВЗ — карточки */
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper {
    border: 1.5px solid transparent;
    border-radius: 12px;
    padding: 14px 16px !important;
    margin-bottom: 8px;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper:hover {
    background: var(--ap-bg) !important;
    border-color: var(--ap-line) !important;
}
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper.is-selected,
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper.is-active,
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper:has(input:checked) {
    background: var(--ap-surface) !important;
    border-color: var(--ap-ink) !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-name { font-weight: 600; color: var(--ap-ink); }
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-details .wa-price { font-weight: 700; color: var(--ap-ink) !important; }
/* поиск по карте */
.wa-shipping-pickup-dialog input[type="text"],
.wa-shipping-pickup-dialog .wa-input {
    background: var(--ap-bg) !important;
    border: 1.5px solid transparent !important;
    border-radius: 14px !important;
    padding: 13px 15px !important;
    box-shadow: none !important;
}
.wa-shipping-pickup-dialog input[type="text"]:focus,
.wa-shipping-pickup-dialog .wa-input:focus { border-color: var(--ap-ink) !important; box-shadow: none !important; }
/* кнопки в модале (выбрать / забрать отсюда) */
.wa-shipping-pickup-dialog .wa-button.wa-submit-button,
.wa-shipping-pickup-dialog button[type="submit"],
.wa-shipping-pickup-dialog .wa-button:not(.gray):not(.outlined) {
    background: var(--ap-dark) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 14px !important;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .03em;
}
/* карта — скруглить углы внутри модала */
.wa-shipping-pickup-dialog .wa-pickup-map,
.wa-shipping-pickup-dialog ymaps,
.wa-shipping-pickup-dialog [class*="ymaps-2"][class*="ground-pane"] { border-radius: var(--ap-radius-sm); }

/* ── раскладка модала ПВЗ: панель слева (узкая), карта справа (широкая) ── */
.wa-shipping-pickup-dialog .wa-dialog-body {
    width: min(1120px, 94vw) !important;
    max-width: 94vw !important;
    height: min(740px, 88vh) !important;
    display: flex;
    flex-direction: column;
}
.wa-shipping-pickup-dialog .wa-dialog-body:has(> .wa-map-section):has(> .wa-sidebar-section),
.wa-shipping-pickup-dialog .wa-dialog-body > div:has(> .wa-map-section):has(> .wa-sidebar-section) {
    display: flex !important;
    flex: 1 1 auto;
    min-height: 0;
    gap: 0;
}
.wa-shipping-pickup-dialog .wa-sidebar-section {
    order: -1 !important;
    flex: 0 0 384px !important;
    max-width: 384px;
    min-width: 0;
    overflow-y: auto;
    border-right: 1px solid var(--ap-line);
    border-radius: 0;
}
.wa-shipping-pickup-dialog .wa-map-section {
    order: 1 !important;
    flex: 1 1 auto !important;
    min-width: 0;
    position: relative;
}
.wa-shipping-pickup-dialog .wa-map-section,
.wa-shipping-pickup-dialog .wa-map-section > div,
.wa-shipping-pickup-dialog .wa-pickup-map { height: 100% !important; }

/* список точек */
.wa-shipping-pickup-dialog .wa-variants-section { padding: 10px 14px; }
.wa-shipping-pickup-dialog .wa-variants-list { display: flex; flex-direction: column; gap: 8px; }

/* карточка деталей точки */
.wa-shipping-pickup-dialog .wa-variant-details-section { padding: 18px; }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-name,
.wa-shipping-pickup-dialog .wa-variant-details-section > .wa-section-header,
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-header {
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-weight: 800;
    font-size: 16px;
    color: var(--ap-ink);
    margin-bottom: 14px;
    line-height: 1.3;
}
.wa-shipping-pickup-dialog .wa-photos-section,
.wa-shipping-pickup-dialog .wa-photos-section img {
    border-radius: var(--ap-radius-sm);
    overflow: hidden;
}
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-cell-name { color: var(--ap-ink-faint); }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-cell-value { color: var(--ap-ink); font-weight: 600; }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-price { color: var(--ap-green) !important; font-weight: 700; }

/* «назад» в деталях */
.wa-shipping-pickup-dialog .js-show-variants,
.wa-shipping-pickup-dialog .wa-back { color: var(--ap-ink-soft); font-weight: 600; }

/* ── карточка счёта invoiceb2b (страница «спасибо» и личный кабинет) ──
   базовые стили глобально: плагин выводит .ap-invoice и в ЛК (/my/order/N/) */
.ap-invoice {
    display: flex; flex-wrap: wrap; align-items: center; gap: 16px 22px;
    background: var(--ap-surface);
    border: 2px solid var(--ap-accent);
    border-radius: var(--ap-radius);
    padding: 20px 22px;
    box-shadow: 0 10px 30px rgba(0, 82, 177, .12);
}
.ap-invoice__body { flex: 1 1 240px; min-width: 0; }
.ap-invoice__title {
    margin: 0 0 6px;
    font-family: var(--ap-font-display); text-transform: uppercase;
    font-weight: 800; font-size: 16px; letter-spacing: .01em; color: var(--ap-ink);
}
.ap-invoice__text { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--ap-ink-soft); }
.ap-invoice__btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 9px; flex-shrink: 0;
    padding: 14px 24px; border-radius: var(--ap-radius-sm);
    background: var(--ap-accent); color: #fff !important; text-decoration: none;
    font-family: var(--ap-font-display); text-transform: uppercase;
    font-weight: 700; letter-spacing: .03em; font-size: 13.5px;
    transition: background var(--ap-transition);
}
.ap-invoice__btn:hover { background: var(--ap-accent-dark); color: #fff !important; }
.ap-invoice__btn svg { width: 18px; height: 18px; flex-shrink: 0; }

/* бейдж транспортной компании в строке варианта */
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-name,
.s-order-page .wa-delivery-variant .wa-name { display: block; line-height: 1.55; }
.wa-name .ap-tk {
    display: inline-block;
    background: var(--ap-dark);
    color: #fff;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: .03em;
    padding: 2px 8px;
    border-radius: 7px;
    margin-right: 7px;
    vertical-align: middle;
}
.wa-name .ap-tk-rest { color: var(--ap-ink); font-weight: 600; }
.wa-name .ap-tk-logo { height: 18px; width: auto; max-width: 76px; vertical-align: middle; margin-right: 8px; object-fit: contain; }
.wa-order-dialog.wa-shipping-pickup-dialog .wa-content-section .wa-variant-details-section > .wa-section-header {
    border-bottom: 0 !important;
}
/* модал ПВЗ: скругление клипает карту, карта вплотную к краям, панель с отступами */
.wa-shipping-pickup-dialog .wa-dialog-body { overflow: hidden !important; padding: 0 !important; }
.wa-shipping-pickup-dialog .wa-dialog-body > div:has(> .wa-map-section):has(> .wa-sidebar-section) { padding: 0 !important; }
.wa-shipping-pickup-dialog .wa-map-section { padding: 0 !important; margin: 0 !important; }
.wa-shipping-pickup-dialog .wa-map-section,
.wa-shipping-pickup-dialog .wa-map-section > div,
.wa-shipping-pickup-dialog .wa-pickup-map,
.wa-shipping-pickup-dialog ymaps { border-radius: 0 !important; }
.wa-shipping-pickup-dialog .wa-sidebar-section { padding: 14px 14px 16px 18px; }
/* список точек: компактные карточки с полезной инфой */
.wa-shipping-pickup-dialog .wa-variant-wrapper { padding: 13px 14px !important; }
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-name { margin-bottom: 4px; }
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-details,
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-additional { font-size: 12.5px; color: #222; }
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-price { color: var(--ap-ink); font-weight: 700; margin-right: 8px; }

@media (max-width: 760px) {
    .wa-shipping-pickup-dialog .wa-dialog-body { height: 92vh !important; }
    .wa-shipping-pickup-dialog .wa-dialog-body:has(> .wa-map-section):has(> .wa-sidebar-section),
    .wa-shipping-pickup-dialog .wa-dialog-body > div:has(> .wa-map-section):has(> .wa-sidebar-section) { flex-direction: column; }
    .wa-shipping-pickup-dialog .wa-sidebar-section { order: 1 !important; flex: 1 1 auto !important; max-width: none; border-right: 0; border-top: 1px solid var(--ap-line); }
    .wa-shipping-pickup-dialog .wa-map-section { order: -1 !important; flex: 0 0 240px !important; }
}

/* финальная версия модала ПВЗ — ближе к референсу Ozon */
.wa-shipping-pickup-dialog .wa-dialog-background {
    background: rgba(8, 18, 38, .34) !important;
    backdrop-filter: blur(1.5px);
}
.wa-shipping-pickup-dialog .wa-dialog-body {
    width: min(1760px, calc(100vw - 96px)) !important;
    max-width: calc(100vw - 96px) !important;
    height: min(900px, calc(100vh - 92px)) !important;
    border-radius: 32px !important;
    background: #fff !important;
    box-shadow: 0 24px 70px rgba(8, 18, 38, .22) !important;
}
.wa-shipping-pickup-dialog .wa-dialog-header {
    position: absolute;
    z-index: 20;
    left: 0;
    top: 0;
    width: 424px;
    min-height: 84px;
    display: flex;
    align-items: center;
    border-bottom: 0 !important;
    padding: 28px 28px 16px !important;
    background: #fff !important;
    font-size: 28px;
    line-height: 1.1;
    text-transform: none;
    letter-spacing: 0;
    font-family: var(--ap-font);
    font-weight: 800;
}
.wa-shipping-pickup-dialog .wa-dialog-close,
.wa-shipping-pickup-dialog .js-close-dialog {
    z-index: 30 !important;
    right: 22px !important;
    top: 22px !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    background: rgba(245, 249, 253, .96) !important;
    color: #718096 !important;
}
.wa-shipping-pickup-dialog .wa-sidebar-section {
    flex-basis: 424px !important;
    max-width: 424px;
    padding: 112px 28px 28px !important;
    border-right: 1px solid #e6edf5;
    background: #fff;
}
.wa-shipping-pickup-dialog .wa-map-section {
    background: #f8f5ef;
}
.wa-shipping-pickup-dialog .wa-variants-section {
    padding: 0 !important;
}
.wa-shipping-pickup-dialog .wa-variants-list {
    gap: 10px !important;
}
/* карточки применяем только к СПИСКУ точек (не к панели деталей!) */
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper {
    min-height: 104px;
    padding: 18px 20px !important;
    border: 0 !important;
    border-radius: 22px !important;
    background: #f3f6fa !important;
    box-shadow: none !important;
}
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper:hover,
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper.is-selected,
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper.is-active,
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper:has(input:checked) {
    background: #eef3f9 !important;
    border: 0 !important;
    box-shadow: inset 0 0 0 2px var(--ap-accent) !important;
}
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper .wa-name {
    font-size: 16px;
    line-height: 1.35;
}
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper .wa-details,
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper .wa-additional {
    margin-top: 8px;
    font-size: 13px;
}
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper::after {
    /* content: "\f054";
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    font-family: "Font Awesome 6 Pro";
    font-weight: 300;
    color: #91a0b5; */
}
.wa-shipping-pickup-dialog .wa-variant-details-section {
    padding: 0 !important;
}

/* ── панель деталей выбранного ПВЗ ── */
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-section-header { margin: 0 0 16px; font-size: inherit; }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-section-header a.js-show-variants-list {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 9px 16px; border-radius: var(--ap-radius-pill);
    background: #f3f6fa; color: var(--ap-ink-soft);
    font-family: var(--ap-font); font-size: 13.5px; font-weight: 600;
    text-transform: none; letter-spacing: 0; text-decoration: none;
    transition: background var(--ap-transition), color var(--ap-transition);
}
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-section-header a.js-show-variants-list:hover { background: var(--ap-accent-soft); color: var(--ap-accent); }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-section-header .wa-icon svg { width: 10px; height: 10px; }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-variant-wrapper { padding: 0; border: 0; background: transparent; }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-variant-title {
    margin: 2px 0 14px;
    font-family: var(--ap-font); font-weight: 800; font-size: 18px; line-height: 1.3;
    text-transform: none; letter-spacing: 0; color: var(--ap-ink);
}
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-table {
    display: block; padding: 4px 18px;
    background: #f3f6fa; border-radius: 18px;
}
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-row {
    display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
    padding: 12px 0; border-bottom: 1px solid #e6edf5;
}
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-row:last-child { border-bottom: 0; }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-cell { display: block; padding: 0; }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-cell-name { flex: 0 0 38%; }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-cell-name .wa-name {
    font-family: var(--ap-font); font-size: 13px; font-weight: 500; line-height: 1.4;
    text-transform: none; letter-spacing: 0; color: var(--ap-ink-faint);
}
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-cell-value {
    flex: 1; text-align: right;
    font-size: 14px; font-weight: 600; line-height: 1.45; color: var(--ap-ink);
}
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-cell-value .wa-delivery-price { color: var(--ap-accent); font-weight: 700; }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-variant-actions { margin-top: 16px; }
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-button.js-use-variant {
    display: block; width: 100%;
    padding: 15px 20px !important;
    border-radius: 16px !important;
    background: var(--ap-accent) !important; color: #fff !important;
    font-size: 14px; cursor: pointer;
    transition: background var(--ap-transition);
}
.wa-shipping-pickup-dialog .wa-variant-details-section .wa-button.js-use-variant:hover { background: var(--ap-accent-dark) !important; }
.wa-shipping-pickup-dialog .wa-pickup-map,
.wa-shipping-pickup-dialog .wa-map-section > div {
    min-height: 100%;
}
.wa-shipping-pickup-dialog [class*="ymaps"][class*="balloon"],
.wa-shipping-pickup-dialog [class*="ymaps"][class*="hint"],
.wa-shipping-pickup-dialog .ap-hidden-map-balloon {
    display: none !important;
    pointer-events: none !important;
}
.wa-shipping-pickup-dialog .ap-yandex-logo-pin {
    position: relative;
    left: -30px;
    top: -62px;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 10px 24px rgba(8, 18, 38, .22);
}
.wa-shipping-pickup-dialog .ap-yandex-logo-pin::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -8px;
    width: 18px;
    height: 18px;
    background: #fff;
    transform: translateX(-50%) rotate(45deg);
    border-radius: 3px;
    box-shadow: 4px 4px 10px rgba(8, 18, 38, .08);
}
.wa-shipping-pickup-dialog .ap-yandex-logo-pin img {
    position: relative;
    z-index: 1;
    display: block;
    max-width: 42px;
    max-height: 30px;
}

/* доставка на странице заказа — крупные плитки и строки как в референсе */
.s-order-page .wa-step-shipping-section {
    color: var(--ap-ink);
}
.s-order-page .wa-step-shipping-section > .wa-header,
.s-order-page .wa-step-shipping-section .wa-section-header {
    margin: 0 0 28px !important;
    font-family: var(--ap-font-display);
    font-size: 34px !important;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: .01em;
    color: #111;
}
.s-order-page .wa-step-shipping-section .wa-field-wrapper {
    margin-bottom: 22px;
}
.s-order-page .wa-step-shipping-section .wa-field-wrapper .wa-label,
.s-order-page .wa-step-shipping-section .wa-field-wrapper label {
    margin-bottom: 10px !important;
    font-size: 21px !important;
    line-height: 1.25;
    font-weight: 700 !important;
    color: var(--ap-ink) !important;
}
.s-order-page .wa-step-shipping-section input[type="text"],
.s-order-page .wa-step-shipping-section .wa-input {
    min-height: 66px !important;
    padding: 18px 24px !important;
    border: 0 !important;
    border-radius: 22px !important;
    background: #edf3f9 !important;
    font-size: 20px !important;
    line-height: 1.3 !important;
    color: var(--ap-ink) !important;
    box-shadow: none !important;
}
.s-order-page .wa-step-shipping-section input[type="text"]:focus,
.s-order-page .wa-step-shipping-section .wa-input:focus {
    box-shadow: inset 0 0 0 3px var(--ap-ink) !important;
}
.s-order-page .wa-step-shipping-section .wa-delivery-types-section,
.s-order-page .wa-step-shipping-section .wa-delivery-variants-section {
    margin-top: 36px !important;
}
.s-order-page .wa-step-shipping-section .wa-delivery-types-section .wa-header,
.s-order-page .wa-step-shipping-section .wa-delivery-variants-section .wa-header {
    margin-bottom: 18px !important;
    font-family: var(--ap-font-display);
    font-size: 22px !important;
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: .01em;
    color: #111;
}
.s-order-page .wa-step-shipping-section .wa-types-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 18px !important;
}
.s-order-page .wa-step-shipping-section .wa-type-wrapper {
    position: relative;
    min-height: 112px;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 26px 28px !important;
    border: 3px solid transparent !important;
    border-radius: 0 !important;
    background: #f2f4f7 !important;
    text-align: center;
}
.s-order-page .wa-step-shipping-section .wa-type-wrapper:last-child {
    border-radius: 0 18px 18px 0 !important;
}
.s-order-page .wa-step-shipping-section .wa-type-wrapper:first-child {
    border-radius: 18px 0 0 18px !important;
}
.s-order-page .wa-step-shipping-section .wa-type-wrapper:hover {
    background: #eef3f9 !important;
    border-color: transparent !important;
}
.s-order-page .wa-step-shipping-section .wa-type-wrapper.is-active,
.s-order-page .wa-step-shipping-section .wa-type-wrapper:has(input:checked) {
    background: #f2f4f7 !important;
    border-color: var(--ap-ink) !important;
    box-shadow: none !important;
}
.s-order-page .wa-step-shipping-section .wa-type-wrapper.is-active::after {
    display: none !important;
}
.s-order-page .wa-step-shipping-section .wa-type-wrapper .wa-name {
    margin: 0 0 8px;
    font-family: var(--ap-font-display);
    font-size: 26px;
    line-height: 1;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--ap-ink) !important;
}
.s-order-page .wa-step-shipping-section .wa-type-wrapper .wa-price {
    display: inline-block;
    margin-right: 8px;
    font-size: 19px;
    font-weight: 800;
    color: var(--ap-ink) !important;
}
.s-order-page .wa-step-shipping-section .wa-type-wrapper .wa-date {
    display: inline-block;
    margin: 0;
    font-size: 18px;
    color: var(--ap-ink) !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown.js-variants-select .wa-dropdown-toggle {
    min-height: 70px;
    display: flex !important;
    align-items: center;
    padding: 18px 58px 18px 24px !important;
    border: 0 !important;
    border-radius: 18px !important;
    background: #edf3f9 !important;
    font-size: 20px;
    color: var(--ap-ink);
}
.s-order-page .wa-step-shipping-section .wa-dropdown.js-variants-select .wa-dropdown-toggle::after {
    right: 24px;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-menu,
.s-order-page .wa-step-shipping-section .wa-dropdown-area {
    border: 0 !important;
    border-radius: 22px !important;
    box-shadow: 0 18px 42px rgba(8, 18, 38, .14) !important;
    overflow: hidden;
    background: #fff !important;
    max-height: 420px;
    overflow-y: auto;
}
.s-order-page .wa-step-shipping-section .wa-delivery-variant,
.s-order-page .wa-step-shipping-section .wa-dropdown-item .wa-delivery-variant {
    min-height: 118px;
    display: grid !important;
    grid-template-columns: 42px minmax(210px, 1.2fr) minmax(160px, .8fr) minmax(100px, .45fr);
    align-items: center;
    gap: 24px;
    padding: 24px 32px !important;
    margin: 0 0 18px !important;
    border: 3px solid transparent !important;
    border-radius: 20px !important;
    background: #f2f4f7 !important;
}
.s-order-page .wa-step-shipping-section .wa-delivery-variant:hover {
    background: #edf3f9 !important;
}
.s-order-page .wa-step-shipping-section .wa-delivery-variant.is-active,
.s-order-page .wa-step-shipping-section .wa-delivery-variant.is-selected,
.s-order-page .wa-step-shipping-section .wa-delivery-variant:has(input:checked) {
    border-color: var(--ap-ink) !important;
}
.s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-radio,
.s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-radio-wrapper,
.s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-checkbox-wrapper {
    grid-column: 1;
    margin: 0 !important;
}
.s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-name {
    grid-column: 2;
    display: flex !important;
    align-items: center;
    gap: 20px;
    margin: 0 !important;
    font-size: 20px;
    line-height: 1.2;
    font-weight: 700;
    color: var(--ap-ink) !important;
}
.s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-date,
.s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-additional {
    grid-column: 3;
    margin: 0 !important;
    font-size: 20px !important;
    line-height: 1.25;
    color: #858585 !important;
}
.s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-price,
.s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-delivery-price {
    grid-column: 4;
    justify-self: start;
    margin: 0 !important;
    font-size: 22px !important;
    line-height: 1.2;
    font-weight: 500 !important;
    color: #0b0b0b !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-dropdown-item .wa-delivery-variant,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-dropdown-item .wa-delivery-variant {
    min-height: 0;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px 18px;
    padding: 16px 18px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-dropdown-item:not(:last-child) .wa-delivery-variant,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-dropdown-item:not(:last-child) .wa-delivery-variant {
    border-bottom: 1px solid #edf1f6 !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-dropdown-item:hover .wa-delivery-variant,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-dropdown-item:hover .wa-delivery-variant {
    background: #f5f8fc !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-name,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-name {
    grid-column: 1;
    display: grid !important;
    grid-template-columns: 112px minmax(0, 1fr);
    min-width: 0;
    align-items: center;
    gap: 14px;
    font-size: 16px;
    line-height: 1.28;
    overflow-wrap: anywhere;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .ap-shipping-logo,
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .ap-tk-logo,
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .ap-tk,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .ap-shipping-logo,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .ap-tk-logo {
    grid-column: 1;
    width: 112px;
    max-width: 112px;
    height: 34px;
    justify-self: start;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .ap-tk,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .ap-tk {
    display: inline-flex;
    width: auto;
    max-width: 112px;
    height: auto;
    padding: 5px 9px;
    font-size: 11px;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .ap-tk-rest,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .ap-tk-rest {
    grid-column: 2;
    min-width: 0;
    font-size: 16px;
    line-height: 1.28;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-date,
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-additional,
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-service,
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-price,
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-delivery-price,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-date,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-additional,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-service,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-price,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-delivery-price {
    grid-column: auto;
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 1.25;
    white-space: nowrap;
    color: var(--ap-ink-soft) !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-price,
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-delivery-price,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-price,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-delivery-price {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    padding-right: 124px;
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--ap-ink) !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-date,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-date {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-service,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-service {
    display: none !important;
}
.s-order-page .wa-step-shipping-section .ap-shipping-logo,
.s-order-page .wa-step-shipping-section .ap-tk-logo {
    width: 148px;
    height: 46px;
    max-width: 148px;
    object-fit: contain;
    object-position: left center;
    margin: 0 !important;
}
.s-order-page .wa-step-shipping-section .ap-tk-rest {
    font-size: 20px;
    font-weight: 500;
}
.s-order-page .wa-step-shipping-section .wa-variant-details-section,
.s-order-page .wa-step-shipping-section .wa-delivery-details-section {
    margin-top: 28px !important;
    padding: 28px 0 0 !important;
    border-top: 1px solid #edf1f6;
    font-size: 20px;
    line-height: 1.45;
}
.s-order-page .wa-step-shipping-section .wa-variant-details-section .wa-cell-name,
.s-order-page .wa-step-shipping-section .wa-delivery-details-section .wa-cell-name {
    color: #858585;
}
.s-order-page .wa-step-shipping-section .wa-variant-details-section .wa-cell-value,
.s-order-page .wa-step-shipping-section .wa-delivery-details-section .wa-cell-value {
    color: var(--ap-ink);
    font-weight: 600;
}

@media (max-width: 900px) {
    .s-order-page .wa-step-shipping-section .wa-types-list {
        grid-template-columns: 1fr;
    }
    .s-order-page .wa-step-shipping-section .wa-type-wrapper,
    .s-order-page .wa-step-shipping-section .wa-type-wrapper:first-child,
    .s-order-page .wa-step-shipping-section .wa-type-wrapper:last-child {
        border-radius: 18px !important;
    }
    .s-order-page .wa-step-shipping-section .wa-delivery-variant,
    .s-order-page .wa-step-shipping-section .wa-dropdown-item .wa-delivery-variant {
        grid-template-columns: 34px 1fr;
        gap: 12px 18px;
        padding: 20px !important;
    }
    .s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-date,
    .s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-additional,
    .s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-price,
    .s-order-page .wa-step-shipping-section .wa-delivery-variant .wa-delivery-price {
        grid-column: 2;
        font-size: 17px !important;
    }
}

/* оплата — крупные плитки как в референсе, адаптировано под 2 способа */
.s-order-page .wa-step-payment-section {
    background: #fff;
}
.s-order-page .wa-step-payment-section > .wa-header,
.s-order-page .wa-step-payment-section .wa-section-header {
    font-size: 34px !important;
    line-height: 1.1;
    margin: 0 0 28px !important;
}
.s-order-page .wa-step-payment-section .wa-methods-list,
.s-order-page .wa-step-payment-section .wa-methods-list.wide {
    grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
    gap: 18px !important;
}
/* карточка способа оплаты — компактная, с иконкой-бейджем слева */
.s-order-page .wa-step-payment-section .wa-method-wrapper {
    padding: 18px 22px !important;
    border-radius: 18px !important;
    background: #f2f4f7 !important;
    border: 2px solid transparent !important;
    transition: border-color .15s ease, background .15s ease;
}
.s-order-page .wa-step-payment-section .wa-method-wrapper:hover {
    background: #eef3f9 !important;
    border-color: transparent !important;
}
.s-order-page .wa-step-payment-section .wa-method-wrapper.is-active,
.s-order-page .wa-step-payment-section .wa-method-wrapper.is-selected,
.s-order-page .wa-step-payment-section .wa-method-wrapper:has(input:checked) {
    background: #eef2f7 !important;
    border-color: var(--ap-ink) !important;
}
.s-order-page .wa-step-payment-section .wa-method-wrapper .wa-method {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    min-height: 0 !important;
}
.s-order-page .wa-step-payment-section .wa-method-wrapper .wa-checkbox-wrapper {
    order: 2;
    flex-shrink: 0;
    margin: 0 !important;
}
.s-order-page .wa-step-payment-section .wa-method-wrapper .wa-method-body {
    order: 1;
    flex: 1 1 auto;
    width: auto !important;
    min-width: 0;
    min-height: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: center;
    column-gap: 16px;
}
.s-order-page .wa-step-payment-section .wa-method-wrapper .wa-method-body::before {
    content: "";
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
    width: 54px;
    height: 54px;
    border-radius: 14px;
    background: #fff url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%230b1a30%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%202.75h6.6L17.25%206.4V20.5a.75.75%200%200%201-.75.75h-9a.75.75%200%200%201-.75-.75V3.5A.75.75%200%200%201%207%202.75Z%22%2F%3E%3Cpath%20d%3D%22M13.4%202.75V6.5h3.85%22%2F%3E%3Cpath%20d%3D%22M10%2013.4v5.6%22%2F%3E%3Cpath%20d%3D%22M10%2013.4h2.4a1.8%201.8%200%200%201%200%203.6H10%22%2F%3E%3Cpath%20d%3D%22M8.5%2016.4h3.9%22%2F%3E%3C%2Fsvg%3E") center / 28px 28px no-repeat;
    box-shadow: 0 1px 2px rgba(8, 18, 38, .08);
}
.s-order-page .wa-step-payment-section .wa-method-wrapper .wa-payment-name,
.s-order-page .wa-step-payment-section .wa-method-wrapper .wa-payment-name a {
    grid-column: 2;
    font-size: 18px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
}
.s-order-page .wa-step-payment-section .wa-method-wrapper .wa-description {
    grid-column: 2;
    margin-top: 3px;
    max-width: none;
    font-size: 13.5px !important;
    line-height: 1.4 !important;
    color: var(--ap-ink-soft) !important;
}
.s-order-page .wa-step-payment-section .s-radio input + span,
.s-order-page .wa-step-payment-section .s-checkbox input + span {
    width: 26px !important;
    height: 26px !important;
    border: 2px solid #cdd5df !important;
    border-radius: 8px !important;
    background: #fff !important;
}
.s-order-page .wa-step-payment-section .s-radio input:checked + span,
.s-order-page .wa-step-payment-section .s-checkbox input:checked + span {
    background: #050505 !important;
    border-color: #050505 !important;
}
.s-order-page .wa-step-payment-section .s-radio input:checked + span::after,
.s-order-page .wa-step-payment-section .s-checkbox input:checked + span::after {
    left: 8px;
    top: 4px;
    width: 6px;
    height: 12px;
}

/* лишняя FontAwesome-иконка, которую дорисовывает improvePayments() — не нужна,
   у нас своя SVG-иконка в бейдже (::before) */
.s-order-page .wa-step-payment-section .ap-payment-icon {
    display: none !important;
}

/* ── реквизиты юр.лица (сетка 12 колонок):
   строка 1 — ИНН · Название · Организация из профиля;
   строка 2 — Юридический адрес · КПП ── */
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper {
    margin-top: 36px;
}
/* раскладка — CSS Grid с ЯВНОЙ привязкой каждого поля по имени инпута
   (не зависит от служебных элементов внутри группы, которые ломали автораскладку) */
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line {
    display: grid !important;
    grid-template-columns: repeat(12, 1fr);
    align-items: end !important;
    gap: 18px 16px !important;
    margin: 0 !important;
}
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line > .wa-field-wrapper {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
/* любые не-поля внутри группы (пустые div ошибок/подсказок) не участвуют в сетке */
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line > :not(.wa-field-wrapper) {
    display: none !important;
}
/* строка 1: Организация из профиля · ИНН · Название */
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line > .wa-field-wrapper:has(select[name*="b2b_org"]),
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line > .wa-field-wrapper.apcs-host {
    grid-column: 1 / span 4;
    grid-row: 1;
}
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line > .wa-field-wrapper:has(input[name*="[inn]"]) {
    grid-column: 5 / span 4;
    grid-row: 1;
}
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line > .wa-field-wrapper:has(input[name*="[company]"]) {
    grid-column: 9 / span 4;
    grid-row: 1;
}
/* строка 2 */
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line > .wa-field-wrapper:has(input[name*="[legal_address]"]) {
    grid-column: 1 / span 9;
    grid-row: 2;
}
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line > .wa-field-wrapper:has(input[name*="[kpp]"]) {
    grid-column: 10 / span 3;
    grid-row: 2;
}
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-field-wrapper .wa-label {
    margin-bottom: 7px !important;
    font-size: 13px !important;
    color: var(--ap-ink-soft) !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-field-wrapper .wa-input {
    width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 900px) {
    .wa-shipping-pickup-dialog .wa-dialog-body {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        height: calc(100vh - 24px) !important;
        border-radius: 24px !important;
    }
    .wa-shipping-pickup-dialog .wa-dialog-header {
        width: 100%;
        min-height: 74px;
        padding: 22px 66px 14px 22px !important;
        font-size: 24px;
    }
    .wa-shipping-pickup-dialog .wa-sidebar-section {
        padding: 96px 18px 20px !important;
        max-width: none;
    }
    .wa-shipping-pickup-dialog .wa-map-section {
        flex-basis: 45vh !important;
    }
    .s-order-page .wa-step-payment-section .wa-methods-list,
    .s-order-page .wa-step-payment-section .wa-methods-list.wide {
        grid-template-columns: 1fr !important;
    }
    .s-order-page .wa-step-payment-section .wa-method-wrapper {
        padding: 16px 18px !important;
    }
    /* на узких экранах — всё в один столбец на всю ширину */
    .s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line {
        grid-template-columns: 1fr !important;
    }
    .s-order-page .wa-step-payment-section .wa-payment-fields-wrapper .wa-fields-group.line > .wa-field-wrapper {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;
    }
}

/* кнопка «вернуться к покупкам» — сверху слева */
.ap-order-top { margin: 4px 0 16px; }
.ap-order-back {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 9px 18px 9px 9px;
    background: var(--ap-surface);
    border-radius: 999px;
    box-shadow: 0 1px 2px rgba(8, 18, 38, .05), 0 10px 24px rgba(8, 18, 38, .07);
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .03em;
    color: var(--ap-ink);
    transition: transform var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-order-back:hover { color: var(--ap-ink); transform: translateX(-2px); box-shadow: 0 2px 6px rgba(8, 18, 38, .08), 0 14px 30px rgba(8, 18, 38, .12); }
.ap-order-back__ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--ap-bg);
}

/* блок .wa-cart-details (дубль сводки + купон) прячем из корзины;
   купон остаётся в DOM (display:none) и работает — его UI вынесен в правый блок */
.s-order-page .wa-cart-details { display: none !important; }
/* нативные блоки купона скрыты везде — остаётся только наш UI-проксик .ap-coupon */
.s-order-page .wa-coupon-section { display: none !important; }

/* спиннер загрузки в чекауте — круглый, на квадратной размытой подложке (как на главной) */
.s-order-page .s-loading-animation,
.s-order-page .wa-form-loader,
.s-order-page .wa-cart-loader,
.wa-order-form-wrapper .wa-form-loader,
.wa-order-cart-wrapper .wa-cart-loader {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 90px;
    width: auto !important;
    aspect-ratio: auto !important;
    background: rgba(244, 242, 238, .5) !important;
    background-image: none !important;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    border-radius: var(--ap-radius-sm) !important;
}
.s-order-page .s-loading-animation > *,
.s-order-page .wa-form-loader > *,
.s-order-page .wa-cart-loader > *,
.wa-order-form-wrapper .wa-form-loader > *,
.wa-order-cart-wrapper .wa-cart-loader > * { display: none !important; }
.s-order-page .s-loading-animation::after,
.s-order-page .wa-form-loader::after,
.s-order-page .wa-cart-loader::after,
.wa-order-form-wrapper .wa-form-loader::after,
.wa-order-cart-wrapper .wa-cart-loader::after {
    content: "";
    flex: 0 0 auto;
    align-self: center;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px;
    min-height: 42px;
    box-sizing: border-box;
    border-radius: 50%;
    border: 3px solid var(--ap-line);
    border-top-color: var(--ap-accent);
    background: none !important;
    animation: ap-spin .85s linear infinite;
}

/* промокод в правом тёмном блоке (свой UI-проксик) */
.s-order-aside .ap-coupon-host { margin-bottom: 18px; }
.s-order-aside .ap-coupon { display: flex; gap: 10px; }
.s-order-aside .ap-coupon__input {
    flex: 1 1 auto;
    min-width: 0;
    background: rgba(255, 255, 255, .08) !important;
    border: 1.5px solid transparent !important;
    border-radius: 14px !important;
    color: #fff !important;
    padding: 13px 15px !important;
}
.s-order-aside .ap-coupon__input::placeholder { color: rgba(255, 255, 255, .45); }
.s-order-aside .ap-coupon__input:focus { background: rgba(255, 255, 255, .14) !important; border-color: rgba(255, 255, 255, .5) !important; box-shadow: none !important; }
.s-order-aside .ap-coupon__apply {
    flex-shrink: 0;
    background: #fff;
    color: var(--ap-ink);
    border: 0;
    border-radius: 14px;
    padding: 0 20px;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-weight: 800;
    font-size: 13px;
    letter-spacing: .03em;
    cursor: pointer;
    transition: background .2s ease;
}
.s-order-aside .ap-coupon__apply:hover { background: #ececec; }
.s-order-aside .ap-coupon--applied { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.s-order-aside .ap-coupon__ok { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 14px; }
.s-order-aside .ap-coupon__ok i { color: #38c172; }
.s-order-aside .ap-coupon__cancel {
    flex-shrink: 0;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    border: 0;
    border-radius: 10px;
    padding: 8px 14px;
    font-size: 13px;
    cursor: pointer;
    transition: background .2s ease;
}
.s-order-aside .ap-coupon__cancel:hover { background: rgba(255, 255, 255, .2); }

/* компактный степпер количества */
.s-order-page .wa-quantity-actions { display: inline-flex; align-items: center; gap: 6px; }
.s-order-page .wa-button.s-minus-button,
.s-order-page .wa-button.s-plus-button {
    width: 38px;
    height: 38px;
    min-width: 0;
    padding: 0;
    border-radius: 11px;
    background: var(--ap-bg);
    border: 0;
    color: var(--ap-ink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
    transition: background var(--ap-transition);
}
.s-order-page .wa-button.s-minus-button:hover,
.s-order-page .wa-button.s-plus-button:hover { background: var(--ap-line); }
.s-order-page .wa-column-quantity input[type="text"],
.s-order-page .wa-column-quantity input[type="number"] {
    width: 66px;
    text-align: center;
    font-weight: 700;
}

/* сводка справа: пунктирные «лидеры» между названием и значением (как в референсе) */
.s-order-aside .wa-item,
.s-order-aside .wa-price-section .wa-item { display: flex; align-items: baseline; gap: 0; }
.s-order-aside .wa-item .wa-name {
    flex: 1 1 auto;
    display: flex;
    align-items: baseline;
    min-width: 0;
}
.s-order-aside .wa-item .wa-name::after {
    content: "";
    flex: 1 1 auto;
    margin: 0 8px;
    border-bottom: 1px dotted rgba(255, 255, 255, .28);
    transform: translateY(-2px);
}
.s-order-aside .wa-item .wa-value,
.s-order-aside .wa-item .wa-price { flex: 0 0 auto; white-space: nowrap; }

/* убираем все сплошные белые разделители в правом блоке — оставляем только тонкий пунктир-лидер */
.s-order-aside .wa-step-confirm-section,
.s-order-aside .wa-section-body,
.s-order-aside .wa-total-section,
.s-order-aside .wa-price-section,
.s-order-aside .wa-item,
.s-order-aside .wa-line,
.s-order-aside .ap-coupon-moved,
.s-order-aside .ap-coupon-moved * { border-top: 0 !important; border-bottom: 0 !important; }
.s-order-aside .wa-step-confirm-section .wa-header { font-size: 22px; }
/* строка «Итого» — по вертикали по центру, без съезжающей крупной суммы */
.s-order-aside .wa-item-total,
.s-order-aside .wa-total-section .wa-item { align-items: center; }
.s-order-aside .wa-item-total .wa-price,
.s-order-aside .wa-total-section .wa-price { font-family: var(--ap-font-display); font-size: 16px; font-weight: 400; line-height: 1; }

/* «Очистить корзину» — текст + иконка корзины справа */
.s-order-page .ap-clear-cart {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 9px;
    color: var(--ap-ink-soft);
    font-size: 14px;
}
.s-order-page .ap-clear-cart:hover { color: var(--ap-red); }
.s-order-page .ap-clear-cart__icon { display: inline-flex; }
.s-order-page .ap-clear-cart__icon svg { display: block; width: 18px; height: 18px; fill: none; }

/* товар в корзине: вертикальное выравнивание по центру + удаление иконкой справа */
.s-order-page .wa-product,
.s-order-page .wa-product-body {
    position: relative;
    align-items: center;
}
.s-order-page .wa-product-body { padding-right: 46px; }
.s-order-page .wa-product-body > * { align-self: center; }
/* кнопка удаления товара → иконка-корзина у правого края строки */
.s-order-page .js-delete-product {
    position: absolute;
    top: 50%;
    right: 2px;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 0 !important;
    line-height: 0;
    color: var(--ap-ink-soft);
    transition: color .15s ease, background .15s ease;
    z-index: 2;
}
.s-order-page .js-delete-product > * { display: none !important; }
.s-order-page .js-delete-product::before {
    content: "";
    display: block;
    width: 18px;
    height: 18px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M3%206h18M8%206V4h8v2M19%206l-1%2014H6L5%206M10%2011v6M14%2011v6'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M3%206h18M8%206V4h8v2M19%206l-1%2014H6L5%206M10%2011v6M14%2011v6'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.s-order-page .js-delete-product:hover { color: var(--ap-red); background: var(--ap-bg); }

@media (max-width: 1020px) {
    html.is-order-page .s-order-page { grid-template-columns: 1fr; }
    html.is-order-page .s-order-page > .s-order-column,
    html.is-order-page .s-order-aside { grid-column: 1; }
    html.is-order-page .s-order-aside { position: static; grid-row: auto; }
}


/* отступ контента от шапки */
.ap-content:not(.ap-content--home) { padding-top: 38px; }
.ap-content.ap-content--product { padding-top: 24px; }

/* цена за штуку и за короб */
.ap-per-unit {
    font-size: 13px;
    font-weight: 500;
    color: var(--ap-ink-faint);
    margin-left: 3px;
}
.ap-box-price {
    flex: 1 1 100%;
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 12px;
    padding: 10px 2px 0;
    border-top: 1px solid var(--ap-line);
    font-size: 12.5px;
    color: var(--ap-ink-soft);
    white-space: nowrap;
}
.ap-box-price i { color: var(--ap-accent-dark); font-size: 13px; }
.ap-box-price b { color: var(--ap-ink); }
.ap-box-price b { font-weight: 700; }


/* модальное уведомление */
.ap-notify__window {
    max-width: 400px;
    text-align: center;
    padding: 32px 30px 28px;
}
.ap-notify__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 14px;
    border-radius: 50%;
    background: var(--ap-accent-soft);
    color: var(--ap-accent-dark);
    font-size: 26px;
}
.ap-notify__title { font-size: 21px; margin-bottom: 8px; }
.ap-notify__text { color: var(--ap-ink-soft); font-size: 14.5px; margin-bottom: 20px; }

/* оптовые цены по порогам */
.ap-bulk {
    margin: 16px 0 4px;
    background: var(--ap-surface);
    border-radius: var(--ap-radius);
    padding: 16px 18px;
    box-shadow: var(--ap-shadow);
}
.ap-bulk__head {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: .04em;
    margin-bottom: 10px;
}
.ap-bulk__head i { color: var(--ap-accent); font-size: 16px; }
.ap-bulk__row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 9px;
    font-size: 13.5px;
}
.ap-bulk__row span { flex: 1 1 auto; color: var(--ap-ink-soft); }
.ap-bulk__row em {
    font-style: normal;
    font-size: 12px;
    font-weight: 700;
    color: var(--ap-accent);
    background: var(--ap-accent-soft);
    padding: 2px 8px;
    border-radius: 99px;
}
.ap-bulk__row b { font-weight: 700; }
.ap-bulk__row.is-active { background: var(--ap-accent-soft); }
.ap-bulk__row.is-active span { color: var(--ap-accent-dark); font-weight: 600; }

/* цена со скидкой и экономия */
.ap-price-now {
    font-size: 25px;
    font-weight: 700;
    color: var(--ap-ink);
    margin-right: 8px;
}
.js-product-price.is-bulk {
    font-size: 15px !important;
    color: var(--ap-ink-faint);
    text-decoration: line-through;
    align-self: center;
}
.ap-save-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--ap-accent);
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    animation: ap-chip-in .34s cubic-bezier(.22, .8, .36, 1);
}
.ap-save-chip i { font-size: 14px; }
.ap-bulk-badge {
    display: inline-flex;
    align-self: center;
    padding: 3px 9px;
    margin-left: 2px;
    background: var(--ap-dark);
    color: #fff;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 700;
}
/* цена не меняет высоту при появлении скидки */
.ap-product__cart form > .add2cart.js-top { min-height: 38px; }

/* строка скидки в мини-корзине */
.ap-minicart__discount {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 6px;
    font-size: 14px;
    color: var(--ap-accent);
}
.ap-minicart__discount b { font-weight: 700; }

/* промокод, перенесённый в тёмный блок */
/* перенесённое в правый блок поле промокода */
.s-order-aside .ap-coupon-moved { margin-bottom: 18px; }
.s-order-aside .ap-coupon-moved .wa-coupon-section { display: flex; flex-direction: column; gap: 10px; }
.s-order-aside .ap-coupon-moved .wa-field,
.s-order-aside .ap-coupon-moved .wa-field-wrapper { width: 100%; margin: 0; }
.s-order-aside .ap-coupon-moved input[type="text"] { width: 100%; }
.s-order-aside .ap-coupon-moved .js-use-coupon,
.s-order-aside .ap-coupon-moved .wa-button:not(.outlined):not(.js-cancel-coupon) {
    width: 100%;
    background: #fff;
    color: var(--ap-ink);
    border: 0;
    padding: 14px 20px;
    border-radius: 14px;
    font-family: var(--ap-font-display);
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: .04em;
    cursor: pointer;
    transition: background .2s ease;
}
.s-order-aside .ap-coupon-moved .js-use-coupon:hover,
.s-order-aside .ap-coupon-moved .wa-button:not(.outlined):not(.js-cancel-coupon):hover { background: #ececec; color: var(--ap-ink); }
/* применённый промокод */
.s-order-aside .ap-coupon-moved .wa-active-state {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #fff;
    font-size: 14px;
}
.s-order-aside .ap-coupon-moved .wa-active-state .wa-text { color: #fff; display: inline-flex; align-items: center; gap: 6px; }
.s-order-aside .ap-coupon-moved .wa-active-state .wa-icon svg { fill: #38c172; }
.s-order-aside .ap-coupon-moved .js-cancel-coupon {
    flex-shrink: 0;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    border: 0;
    padding: 8px 14px;
    border-radius: 10px;
    font-size: 13px;
    cursor: pointer;
    transition: background .2s ease;
}
.s-order-aside .ap-coupon-moved .js-cancel-coupon:hover { background: rgba(255, 255, 255, .2); }

/* видимость полей чекаута */
html.is-order-page .s-order-page .wa-input,
html.is-order-page .s-order-page input[type="text"],
html.is-order-page .s-order-page input[type="email"],
html.is-order-page .s-order-page input[type="tel"],
html.is-order-page .s-order-page input[type="password"],
html.is-order-page .s-order-page select,
html.is-order-page .s-order-page textarea {
    background: var(--ap-bg) !important;
    border: 1.5px solid transparent !important;
    border-radius: 14px !important;
    color: var(--ap-ink) !important;
    padding: 14px 16px !important;
    min-height: 0;
    line-height: 1.4;
}
html.is-order-page .s-order-page input:focus,
html.is-order-page .s-order-page select:focus,
html.is-order-page .s-order-page textarea:focus {
    background: var(--ap-surface) !important;
    border-color: var(--ap-ink) !important;
    box-shadow: none !important;
    outline: none !important;
}
html.is-order-page .s-order-aside .wa-step-confirm-section input[type="text"] {
    background: rgba(255, 255, 255, .08) !important;
    border-color: transparent !important;
    color: #fff !important;
}
html.is-order-page .s-order-aside .wa-step-confirm-section input[type="text"]:focus {
    background: rgba(255, 255, 255, .14) !important;
    border-color: rgba(255, 255, 255, .5) !important;
}


.ap-authmodal__perks { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ap-authmodal__perks li { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.ap-authmodal__perks i { color: var(--ap-accent-dark); width: 20px; text-align: center; }

/* оптовая скидка в карточке каталога */
.ap-card__price.is-bulk-now { color: var(--ap-accent); }
.ap-card__bulkchip {
    margin-left: auto;
    align-self: center;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 9px;
    background: var(--ap-accent-soft);
    color: var(--ap-accent);
    border-radius: 8px;
    font-size: 10.5px;
    font-weight: 500;
    white-space: nowrap;
    animation: ap-chip-in .34s cubic-bezier(.22, .8, .36, 1);
}
.ap-card__bulkchip i { font-size: 11px; }
@keyframes ap-chip-in {
    from { opacity: 0; transform: translateX(8px) scale(.92); }
    to { opacity: 1; transform: none; }
}
.ap-authmodal__loading { display: flex; align-items: center; gap: 8px; color: var(--ap-ink-faint); padding: 18px 0; }

/* подсказки организаций (DaData) в чекауте */
.ap-party-suggest {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 120;
    background: var(--ap-surface);
    border-radius: 12px;
    box-shadow: var(--ap-shadow-lg);
    overflow: hidden;
    max-height: 320px;
    overflow-y: auto;
}
.ap-party-suggest__item {
    display: block;
    width: 100%;
    padding: 10px 14px;
    background: none;
    border: 0;
    border-bottom: 1px solid var(--ap-line);
    text-align: left;
    cursor: pointer;
    transition: background var(--ap-transition);
}
.ap-party-suggest__item:last-child { border-bottom: 0; }
.ap-party-suggest__item:hover { background: var(--ap-bg); }
.ap-party-suggest__item b { display: block; font-size: 13.5px; }
.ap-party-suggest__item span { display: block; font-size: 12px; color: var(--ap-ink-faint); margin-top: 2px; }
.ap-party-suggest__note { padding: 12px 14px; font-size: 12.5px; color: var(--ap-ink-faint); }

/* ------------------------------------------------------------
   13. Адаптив
------------------------------------------------------------ */
@media (min-width: 761px) and (max-width: 1440px),
       (min-width: 761px) and (max-height: 900px) {
    .ap-headbar__in {
        min-height: 64px;
        padding-top: 6px;
        padding-bottom: 6px;
    }
    .ap-subbar__in { min-height: 38px; }
    .ap-hero__in {
        gap: 34px;
        padding-top: 40px;
        padding-bottom: 44px;
    }
    .ap-hero__title {
        margin-bottom: 16px;
        font-size: clamp(36px, 4.45vw, 60px);
        line-height: .98;
    }
    .ap-hero__subtitle {
        max-width: 520px;
        margin-bottom: 22px;
        font-size: 15px;
        line-height: 1.48;
    }
    .ap-hero__actions { margin-bottom: 28px; }
    .ap-hero__actions .ap-btn { padding: 13px 26px; font-size: 15px; }
    .ap-hero__stats { gap: 28px; }
    .ap-stat__num { font-size: 32px; }
    .ap-stat__label { font-size: 12px; }
}

@media (max-width: 1280px) {
    .ap-product__layout { grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); gap: 28px; }
}

@media (max-width: 1020px) {
    .ap-container { padding: 0 20px; }

    .ap-mainnav__pages { display: none; }

    .ap-hero__photo {
        --ap-hero-photo-opacity: .62;
        width: 100%;
        object-position: 62% 50%;
        -webkit-mask-image: linear-gradient(
            90deg,
            transparent 0%,
            transparent 42%,
            rgba(0, 0, 0, .18) 58%,
            #000 86%,
            #000 100%
        );
        mask-image: linear-gradient(
            90deg,
            transparent 0%,
            transparent 42%,
            rgba(0, 0, 0, .18) 58%,
            #000 86%,
            #000 100%
        );
    }
    .ap-hero__photo--secondary { object-position: 58% 50%; }
    .ap-hero__photo--tertiary { object-position: 56% 50%; }
    .ap-hero__blob { opacity: .06; }

    .ap-hero__in {
        grid-template-columns: 1fr;
        padding-top: 56px;
        padding-bottom: 88px;
    }
    .ap-hero__progress { right: 10px; bottom: 14px; }

    .ap-cats { grid-template-columns: repeat(2, 1fr); }
    .ap-advantages__grid { grid-template-columns: repeat(2, 1fr); }
    .ap-blogposts { grid-template-columns: 1fr; }

    .ap-grid--3, .ap-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .ap-steps { grid-template-columns: repeat(2, 1fr); }
    .ap-step::after { display: none; }
    .ap-testimonials { grid-template-columns: 1fr; }
    .ap-faq-layout { grid-template-columns: 1fr; gap: 20px; }
    .ap-info-stats, .ap-info-grid--4 { grid-template-columns: repeat(2, 1fr); }

    .ap-banner { grid-template-columns: 1fr; padding: 36px; }
    .ap-banner__art { display: none; }

    .ap-product__layout { grid-template-columns: 1fr; }
    .ap-product__purchase { position: static; }
    .ap-reviews-layout { grid-template-columns: 1fr; }
    .ap-reviews-aside { position: static; order: -1; }
    .ap-allreviews__list { grid-template-columns: 1fr; }
    .ap-allreviews__layout { grid-template-columns: 1fr; }
    .ap-allreviews__side { position: static; }
    .ap-subbar__phone { display: none; }
    .ap-product__media { position: static; }
    .ap-product__info-grid { grid-template-columns: 1fr; }
    .ap-reviews-list { grid-template-columns: 1fr; }

    .ap-catalog--with-filters { grid-template-columns: 1fr; }

    /* фильтры превращаются в выезжающую панель */
    .ap-catalog__filters .filters {
        position: fixed;
        inset: 0;
        z-index: 450;
        background: rgba(22, 19, 15, .5);
        display: none;
        padding: 0;
    }
    .ap-catalog__filters .filters.is-shown { display: block; }
    .filters-form-wrapper {
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        width: min(88vw, 380px);
        border-radius: 0;
        overflow-y: auto;
        display: flex;
        flex-direction: column;
        animation: ap-slide-in .28s cubic-bezier(.22, .8, .36, 1);
    }
    @keyframes ap-slide-in {
        from { transform: translateX(40px); opacity: 0; }
        to   { transform: none; opacity: 1; }
    }
    .filters-mobile-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 8px;
    }
    .filters-mobile-header__title {
        font-family: var(--ap-font-display);
        font-size: 19px;
        font-weight: 600;
        text-transform: uppercase;
    }
    .filters-mobile-close { background: none; border: 0; font-size: 18px; }
    .filters-mobile-body { flex: 1 1 auto; }
    .filters-mobile-footer {
        display: flex;
        gap: 10px;
        padding-top: 16px;
        position: sticky;
        bottom: 0;
        background: var(--ap-surface);
    }
    .filters-mobile-footer .filters-mobile-done { flex: 1 1 auto; }
    /* десктопную «Сбросить» на мобиле скрываем жёстко: JS проставляет инлайн display при применении фильтра */
    .filters-reset-btn-desktop { display: none !important; }
}

@media (max-width: 760px) {
    body { font-size: 14px; }

    .ap-advantages__head { grid-template-columns: 1fr; gap: 12px; margin-bottom: 24px; }
    .ap-advantages__lead { font-size: 14px; }

    .ap-topbar__note { display: none; }
    .ap-topbar__in { justify-content: center; }

    .ap-headbar__in { gap: 12px; min-height: 64px; }
    .ap-burger { display: flex; }
    .ap-mainnav { display: none; }
    .ap-logo__text { font-size: 18px; }
    .ap-logo__badge { width: 38px; height: 38px; }

    .ap-search { display: none; }
    .ap-search.is-open {
        display: flex;
        position: absolute;
        left: 12px;
        right: 12px;
        top: 100%;
        z-index: 80;
        max-width: none;
        background: var(--ap-bg);
        padding: 10px;
        border-radius: 0 0 var(--ap-radius-sm) var(--ap-radius-sm);
        box-shadow: var(--ap-shadow-lg);
    }
    .ap-search--mobile { display: flex; position: relative; box-shadow: none; padding: 0; }
    .ap-search-toggle { display: none; }        /* внизу есть отдельная строка поиска */
    .ap-headbar { position: relative; }
    .ap-cart__label { display: none; }
    .ap-cart__link { padding: 10px 14px; }
    /* шапка: лого слева, действия и меню — справа */
    .ap-headbar__in { gap: 6px; }
    .ap-logo { order: 0; }
    .ap-headbar__actions { order: 4; gap: 0; margin-left: auto; }
    .ap-burger { order: 5; display: flex; }         /* кнопка меню — в правой части */
    .ap-action__who { display: none; }
    .ap-cart__info { display: none; }
    .ap-action { padding: 7px; }
    .ap-logo__badge { width: 34px; height: 34px; }
    .ap-logo__text { font-size: 16px; }
    /* каталог и город — в боковом меню, из шапки убираем */
    .ap-megamenu-wrap { display: none; }
    .ap-subbar { display: none; }

    .ap-hero__in { gap: 24px; padding-top: 36px; padding-bottom: 52px; }
    .ap-hero__title { margin-bottom: 14px; font-size: clamp(30px, 9vw, 44px); }
    .ap-hero__subtitle { margin-bottom: 22px; font-size: 14px; line-height: 1.45; }
    .ap-hero__progress {
        right: 8px;
        bottom: 12px;
        grid-template-columns: auto 52px;
        min-width: 0;
        padding: 0;
    }
    .ap-hero__progress-track { width: 52px; }
    /* герой: кнопки в один ряд, компактнее */
    .ap-hero__actions { flex-wrap: nowrap; gap: 10px; margin-bottom: 34px; }
    .ap-hero__actions .ap-btn { flex: 1 1 0; min-width: 0; justify-content: center; padding: 13px 12px; font-size: 14px; white-space: nowrap; }
    .ap-hero__actions .ap-btn svg { flex: 0 0 auto; }
    /* герой: статы в один ряд, компактно */
    .ap-hero__stats { flex-wrap: nowrap; gap: 12px; }
    .ap-stat { flex: 1 1 0; min-width: 0; }
    .ap-stat__num { font-size: 22px; }
    .ap-stat__label { font-size: 10.5px; max-width: none; line-height: 1.3; }
    .ap-section { padding: 48px 0 8px; }
    .ap-section__title { font-size: 24px; }
    .ap-cats { grid-template-columns: 1fr; }
    .ap-cat-tile { min-height: 150px; padding: 22px; }
    .ap-features,
    .ap-features--with-promo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .ap-feature__inner { min-height: 194px; padding: 16px; }
    .ap-feature__num { right: 10px; font-size: 84px; }
    .ap-feature__icon { width: 42px; height: 42px; margin-bottom: 24px; border-radius: 13px; }
    .ap-feature__icon svg { width: 25px; height: 25px; }
    .ap-feature__name { font-size: clamp(19px, 6vw, 26px); }
    .ap-feature__meta { display: none; }
    .ap-feature__cta { justify-content: flex-end; margin-top: 14px; font-size: 0; }
    .ap-feature__cta svg { width: 18px; height: 18px; padding: 7px; }
    .ap-welcome-card {
        grid-column: 1 / -1;
        min-height: 0;
        padding: 22px;
        border-radius: 22px;
    }
    .ap-welcome-card__head { align-items: center; }
    .ap-welcome-card__head > i { margin-top: 0; }
    .ap-welcome-card__discount { font-size: 52px; }
    .ap-welcome-card__title { margin-top: 14px; font-size: 23px; }
    .ap-welcome-card__text { margin-bottom: 16px; }
    .ap-welcome-card__code { margin-top: 0; }
    .ap-advantages__grid { grid-template-columns: 1fr; }

    /* каталог: один товар в ряд */
    #product-list .ap-grid { grid-template-columns: 1fr; gap: 12px; }
    /* прочие сетки товаров (главная и т.п.) — 2 в ряд */
    .ap-grid--2, .ap-grid--3, .ap-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    /* карточка компактнее: меньше паддинги */
    .ap-card { padding: 8px; border-radius: var(--ap-radius-sm); min-width: 0; }
    .ap-card__body { padding: 8px 8px 0; gap: 6px; }
    .ap-card__footer { margin-top: 6px; padding: 0 8px 8px; }
    .ap-card__name { overflow-wrap: anywhere; font-size: 14px; }
    .ap-card__features { display: none; }
    .ap-card__summary { display: none; }
    .ap-card__price { font-size: 17px; }
    .ap-card__bulk-hint { gap: 6px; min-height: 42px; padding: 7px; }
    .ap-card__bulk-hint > i { flex-basis: 26px; width: 26px; height: 26px; border-radius: 8px; font-size: 12px; }
    .ap-card__bulk-hint b { font-size: 10.5px; }
    .ap-card__bulk-hint small {
        display: -webkit-box;
        font-size: 9px;
        white-space: normal;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
    .ap-card__actions { gap: 6px; min-width: 0; }
    .ap-card__buy { padding: 10px 8px; font-size: 13px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .ap-card__fav { width: 38px; height: 38px; }
    .ap-card__compare { display: none; }

    /* меньше отступа от шапки до заголовка категории */
    .ap-content:not(.ap-content--home) { padding-top: 12px; }
    .ap-cat-head { margin: 4px 0 12px; }

    /* тулбар: «Фильтры» + подбор + сортировка — в один ряд, компактно */
    .ap-toolbar { flex-wrap: nowrap; gap: 8px; margin-bottom: 16px; justify-content: flex-start; }
    .ap-toolbar__filters-btn { padding: 9px 12px; font-size: 13px; gap: 6px; }
    .ap-toolbar__guide-btn { margin-right: 0; padding: 9px 11px; }
    .ap-sorting { margin-left: auto; min-width: 0; }
    .sorting-dropdown__toggle { padding: 9px 12px; font-size: 13px; gap: 5px; }
    .sorting-dropdown__label { display: inline-block; max-width: 96px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
    /* ── карточка товара: галерея — фото сверху по центру, миниатюры снизу (свайп) ── */
    .ap-product__media { flex-direction: column; gap: 12px; }
    .ap-product__media .img-main { order: 0; }
    .ap-product__media .img-thumbs { order: 1; width: 100%; flex-shrink: 1; }
    .img-thumbs .image { border-radius: 8px; }

    /* ── блок покупки: компактнее, параметры в один столбец ── */
    .ap-product__cart { padding: 16px; border-radius: 18px; }
    .ap-buy__params { grid-template-columns: 1fr; gap: 14px; padding-bottom: 14px; }
    .ap-buy__valve:not(:empty) { padding-left: 0; border-left: 0; padding-top: 14px; border-top: 1px solid var(--ap-line); }
    .ap-buy__valve .ap-variants__group .ap-variant { flex: 1 1 0; min-width: 0; }
    .ap-buy__prices { gap: 12px; padding: 14px 0; }
    .ap-buy__price--batch { padding-left: 14px; }
    .ap-buy__now, .ap-buy__batch { font-size: 21px; }
    .ap-buy__action { gap: 10px; padding-top: 14px; }
    .ap-buy__action .ap-buybar { flex: 1 1 auto; }
    .ap-buy__action .ap-buybar__buy { min-width: 0; padding-left: 20px; padding-right: 20px; }
    .ap-buy__eta { display: none; }               /* сроки есть в блоке «Доставка» ниже */
    .ap-buy__action { flex-wrap: wrap; }

    /* ── опт / доставка / промокод — в один столбец ── */
    .ap-product__extras, .ap-product__notes { grid-template-columns: 1fr; gap: 12px; }

    .ap-reviews-summary { gap: 20px; padding: 18px; }

    .ap-footer { margin-top: 64px; padding: 44px 0 24px; }
    .ap-footer__grid { grid-template-columns: 1fr; gap: 28px; }

    .ap-steps { grid-template-columns: 1fr; }
    .ap-info-stats, .ap-info-grid, .ap-info-grid--4, .ap-contact-grid { grid-template-columns: 1fr; }
    .ap-info-quote { font-size: 17px; padding: 24px; }
    .ap-info-step { flex-wrap: wrap; }
    .ap-cta { padding: 30px 24px; }
    .ap-trust__track span { font-size: 17px; }

    .ap-cookie {
        left: 12px;
        right: 12px;
        bottom: 12px;
        display: grid;
        gap: 10px;
        width: auto;
        padding: 14px;
    }
    .ap-cookie__button { width: 100%; }

    .dialog-window { padding: 22px; }

    .col.w3, .col.w4, .col.w6, .col.w9 { flex: 0 0 100%; }
    .wa-hide-m { display: none !important; }
    .wa-show-m { display: inline-flex !important; }
}

@media (min-width: 761px) {
    .wa-show-m { display: none !important; }
}

/* итоговая карточка справа: "К оплате" + выбранные доставка/оплата */
.s-order-aside .wa-step-confirm-section {
    padding: 34px 30px 30px !important;
    border-radius: 34px !important;
    background: #050505 !important;
}
.s-order-aside .ap-aside-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 30px;
}
.s-order-aside .ap-aside-head__label {
    font-family: var(--ap-font-display);
    font-size: 44px;
    line-height: .95;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #fff;
}
.s-order-aside .ap-aside-head__price {
    flex: 0 0 auto;
    font-family: var(--ap-font-display);
    font-size: 42px;
    line-height: 1;
    font-weight: 800;
    color: #fff;
    white-space: nowrap;
}
.s-order-aside .wa-total-section {
    margin-bottom: 22px;
}
.s-order-aside .wa-total-section .wa-item-total {
    display: none !important;
}
.s-order-aside .wa-total-section .wa-item {
    padding: 7px 0 !important;
}
.s-order-aside .wa-total-section .wa-name {
    flex: 1 1 auto;
    display: flex;
    align-items: baseline;
    gap: 12px;
    min-width: 0;
    font-size: 18px;
    line-height: 1.2;
    color: rgba(255, 255, 255, .82) !important;
}
.s-order-aside .wa-total-section .wa-name::after {
    content: "";
    flex: 1 1 auto;
    min-width: 24px;
    border-bottom: 1px dotted rgba(255,255,255,.36);
    transform: translateY(-4px);
}
.s-order-aside .wa-total-section .wa-value,
.s-order-aside .wa-total-section .wa-price {
    font-family: var(--ap-font);
    font-size: 16px !important;
    line-height: 1.1;
    font-weight: 400 !important;
    color: #fff !important;
    white-space: nowrap;
}
.s-order-aside .ap-coupon-host {
    margin: 20px 0 16px !important;
}
.s-order-aside .ap-coupon {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px !important;
}
.s-order-aside .ap-coupon__input,
.s-order-aside .ap-coupon__apply,
.s-order-aside .ap-coupon__cancel {
    min-height: 54px;
    border-radius: 16px !important;
}
.s-order-aside .ap-coupon__input {
    padding: 0 18px !important;
    font-size: 18px !important;
    background: #303030 !important;
}
.s-order-aside .ap-coupon__apply {
    padding: 0 24px !important;
    font-size: 15px !important;
}
.s-order-aside .ap-selected-summary {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 22px 0 26px;
}
.s-order-aside .ap-selected-summary__item {
    display: block;
    padding-bottom: 8px;
    border-bottom: 1px dotted rgba(255,255,255,.32);
}
.s-order-aside .ap-selected-summary__item span {
    display: block;
    margin-bottom: 4px;
    font-size: 13px;
    line-height: 1.2;
    color: rgba(255,255,255,.42);
}
.s-order-aside .ap-selected-summary__item strong {
    display: block;
    font-size: 17px;
    line-height: 1.28;
    font-weight: 400;
    color: rgba(255,255,255,.62);
}
.s-order-aside .wa-actions-section {
    display: flex !important;
    flex-direction: column;
}
.s-order-aside .wa-actions-section .wa-submit-button,
.s-order-aside .wa-actions-section button[type="button"],
.s-order-aside .wa-actions-section button[type="submit"] {
    order: 1;
    min-height: 62px;
    margin: 0 0 22px !important;
    border-radius: 18px !important;
    font-size: 20px !important;
    line-height: 1 !important;
}
.s-order-aside .wa-actions-section .wa-terms-section {
    order: 2;
}
.s-order-aside .wa-actions-section .is-agreement-field {
    margin: 0 !important;
}

@media (max-width: 1180px) {
    .s-order-aside .ap-aside-head__label { font-size: 36px; }
    .s-order-aside .ap-aside-head__price { font-size: 34px; }
}

/* корзина в оформлении: ровные строки, компактное количество */
.s-order-page #js-order-cart .wa-cart-body .wa-product {
    padding: 18px 0 !important;
}
.s-order-page #js-order-cart .wa-cart-body .wa-product-body {
    position: relative;
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) auto auto;
    align-items: center !important;
    gap: 18px;
    min-height: 72px;
    padding: 0 42px 0 0 !important;
}
.s-order-page #js-order-cart .wa-cart-body .wa-product-body > * {
    align-self: center !important;
}
.s-order-page #js-order-cart .wa-column-image {
    grid-column: 1;
    padding: 0 !important;
}
.s-order-page #js-order-cart .wa-column-image .wa-image-section {
    width: 58px;
    height: 76px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.s-order-page #js-order-cart .wa-column-image img {
    max-width: 58px;
    max-height: 76px;
    object-fit: contain;
}
.s-order-page #js-order-cart .wa-column-details {
    grid-column: 2;
    padding: 0 !important;
    min-width: 0;
}
.s-order-page #js-order-cart .wa-column-details .wa-details {
    display: block !important;
}
.s-order-page #js-order-cart .wa-column-details .wa-name {
    display: block !important;
    margin: 0 0 5px !important;
    font-size: 14.5px !important;
    line-height: 1.3;
    font-weight: 700 !important;
    letter-spacing: -.01em;
    color: var(--ap-ink) !important;
}
.s-order-page #js-order-cart .wa-column-details .wa-sku {
    display: block;
    margin: 0 !important;
    font-size: 12px;
    line-height: 1.35;
    font-weight: 500;
    letter-spacing: .01em;
    color: #97a0ad !important;
}
.s-order-page #js-order-cart .wa-column-details .wa-actions {
    display: none !important;
}
.s-order-page #js-order-cart .wa-column-quantity {
    grid-column: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
}
.s-order-page #js-order-cart .wa-quantity-cart-section {
    position: relative;
    width: 130px;
    margin: 0 !important;
    padding: 0 !important;
}
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-section-body {
    display: grid !important;
    grid-template-columns: 30px 1fr 30px;
    align-items: center;
    gap: 2px;
    min-height: 34px;
    padding: 0 !important;
    border-radius: 999px;
    background: #f2f5f9;
}
/* убираем подписи шага «500/мин.500» внутри кнопок — для компактности */
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-button .wa-description {
    display: none !important;
}
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-button-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
}
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-button,
.s-order-page #js-order-cart .wa-quantity-cart-section button {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #9aa3af !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-button:hover,
.s-order-page #js-order-cart .wa-quantity-cart-section button:hover {
    background: #e4ebf3 !important;
    color: var(--ap-ink) !important;
}
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-icon-wrapper,
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
}
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-field-wrapper {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    text-align: center;
}
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-field {
    width: 100% !important;
    height: 32px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: center;
    font-size: 14px !important;
    line-height: 32px !important;
    font-weight: 700 !important;
    color: var(--ap-ink) !important;
}
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-unit {
    position: absolute;
    top: -16px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10.5px !important;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .04em;
    color: #a3a3a3 !important;
    text-transform: uppercase;
}
.s-order-page #js-order-cart .wa-quantity-cart-section .wa-section-footer {
    margin-top: 5px;
    min-height: 0;
    text-align: center;
}
.s-order-page #js-order-cart .wa-product-fractional-prices,
.s-order-page #js-order-cart .wa-product-price,
.s-order-page #js-order-cart .wa-product-base-price {
    margin: 0 !important;
    font-size: 11.5px !important;
    line-height: 1.2 !important;
    color: #aab2bd !important;
    font-weight: 500 !important;
    text-align: center !important;
}
.s-order-page #js-order-cart .wa-product-ratio-wrapper {
    display: none !important;
}
.s-order-page #js-order-cart .wa-column-price {
    grid-column: 4;
    width: auto !important;
    min-width: 0;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end;
    padding: 0 !important;
}
.s-order-page #js-order-cart .wa-column-price .wa-price-section {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    min-height: 0;
}
.s-order-page #js-order-cart .wa-column-price .wa-price-total {
    font-family: var(--ap-font);
    font-size: 15px !important;
    line-height: 1.15;
    font-weight: 800 !important;
    letter-spacing: -.01em;
    color: #111 !important;
    white-space: nowrap;
}
.s-order-page #js-order-cart .wa-column-price .wa-price-compare {
    margin-top: 2px;
    font-size: 11px;
    color: #b2b2b2;
    text-decoration: line-through;
}
/* кнопка удаления — справа по центру строки, вне колонки количества */
.s-order-page #js-order-cart .wa-quantity-actions {
    position: absolute !important;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    margin: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
}
.s-order-page #js-order-cart .wa-quantity-actions .wa-actions {
    display: block !important;
}
.s-order-page #js-order-cart .js-delete-product {
    position: static !important;
    transform: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: #b3bac4;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.s-order-page #js-order-cart .js-delete-product:hover {
    background: #fbe9e9;
    color: var(--ap-red) !important;
}
.s-order-page #js-order-cart .wa-quantity-actions .js-delete-product .wa-icon {
    width: 14px;
    height: 14px;
}

@media (max-width: 900px) {
    .s-order-page #js-order-cart .wa-cart-body .wa-product-body {
        grid-template-columns: 50px minmax(0, 1fr);
        gap: 12px 14px;
        padding-right: 38px !important;
    }
    .s-order-page #js-order-cart .wa-column-quantity {
        grid-column: 2;
        align-items: flex-start;
        margin-top: 12px;
    }
    .s-order-page #js-order-cart .wa-column-price {
        grid-column: 2;
        justify-content: flex-start;
        margin-top: 8px;
    }
    /* кнопка удаления остаётся абсолютом справа по центру (см. базовое правило) */
    .s-order-page #js-order-cart .wa-quantity-actions {
        top: 22px;
        transform: none;
    }
}

/* финальная полировка доставки: логотипы, курьерские тарифы и модалка ПВЗ */
.wa-name .ap-tk {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 86px;
    height: 32px;
    padding: 0 10px;
    border-radius: 9px;
    background: #0b1a30;
    color: #fff !important;
    font-family: var(--ap-font-display);
    font-size: 16px;
    line-height: 1;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
    white-space: nowrap;
}
.wa-name .ap-tk-logo {
    display: inline-block !important;
    width: 92px;
    height: 32px;
    max-width: 92px;
    object-fit: contain;
    object-position: left center;
    flex: 0 0 92px;
    margin: 0 !important;
}
.wa-name .ap-tk-rest {
    min-width: 0;
    color: var(--ap-ink) !important;
    font-weight: 700;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

.s-order-page .wa-step-shipping-section .wa-dropdown.js-variants-select .wa-dropdown-toggle {
    min-height: 64px !important;
    border-radius: 18px !important;
    font-size: 18px !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu {
    width: 100% !important;
    max-height: 390px !important;
    border: 1px solid #e7edf5 !important;
    border-radius: 20px !important;
    box-shadow: 0 18px 48px rgba(8, 18, 38, .14) !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-dropdown-item .wa-delivery-variant,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-dropdown-item .wa-delivery-variant {
    min-height: 82px !important;
    grid-template-columns: minmax(0, 1fr) 130px 120px !important;
    gap: 16px !important;
    padding: 16px 22px !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-dropdown-item:hover .wa-delivery-variant,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-dropdown-item:hover .wa-delivery-variant {
    background: #f5f8fc !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-name,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-name {
    grid-column: 1 !important;
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    min-width: 0 !important;
    max-width: none !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
    overflow: visible !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .ap-tk-logo,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .ap-tk-logo {
    width: 102px !important;
    max-width: 102px !important;
    height: 34px !important;
    flex-basis: 102px !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .ap-tk,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .ap-tk {
    flex: 0 0 112px !important;
    width: 112px !important;
    max-width: 112px !important;
    height: 34px !important;
    padding: 0 8px !important;
    font-size: 13px !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .ap-tk-rest,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .ap-tk-rest {
    flex: 1 1 auto !important;
    grid-column: auto !important;
    font-size: 17px !important;
    line-height: 1.25 !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-price,
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-delivery-price,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-price,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-delivery-price {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    padding: 0 !important;
    font-size: 19px !important;
    font-weight: 800 !important;
    color: var(--ap-ink) !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-date,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-date {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    font-size: 16px !important;
    color: #a7afbc !important;
}
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-service,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-service,
.s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-additional,
.s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-additional {
    display: none !important;
}

.s-order-page .ap-courier-address-host {
    display: none;
    margin: 26px 0 8px;
    padding: 20px 22px 22px;
    border-radius: 18px;
    background: var(--ap-surface-soft, #f5f9fd);
    border: 1px solid var(--ap-line, #dce5f0);
}
.s-order-page .ap-courier-address-host__title {
    margin-bottom: 14px;
    font-family: var(--ap-font);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ap-ink-faint, #8a98ac);
}
/* селект сохранённых адресов из личного кабинета — в одну строку с полем адреса */
/* индекс пользователю не нужен: скрываем, значение подставляется из Dadata при смене города */
html.is-order-page .s-order-page .wa-zip-wrapper { display: none !important; }
/* полноэкранный оверлей «Пересчитываем доставку…» — плавно появляется поверх всего
   с размытием и прячет дёрганья пересчёта; снимается плавно после «устаканивания» */
.ap-recalc-overlay { position: fixed; inset: 0; z-index: 99990; display: flex; align-items: center; justify-content: center; background: rgba(243, 247, 252, .94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); opacity: 0; transition: opacity .4s ease; }
.ap-recalc-overlay.is-on { opacity: 1; }
.ap-recalc-box { display: flex; align-items: center; gap: 13px; background: #fff; padding: 18px 28px; border-radius: 16px; box-shadow: 0 20px 60px rgba(11, 26, 48, .16); font-size: 15px; font-weight: 600; color: var(--ap-ink, #0b1a30); font-family: var(--ap-font); transform: translateY(6px); transition: transform .4s ease; }
.ap-recalc-overlay.is-on .ap-recalc-box { transform: translateY(0); }
.ap-recalc-spin { width: 20px; height: 20px; flex: 0 0 20px; border: 2.5px solid var(--ap-line, #dce5f0); border-top-color: var(--ap-accent, #0052b1); border-radius: 50%; animation: ap-rspin .7s linear infinite; }
@keyframes ap-rspin { to { transform: rotate(360deg); } }
.s-order-page .ap-addr-row { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 14px; align-items: start; }
@media (max-width: 700px) { .s-order-page .ap-addr-row { grid-template-columns: 1fr; } }
.s-order-page .ap-addr-col { min-width: 0; }
.s-order-page .ap-addr-col .wa-label { display: block; margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--ap-ink-soft, #56657c); }
.s-order-page .ap-addr-col--street .wa-field-wrapper { margin: 0 !important; }
.s-order-page .apcs--addr .apcs__btn { background: #fff; border: 1.5px solid var(--ap-line, #dce5f0); border-radius: 12px; height: 48px; line-height: 45px; padding: 0 38px 0 16px; font-size: 14px; }
.s-order-page .apcs--addr .apcs__btn:hover { border-color: var(--ap-accent, #0052b1); }
/* единый вид выпадающих подсказок на оформлении: dadata и селект адресов */
.s-order-page .ap-dadata-dd,
.s-order-page .apcs--addr .apcs__panel {
    border: 1px solid var(--ap-line, #dce5f0);
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(20, 32, 58, .14);
    background: #fff;
    margin-top: 6px;
    max-height: 320px;
    overflow-y: auto;
}
.s-order-page .ap-dadata-item,
.s-order-page .apcs--addr .apcs__item {
    padding: 10px 14px;
    border-bottom: 1px solid #f0f3f8;
    cursor: pointer;
    font-size: 14px;
}
.s-order-page .ap-dadata-item:last-child,
.s-order-page .apcs--addr .apcs__item:last-of-type { border-bottom: 0; }
.s-order-page .ap-dadata-item:hover,
.s-order-page .apcs--addr .apcs__item:hover { background: #f3f6fb; }
.s-order-page .ap-dadata-item b,
.s-order-page .apcs--addr .apcs__item b { display: block; font-size: 14px; font-weight: 600; color: #14203A; line-height: 1.3; }
.s-order-page .ap-dadata-item span,
.s-order-page .apcs--addr .apcs__item span { display: block; margin-top: 2px; font-size: 12px; color: #8a98ac; line-height: 1.3; }
.s-order-page .apcs--addr .apcs__add { padding: 11px 14px; font-size: 14px; }
.s-order-page .ap-addr-select-wrap { margin: 0 0 14px; }
.s-order-page .ap-addr-select-wrap label { display: block; margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--ap-ink-soft, #56657c); }
.s-order-page select.ap-addr-select {
    width: 100%;
    height: 46px;
    box-sizing: border-box;
    border: 1.5px solid var(--ap-line, #dce5f0);
    border-radius: 12px;
    background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3 6l5 5 5-5' stroke='%2356657c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;
    padding: 0 40px 0 14px;
    font-size: 15px;
    color: var(--ap-ink, #0b1a30);
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    transition: border-color var(--ap-transition, .2s);
}
.s-order-page select.ap-addr-select:focus { outline: none; border-color: var(--ap-accent, #0052b1); box-shadow: 0 0 0 3px rgba(0, 82, 177, .12); }
/* подписи и поле адреса внутри блока */
.s-order-page .ap-courier-address-host .wa-field-wrapper .wa-name,
.s-order-page .ap-courier-address-host .wa-field-wrapper .wa-label,
.s-order-page .ap-courier-address-host .ap-addr-col .wa-label,
.s-order-page .ap-courier-address-host .wa-field-wrapper label { display:block; margin: 0 0 6px !important; font-size: 13px !important; line-height: 1.35 !important; font-weight: 600 !important; color: var(--ap-ink-soft, #56657c) !important; text-transform: none !important; font-family: var(--ap-font) !important; }
html.is-order-page .s-order-page .ap-courier-address-host input[type="text"],
html.is-order-page .s-order-page .ap-courier-address-host textarea {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border: 1.5px solid var(--ap-line, #dce5f0) !important;
    border-radius: 12px !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 16px !important;
    font-size: 14px !important;
    box-shadow: none !important;
}
html.is-order-page .s-order-page .ap-courier-address-host textarea { height: auto !important; min-height: 48px !important; padding: 13px 16px !important; }
.s-order-page .ap-addr-col--street .wa-field-wrapper,
.s-order-page .ap-addr-col--street .wa-field-wrapper .wa-value { width: 100% !important; max-width: none !important; }
html.is-order-page .s-order-page .ap-courier-address-host input[type="text"]:focus,
html.is-order-page .s-order-page .ap-courier-address-host textarea:focus { border-color: var(--ap-accent, #0052b1) !important; box-shadow: 0 0 0 3px rgba(0, 82, 177, .12) !important; outline: none; }
/* галочка «сохранить адрес в профиле» */
.s-order-page .ap-addr-save { display: none; align-items: center; flex-wrap: wrap; gap: 10px 18px; margin-top: 12px; font-size: 13.5px; font-weight: 500; color: var(--ap-ink-soft, #56657c); }
.s-order-page .ap-addr-save.is-visible { display: flex; }
.s-order-page .ap-addr-save__chk { display: flex; align-items: center; gap: 9px; cursor: pointer; }
.s-order-page .ap-addr-save input[type="checkbox"] { width: 16px !important; min-width: 16px; flex: 0 0 16px; height: 16px !important; min-height: 16px !important; margin: 0 !important; padding: 0 !important; accent-color: var(--ap-accent, #0052b1); cursor: pointer; appearance: auto !important; -webkit-appearance: checkbox !important; }
/* поле «Название адреса» рядом с галочкой — компактнее общего стиля инпутов хоста */
html.is-order-page .s-order-page .ap-courier-address-host input[type="text"].ap-addr-save__label { width: auto !important; flex: 1 1 220px; max-width: 340px; height: 40px !important; min-height: 40px !important; font-size: 13.5px !important; }
.s-order-page .ap-courier-address-host .wa-fields-group {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px !important;
}
.s-order-page .ap-courier-address-host .wa-field-wrapper {
    margin: 0 !important;
}
.s-order-page .ap-courier-address-host .wa-field-wrapper.size-large,
.s-order-page .ap-courier-address-host .wa-field-wrapper:has(textarea) {
    grid-column: 1 / -1;
}
.s-order-page .ap-courier-address-host input,
.s-order-page .ap-courier-address-host textarea,
.s-order-page .ap-courier-address-host select {
    width: 100% !important;
}

.wa-shipping-pickup-dialog .wa-dialog-body {
    width: min(1680px, calc(100vw - 56px)) !important;
    height: min(820px, calc(100vh - 56px)) !important;
    border-radius: 22px !important;
    background: #fff !important;
    box-shadow: 0 24px 80px rgba(8, 18, 38, .28) !important;
}
.wa-shipping-pickup-dialog .wa-dialog-header {
    min-height: 78px !important;
    padding: 22px 32px !important;
    border-bottom: 1px solid #e8edf4 !important;
    background: #f7f8fb !important;
}
.wa-order-dialog .wa-dialog-body .wa-dialog-header > * {
    vertical-align: middle !important;
}
body:not(:has(.wa-order-layout)) .wa-order-dialog .wa-dialog-body .wa-dialog-header {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
    background: transparent !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    backdrop-filter: blur(1em) !important;
    border-radius: 25px !important;
    box-shadow: 0 0 30px -10px rgb(0, 0, 0, .5) !important;
}
.wa-order-dialog.wa-shipping-pickup-dialog .wa-content-section .wa-sidebar-section {
    padding-top: 0 !important;
}
.wa-order-dialog.wa-shipping-pickup-dialog .wa-content-section .wa-variants-section .wa-filters-wrapper {
    border-bottom: 0 !important;
}
.wa-shipping-pickup-dialog .wa-dialog-header .wa-header {
    max-width: calc(100% - 80px);
    font-size: 26px !important;
    line-height: 1.12 !important;
    letter-spacing: 0 !important;
    text-transform: uppercase !important;
}
.wa-order-dialog.wa-shipping-pickup-dialog .wa-content-section .wa-sidebar-section > * {
    margin-top: 80px !important;
}
.wa-shipping-pickup-dialog .wa-dialog-close,
.wa-shipping-pickup-dialog .js-close-dialog {
    top: 18px !important;
    right: 20px !important;
    width: 46px !important;
    height: 46px !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #000 !important;
}
.wa-shipping-pickup-dialog .wa-sidebar-section {
    flex: 0 0 390px !important;
    max-width: 390px !important;
    padding: 22px 20px !important;
    border-right: 1px solid #e8edf4 !important;
    background: #fff !important;
}
.wa-shipping-pickup-dialog .wa-map-section {
    background: #eef3f8 !important;
}
.wa-shipping-pickup-dialog .wa-variants-section {
    padding: 0 !important;
}
.wa-shipping-pickup-dialog .wa-variants-list {
    gap: 5px !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper {
    min-height: 78px !important;
    padding: 14px 16px !important;
    border: 2px solid transparent !important;
    border-radius: 18px !important;
    background: #f3f6fa !important;
    transition: border-color .18s ease, background .18s ease;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper:hover {
    background: #eef4fb !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper.is-selected,
.wa-shipping-pickup-dialog .wa-variant-wrapper.is-active,
.wa-shipping-pickup-dialog .wa-variant-wrapper:has(input:checked) {
    border-color: #0b63f6 !important;
    background: #f7fbff !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-name {
    display: flex !important;
    align-items: auto  !important;
    vertical-align: top !important;
    gap: 14px !important;
    margin: 0 0 6px !important;
    font-size: 16px !important;
    line-height: 1.25 !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper .ap-tk-logo {
    width: 74px !important;
    height: 28px !important;
    flex-basis: 74px !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper .ap-tk {
    min-width: 74px !important;
    height: 28px !important;
    font-size: 12px !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-details,
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-additional {
    padding-left: 88px;
    font-size: 13px !important;
    line-height: 1.25;
    color: #222 !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper .ap-tk-rest {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper .wa-price {
    color: #111 !important;
    font-weight: 800 !important;
}
.wa-shipping-pickup-dialog [class*="ymaps"][class*="balloon"],
.wa-shipping-pickup-dialog [class*="ymaps"][class*="hint"],
.wa-shipping-pickup-dialog .ap-hidden-map-balloon {
    display: none !important;
    visibility: hidden !important;
}
.wa-shipping-pickup-dialog .ap-yandex-logo-cluster,
.wa-shipping-pickup-dialog .ap-yandex-logo-pin {
    width: 76px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 3px solid #0b63f6;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(8, 18, 38, .18);
}
.wa-shipping-pickup-dialog .ap-yandex-logo-cluster img,
.wa-shipping-pickup-dialog .ap-yandex-logo-pin img {
    max-width: 42px;
    max-height: 24px;
    object-fit: contain;
}
.wa-shipping-pickup-dialog .ap-yandex-logo-cluster span {
    min-width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #0b63f6;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

@media (max-width: 900px) {
    .s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-dropdown-item .wa-delivery-variant,
    .s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-dropdown-item .wa-delivery-variant {
        grid-template-columns: 1fr auto !important;
        align-items: start !important;
    }
    .s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-name,
    .s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-name {
        grid-column: 1 / -1 !important;
    }
    .s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-price,
    .s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-price {
        grid-column: 1 !important;
        justify-self: start !important;
    }
    .s-order-page .wa-step-shipping-section .wa-dropdown-area .wa-delivery-variant .wa-date,
    .s-order-page .wa-step-shipping-section .wa-dropdown-menu .wa-delivery-variant .wa-date {
        grid-column: 2 !important;
    }
    .s-order-page .ap-courier-address-host .wa-fields-group {
        grid-template-columns: 1fr;
    }
    .wa-shipping-pickup-dialog .wa-dialog-body {
        width: calc(100vw - 24px) !important;
        height: calc(100vh - 24px) !important;
    }
    .wa-shipping-pickup-dialog .wa-sidebar-section {
        flex-basis: auto !important;
        max-width: none !important;
    }
}

/* checkout hotfix: ПВЗ-модалка без налезания, без скачков, правый итог компактнее */
.wa-shipping-pickup-dialog .wa-dialog-body {
    display: grid !important;
    grid-template-columns: 390px minmax(0, 1fr) !important;
    grid-template-rows: 0px minmax(0, 1fr) !important;
    overflow: hidden !important;
    padding: 0 !important;
}
.wa-shipping-pickup-dialog .wa-dialog-header {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    position: relative !important;
    z-index: 3 !important;
    width: auto !important;
    height: auto !important;
    min-height: 78px !important;
    margin: 0 !important;
}
/* промежуточные обёртки растворяем в гриде; в актуальном Shop-Script структура
   .wa-dialog-body > .wa-dialog-content > .wa-content-section > (map + sidebar) —
   старые селекторы её не покрывали, контент падал в колонку 390px, карта была 0px */
.wa-shipping-pickup-dialog .wa-dialog-body:has(> .wa-map-section):has(> .wa-sidebar-section),
.wa-shipping-pickup-dialog .wa-dialog-body > div:has(> .wa-map-section):has(> .wa-sidebar-section),
.wa-shipping-pickup-dialog .wa-dialog-body > .wa-dialog-content,
.wa-shipping-pickup-dialog .wa-content-section {
    display: contents !important;
}
.wa-shipping-pickup-dialog .wa-sidebar-section {
    grid-column: 1 !important;
    grid-row: 2 !important;
    position: relative !important;
    z-index: 2 !important;
    width: auto !important;
    height: 100% !important;
    max-height: none !important;
    overflow-y: auto !important;
    margin: 0 !important;
    transform: none !important;
}
.wa-shipping-pickup-dialog .wa-map-section {
    grid-column: 2 !important;
    grid-row: 2 !important;
    position: relative !important;
    min-width: 0 !important;
    height: 100% !important;
    margin: 0 !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper,
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper {
    transform: none !important;
    outline: 0 !important;
    box-shadow: none !important;
    border: 2px solid transparent !important;
    transition: background-color .15s ease, border-color .15s ease !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper:hover,
.wa-shipping-pickup-dialog .wa-variants-list .wa-variant-wrapper:hover {
    transform: none !important;
    outline: 0 !important;
    box-shadow: none !important;
    border-color: transparent !important;
    background: #eef4fb !important;
}
.wa-shipping-pickup-dialog .wa-variant-wrapper.is-selected,
.wa-shipping-pickup-dialog .wa-variant-wrapper.is-active,
.wa-shipping-pickup-dialog .wa-variant-wrapper:has(input:checked) {
    transform: none !important;
    outline: 0 !important;
    box-shadow: inset 0 0 0 2px #0b63f6 !important;
    border-color: transparent !important;
    background: #f7fbff !important;
}
.wa-shipping-pickup-dialog .wa-variant-title,
.wa-shipping-pickup-dialog h3.wa-variant-title {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 0 !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    font-size: 16px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    color: var(--ap-ink) !important;
    transform: none !important;
}
.wa-shipping-pickup-dialog .wa-variant-title:hover,
.wa-shipping-pickup-dialog h3.wa-variant-title:hover {
    transform: none !important;
    outline: 0 !important;
    box-shadow: none !important;
}

.s-order-aside .wa-step-confirm-section {
    padding: 28px 26px 26px !important;
    border-radius: 28px !important;
}
.s-order-aside .ap-aside-head {
    align-items: flex-start !important;
    margin-bottom: 22px !important;
}
.s-order-aside .ap-aside-head__label {
    font-size: 34px !important;
    line-height: 1 !important;
}
.s-order-aside .ap-aside-head__price {
    font-size: 34px !important;
    line-height: 1 !important;
}
.s-order-aside .wa-total-section {
    margin-bottom: 16px !important;
}
.s-order-aside .wa-total-section .wa-item {
    padding: 5px 0 !important;
}
.s-order-aside .wa-total-section .wa-name {
    font-size: 16px !important;
    line-height: 1.25 !important;
}
.s-order-aside .wa-total-section .wa-value,
.s-order-aside .wa-total-section .wa-price {
    font-size: 16px !important;
}
.s-order-aside .ap-coupon-host {
    margin: 16px 0 14px !important;
}
.s-order-aside .ap-coupon__input,
.s-order-aside .ap-coupon__apply,
.s-order-aside .ap-coupon__cancel {
    min-height: 48px !important;
    border-radius: 14px !important;
}
.s-order-aside .ap-coupon__input {
    font-size: 15px !important;
}
.s-order-aside .ap-coupon__apply {
    padding: 0 18px !important;
    font-size: 13px !important;
}
.s-order-aside .wa-actions-section .wa-submit-button,
.s-order-aside .wa-actions-section button[type="button"],
.s-order-aside .wa-actions-section button[type="submit"] {
    min-height: 54px !important;
    margin-bottom: 18px !important;
    font-size: 17px !important;
}
.s-order-aside .wa-actions-section .wa-terms-section,
.s-order-aside .wa-actions-section .is-agreement-field,
.s-order-aside .wa-actions-section .wa-agreement-wrapper {
    font-size: 14px !important;
    line-height: 1.35 !important;
}

.s-order-page .wa-step-shipping-section .wa-types-list {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 16px !important;
    width: 100% !important;
}
.s-order-page .wa-step-shipping-section .wa-type-wrapper,
.s-order-page .wa-step-shipping-section .wa-type-wrapper:first-child,
.s-order-page .wa-step-shipping-section .wa-type-wrapper:last-child {
    flex: 0 1 330px !important;
    width: 330px !important;
    max-width: 330px !important;
    min-height: 116px !important;
    border-radius: 18px !important;
}

.s-order-aside .wa-step-confirm-section {
    overflow: hidden !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: start !important;
}
.s-order-aside .wa-actions-section {
    min-width: 0 !important;
}
/* Блок согласия с условиями — НА FLEX, а не grid.
   grid с фиксированными колонками здесь распирал тёмную карточку по высоте
   (из-за чего правый блок тянулся вниз и образовывался разрыв с корзиной). */
.s-order-aside .wa-actions-section .wa-terms-section,
.s-order-aside .wa-actions-section .is-agreement-field,
.s-order-aside .wa-actions-section .wa-agreement-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    column-gap: 10px !important;
    row-gap: 6px !important;
    max-width: 100% !important;
    overflow: hidden !important;
}
/* сам label — строка «чекбокс + текст», текст переносится и тянется */
.s-order-aside .wa-actions-section .wa-terms-section label,
.s-order-aside .wa-actions-section .is-agreement-field label,
.s-order-aside .wa-actions-section .wa-agreement-wrapper label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    flex: 1 1 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}
.s-order-aside .wa-actions-section .wa-terms-section input[type="checkbox"],
.s-order-aside .wa-actions-section .is-agreement-field input[type="checkbox"],
.s-order-aside .wa-actions-section .wa-agreement-wrapper input[type="checkbox"],
.s-order-aside .wa-actions-section .wa-terms-section .s-checkbox,
.s-order-aside .wa-actions-section .is-agreement-field .s-checkbox,
.s-order-aside .wa-actions-section .wa-agreement-wrapper .s-checkbox {
    flex: 0 0 auto !important;
    margin: 0 !important;
}
.s-order-aside .wa-actions-section .wa-terms-section input[type="checkbox"],
.s-order-aside .wa-actions-section .is-agreement-field input[type="checkbox"],
.s-order-aside .wa-actions-section .wa-agreement-wrapper input[type="checkbox"] {
    width: 24px !important;
    height: 24px !important;
}
/* текст соглашения занимает оставшуюся ширину */
.s-order-aside .wa-actions-section .wa-terms-section .wa-text,
.s-order-aside .wa-actions-section .is-agreement-field .wa-text,
.s-order-aside .wa-actions-section .wa-agreement-wrapper .wa-text {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}
.s-order-aside .wa-actions-section .wa-error-text,
.s-order-aside .wa-actions-section .wa-error,
.s-order-aside .wa-actions-section .errormsg,
.s-order-aside .wa-actions-section .state-error-hint {
    flex: 1 1 100% !important;
    display: block !important;
    margin: 6px 0 0 !important;
    max-width: 100% !important;
    color: #ff6b66 !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
}
.s-order-aside .ap-coupon.is-error .ap-coupon__input {
    border-color: #ff6b66 !important;
}
.s-order-aside .ap-coupon__apply:disabled {
    opacity: .7;
    cursor: wait;
}
.s-order-aside .ap-coupon-message {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.25;
}
.s-order-aside .ap-coupon-message.is-error {
    color: #ff6b66;
}
div.wa-header {
    font-weight: 400 !important;
    letter-spacing: .01em !important;
line-height: 1.15 !important;
font-family: var(--ap-font-display) !important;
text-transform: uppercase !important;
}

/* Тёмная карточка итогов: фон должен заканчиваться сразу под кнопкой
   «Выбрать оплату / Подтвердить заказ». #wa-step-confirm-section переносится
   скриптом в .s-order-aside, и в сетке оформления карточка растягивалась на
   всю высоту колонки. Делаем колонку флекс-стеком и запрещаем карточке расти —
   тогда чёрный фон всегда обрезается по содержимому, ровно под кнопкой. */
html.is-order-page .s-order-aside {
    display: flex !important;
    flex-direction: column !important;
    align-self: start !important;
    justify-content: flex-start !important;
    height: -webkit-max-content !important;
    height: max-content !important;
    min-height: 0 !important;
    max-height: 100px !important;
}
h2.s-header {
    font-size: 28px !important;
    font-weight: 400 !important;
}

section.wa-step-section.wa-step-auth-section {
    padding-top: 26px !important;
    margin: 1em 0 0 !important;
}
div#js-delivery-types-section {
    margin-top: 0px !important;
}

html.is-order-page .s-order-aside .wa-step-confirm-section {
    flex: 0 0 auto !important;
    align-self: stretch !important;
    height: -webkit-max-content !important;
    height: max-content !important;
    min-height: 0 !important;
    max-height: none !important;
}
html.is-order-page .s-order-aside .wa-step-confirm-section > .wa-section-body,
html.is-order-page .s-order-aside .wa-step-confirm-section form,
html.is-order-page .s-order-aside .wa-step-confirm-section .wa-flex-wrapper {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
}
html.is-order-page .s-order-aside .wa-step-confirm-section .wa-flex-wrapper > .wa-actions-section {
    margin-bottom: 0 !important;
}

/* Промокод в тёмной карточке показываем ОДИН раз: оставляем наш оформленный
   ap-coupon-host (поле + «Активировать» в одну строку под суммами), а
   перенесённый нативный блок прячем. Его поле остаётся в DOM (для отправки),
   просто не дублируется визуально. */
html.is-order-page .s-order-aside .ap-coupon-moved {
    display: none !important;
}

@media (max-width: 900px) {
    .wa-shipping-pickup-dialog .wa-dialog-body {
        grid-template-columns: 1fr !important;
        grid-template-rows: 70px minmax(220px, 38vh) minmax(0, 1fr) !important;
    }
    .wa-shipping-pickup-dialog .wa-dialog-header { grid-column: 1 !important; grid-row: 1 !important; }
    .wa-shipping-pickup-dialog .wa-map-section { grid-column: 1 !important; grid-row: 2 !important; }
    .wa-shipping-pickup-dialog .wa-sidebar-section { grid-column: 1 !important; grid-row: 3 !important; }
}

/* ------------------------------------------------------------
   Сравнение товаров
------------------------------------------------------------ */

/* Нижняя legacy-плашка больше не нужна: переход расположен у кнопки
   сравнения и не перекрывает интерфейс на мобильных устройствах. */
#compare-leash {
    display: none !important;
}

.ap-product__compare-actions {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
}
.ap-product__compare-toggle,
.ap-product__compare-go {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 8px 13px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius-pill);
    background: var(--ap-surface);
    color: var(--ap-ink-soft);
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    transition: color var(--ap-transition), border-color var(--ap-transition), background var(--ap-transition);
}
.ap-product__compare-toggle:hover {
    border-color: #b8c6d8;
    color: var(--ap-ink);
}
.ap-product__compare-toggle.is-active {
    border-color: #bfd2ec;
    background: var(--ap-accent-soft);
    color: var(--ap-accent-dark);
}
.ap-product__compare-check {
    padding-left: 1px;
    border-left: 1px solid rgba(0, 82, 177, .22);
}
.ap-product__compare-go {
    border-color: var(--ap-dark);
    background: var(--ap-dark);
    color: #fff;
}
.ap-product__compare-go:hover {
    border-color: var(--ap-accent);
    background: var(--ap-accent);
    color: #fff;
}
.ap-product__compare-go .count {
    display: inline-grid;
    min-width: 20px;
    height: 20px;
    place-items: center;
    padding: 0 6px;
    border-radius: var(--ap-radius-pill);
    background: rgba(255, 255, 255, .16);
    font-size: 11px;
}
.ap-product__compare-toggle:focus-visible,
.ap-product__compare-go:focus-visible {
    outline: 3px solid rgba(0, 82, 177, .22);
    outline-offset: 2px;
}

.ap-compare {
    padding: 6px 0 0;
}
.ap-compare__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}
.ap-compare__heading {
    min-width: 0;
}
.ap-compare__eyebrow {
    display: block;
    margin-bottom: 6px;
    color: var(--ap-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.ap-compare__heading h1 {
    margin: 0;
    color: var(--ap-ink);
    font-size: clamp(30px, 3.2vw, 42px);
    letter-spacing: -.025em;
}
.ap-compare__lead {
    margin: 6px 0 0;
    color: var(--ap-ink-soft);
    font-size: 13px;
}
.ap-compare__lead b {
    color: var(--ap-ink);
}
.ap-compare__toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}
.ap-compare__switch {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 4px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius-pill);
    background: rgba(255, 255, 255, .72);
}
.ap-compare__filter,
.ap-compare__clear,
.ap-compare__arrow {
    appearance: none;
    border: 0;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}
.ap-compare__filter {
    min-height: 44px;
    padding: 7px 13px;
    border-radius: var(--ap-radius-pill);
    background: transparent;
    color: var(--ap-ink-soft);
    font-size: 12px;
    font-weight: 600;
    transition: background var(--ap-transition), color var(--ap-transition), box-shadow var(--ap-transition);
}
.ap-compare__filter:hover {
    color: var(--ap-ink);
}
.ap-compare__filter.is-active {
    background: var(--ap-dark);
    color: #fff;
    box-shadow: 0 4px 10px rgba(8, 18, 38, .14);
}
.ap-compare__clear {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border: 1px solid transparent;
    border-radius: var(--ap-radius-pill);
    background: transparent;
    color: var(--ap-ink-soft);
    font-size: 12px;
    font-weight: 600;
    transition: color var(--ap-transition), background var(--ap-transition);
}
.ap-compare__clear:hover {
    background: #fbeceb;
    color: #b43d37;
}
.ap-compare__filter:focus-visible,
.ap-compare__clear:focus-visible,
.ap-compare__arrow:focus-visible,
.ap-compare__scroll:focus-visible,
.ap-compare-card__remove:focus-visible {
    outline: 3px solid rgba(0, 82, 177, .22);
    outline-offset: 2px;
}

.ap-compare__hint {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: -6px 0 18px;
    padding: 12px 16px;
    border: 1px solid #cdddef;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-accent-soft);
    color: var(--ap-ink-soft);
    font-size: 13px;
}
.ap-compare__hint svg {
    flex: 0 0 auto;
    color: var(--ap-accent);
}
.ap-compare__hint a {
    margin-left: auto;
    color: var(--ap-accent-dark);
    font-weight: 700;
}

.ap-compare__stage {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--ap-surface);
    box-shadow: var(--ap-shadow);
}
.ap-compare__scroll {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scrollbar-color: #b9c6d7 transparent;
}
.ap-compare__scroll::-webkit-scrollbar {
    height: 8px;
}
.ap-compare__scroll::-webkit-scrollbar-thumb {
    border: 2px solid #fff;
    border-radius: 99px;
    background: #b9c6d7;
}
.ap-compare__nav {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 8;
    display: none;
    align-items: center;
    gap: 6px;
}
.ap-compare__stage.is-scrollable .ap-compare__nav {
    display: flex;
}
.ap-compare__arrow {
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--ap-line);
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: var(--ap-ink);
    box-shadow: 0 5px 18px rgba(8, 18, 38, .12);
    transition: border-color var(--ap-transition), color var(--ap-transition), opacity var(--ap-transition);
}
.ap-compare__arrow:hover:not(:disabled) {
    border-color: var(--ap-accent);
    color: var(--ap-accent);
}
.ap-compare__arrow:disabled {
    cursor: default;
    opacity: .35;
}

.ap-compare__table {
    width: 100%;
    min-width: max(100%, var(--ap-compare-min-width));
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}
.ap-compare__table caption {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.ap-compare__table th,
.ap-compare__table td {
    box-sizing: border-box;
}
.ap-compare__feature-head,
.ap-compare__table tbody th:not([colspan]) {
    position: sticky;
    left: 0;
    z-index: 4;
    width: 190px;
    min-width: 190px;
    background: var(--ap-surface);
}
.ap-compare__feature-head {
    padding: 14px;
    border-right: 1px solid var(--ap-line);
    color: var(--ap-ink-soft);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-align: left;
    text-transform: uppercase;
    vertical-align: bottom;
}
.ap-compare__product-head {
    width: 240px;
    min-width: 240px;
    padding: 10px;
    border-right: 1px solid var(--ap-line);
    background: #f8fbfe;
    text-align: left;
    vertical-align: top;
}
.ap-compare__product-head:last-child {
    border-right: 0;
}
.ap-compare-card {
    position: relative;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ap-compare-card__image {
    display: flex;
    width: 100%;
    height: 132px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 14px;
    background: var(--ap-surface);
}
.ap-compare-card__image img {
    width: auto;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    display: block;
    object-fit: contain;
    transition: transform .28s ease;
}
.ap-compare-card__image:hover img {
    transform: scale(1.035);
}
.ap-compare-card__body {
    min-width: 0;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}
.ap-compare-card__name {
    padding-right: 30px;
    color: var(--ap-ink);
    font-family: var(--ap-font-display);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .01em;
    line-height: 1.3;
    text-transform: uppercase;
}
.ap-compare-card__name:hover {
    color: var(--ap-accent);
}
.ap-compare-card__more {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: var(--ap-ink-soft);
    font-size: 11px;
    font-weight: 600;
}
.ap-compare-card__more:hover {
    color: var(--ap-accent);
}
.ap-compare-card__remove {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--ap-line);
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: var(--ap-ink-soft);
    box-shadow: 0 4px 12px rgba(8, 18, 38, .08);
}
.ap-compare-card__remove:hover {
    border-color: #efc6c3;
    background: #fbeceb;
    color: #b43d37;
}
.ap-compare--few .ap-compare-card {
    min-height: 116px;
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
}
.ap-compare--few .ap-compare-card__image {
    height: 116px;
}
.ap-compare--few .ap-compare-card__body {
    justify-content: center;
}
.ap-compare--single .ap-compare-card__name {
    max-width: 440px;
    font-size: 16px;
}

.ap-compare__table tbody th,
.ap-compare__table tbody td {
    padding: 10px 14px;
    border-top: 1px solid var(--ap-line);
    border-right: 1px solid var(--ap-line);
    color: var(--ap-ink);
    font-size: 13px;
    line-height: 1.4;
    text-align: left;
    vertical-align: top;
}
.ap-compare__table tbody th:not([colspan]) {
    color: var(--ap-ink-soft);
    font-weight: 500;
}
.ap-compare__table tbody td:last-child {
    border-right: 0;
}
.ap-compare__table tbody tr:not(.divider):hover th,
.ap-compare__table tbody tr:not(.divider):hover td {
    background: #f8fbfe;
}
.ap-compare__table tbody tr:not(.divider):hover th {
    background: #f2f7fc;
}
.ap-compare__feature-name {
    display: block;
}
.ap-compare__difference-note {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 4px;
    color: var(--ap-accent-dark);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .055em;
    line-height: 1.2;
    text-transform: uppercase;
}
.ap-compare__difference-note::before {
    width: 5px;
    height: 5px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--ap-accent);
    content: "";
}
.ap-compare__row--different th:not([colspan]) {
    background: #f1f7fd;
    color: var(--ap-ink);
}
.ap-compare__row--different td,
.ap-compare__row--different:hover td {
    background: #f7fbff;
}
.ap-compare__row--different .feature-data {
    padding-left: 9px;
    border-left: 2px solid rgba(0, 82, 177, .42);
    color: #0c376d;
    font-weight: 600;
}
.ap-compare__table .divider th {
    position: relative;
    z-index: 5;
    padding: 10px 14px;
    border-top: 1px solid #cbd8e7;
    border-right: 0;
    background: #e9f0f7;
    color: var(--ap-ink);
    font-family: var(--ap-font);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-align: left;
    text-transform: uppercase;
}
.ap-compare__price-row td {
    color: var(--ap-ink);
}
.ap-compare__price-row .price {
    color: var(--ap-ink);
    font-size: 17px;
    font-weight: 700;
}
.ap-compare__price-dash {
    padding: 0 3px;
    color: var(--ap-ink-faint);
    font-weight: 400;
}
.ap-compare__empty {
    color: var(--ap-ink-faint);
}

.ap-compare-empty {
    max-width: 620px;
    margin: 32px auto 24px;
    padding: 56px 32px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--ap-surface);
    box-shadow: var(--ap-shadow);
    text-align: center;
}
.ap-compare-empty__icon {
    width: 76px;
    height: 76px;
    display: inline-grid;
    place-items: center;
    margin-bottom: 20px;
    border-radius: 50%;
    background: var(--ap-accent-soft);
    color: var(--ap-accent);
}
.ap-compare-empty h2 {
    margin-bottom: 10px;
    font-size: 29px;
}
.ap-compare-empty p {
    max-width: 450px;
    margin: 0 auto 24px;
    color: var(--ap-ink-soft);
}

@media (max-width: 900px) {
    .ap-compare__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }
    .ap-compare__toolbar {
        width: 100%;
        justify-content: space-between;
    }
    .ap-compare__hint {
        align-items: flex-start;
        flex-wrap: wrap;
    }
    .ap-compare__hint a {
        width: 100%;
        margin-left: 30px;
    }
    .ap-compare--few .ap-compare-card {
        grid-template-columns: 116px minmax(0, 1fr);
    }
    .ap-compare--few .ap-compare-card__image {
        height: 116px;
    }
}

@media (max-width: 760px) {
    .ap-compare {
        padding-top: 0;
    }
    .ap-compare__header {
        margin-bottom: 20px;
    }
    .ap-compare__heading h1 {
        font-size: 29px;
    }
    .ap-compare__toolbar {
        align-items: stretch;
        gap: 8px;
    }
    .ap-compare__switch {
        flex: 1 1 auto;
    }
    .ap-compare__filter {
        flex: 1 1 auto;
        min-height: 44px;
        padding-right: 11px;
        padding-left: 11px;
    }
    .ap-compare__clear {
        width: 44px;
        min-height: 44px;
        justify-content: center;
        padding: 0;
        border-color: var(--ap-line);
        background: rgba(255, 255, 255, .72);
    }
    .ap-compare__clear span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }
    .ap-compare__hint {
        margin-top: 0;
        padding: 12px;
    }
    .ap-compare__stage {
        margin-right: -20px;
        margin-left: -20px;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }
    .ap-compare__nav {
        top: 10px;
        right: 10px;
    }
    .ap-compare__arrow {
        width: 44px;
        height: 44px;
    }
    .ap-compare__table {
        min-width: max(100%, var(--ap-compare-mobile-width));
    }
    .ap-compare__feature-head,
    .ap-compare__table tbody th:not([colspan]) {
        display: none;
    }
    .ap-compare__product-head {
        width: 78vw;
        min-width: 78vw;
        padding: 12px;
    }
    .ap-compare-card {
        gap: 11px;
    }
    .ap-compare-card__image {
        height: 124px;
        border-radius: 11px;
    }
    .ap-compare-card__name {
        padding-right: 0;
        font-size: 13px;
    }
    .ap-compare-card__remove {
        top: 4px;
        right: 4px;
        width: 44px;
        height: 44px;
    }
    .ap-compare--few .ap-compare-card,
    .ap-compare--single .ap-compare-card {
        min-height: 0;
        display: flex;
        align-items: stretch;
        gap: 11px;
    }
    .ap-compare--few .ap-compare-card__image,
    .ap-compare--single .ap-compare-card__image {
        height: 124px;
    }
    .ap-compare--single .ap-compare-card__name {
        font-size: 13px;
    }
    .ap-compare__table tbody td {
        padding: 11px 12px;
        font-size: 12px;
    }
    .ap-compare__table tbody td::before {
        content: attr(data-feature-name);
        display: block;
        margin-bottom: 5px;
        color: var(--ap-ink-soft);
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .055em;
        line-height: 1.35;
        text-transform: uppercase;
    }
    .ap-compare__table .divider th {
        display: table-cell;
        padding: 12px 13px;
    }
    .ap-compare__price-row .price {
        font-size: 16px;
    }
    .ap-product__compare-actions {
        width: 100%;
        gap: 6px;
    }
    .ap-product__compare-toggle,
    .ap-product__compare-go {
        min-height: 44px;
    }
    .ap-product__compare-go {
        flex: 1 1 auto;
    }
}

@media (max-width: 420px) {
    .ap-compare__heading h1 {
        font-size: 27px;
    }
    .ap-compare__filter {
        font-size: 12px;
    }
    .ap-compare-empty {
        padding: 42px 20px;
    }
}

/* печать */
@media print {
    .ap-header, .ap-footer, .ap-cookie, #compare-leash { display: none !important; }
}

/* ============================================================
   Фильтр-пакеты: главная, печатный проект и consultation CTA
   ============================================================ */
.ap-tea-home {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 90% 32%, rgba(39, 168, 130, .12), transparent 35%),
        linear-gradient(180deg, #f8fbff 0%, #eef5f4 100%);
    border-block: 1px solid rgba(13, 35, 55, .08);
    isolation: isolate;
}
.ap-section--catalog-pair {
    position: relative;
    z-index: 2;
    padding: clamp(72px, 7vw, 112px) 0 clamp(54px, 6vw, 88px);
}

/* Персональный блок доставки на главной */
.ap-delivery-home {
    position: relative;
    z-index: 2;
    padding: clamp(40px, 4vw, 64px) 0 clamp(54px, 6vw, 88px);
}
.ap-delivery-home__panel {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
    gap: clamp(34px, 6vw, 90px);
    align-items: center;
    padding: clamp(30px, 4vw, 58px);
    overflow: hidden;
    border: 1px solid rgba(8, 18, 38, .1);
    border-radius: 28px;
    background:
        radial-gradient(circle at 88% 16%, rgba(10, 186, 181, .16), transparent 34%),
        rgba(255, 255, 255, .9);
    box-shadow: 0 24px 60px rgba(4, 82, 80, .12);
}
.ap-delivery-home__copy { max-width: 650px; }
.ap-delivery-home__copy h2 {
    margin: 0;
    color: var(--ap-ink);
    font-family: var(--ap-font-display);
    font-size: clamp(38px, 4.6vw, 68px);
    font-weight: 700;
    line-height: 1.1;
    text-transform: uppercase;
}
.ap-delivery-home__copy > p {
    max-width: 590px;
    margin: 20px 0 0;
    color: var(--ap-ink-soft);
    font-size: clamp(15px, 1.25vw, 18px);
    line-height: 1.55;
}
.ap-delivery-home__destination {
    appearance: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 2px 10px;
    min-width: 152px;
    max-width: 210px;
    padding: 10px 12px;
    border: 1px solid rgba(8, 18, 38, .09);
    border-radius: 14px;
    background: rgba(255, 255, 255, .86);
    color: var(--ap-ink);
    text-align: left;
    box-shadow: 0 8px 24px rgba(4, 82, 80, .08);
    transition: border-color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.ap-delivery-home__destination > span {
    grid-column: 1;
    color: var(--ap-ink-faint);
    font-size: 10.5px;
    line-height: 1.2;
}
.ap-delivery-home__destination > strong {
    grid-column: 1;
    min-width: 0;
    overflow: hidden;
    color: var(--ap-ink);
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ap-delivery-home__destination > i {
    grid-row: 1 / span 2;
    grid-column: 2;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--ap-accent) 18%, white);
    color: var(--ap-ink);
    font-size: 14px;
}
.ap-delivery-home__destination:hover {
    border-color: color-mix(in srgb, var(--ap-accent) 55%, var(--ap-line));
    color: var(--ap-ink);
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(4, 82, 80, .12);
}
.ap-delivery-home__destination:focus-visible {
    outline: 2px solid var(--ap-accent);
    outline-offset: 3px;
}
.ap-delivery-home__estimate {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}
.ap-delivery-home__estimate > span {
    color: var(--ap-ink-soft);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
}
.ap-delivery-home__estimate > strong {
    max-width: 100%;
    color: var(--ap-ink);
    font-family: var(--ap-font-display);
    font-size: clamp(28px, 2.7vw, 42px);
    line-height: 1.08;
}
.ap-delivery-home__estimate > small {
    color: var(--ap-ink-faint);
    font-size: 10.5px;
    line-height: 1.3;
}
.ap-delivery-home__more {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 22px;
    color: var(--ap-ink);
    font-weight: 700;
}
.ap-delivery-home__more i { color: var(--ap-accent-deep, #087f7b); transition: transform .25s ease; }
.ap-delivery-home__more:hover { color: var(--ap-ink); }
.ap-delivery-home__more:hover i { transform: translateX(4px); }

.ap-delivery-home__visual {
    min-width: 0;
    padding: 18px;
    border: 1px solid rgba(8, 18, 38, .08);
    border-radius: 22px;
    background:
        radial-gradient(circle at 86% 12%, color-mix(in srgb, var(--ap-accent) 15%, transparent), transparent 31%),
        rgba(247, 251, 251, .9);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .88);
}
.ap-delivery-home__visual-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 14px;
    padding: 2px 2px 12px;
}
.ap-delivery-route {
    --travel: clamp(92px, 11vw, 172px);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 116px;
    margin: 0 2px 8px;
    padding: 0 10px 12px;
}
.ap-delivery-route__origin,
.ap-delivery-route__destination {
    appearance: none;
    position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border: 1px solid rgba(8, 18, 38, .1);
    border-radius: 16px;
    background: rgba(255, 255, 255, .96);
    color: var(--ap-ink);
    font-size: 21px;
    box-shadow: 0 12px 28px rgba(4, 82, 80, .12);
}
.ap-delivery-route__destination {
    padding: 0;
    cursor: pointer;
    font: inherit;
    transition: transform .2s ease, box-shadow .2s ease;
}
.ap-delivery-route__destination {
    background: var(--ap-accent);
}
.ap-delivery-route__destination:hover {
    color: var(--ap-ink);
    transform: translateY(-1px);
    box-shadow: 0 16px 32px rgba(4, 82, 80, .17);
}
.ap-delivery-route__destination:focus-visible {
    outline: 2px solid var(--ap-ink);
    outline-offset: 4px;
}
.ap-delivery-route__destination::after {
    content: "";
    position: absolute;
    inset: -7px;
    z-index: -1;
    border: 1px solid color-mix(in srgb, var(--ap-accent) 62%, transparent);
    border-radius: 21px;
    opacity: 0;
    animation: ap-delivery-arrival 4.8s linear infinite;
}
.ap-delivery-route__origin small,
.ap-delivery-route__destination small {
    position: absolute;
    top: calc(100% + 7px);
    left: 50%;
    max-width: 112px;
    overflow: hidden;
    color: var(--ap-ink);
    font-family: var(--ap-font);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
    transform: translateX(-50%);
}
.ap-delivery-route__line {
    position: absolute;
    left: 61px;
    right: 61px;
    top: 50%;
    height: 3px;
    overflow: hidden;
    border-radius: 99px;
    background: repeating-linear-gradient(90deg, rgba(8, 18, 38, .15) 0 7px, transparent 7px 12px);
}
.ap-delivery-route__line i {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    background: var(--ap-accent);
    transform-origin: left center;
    animation: ap-delivery-line 4.8s linear infinite;
}
.ap-delivery-route__truck {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 3;
    display: block;
    color: var(--ap-ink);
    font-size: 34px;
    line-height: 1;
    filter: drop-shadow(0 7px 7px rgba(8, 18, 38, .18));
    will-change: transform;
    animation: ap-delivery-truck 4.8s linear infinite;
}
@keyframes ap-delivery-truck {
    0%, 8% { transform: translate(-50%, -50%) translateX(calc(-1 * var(--travel))); }
    92%, 100% { transform: translate(-50%, -50%) translateX(var(--travel)); }
}
@keyframes ap-delivery-line {
    0%, 10% { transform: scaleX(.08); opacity: .35; }
    84%, 100% { transform: scaleX(1); opacity: 1; }
}
@keyframes ap-delivery-arrival {
    0%, 72% { transform: scale(.82); opacity: 0; }
    84% { transform: scale(1); opacity: .8; }
    100% { transform: scale(1.22); opacity: 0; }
}
.ap-delivery-carriers {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}
.ap-delivery-carrier {
    display: flex;
    min-height: 72px;
    min-width: 0;
    flex-direction: column;
    justify-content: space-between;
    padding: 11px 12px;
    border: 1px solid rgba(8, 18, 38, .08);
    border-radius: 14px;
    background: rgba(255, 255, 255, .9);
}
.ap-delivery-carrier b {
    display: block;
    color: var(--ap-ink);
    font-size: 12px;
    line-height: 1.2;
}
.ap-delivery-carrier span {
    display: block;
    margin-top: 5px;
    color: var(--ap-ink-faint);
    font-size: 11px;
    line-height: 1.25;
}
.ap-delivery-carrier.is-available span { color: #087f7b; font-weight: 700; }
.ap-delivery-home.is-loading .ap-delivery-home__estimate > strong,
.ap-delivery-home.is-loading .js-delivery-carrier-time { opacity: .58; }

@media (prefers-reduced-motion: reduce) {
    .ap-delivery-route__truck,
    .ap-delivery-route__line i,
    .ap-delivery-route__destination::after { animation: none; }
    .ap-delivery-route__truck { transform: translate(-50%, -50%); opacity: 1; }
    .ap-delivery-route__line i { width: 100%; }
}

.ap-filterstory {
    position: relative;
    padding: clamp(42px, 6vw, 92px) 0 clamp(74px, 8vw, 132px);
    background: #f4fbfa;
}
.ap-filterstory::before {
    content: "";
    position: absolute;
    top: 11%;
    right: -6vw;
    width: min(34vw, 520px);
    aspect-ratio: 1;
    border: 1px solid rgba(10, 186, 181, .22);
    border-radius: 48% 52% 58% 42%;
    transform: rotate(22deg);
}
.ap-filterstory__head {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(280px, .7fr);
    gap: clamp(28px, 6vw, 100px);
    align-items: end;
    max-width: 1160px;
}
.ap-filterprint__index,
.ap-print-consult__eyebrow {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: max-content;
    color: #176d61;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.ap-filterstory__head h2 {
    margin: 0;
    color: #07192b;
    font-size: clamp(48px, 6.3vw, 96px);
    font-weight: 850;
    letter-spacing: -.06em;
    line-height: 1.02;
}
.ap-filterstory__head h2 em {
    color: var(--ap-accent);
    font-style: normal;
    font-weight: 500;
}
.ap-filterstory__head p {
    margin: 0 0 5px;
    max-width: 510px;
    color: #526777;
    font-size: clamp(16px, 1.4vw, 20px);
    line-height: 1.62;
}
.ap-filterstory__formats {
    display: grid;
    grid-template-columns: minmax(250px, .75fr) minmax(250px, .75fr) minmax(300px, 1.15fr);
    gap: 14px;
    margin-top: clamp(42px, 6vw, 86px);
}
.ap-filterformat {
    position: relative;
    display: grid;
    grid-template-columns: 74px 1fr 24px;
    gap: 16px;
    align-items: center;
    min-height: 126px;
    padding: 22px;
    overflow: hidden;
    color: #0b2134;
    background: rgba(255, 255, 255, .76);
    border: 1px solid rgba(11, 33, 52, .1);
    border-radius: 22px;
    box-shadow: 0 20px 50px rgba(23, 61, 69, .06);
    text-decoration: none;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ap-filterformat::after {
    content: "";
    position: absolute;
    inset: auto -36px -50px auto;
    width: 130px;
    height: 130px;
    background: rgba(10, 186, 181, .1);
    border-radius: 50%;
    transition: transform .35s ease;
}
.ap-filterformat:hover {
    color: #0b2134;
    border-color: rgba(10, 186, 181, .48);
    box-shadow: 0 26px 58px rgba(23, 61, 69, .12);
    transform: translateY(-4px);
}
.ap-filterformat:hover::after { transform: scale(1.28); }
.ap-filterformat__size {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    color: var(--ap-dark);
    background: var(--ap-accent);
    border-radius: 20px;
    font-size: 38px;
    font-weight: 850;
    letter-spacing: -.06em;
}
.ap-filterformat__body {
    position: relative;
    z-index: 1;
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 7px;
}
.ap-filterformat__body b { font-size: 17px; }
.ap-filterformat__body small { color: #6a7b88; font-size: 12px; }
.ap-filterformat > i {
    position: relative;
    z-index: 1;
    color: var(--ap-accent-dark);
    font-size: 18px;
}
.ap-filterstory__facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    min-height: 126px;
    overflow: hidden;
    background: #0a1c2c;
    border-radius: 22px;
}
.ap-filterstory__facts span {
    display: flex;
    min-width: 0;
    padding: 24px 18px;
    flex-direction: column;
    justify-content: center;
    color: rgba(255, 255, 255, .62);
    font-size: 11px;
    line-height: 1.35;
}
.ap-filterstory__facts span + span { border-left: 1px solid rgba(255, 255, 255, .1); }
.ap-filterstory__facts b {
    margin-bottom: 7px;
    color: #fff;
    font-size: clamp(24px, 2.2vw, 36px);
    letter-spacing: -.04em;
}
.ap-filterstory__catalog {
    display: inline-flex;
    min-height: 48px;
    margin-top: 26px;
    align-items: center;
    gap: 10px;
    color: var(--ap-accent-dark);
    font-weight: 750;
    text-decoration: none;
}
.ap-filterstory__catalog svg { transition: transform .2s ease; }
.ap-filterstory__catalog:hover svg { transform: translateX(5px); }

.ap-filterprint {
    --ap-filter-p: .5;
    --ap-film-enter: 1;
    --ap-film-dark: 0;
    --ap-film-mx: 50%;
    --ap-film-my: 42%;
    --ap-film-pointer-x: 0px;
    --ap-film-pointer-y: 0px;
    position: relative;
    min-height: 0;
    padding: clamp(76px, 9vw, 140px) 0;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 77% 42%, rgba(22, 100, 179, .22), transparent 30%),
        radial-gradient(circle at 24% 92%, rgba(0, 82, 177, .2), transparent 31%),
        #061421;
    isolation: isolate;
}
.ap-filterprint__grid {
    position: absolute;
    inset: 0;
    z-index: -3;
    opacity: .16;
    background-image:
        linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px);
    background-size: 54px 54px;
    transform: translateY(calc((var(--ap-filter-p) - .5) * 34px));
}
.ap-filterprint__ink {
    position: absolute;
    z-index: -2;
    width: 40vw;
    max-width: 620px;
    aspect-ratio: 1;
    border-radius: 48% 52% 64% 36%;
    filter: blur(4px);
    opacity: .24;
    will-change: transform;
}
.ap-filterprint__ink--one {
    top: -24%;
    right: -12%;
    background: var(--ap-accent-2);
    transform: translate3d(calc((.5 - var(--ap-filter-p)) * 75px), calc(var(--ap-filter-p) * 90px), 0) rotate(calc(var(--ap-filter-p) * 40deg));
}
.ap-filterprint__ink--two {
    bottom: -36%;
    left: 34%;
    background: var(--ap-accent);
    transform: translate3d(calc((var(--ap-filter-p) - .5) * 90px), calc((1 - var(--ap-filter-p)) * -60px), 0) rotate(calc(var(--ap-filter-p) * -35deg));
}
.ap-filterprint__inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(320px, .88fr) minmax(440px, 1.12fr);
    gap: clamp(42px, 7vw, 112px);
    align-items: center;
}
.ap-filterprint__copy { position: relative; z-index: 3; }
.ap-filterprint__index { color: #74b2ff; }
.ap-filterprint__copy h2 {
    max-width: 690px;
    margin: 24px 0 26px;
    font-size: clamp(48px, 5.8vw, 92px);
    font-weight: 850;
    letter-spacing: -.064em;
    line-height: .92;
}
.ap-filterprint__copy h2 em {
    display: inline-block;
    color: #6faeff;
    font-style: normal;
    font-weight: 520;
    transform: translateX(calc((var(--ap-filter-p) - .5) * 18px));
}
.ap-filterprint__copy > p {
    max-width: 600px;
    margin: 0;
    color: rgba(235, 246, 255, .7);
    font-size: clamp(16px, 1.35vw, 20px);
    line-height: 1.65;
}
.ap-filterprint__tiers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    max-width: 590px;
    margin-top: 34px;
}
.ap-filterprint__tiers > span {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 5px 16px;
    padding: 17px 18px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 16px;
    backdrop-filter: blur(12px);
}
.ap-filterprint__tiers small {
    grid-column: 1 / -1;
    color: rgba(255,255,255,.52);
    font-size: 11px;
    letter-spacing: .03em;
}
.ap-filterprint__tiers b {
    display: inline-flex;
    align-items: baseline;
    gap: .18em;
    color: #fff;
    font-size: 23px;
    letter-spacing: -.03em;
    white-space: nowrap;
}
.ap-filterprint__tiers em {
    align-self: end;
    color: rgba(255,255,255,.45);
    font-size: 10px;
    font-style: normal;
}
.ap-filterprint__button,
.ap-print-consult__button {
    display: inline-flex;
    min-height: 56px;
    margin-top: 28px;
    padding: 0 25px;
    align-items: center;
    justify-content: center;
    gap: 13px;
    color: #fff;
    background: var(--ap-accent);
    border: 0;
    border-radius: 14px;
    box-shadow: 0 18px 44px rgba(0, 82, 177, .25);
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.ap-filterprint__button:hover,
.ap-print-consult__button:hover {
    color: #fff;
    background: var(--ap-accent-dark);
    box-shadow: 0 22px 54px rgba(0, 82, 177, .38);
    transform: translateY(-3px);
}
.ap-filterprint__stage {
    position: relative;
    min-height: 0;
    aspect-ratio: 4 / 3;
    isolation: isolate;
}
.ap-filterprint__stage::before {
    content: none;
}
.ap-filterprint__film {
    position: absolute;
    inset: 0;
    overflow: visible;
    contain: layout;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    opacity: calc(.3 + var(--ap-film-enter) * .7);
    transform:
        translate3d(0, calc((1 - var(--ap-film-enter)) * 38px), 0)
        scale(calc(.94 + var(--ap-film-enter) * .06));
    will-change: transform, opacity;
    clip-path: none;
    -webkit-mask-image: none;
}
.ap-filterprint__film::before {
    content: none;
}
.ap-filterprint__film::after {
    content: none;
}
.ap-filterprint__frame {
    --frame-opacity: 0;
    --frame-scale: 1;
    --frame-scale-base: 0;
    --frame-x: 0px;
    --frame-y: 0px;
    --frame-glow: rgba(32, 116, 208, .26);
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: var(--frame-opacity);
    transform: translateZ(0);
    will-change: opacity;
    pointer-events: none;
}
.ap-filterprint__frame:first-child { --frame-opacity: 1; }
.ap-filterprint__frame::before {
    content: none;
}
.ap-filterprint__frame img {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 34px 30px rgba(0,0,0,.38));
    transform:
        translate3d(
            calc(var(--frame-x) + var(--ap-film-pointer-x)),
            calc(var(--frame-y) + var(--ap-film-pointer-y)),
            0
        )
        scale(calc(var(--frame-scale) + var(--frame-scale-base)));
    transform-origin: center center;
    will-change: transform;
}
.ap-filterprint__frame--atlas-front,
.ap-filterprint__frame--atlas-back,
.ap-filterprint__frame--atlas-detail {
    --frame-glow: rgba(229, 135, 47, .22);
}
.ap-filterprint__frame--atlas-front img,
.ap-filterprint__frame--atlas-back img {
    object-position: 56% 50%;
}
.ap-filterprint__frame--atlas-front,
.ap-filterprint__frame--atlas-back,
.ap-filterprint__frame--tasty-front {
    --frame-scale-base: 0;
}
.ap-filterprint__frame--atlas-detail,
.ap-filterprint__frame--tasty-detail {
    --frame-scale-base: 0;
}
.ap-filterprint__frame--atlas-detail img {
    object-position: 50% 43%;
}
.ap-filterprint__frame--tasty-detail,
.ap-filterprint__frame--tasty-front {
    --frame-glow: rgba(39, 113, 208, .28);
}
.ap-filterprint__frame--tasty-detail img {
    object-position: 50% 44%;
}
.ap-filterprint__frame--tasty-front img {
    object-position: 56% 50%;
}
.ap-filterprint__film-light {
    position: absolute;
    inset: -16%;
    z-index: 9;
    background: radial-gradient(
        420px 320px at var(--ap-film-mx) var(--ap-film-my),
        rgba(126, 187, 255, .16),
        transparent 66%
    );
    mix-blend-mode: screen;
    pointer-events: none;
}
.ap-filterprint__film-shutter {
    position: absolute;
    inset: 0;
    z-index: 10;
    background: #050d15;
    opacity: var(--ap-film-dark);
    pointer-events: none;
    will-change: opacity;
}
.ap-filterprint__progress {
    position: absolute;
    right: 24px;
    bottom: 23px;
    z-index: 12;
    display: flex;
    gap: 8px;
}
.ap-filterprint__progress span {
    width: 6px;
    height: 6px;
    overflow: hidden;
    background: rgba(255,255,255,.16);
    border-radius: 50%;
}
.ap-filterprint__progress span::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: var(--ap-accent);
    border-radius: inherit;
    opacity: 0;
    transform: scale(.35);
    transform-origin: center;
    transition: opacity .18s ease, transform .36s cubic-bezier(.16,1,.3,1);
}
.ap-filterprint__progress span.is-active::after {
    opacity: 1;
    transform: scale(1);
}
.ap-filterprint__film,
.ap-filterprint__film-light {
    transition: box-shadow .3s ease, opacity .3s ease;
}
.ap-filterprint__film-light {
    opacity: .72;
}
.ap-filterprint__stage:hover {
    --ap-film-pointer-y: -3px;
}
.ap-filterprint__frame--atlas-front img,
.ap-filterprint__frame--tasty-front img {
    padding: 2.5%;
}
.ap-filterprint__frame--atlas-back img {
    padding: 1.5%;
}
.ap-filterprint__frame--atlas-detail img,
.ap-filterprint__frame--tasty-detail img {
    padding: 0;
}
.ap-filterprint__stage,
.ap-filterprint__film {
    border-radius: 0;
}
.ap-filterprint__stage {
    transform: translateZ(0);
}
.ap-filterprint__stage[role="img"] {
    user-select: none;
}
.ap-filterprint__stage[role="img"] img {
    -webkit-user-drag: none;
}

.ap-card--print-project {
    background: linear-gradient(180deg, #f3f8ff 0%, #fff 48%);
    border-color: rgba(0, 82, 177, .24);
}
.ap-card--print-project::before {
    content: "CUSTOM";
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 5;
    padding: 6px 9px;
    color: #fff;
    background: var(--ap-accent);
    border-radius: 999px;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .13em;
}
.ap-card__from { margin-right: 5px; color: var(--ap-muted, #778796); font-weight: 700; }
.ap-card__print-tier {
    margin: -4px 0 12px;
    color: var(--ap-accent);
    font-size: 11px;
    font-weight: 700;
}
.ap-card--print-project .ap-card__buy { gap: 9px; }

.ap-product__cart--print {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.ap-print-consult {
    padding: 18px;
    color: #edf5ff;
    background:
        radial-gradient(circle at 100% 0, rgba(36, 126, 232, .34), transparent 46%),
        linear-gradient(135deg, #07182a 0%, #09284c 100%);
    border: 1px solid rgba(98, 164, 244, .28);
    border-radius: 18px;
    box-shadow: 0 18px 42px -24px rgba(0, 52, 117, .72);
}
.ap-print-consult__eyebrow { color: #54d8d3; }
.ap-print-consult__prices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
}
.ap-print-consult__prices span {
    display: flex;
    padding: 11px 13px;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 8px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(128, 183, 250, .2);
    border-radius: 12px;
}
.ap-print-consult__prices small {
    width: 100%;
    color: rgba(255,255,255,.5);
    font-size: 10px;
}
.ap-print-consult__prices b { color: #fff; font-size: 22px; }
.ap-print-consult__prices em { color: rgba(255,255,255,.5); font-size: 10px; font-style: normal; }
.ap-print-consult > p { margin: 12px 0 0; color: rgba(231,241,255,.7); font-size: 12px; line-height: 1.45; }
.ap-print-consult__button {
    width: 100%;
    min-height: 50px;
    margin-top: 13px;
    background: var(--ap-accent);
    box-shadow: 0 12px 28px rgba(0,82,177,.3);
}
.ap-print-consult__button:hover { background: var(--ap-accent-dark); }

@media (max-width: 980px) {
    .ap-delivery-home__panel { grid-template-columns: 1fr; gap: 30px; }
    .ap-delivery-home__copy { max-width: none; }
    .ap-delivery-home__visual { padding: 18px; }
    .ap-filterstory__head { grid-template-columns: 1fr; gap: 22px; }
    .ap-filterstory__head p { max-width: 680px; }
    .ap-filterstory__formats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ap-filterstory__facts { grid-column: 1 / -1; }
    .ap-filterprint {
        min-height: 0;
        padding: clamp(76px, 10vw, 110px) 0;
    }
    .ap-filterprint__inner {
        position: relative;
        top: auto;
        grid-template-columns: 1fr;
        min-height: 0;
        padding-top: 0;
        padding-bottom: 0;
    }
    .ap-filterprint__copy { max-width: 760px; }
    .ap-filterprint__stage {
        width: min(100%, 780px);
        min-height: 0;
        aspect-ratio: 4 / 3;
        margin-top: 42px;
    }
}
@media (max-width: 620px) {
    .ap-section--catalog-pair { padding: 58px 0 50px; }
    .ap-delivery-home { padding-top: 30px; padding-bottom: 50px; }
    .ap-delivery-home__panel { gap: 22px; padding: 20px; border-radius: 22px; }
    .ap-delivery-home__copy h2 { font-size: clamp(36px, 12vw, 50px); line-height: 1.12; }
    .ap-delivery-home__copy > p { margin-top: 15px; font-size: 14px; }
    .ap-delivery-home__more { margin-top: 18px; }
    .ap-delivery-home__visual-head { gap: 10px; padding-bottom: 8px; }
    .ap-delivery-home__destination {
        min-width: 126px;
        max-width: 46vw;
        gap: 1px 7px;
        padding: 8px 9px;
    }
    .ap-delivery-home__destination > i { width: 27px; height: 27px; border-radius: 9px; }
    .ap-delivery-home__estimate > strong { font-size: clamp(24px, 8vw, 31px); }
    .ap-delivery-home__estimate > small { max-width: 150px; font-size: 9.5px; }
    .ap-delivery-home__visual { padding: 13px; border-radius: 18px; }
    .ap-delivery-route { --travel: 78px; min-height: 104px; padding: 0 4px 10px; }
    .ap-delivery-route__origin,
    .ap-delivery-route__destination { width: 46px; height: 46px; border-radius: 14px; font-size: 19px; }
    .ap-delivery-route__line { left: 49px; right: 49px; }
    .ap-delivery-route__truck { font-size: 28px; }
    .ap-delivery-carriers { gap: 6px; }
    .ap-delivery-carrier { min-height: 66px; padding: 9px 8px; border-radius: 11px; }
    .ap-delivery-carrier b { font-size: 11.5px; }
    .ap-delivery-carrier span { font-size: 10px; }
    .ap-filterstory { padding: 68px 0; }
    .ap-filterstory__head h2 { font-size: clamp(46px, 15vw, 68px); line-height: 1.06; }
    .ap-filterstory__formats { grid-template-columns: 1fr; }
    .ap-filterstory__facts { grid-column: auto; }
    .ap-filterformat { grid-template-columns: 64px 1fr 22px; min-height: 108px; padding: 17px; }
    .ap-filterformat__size { width: 62px; height: 62px; border-radius: 17px; font-size: 32px; }
    .ap-filterstory__facts { min-height: 116px; }
    .ap-filterstory__facts span { padding: 18px 10px; font-size: 9px; }
    .ap-filterprint { padding: 70px 0 56px; }
    .ap-filterprint__copy h2 { font-size: clamp(44px, 14vw, 64px); }
    .ap-filterprint__tiers { grid-template-columns: 1fr; }
    .ap-filterprint__stage {
        min-height: 0;
        aspect-ratio: 4 / 3;
        margin-top: 30px;
    }
    .ap-filterprint__stage,
    .ap-filterprint__film { border-radius: 0; }
    .ap-filterprint__progress { right: 16px; bottom: 15px; gap: 7px; }
    .ap-filterprint__progress span { width: 5px; height: 5px; }
    .ap-print-consult { padding: 15px; border-radius: 15px; }
    .ap-print-consult__prices span { padding: 10px; }
    .ap-print-consult__prices b { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .ap-filterprint *,
    .ap-filterstory * {
        animation: none !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
    .ap-filterprint__grid,
    .ap-filterprint__ink,
    .ap-filterprint__frame img,
    .ap-filterprint__copy h2 em {
        transform: none !important;
    }
    .ap-filterprint__film {
        opacity: 1 !important;
        transform: none !important;
    }
    .ap-filterprint__frame {
        opacity: 0 !important;
    }
    .ap-filterprint__frame:first-child {
        opacity: 1 !important;
    }
    .ap-filterprint__film-shutter {
        display: none !important;
    }
}

/* ============================================================
   Сервисные лендинги: печать на упаковке и фильтр-пакетах
   ============================================================ */
/* Прежняя концепция сохранена для истории, но отключена:
   актуальная система ниже не смешивает старые и новые трансформации. */
@media (max-width: 0px) and (min-width: 1px) {
.ap-filterprint__more {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 18px;
    color: #91bfff;
    font-size: 13px;
    font-weight: 700;
}
.ap-filterprint__more:hover { color: #fff; }

.ap-brandstory {
    --story-blue: #176fd1;
    --story-blue-bright: #63a7ff;
    --story-ice: #dcecff;
    width: 100vw;
    margin: 0 calc(50% - 50vw) -64px;
    overflow: clip;
    color: #0b1a30;
    background: #f2f7fc;
}
.ap-brandstory--coffee {
    --story-surface: #071524;
    --story-surface-2: #0b2037;
    --story-copy: #a9b9cb;
}
.ap-brandstory--tea {
    --story-surface: #f2f7fc;
    --story-surface-2: #e7f1fb;
    --story-copy: #5b6f86;
}
.ap-brandstory h1,
.ap-brandstory h2,
.ap-brandstory h3 { text-wrap: balance; }
.ap-brandstory button { appearance: none; }

.ap-storyhero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(520px, 1.08fr);
    align-items: center;
    min-height: min(880px, calc(100vh - 74px));
    padding: clamp(64px, 7vw, 116px) max(32px, calc((100vw - 1400px) / 2));
    isolation: isolate;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(rgba(91, 154, 220, .065) 1px, transparent 1px),
        linear-gradient(90deg, rgba(91, 154, 220, .065) 1px, transparent 1px),
        radial-gradient(circle at 73% 46%, rgba(34, 116, 200, .24), transparent 32%),
        #071524;
    background-size: 74px 74px, 74px 74px, auto, auto;
}
.ap-storyhero::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -28%;
    right: -12%;
    width: min(46vw, 720px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: #0d4d8e;
    filter: blur(2px);
    opacity: .55;
}
.ap-storyhero::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: 9%;
    bottom: -36%;
    width: min(47vw, 760px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: rgba(5, 79, 160, .32);
    filter: blur(4px);
}
.ap-storyhero__copy {
    position: relative;
    z-index: 4;
    max-width: 650px;
}
.ap-storyhero__kicker,
.ap-storysection__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    color: #79b5ff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.ap-storyhero__kicker::before,
.ap-storysection__eyebrow::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
}
.ap-storyhero h1 {
    max-width: 700px;
    margin: 0 0 26px;
    color: #fff;
    font-size: clamp(62px, 6.5vw, 112px);
    font-weight: 600;
    line-height: .88;
    letter-spacing: -.035em;
}
.ap-storyhero h1 em {
    display: block;
    color: #69aaff;
    font-style: normal;
}
.ap-storyhero__copy > p {
    max-width: 620px;
    margin: 0;
    color: #aebdce;
    font-size: clamp(17px, 1.35vw, 21px);
    line-height: 1.65;
}
.ap-storyhero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 34px;
}
.ap-storybtn {
    display: inline-flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 0 25px;
    border: 1px solid transparent;
    border-radius: 15px;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    transition: transform .3s cubic-bezier(.2,.8,.2,1), background .3s, border-color .3s, color .3s, box-shadow .3s;
}
.ap-storybtn:hover { transform: translateY(-3px); }
.ap-storybtn--primary {
    border-color: #176fd1;
    color: #fff;
    background: #176fd1;
    box-shadow: 0 18px 38px rgba(0, 82, 177, .28);
}
.ap-storybtn--primary:hover {
    color: #fff;
    background: #0f5eb9;
    box-shadow: 0 24px 46px rgba(0, 82, 177, .38);
}
.ap-storybtn--ghost {
    color: #d8e7f7;
    border-color: rgba(214, 231, 248, .24);
    background: rgba(255,255,255,.055);
}
.ap-storybtn--ghost:hover {
    color: #fff;
    border-color: rgba(255,255,255,.48);
    background: rgba(255,255,255,.09);
}
.ap-storyhero__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-top: 44px;
    overflow: hidden;
    border: 1px solid rgba(183, 208, 232, .16);
    border-radius: 17px;
    background: rgba(183, 208, 232, .16);
}
.ap-storyhero__facts span {
    min-height: 92px;
    padding: 19px 18px;
    color: #91a5b8;
    background: rgba(7, 21, 36, .86);
    font-size: 11px;
    line-height: 1.45;
}
.ap-storyhero__facts b {
    display: block;
    margin-bottom: 5px;
    color: #fff;
    font-size: 18px;
    line-height: 1.1;
}

.ap-storyhero__studio {
    --story-x: 0px;
    --story-y: 0px;
    position: relative;
    z-index: 2;
    min-height: 620px;
    perspective: 1200px;
}
.ap-storyhero__studio::before {
    content: "";
    position: absolute;
    inset: 9% 2% 4% 10%;
    border: 1px solid rgba(111, 177, 238, .24);
    border-radius: 50%;
    transform: rotate(-12deg);
}
.ap-storyhero__studio::after {
    content: "";
    position: absolute;
    inset: 19% 14% 12% 0;
    border: 1px solid rgba(111, 177, 238, .13);
    border-radius: 50%;
    transform: rotate(17deg);
}
.ap-storypack {
    position: absolute;
    z-index: 2;
    width: clamp(245px, 25vw, 400px);
    margin: 0;
    filter: drop-shadow(0 36px 50px rgba(0, 0, 0, .36));
    transition: filter .45s ease;
    will-change: transform;
}
.ap-storypack img {
    display: block;
    width: 100%;
    border-radius: 26px;
}
.ap-storypack--orange {
    left: 1%;
    top: 13%;
    transform: translate3d(calc(var(--story-x) * -.25), calc(var(--story-y) * -.25), 0) rotate(-8deg);
}
.ap-storypack--blue {
    left: 31%;
    top: 4%;
    z-index: 3;
    transform: translate3d(calc(var(--story-x) * .35), calc(var(--story-y) * .35), 40px) rotate(3deg) scale(1.06);
}
.ap-storypack--black {
    right: -3%;
    top: 17%;
    transform: translate3d(calc(var(--story-x) * .6), calc(var(--story-y) * .6), 70px) rotate(9deg);
}
.ap-storyhero__studio:hover .ap-storypack {
    filter: drop-shadow(0 48px 62px rgba(0, 0, 0, .48));
}
.ap-storyhero__spotlight {
    position: absolute;
    z-index: 1;
    left: 21%;
    bottom: 2%;
    width: 72%;
    height: 24%;
    border-radius: 50%;
    background: rgba(46, 132, 225, .35);
    filter: blur(62px);
}
.ap-storyhero__scroll {
    position: absolute;
    z-index: 5;
    right: max(32px, calc((100vw - 1400px) / 2));
    bottom: 28px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: rgba(218, 233, 247, .58);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ap-storyhero__scroll i {
    position: relative;
    display: block;
    width: 44px;
    height: 1px;
    overflow: hidden;
    background: rgba(255,255,255,.18);
}
.ap-storyhero__scroll i::after {
    content: "";
    position: absolute;
    inset: 0;
    background: #70adf7;
    animation: apStoryScroll 2s ease-in-out infinite;
}
@keyframes apStoryScroll {
    0% { transform: translateX(-105%); }
    55%,100% { transform: translateX(105%); }
}

.ap-storysection,
.ap-formatlab,
.ap-layerstory,
.ap-processstory,
.ap-teasizes,
.ap-materialstory,
.ap-brandingflow,
.ap-teaprice,
.ap-storycta {
    width: min(1400px, calc(100% - 64px));
    margin-inline: auto;
}
.ap-storysection,
.ap-formatlab,
.ap-layerstory,
.ap-processstory,
.ap-teasizes,
.ap-materialstory,
.ap-brandingflow,
.ap-teaprice { padding-block: clamp(90px, 10vw, 150px); }
.ap-storysection__eyebrow { color: #176fd1; }
.ap-storysection__split {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .65fr);
    align-items: end;
    gap: 7vw;
}
.ap-storysection__split h2,
.ap-formatlab__head h2,
.ap-processstory > h2,
.ap-teasizes__copy h2,
.ap-materialstory__copy h2,
.ap-brandingflow__head h2,
.ap-teaprice__copy h2 {
    margin: 0;
    color: #0b1a30;
    font-size: clamp(44px, 5.1vw, 78px);
    line-height: .98;
    letter-spacing: -.025em;
}
.ap-storysection__split p {
    margin: 0 0 6px;
    color: #5b6f86;
    font-size: 18px;
    line-height: 1.7;
}
.ap-pathcards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 62px;
}
.ap-pathcard {
    position: relative;
    min-height: 430px;
    padding: clamp(30px, 4vw, 54px);
    overflow: hidden;
    border: 1px solid #d8e4ef;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 18px 60px rgba(11, 35, 60, .06);
}
.ap-pathcard--accent {
    color: #fff;
    border-color: #0e4e91;
    background: linear-gradient(145deg, #0a2440, #0d559e);
}
.ap-pathcard__number {
    position: absolute;
    right: 30px;
    top: 17px;
    color: #dbe8f4;
    font-family: var(--ap-font-display);
    font-size: 104px;
    font-weight: 600;
    line-height: 1;
}
.ap-pathcard--accent .ap-pathcard__number { color: rgba(255,255,255,.1); }
.ap-pathcard__tag {
    display: inline-flex;
    margin-bottom: 84px;
    padding: 8px 12px;
    border-radius: 99px;
    color: #176fd1;
    background: #eaf3fd;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.ap-pathcard--accent .ap-pathcard__tag {
    color: #d9eaff;
    background: rgba(255,255,255,.1);
}
.ap-pathcard h3 {
    margin: 0 0 14px;
    font-size: clamp(29px, 3vw, 44px);
    line-height: 1;
}
.ap-pathcard p { max-width: 580px; color: #66798c; font-size: 16px; }
.ap-pathcard--accent p { color: #b7cbe0; }
.ap-pathcard ul {
    display: grid;
    gap: 9px;
    margin: 27px 0 0;
    padding: 0;
    list-style: none;
}
.ap-pathcard li {
    position: relative;
    padding-left: 22px;
    font-size: 13px;
}
.ap-pathcard li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55em;
    width: 9px;
    height: 5px;
    border-left: 2px solid #176fd1;
    border-bottom: 2px solid #176fd1;
    transform: rotate(-45deg);
}
.ap-pathcard--accent li::before { border-color: #76b5ff; }

.ap-formatlab {
    display: grid;
    gap: 52px;
    border-top: 1px solid #d9e4ef;
}
.ap-formatlab__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
}
.ap-formatlab__head h2 { max-width: 720px; }
.ap-formatlab__tabs,
.ap-teasizes__tabs {
    display: inline-flex;
    gap: 7px;
    padding: 6px;
    border-radius: 15px;
    background: #e3edf7;
}
.ap-formatlab__tabs button,
.ap-teasizes__tabs button {
    min-height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: 11px;
    color: #64778a;
    background: transparent;
    font-size: 12px;
    font-weight: 800;
}
.ap-formatlab__tabs button.is-active,
.ap-teasizes__tabs button.is-active {
    color: #fff;
    background: #0b1a30;
    box-shadow: 0 8px 22px rgba(11, 26, 48, .18);
}
.ap-formatlab__body {
    display: grid;
    grid-template-columns: minmax(360px, .86fr) minmax(0, 1.14fr);
    min-height: 530px;
    overflow: hidden;
    border-radius: 30px;
    background: #08182a;
}
.ap-formatlab__visual {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    background:
        linear-gradient(rgba(95, 163, 232, .08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(95, 163, 232, .08) 1px, transparent 1px),
        radial-gradient(circle at 50% 45%, rgba(29, 114, 205, .38), transparent 45%);
    background-size: 46px 46px, 46px 46px, auto;
}
.ap-formatsilhouette {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 230px;
    height: 320px;
    border: 2px solid #67a9ef;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: opacity .35s, transform .55s cubic-bezier(.2,.8,.2,1);
}
.ap-formatsilhouette.is-active { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.ap-formatsilhouette--doy {
    border-radius: 22px 22px 54px 54px;
    clip-path: polygon(4% 0,96% 0,100% 83%,87% 100%,13% 100%,0 83%);
}
.ap-formatsilhouette--quad {
    width: 205px;
    border-radius: 12px;
    box-shadow: inset 25px 0 rgba(103, 169, 239, .06), inset -25px 0 rgba(103, 169, 239, .06);
}
.ap-formatsilhouette--options {
    border: 0;
    display: grid;
    gap: 36px;
    align-content: center;
}
.ap-formatsilhouette--options i {
    height: 16px;
    border: 2px solid #67a9ef;
    border-radius: 99px;
}
.ap-formatlab__scan {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: linear-gradient(transparent, #83bdff, transparent);
    box-shadow: 0 0 24px #3e99ff;
    animation: apFormatScan 4s ease-in-out infinite alternate;
}
@keyframes apFormatScan { from { left: 15%; } to { left: 85%; } }
.ap-formatlab__panels {
    display: grid;
    align-items: center;
    padding: clamp(38px, 6vw, 82px);
    color: #fff;
}
.ap-formatpanel { grid-area: 1 / 1; }
.ap-formatpanel > span { color: #6caff5; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ap-formatpanel h3 { margin: 17px 0 20px; font-size: clamp(48px, 5vw, 76px); line-height: 1; }
.ap-formatpanel p { max-width: 620px; color: #aabccf; font-size: 17px; line-height: 1.7; }
.ap-formatpanel div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.ap-formatpanel div b {
    padding: 9px 13px;
    border: 1px solid rgba(160, 196, 229, .2);
    border-radius: 99px;
    color: #d9e8f6;
    font-size: 11px;
}

.ap-layerstory {
    display: grid;
    grid-template-columns: minmax(300px, .7fr) minmax(500px, 1.3fr);
    align-items: center;
    gap: 7vw;
}
.ap-layerstory__copy h2 {
    margin: 0 0 24px;
    color: #0b1a30;
    font-size: clamp(44px, 5vw, 78px);
    line-height: .98;
}
.ap-layerstory__copy p { color: #5c7085; font-size: 17px; line-height: 1.7; }
.ap-layerstory__stage {
    position: relative;
    min-height: 520px;
    perspective: 1100px;
}
.ap-packlayer {
    position: absolute;
    left: 8%;
    right: 8%;
    top: 50%;
    display: flex;
    min-height: 110px;
    align-items: center;
    justify-content: space-between;
    padding: 24px 30px;
    border: 1px solid rgba(141, 185, 226, .48);
    border-radius: 20px;
    color: #fff;
    background: linear-gradient(135deg, rgba(24, 104, 187, .94), rgba(8, 28, 49, .96));
    box-shadow: 0 30px 48px rgba(13, 42, 70, .19);
    transform-style: preserve-3d;
    transition: transform .75s cubic-bezier(.2,.8,.2,1);
}
.ap-packlayer b { font-size: 20px; letter-spacing: .12em; }
.ap-packlayer em { color: #b7cae0; font-size: 12px; font-style: normal; }
.ap-layerstory.is-inview .ap-packlayer--print { transform: translate3d(0,-184px,0) rotateX(58deg) rotateZ(-5deg); }
.ap-layerstory.is-inview .ap-packlayer--body { transform: translate3d(0,-92px,0) rotateX(58deg) rotateZ(-5deg); }
.ap-layerstory.is-inview .ap-packlayer--barrier { transform: translate3d(0,0,0) rotateX(58deg) rotateZ(-5deg); }
.ap-layerstory.is-inview .ap-packlayer--food { transform: translate3d(0,92px,0) rotateX(58deg) rotateZ(-5deg); }

.ap-processstory {
    border-top: 1px solid #d9e4ef;
}
.ap-processstory > h2 { max-width: 800px; }
.ap-processtrack {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin: 64px 0 0;
    padding: 0;
    list-style: none;
    counter-reset: process;
}
.ap-processtrack li {
    position: relative;
    min-height: 210px;
    padding: 60px 22px 20px 0;
    border-top: 1px solid #c8d9e8;
}
.ap-processtrack li::before {
    counter-increment: process;
    content: "0" counter(process);
    position: absolute;
    left: 0;
    top: -16px;
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #176fd1;
    font-size: 9px;
    font-weight: 800;
}
.ap-processtrack b { display: block; margin-bottom: 12px; font-size: 14px; }
.ap-processtrack span { color: #677b90; font-size: 12px; line-height: 1.6; }

/* Tea-specific composition */
.ap-storyhero--tea {
    background:
        linear-gradient(rgba(91, 154, 220, .06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(91, 154, 220, .06) 1px, transparent 1px),
        radial-gradient(circle at 75% 45%, rgba(27, 104, 188, .22), transparent 34%),
        #071524;
    background-size: 74px 74px, 74px 74px, auto, auto;
}
.ap-teastudio {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(10px, 2vw, 28px);
}
.ap-teastudio::before,
.ap-teastudio::after { border-radius: 44%; }
.ap-teapack {
    position: relative;
    z-index: 2;
    width: min(43%, 330px);
    margin: 0;
    will-change: transform;
}
.ap-teapack img {
    display: block;
    width: 100%;
    border-radius: 30px;
    filter: drop-shadow(0 32px 42px rgba(0,0,0,.36));
}
.ap-teapack--atlas { transform: translate3d(calc(var(--story-x) * -.32), calc(var(--story-y) * -.32), 0) rotate(-4deg); }
.ap-teapack--tasty { transform: translate3d(calc(var(--story-x) * .44), calc(var(--story-y) * .44), 50px) rotate(4deg); }
.ap-teastudio__bag {
    position: absolute;
    z-index: 3;
    left: 42%;
    bottom: 8%;
    width: 112px;
    height: 210px;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 8px 8px 26px 26px;
    background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(232, 237, 242, .58));
    box-shadow: 0 22px 44px rgba(0,0,0,.26);
    transform: rotate(-7deg);
}
.ap-teastudio__bag i {
    position: absolute;
    inset: auto 9px 12px;
    height: 37%;
    border-radius: 4px 4px 18px 18px;
    background: linear-gradient(170deg, rgba(74, 49, 25, .12), rgba(36, 24, 14, .38));
}
.ap-brandstory--tea { background: #f7fafc; }
.ap-brandstory--tea .ap-storysection { background: transparent; }
.ap-teafacts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 60px;
}
.ap-teafacts article {
    min-height: 180px;
    padding: 30px;
    border: 1px solid #d7e4ef;
    border-radius: 24px;
    background: #fff;
}
.ap-teafacts b {
    display: block;
    margin-bottom: 28px;
    color: #176fd1;
    font-family: var(--ap-font-display);
    font-size: 48px;
    line-height: 1;
}
.ap-teafacts span { color: #5c7085; font-size: 13px; }

.ap-teasizes {
    display: grid;
    grid-template-columns: minmax(360px, .8fr) minmax(0, 1.2fr);
    align-items: center;
    gap: 8vw;
    border-top: 1px solid #dbe6f0;
}
.ap-teasizes__tabs { margin: 35px 0 32px; }
.ap-teasizes__panels article > span {
    display: block;
    margin-bottom: 8px;
    color: #176fd1;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ap-teasizes__panels strong {
    display: block;
    color: #0b1a30;
    font-family: var(--ap-font-display);
    font-size: 42px;
}
.ap-teasizes__panels p { max-width: 470px; color: #63778c; font-size: 16px; }
.ap-teasizes__visual {
    position: relative;
    display: grid;
    min-height: 570px;
    place-items: center;
    overflow: hidden;
    border-radius: 30px;
    background:
        radial-gradient(circle at 50% 50%, rgba(74, 147, 222, .2), transparent 46%),
        #eaf2f9;
}
.ap-teabag-figure {
    --bag-scale: .72;
    position: relative;
    width: 240px;
    height: 380px;
    filter: drop-shadow(0 32px 38px rgba(32, 62, 89, .18));
    transform: scale(var(--bag-scale));
    transform-origin: center bottom;
    transition: transform .7s cubic-bezier(.2,.8,.2,1);
}
.ap-teabag-figure__paper {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border: 1px solid rgba(131, 147, 159, .3);
    border-radius: 8px 8px 32px 32px;
    background:
        repeating-radial-gradient(circle at 30% 20%, rgba(100, 116, 127, .08) 0 1px, transparent 1px 4px),
        rgba(255,255,255,.78);
}
.ap-teabag-figure__tea {
    position: absolute;
    left: 15px;
    right: 15px;
    bottom: 15px;
    height: 37%;
    border-radius: 5px 5px 23px 23px;
    background:
        repeating-radial-gradient(circle at 40% 40%, rgba(92, 61, 29, .75) 0 2px, transparent 2px 6px),
        rgba(92, 61, 29, .25);
}
.ap-teabag-figure__fold {
    position: absolute;
    left: 0;
    right: 0;
    top: 29%;
    height: 1px;
    background: rgba(122, 140, 153, .32);
}
.ap-teasizes__measure {
    position: absolute;
    color: #176fd1;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ap-teasizes__measure::before {
    content: "";
    position: absolute;
    background: #75aee9;
}
.ap-teasizes__measure b { font-size: 16px; }
.ap-teasizes__measure--w { left: 25%; right: 25%; bottom: 38px; text-align: center; }
.ap-teasizes__measure--w::before { left: 0; right: 0; top: -10px; height: 1px; }
.ap-teasizes__measure--h { right: 10%; top: 28%; bottom: 28%; display: grid; place-items: center; }
.ap-teasizes__measure--h::before { top: 0; bottom: 0; left: -10px; width: 1px; }

.ap-materialstory {
    display: grid;
    grid-template-columns: .76fr 1.24fr;
    gap: 7vw;
    align-items: center;
}
.ap-materialstory__copy p { max-width: 520px; margin-top: 24px; color: #5c7085; font-size: 17px; line-height: 1.7; }
.ap-materialstory__composition {
    position: relative;
    display: grid;
    grid-template-columns: 3fr 1fr;
    min-height: 330px;
    overflow: hidden;
    border-radius: 30px;
    background: #0a1c30;
}
.ap-materialstory__composition span {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 38px;
}
.ap-materialstory__wood { background: linear-gradient(155deg, #176fd1, #0c4179); }
.ap-materialstory__thermo { background: #071524; }
.ap-materialstory__composition b { color: #fff; font-family: var(--ap-font-display); font-size: clamp(48px, 5vw, 78px); line-height: 1; }
.ap-materialstory__composition em { max-width: 190px; margin-top: 12px; color: #bfd4e9; font-size: 12px; font-style: normal; }
.ap-materialstory__specs {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    overflow: hidden;
    border: 1px solid #d8e5f0;
    border-radius: 20px;
    background: #d8e5f0;
}
.ap-materialstory__specs span { padding: 22px; color: #687c90; background: #fff; font-size: 11px; }
.ap-materialstory__specs b { display: block; margin-bottom: 6px; color: #0b1a30; font-size: 14px; }

.ap-brandingflow { border-top: 1px solid #dbe6f0; }
.ap-brandingflow__head {
    display: grid;
    grid-template-columns: 1fr .65fr;
    align-items: end;
    gap: 7vw;
}
.ap-brandingflow__head .ap-storysection__eyebrow { grid-column: 1 / -1; margin-bottom: -6px; }
.ap-brandingflow__head p { margin: 0; color: #5c7085; font-size: 17px; line-height: 1.7; }
.ap-brandingflow__steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin: 64px 0 0;
    padding: 0;
    list-style: none;
}
.ap-brandingflow__steps li {
    min-height: 265px;
    padding: 28px;
    border: 1px solid #d8e4ef;
    border-radius: 23px;
    background: #fff;
}
.ap-brandingflow__steps span { color: #176fd1; font-size: 11px; font-weight: 800; }
.ap-brandingflow__steps b { display: block; margin: 74px 0 12px; font-size: 17px; }
.ap-brandingflow__steps p { margin: 0; color: #677a8d; font-size: 12px; line-height: 1.6; }

.ap-teaprice {
    display: grid;
    grid-template-columns: .78fr 1.22fr;
    align-items: end;
    gap: 7vw;
}
.ap-teaprice__copy p { max-width: 550px; margin-top: 24px; color: #5d7186; font-size: 16px; line-height: 1.7; }
.ap-teaprice__tiers { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.ap-teaprice__tiers article {
    min-height: 230px;
    padding: 30px;
    border-radius: 25px;
    color: #fff;
    background: #0a1c30;
}
.ap-teaprice__tiers article:last-child { background: #176fd1; }
.ap-teaprice__tiers span { display: block; min-height: 50px; color: #a9bed2; font-size: 11px; }
.ap-teaprice__tiers article:last-child span { color: #d7e9fc; }
.ap-teaprice__tiers b { display: block; margin-top: 26px; font-family: var(--ap-font-display); font-size: 50px; line-height: 1; }
.ap-teaprice__tiers em { color: #a9bed2; font-size: 11px; font-style: normal; }

.ap-storycta {
    display: flex;
    min-height: 330px;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
    margin-bottom: 72px;
    padding: clamp(40px, 6vw, 82px);
    overflow: hidden;
    border-radius: 30px;
    color: #fff;
    background:
        radial-gradient(circle at 92% 10%, rgba(63, 145, 233, .44), transparent 35%),
        #071524;
}
.ap-storycta span { color: #76b4f6; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ap-storycta h2 { max-width: 850px; margin: 13px 0 12px; color: #fff; font-size: clamp(40px, 5vw, 72px); line-height: .98; }
.ap-storycta p { max-width: 720px; margin: 0; color: #a9bbcd; font-size: 15px; }
.ap-storycta .ap-storybtn { flex: 0 0 auto; }

/* Motion is enabled only after JS mounts, so content stays accessible without JS. */
.ap-brandstory.is-motion-ready .ap-story-reveal {
    opacity: 0;
    transform: translateY(48px);
    transition: opacity .7s ease, transform .85s cubic-bezier(.2,.75,.2,1);
}
.ap-brandstory.is-motion-ready .ap-story-reveal.is-inview {
    opacity: 1;
    transform: none;
}
.ap-formatpanel.is-entering { animation: apStoryPanel .45s ease both; }
@keyframes apStoryPanel {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: none; }
}

@media (max-width: 1120px) {
    .ap-storyhero {
        grid-template-columns: minmax(0, 1fr) minmax(420px, .9fr);
        padding-inline: 34px;
    }
    .ap-storyhero__studio { min-height: 520px; }
    .ap-storypack { width: 285px; }
    .ap-processtrack { grid-template-columns: repeat(3, 1fr); row-gap: 34px; }
    .ap-teafacts { grid-template-columns: repeat(2, 1fr); }
    .ap-brandingflow__steps { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
    .ap-brandstory { margin-bottom: -42px; }
    .ap-storyhero {
        grid-template-columns: 1fr;
        min-height: auto;
        padding: 68px 28px 48px;
    }
    .ap-storyhero__copy { max-width: 760px; }
    .ap-storyhero h1 { font-size: clamp(58px, 14vw, 92px); }
    .ap-storyhero__studio { min-height: 560px; margin-top: 28px; }
    .ap-storyhero__scroll { display: none; }
    .ap-storysection,
    .ap-formatlab,
    .ap-layerstory,
    .ap-processstory,
    .ap-teasizes,
    .ap-materialstory,
    .ap-brandingflow,
    .ap-teaprice,
    .ap-storycta { width: min(100% - 40px, 760px); }
    .ap-storysection__split,
    .ap-layerstory,
    .ap-teasizes,
    .ap-materialstory,
    .ap-brandingflow__head,
    .ap-teaprice { grid-template-columns: 1fr; }
    .ap-storysection__split { gap: 24px; }
    .ap-pathcards { grid-template-columns: 1fr; }
    .ap-formatlab__head { display: grid; }
    .ap-formatlab__body { grid-template-columns: 1fr; }
    .ap-formatlab__visual { min-height: 390px; }
    .ap-layerstory__stage { min-height: 470px; }
    .ap-teasizes { gap: 46px; }
    .ap-materialstory__specs { grid-template-columns: 1fr; }
    .ap-brandingflow__head .ap-storysection__eyebrow { grid-column: auto; }
    .ap-teaprice__tiers { margin-top: 16px; }
    .ap-storycta { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 600px) {
    .ap-storyhero { padding: 54px 18px 38px; }
    .ap-storyhero h1 { font-size: clamp(49px, 17vw, 76px); }
    .ap-storyhero__copy > p { font-size: 16px; }
    .ap-storyhero__actions { display: grid; }
    .ap-storybtn { width: 100%; }
    .ap-storyhero__facts { grid-template-columns: 1fr; }
    .ap-storyhero__facts span { min-height: auto; }
    .ap-storyhero__studio { min-height: 390px; }
    .ap-storypack { width: 190px; }
    .ap-storypack--orange { left: -8%; }
    .ap-storypack--blue { left: 23%; }
    .ap-storypack--black { right: -9%; }
    .ap-teastudio { min-height: 420px; }
    .ap-teapack { width: 47%; }
    .ap-teastudio__bag { width: 76px; height: 144px; }
    .ap-storysection,
    .ap-formatlab,
    .ap-layerstory,
    .ap-processstory,
    .ap-teasizes,
    .ap-materialstory,
    .ap-brandingflow,
    .ap-teaprice,
    .ap-storycta { width: calc(100% - 28px); }
    .ap-storysection,
    .ap-formatlab,
    .ap-layerstory,
    .ap-processstory,
    .ap-teasizes,
    .ap-materialstory,
    .ap-brandingflow,
    .ap-teaprice { padding-block: 72px; }
    .ap-storysection__split h2,
    .ap-formatlab__head h2,
    .ap-processstory > h2,
    .ap-teasizes__copy h2,
    .ap-materialstory__copy h2,
    .ap-brandingflow__head h2,
    .ap-teaprice__copy h2 { font-size: clamp(39px, 12vw, 58px); }
    .ap-pathcard { min-height: 0; padding: 27px; }
    .ap-pathcard__tag { margin-bottom: 62px; }
    .ap-formatlab__tabs { display: grid; grid-template-columns: repeat(3, 1fr); }
    .ap-formatlab__tabs button { padding-inline: 8px; }
    .ap-formatlab__body { border-radius: 23px; }
    .ap-formatlab__visual { min-height: 330px; }
    .ap-formatlab__panels { padding: 30px 24px 38px; }
    .ap-layerstory__stage { min-height: 390px; }
    .ap-packlayer { left: 2%; right: 2%; min-height: 92px; padding: 18px; }
    .ap-packlayer em { max-width: 120px; text-align: right; }
    .ap-processtrack { grid-template-columns: 1fr 1fr; }
    .ap-processtrack li { min-height: 170px; }
    .ap-teafacts { grid-template-columns: 1fr 1fr; }
    .ap-teafacts article { min-height: 150px; padding: 22px; }
    .ap-teafacts b { font-size: 40px; }
    .ap-teasizes__visual { min-height: 460px; }
    .ap-teabag-figure { width: 200px; height: 320px; }
    .ap-materialstory__composition { grid-template-columns: 1fr; }
    .ap-materialstory__composition span { min-height: 210px; padding: 26px; }
    .ap-brandingflow__steps { grid-template-columns: 1fr; }
    .ap-brandingflow__steps li { min-height: 220px; }
    .ap-teaprice__tiers { grid-template-columns: 1fr; }
    .ap-storycta { margin-bottom: 36px; padding: 36px 25px; border-radius: 23px; }
}

@media (prefers-reduced-motion: reduce) {
    .ap-brandstory *,
    .ap-brandstory *::before,
    .ap-brandstory *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
    .ap-brandstory .ap-story-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
    .ap-storypack,
    .ap-teapack,
    .ap-packlayer { transform: none !important; }
}
}

/* ============================================================
   Сервисные лендинги: печать на кофе / брендирование фильтров
   ============================================================ */
.ap-filterprint__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 26px;
}
.ap-filterprint__more {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 18px;
    color: #91bfff;
    font-size: 13px;
    font-weight: 700;
}
.ap-filterprint__more:hover { color: #fff; }
.ap-filterprint__more i { transition: transform .22s cubic-bezier(.16,1,.3,1); }
.ap-filterprint__more:hover i { transform: translate(3px, -3px); }

/* подпись текущего кадра фотоленты */
.ap-filterprint__caption {
    position: absolute;
    left: 0;
    bottom: 14px;
    z-index: 12;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: min(100%, 340px);
    padding: 7px 14px 7px 12px;
    color: rgba(233, 243, 255, .82);
    background: rgba(6, 20, 33, .55);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 999px;
    backdrop-filter: blur(10px);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .32s ease, transform .42s cubic-bezier(.16,1,.3,1);
    pointer-events: none;
}
.ap-filterprint__caption::before {
    content: "";
    flex: 0 0 auto;
    width: 6px;
    height: 6px;
    background: var(--ap-accent);
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(10, 186, 181, .16);
}
.ap-filterprint__stage.is-film-ready .ap-filterprint__caption {
    opacity: 1;
    transform: translateY(0);
}
.ap-filterprint__caption.is-swapping {
    opacity: 0;
    transform: translateY(6px);
}
@media (max-width: 620px) {
    .ap-filterprint__caption { bottom: 8px; font-size: 10px; padding: 6px 11px 6px 10px; }
}
@media (prefers-reduced-motion: reduce) {
    .ap-filterprint__caption { transition: none !important; }
}

.ap-brandstory {
    --story-blue: #2acbc5;
    --story-blue-light: #54d8d3;
    --story-navy: #061426;
    --story-navy-2: #0b203b;
    --story-copy: #afbdd0;
    position: relative;
    width: 100%;
    max-width: 1296px;
    margin: 8px auto 88px;
    color: #fff;
}
.ap-brandstory button,
.ap-brandstory a { -webkit-tap-highlight-color: transparent; }
.ap-storyhero {
    --studio-x: 0;
    --studio-y: 0;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, .88fr) minmax(480px, 1.12fr);
    align-items: center;
    min-height: min(780px, calc(100svh - 170px));
    padding: clamp(52px, 6vw, 92px);
    overflow: hidden;
    isolation: isolate;
    border-radius: 36px;
    background:
        radial-gradient(circle at 76% 38%, rgba(10, 186, 181, .22), transparent 36%),
        linear-gradient(135deg, #061426 0%, #07182d 52%, #0b203b 100%);
    box-shadow: 0 36px 90px rgba(6, 20, 38, .23);
}
.ap-storyhero::before {
    position: absolute;
    z-index: -2;
    inset: 0;
    content: "";
    opacity: .32;
    background-image:
        linear-gradient(rgba(122, 174, 234, .085) 1px, transparent 1px),
        linear-gradient(90deg, rgba(122, 174, 234, .085) 1px, transparent 1px);
    background-size: 72px 72px;
    -webkit-mask-image: linear-gradient(90deg, #000 20%, transparent 96%);
    mask-image: linear-gradient(90deg, #000 20%, transparent 96%);
}
.ap-storyhero__glow {
    position: absolute;
    z-index: -1;
    top: -24%;
    right: -11%;
    width: 52%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: rgba(10, 186, 181, .34);
    filter: blur(2px);
    transform: translate3d(var(--studio-glow-x, 0px), var(--studio-glow-y, 0px), 0);
    transition: transform .3s cubic-bezier(.2, .8, .2, 1);
}
.ap-storyhero__copy {
    position: relative;
    z-index: 3;
    max-width: 650px;
}
.ap-storyhero__kicker,
.ap-storysection__eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    color: #8bbdff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.ap-storyhero h1 {
    max-width: 680px;
    margin: 20px 0 26px;
    color: #fff;
    font-size: clamp(58px, 6.25vw, 104px);
    font-weight: 650;
    line-height: .9;
    letter-spacing: -.045em;
    text-wrap: balance;
}
.ap-storyhero h1 em {
    display: block;
    color: var(--story-blue-light);
    font-style: normal;
}
.ap-storyhero__copy > p {
    max-width: 580px;
    margin-bottom: 30px;
    color: var(--story-copy);
    font-size: clamp(16px, 1.35vw, 19px);
    line-height: 1.65;
}
.ap-storyhero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.ap-storybtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 22px;
    gap: 14px;
    border: 1px solid transparent;
    border-radius: 14px;
    font-weight: 800;
    line-height: 1.1;
    text-align: center;
    transition:
        color .22s ease,
        background-color .22s ease,
        border-color .22s ease,
        box-shadow .22s ease,
        transform .22s cubic-bezier(.2, .8, .2, 1);
}
.ap-storybtn:hover { transform: translateY(-2px); }
.ap-storybtn:active { transform: scale(.98); }
.ap-storybtn:focus-visible {
    outline: 3px solid rgba(84, 216, 211, .65);
    outline-offset: 3px;
}
.ap-storybtn--primary {
    color: #fff;
    background: var(--story-blue);
    box-shadow: 0 14px 34px rgba(10, 186, 181, .32);
}
.ap-storybtn--primary:hover {
    color: #fff;
    background: #0b70ee;
    box-shadow: 0 18px 40px rgba(10, 186, 181, .4);
}
.ap-storybtn--ghost {
    color: #fff;
    border-color: rgba(255, 255, 255, .17);
    background: rgba(255, 255, 255, .055);
    backdrop-filter: blur(12px);
}
.ap-storybtn--ghost:hover {
    color: #fff;
    border-color: rgba(255, 255, 255, .32);
    background: rgba(255, 255, 255, .1);
}
.ap-storyhero__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 680px;
    margin-top: 38px;
    border-top: 1px solid rgba(255, 255, 255, .13);
}
.ap-storyhero__facts span {
    padding: 18px 16px 0 0;
    color: #8293a9;
    font-size: 11px;
    line-height: 1.45;
}
.ap-storyhero__facts b {
    display: block;
    margin-bottom: 3px;
    color: #fff;
    font-size: 15px;
    font-variant-numeric: tabular-nums;
}
.ap-storyhero__studio {
    position: relative;
    z-index: 2;
    align-self: stretch;
    min-height: 560px;
    perspective: 1200px;
}
.ap-storyhero__studio::before {
    position: absolute;
    inset: 15% 1% 13% 13%;
    content: "";
    border-radius: 50%;
    background: radial-gradient(circle, rgba(9, 98, 209, .25), rgba(9, 98, 209, .04) 58%, transparent 72%);
    transform: translate3d(var(--studio-orbit-x, 0px), var(--studio-orbit-y, 0px), 0);
}
.ap-storyhero__spotlight {
    position: absolute;
    right: 3%;
    bottom: 5%;
    left: 6%;
    height: 22%;
    border-radius: 50%;
    background: radial-gradient(ellipse, rgba(55, 129, 220, .42), transparent 70%);
    filter: blur(18px);
    opacity: .75;
}
.ap-storypack,
.ap-teapack {
    --pack-x: 0px;
    --pack-y: 0px;
    position: absolute;
    z-index: 2;
    margin: 0;
    transform:
        translate3d(var(--pack-x), calc(var(--pack-y) + var(--scroll-y, 0px)), 0)
        rotate(var(--pack-rotate, 0deg));
    filter: drop-shadow(0 30px 28px rgba(0, 7, 17, .38));
    transition: filter .28s ease, transform .28s cubic-bezier(.2, .8, .2, 1);
    will-change: transform;
}
.ap-storypack img,
.ap-teapack img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.ap-storypack--orange {
    --pack-rotate: -9deg;
    top: 10%;
    left: 3%;
    width: 48%;
}
.ap-storypack--blue {
    --pack-rotate: 5deg;
    z-index: 4;
    top: 4%;
    left: 29%;
    width: 55%;
}
.ap-storypack--black {
    --pack-rotate: 11deg;
    z-index: 3;
    right: -8%;
    bottom: 1%;
    width: 47%;
}
.ap-storyhero__studio:hover .ap-storypack,
.ap-storyhero__studio:hover .ap-teapack {
    filter: drop-shadow(0 38px 34px rgba(0, 7, 17, .48));
}
.ap-storyhero__scroll {
    position: absolute;
    right: clamp(34px, 4vw, 68px);
    bottom: 30px;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #7890aa;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.ap-storyhero__scroll i {
    position: relative;
    width: 42px;
    height: 1px;
    overflow: hidden;
    background: rgba(255, 255, 255, .18);
}
.ap-storyhero__scroll i::after {
    position: absolute;
    inset: 0;
    content: "";
    background: #54d8d3;
    transform: translateX(calc(-100% + var(--story-progress-percent, 0%)));
}

.ap-storysection,
.ap-formatlab,
.ap-layerstory,
.ap-processstory,
.ap-teasizes,
.ap-materialstory,
.ap-brandingflow,
.ap-teaprice,
.ap-storycta {
    margin-top: 24px;
    padding: clamp(52px, 6.5vw, 94px);
    border-radius: 32px;
}
.ap-storysection,
.ap-processstory,
.ap-brandingflow {
    color: var(--ap-ink);
    background: #fff;
}
.ap-storysection__eyebrow { color: var(--story-blue); }
.ap-storysection__split {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    align-items: end;
    gap: clamp(32px, 7vw, 100px);
    margin: 20px 0 46px;
}
.ap-storysection h2,
.ap-formatlab h2,
.ap-layerstory h2,
.ap-processstory h2,
.ap-teasizes h2,
.ap-materialstory h2,
.ap-brandingflow h2,
.ap-teaprice h2,
.ap-storycta h2 {
    margin: 0;
    font-size: clamp(42px, 4.5vw, 72px);
    line-height: .98;
    letter-spacing: -.035em;
    text-wrap: balance;
}
.ap-storysection__split p,
.ap-layerstory__copy p,
.ap-materialstory__copy p,
.ap-brandingflow__head p,
.ap-teaprice__copy p {
    max-width: 620px;
    margin: 0;
    color: #68788e;
    font-size: 17px;
    line-height: 1.65;
}
.ap-pathcards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.ap-pathcard {
    position: relative;
    min-height: 410px;
    padding: clamp(28px, 3.6vw, 48px);
    overflow: hidden;
    border: 1px solid #dfe7f1;
    border-radius: 24px;
    background: #f5f8fc;
}
.ap-pathcard--accent {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(145deg, #083b3a, #0abab5);
}
.ap-pathcard__number {
    position: absolute;
    top: 18px;
    right: 24px;
    color: rgba(11, 26, 48, .08);
    font-family: var(--ap-font-display);
    font-size: 100px;
    font-weight: 700;
    line-height: 1;
}
.ap-pathcard--accent .ap-pathcard__number { color: rgba(255, 255, 255, .1); }
.ap-pathcard__tag {
    display: inline-flex;
    padding: 7px 10px;
    border-radius: 999px;
    color: var(--story-blue);
    background: #e4effd;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.ap-pathcard--accent .ap-pathcard__tag {
    color: #fff;
    background: rgba(255, 255, 255, .12);
}
.ap-pathcard h3 {
    position: relative;
    max-width: 470px;
    margin: 44px 0 14px;
    font-size: clamp(29px, 3vw, 43px);
    letter-spacing: -.025em;
}
.ap-pathcard p {
    max-width: 530px;
    color: #65748a;
    font-size: 15px;
}
.ap-pathcard--accent p { color: #c0d2e9; }
.ap-pathcard ul {
    display: grid;
    gap: 9px;
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}
.ap-pathcard li {
    position: relative;
    padding-left: 20px;
    color: #394b62;
    font-size: 13px;
    font-weight: 700;
}
.ap-pathcard li::before {
    position: absolute;
    top: .6em;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    content: "";
    background: var(--story-blue);
}
.ap-pathcard--accent li { color: #fff; }
.ap-pathcard--accent li::before { background: #84baff; }

.ap-formatlab {
    color: #fff;
    background: linear-gradient(145deg, #061426, #0b203b);
}
.ap-formatlab__head {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    align-items: end;
    gap: 40px;
}
.ap-formatlab__tabs,
.ap-teasizes__tabs {
    display: inline-flex;
    margin: 44px 0 24px;
    padding: 5px;
    gap: 4px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .07);
}
.ap-formatlab__tabs button,
.ap-teasizes__tabs button {
    min-height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: 10px;
    color: #9caec3;
    background: transparent;
    font-size: 13px;
    font-weight: 800;
    transition: color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.ap-formatlab__tabs button.is-active {
    color: #fff;
    background: var(--story-blue);
    box-shadow: 0 8px 22px rgba(10, 186, 181, .25);
}
.ap-formatlab__tabs button:focus-visible,
.ap-teasizes__tabs button:focus-visible {
    outline: 3px solid rgba(84, 216, 211, .6);
    outline-offset: 2px;
}
.ap-formatlab__body {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    min-height: 450px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 24px;
    background: rgba(255, 255, 255, .035);
}
.ap-formatlab__visual {
    position: relative;
    min-height: 420px;
    overflow: hidden;
    border-right: 1px solid rgba(255, 255, 255, .1);
    background:
        radial-gradient(circle at 50% 70%, rgba(10, 186, 181, .3), transparent 45%),
        linear-gradient(155deg, rgba(255, 255, 255, .045), transparent);
}
.ap-formatsilhouette {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 190px;
    height: 280px;
    border: 2px solid rgba(137, 190, 255, .9);
    border-radius: 12px 12px 34px 34px;
    background: linear-gradient(135deg, rgba(72, 151, 248, .3), rgba(9, 40, 79, .12));
    box-shadow: inset 0 0 45px rgba(82, 161, 255, .13), 0 28px 50px rgba(0, 4, 15, .25);
    opacity: 0;
    transform: translate(-50%, -45%) scale(.9);
    transition: opacity .25s ease, transform .35s cubic-bezier(.2, .8, .2, 1);
}
.ap-formatsilhouette::before {
    position: absolute;
    top: 20px;
    right: 16px;
    left: 16px;
    height: 8px;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 99px;
    content: "";
}
.ap-formatsilhouette--quad { border-radius: 5px; transform: translate(-50%, -45%) scale(.9) skewY(-1deg); }
.ap-formatsilhouette--options {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    border: 0;
    background: none;
    box-shadow: none;
}
.ap-formatsilhouette--options::before { display: none; }
.ap-formatsilhouette--options i {
    display: block;
    width: 54px;
    height: 54px;
    border: 1px solid #54d8d3;
    border-radius: 50%;
    background: rgba(10, 186, 181, .17);
}
.ap-formatlab[data-active="0"] .ap-formatsilhouette--doy,
.ap-formatlab:not([data-active]) .ap-formatsilhouette--doy,
.ap-formatlab[data-active="1"] .ap-formatsilhouette--quad,
.ap-formatlab[data-active="2"] .ap-formatsilhouette--options {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.ap-formatlab__scan {
    position: absolute;
    top: 16%;
    right: 12%;
    left: 12%;
    height: 1px;
    background: linear-gradient(90deg, transparent, #54d8d3, transparent);
    box-shadow: 0 0 20px #54d8d3;
    transform: translateY(var(--story-scan-y, 0px));
}
.ap-formatlab__panels {
    display: grid;
    align-items: center;
    padding: clamp(32px, 5vw, 68px);
}
.ap-formatpanel { grid-area: 1 / 1; }
.ap-formatpanel[hidden] { display: block; visibility: hidden; opacity: 0; }
.ap-formatpanel.is-active {
    visibility: visible;
    opacity: 1;
    animation: apStoryPanelIn .3s ease-out both;
}
.ap-formatpanel > span {
    color: #7daeea;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ap-formatpanel h3 {
    margin: 14px 0;
    color: #fff;
    font-size: clamp(44px, 5vw, 74px);
}
.ap-formatpanel p {
    max-width: 570px;
    color: #a8b8cb;
    font-size: 16px;
    line-height: 1.7;
}
.ap-formatpanel div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.ap-formatpanel b {
    padding: 8px 11px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    color: #d8e5f3;
    font-size: 11px;
}
@keyframes apStoryPanelIn {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.ap-layerstory {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    align-items: center;
    min-height: 640px;
    gap: clamp(40px, 7vw, 90px);
    color: var(--ap-ink);
    background: #dfeafa;
}
.ap-layerstory__copy h2 { margin: 17px 0 24px; }
.ap-layerstory__stage {
    position: relative;
    min-height: 460px;
    perspective: 900px;
}
.ap-packlayer {
    --layer-x: 30px;
    position: absolute;
    top: 18%;
    right: 4%;
    left: 4%;
    display: grid;
    grid-template-columns: 110px 1fr;
    align-items: center;
    min-height: 92px;
    padding: 18px 24px;
    border: 1px solid rgba(255, 255, 255, .74);
    border-radius: 16px;
    background: rgba(255, 255, 255, .76);
    box-shadow: 0 16px 35px rgba(8, 37, 74, .1);
    backdrop-filter: blur(16px);
    transform: translate3d(var(--layer-x), 24px, 0) rotateX(4deg);
    transition: transform .45s cubic-bezier(.2, .8, .2, 1);
}
.ap-packlayer--body { --layer-x: 20px; top: 32%; transition-delay: .05s; }
.ap-packlayer--barrier { --layer-x: 10px; top: 46%; transition-delay: .1s; }
.ap-packlayer--food { --layer-x: 0px; top: 60%; transition-delay: .15s; }
.ap-layerstory.is-layer-open .ap-packlayer { transform: translate3d(var(--layer-x), 0, 0) rotateX(4deg); }
.ap-packlayer b { color: var(--story-blue); font-size: 13px; letter-spacing: .12em; }
.ap-packlayer em { color: #40536b; font-size: 14px; font-style: normal; }

.ap-processstory > h2 { max-width: 760px; margin: 18px 0 50px; }
.ap-processtrack {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    border-top: 1px solid #dfe7f1;
    list-style: none;
    counter-reset: process;
}
.ap-processtrack li {
    position: relative;
    min-height: 180px;
    padding: 35px 24px 24px 0;
    border-bottom: 1px solid #dfe7f1;
    counter-increment: process;
}
.ap-processtrack li::before {
    display: block;
    margin-bottom: 24px;
    color: var(--story-blue);
    content: "0" counter(process);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .1em;
}
.ap-processtrack b { display: block; margin-bottom: 8px; font-size: 16px; }
.ap-processtrack span { display: block; max-width: 280px; color: #748298; font-size: 13px; }

.ap-storycta {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 44px;
    color: #fff;
    background:
        radial-gradient(circle at 90% 20%, rgba(75, 150, 246, .34), transparent 38%),
        linear-gradient(135deg, #061426, #0a2e5d);
}
.ap-storycta > div > span {
    color: #80b6fc;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ap-storycta h2 { max-width: 820px; margin: 15px 0 17px; }
.ap-storycta p { max-width: 700px; margin: 0; color: #aabbd0; }
.ap-storycta .ap-storybtn { min-width: 210px; }

/* Страница фильтр-пакетов */
.ap-storyhero--tea {
    background:
        radial-gradient(circle at 76% 38%, rgba(29, 111, 222, .23), transparent 36%),
        linear-gradient(135deg, #061426 0%, #07182d 52%, #102a4c 100%);
}
.ap-teapack--atlas {
    --pack-rotate: -6deg;
    z-index: 3;
    top: 4%;
    left: 5%;
    width: 61%;
}
.ap-teapack--tasty {
    --pack-rotate: 7deg;
    z-index: 2;
    right: -6%;
    bottom: 0;
    width: 57%;
}
.ap-teafacts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}
.ap-teafacts article {
    min-height: 160px;
    padding: 28px;
    border: 1px solid #dfe7f1;
    border-radius: 20px;
    background: #f6f9fd;
}
.ap-teafacts b {
    display: block;
    margin-bottom: 25px;
    color: var(--story-blue);
    font-family: var(--ap-font-display);
    font-size: 42px;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.ap-teafacts span { color: #53647a; font-size: 13px; }

.ap-teasizes {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    align-items: center;
    min-height: 650px;
    gap: clamp(40px, 7vw, 100px);
    color: #fff;
    background: linear-gradient(145deg, #07172b, #0e2c52);
}
.ap-teasizes__copy h2 { max-width: 570px; margin: 18px 0 0; }
.ap-teasizes__tabs { margin-top: 38px; }
.ap-teasizes__tabs button.is-active { color: var(--ap-ink); background: #fff; }
.ap-teasizes__panels { min-height: 155px; }
.ap-teasizes__panels article[hidden] { display: none; }
.ap-teasizes__panels span {
    display: block;
    color: #7baeee;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ap-teasizes__panels strong {
    display: block;
    margin: 10px 0 12px;
    font-size: clamp(30px, 3.2vw, 47px);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.ap-teasizes__panels p { max-width: 530px; color: #aebed2; }
.ap-teasizes__visual {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 500px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 28px;
    background:
        radial-gradient(circle at 50% 65%, rgba(57, 133, 232, .28), transparent 42%),
        rgba(255, 255, 255, .035);
}
.ap-teabag-figure {
    position: relative;
    width: 210px;
    height: 286px;
    transition: transform .35s cubic-bezier(.2, .8, .2, 1);
    filter: drop-shadow(0 26px 34px rgba(0, 7, 19, .33));
}
.ap-teasizes__visual.is-size-m .ap-teabag-figure { transform: scale(1.22); }
.ap-teabag-figure__paper {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .52);
    border-radius: 7px 7px 28px 28px;
    background:
        radial-gradient(circle, rgba(255, 255, 255, .22) 1px, transparent 1.5px) 0 0 / 7px 7px,
        linear-gradient(rgba(255, 255, 255, .82), rgba(229, 236, 242, .62));
}
.ap-teabag-figure__tea {
    position: absolute;
    right: 18px;
    bottom: 14px;
    left: 18px;
    height: 39%;
    border-radius: 12px 12px 20px 20px;
    background:
        radial-gradient(circle at 25% 30%, #80612e 0 2px, transparent 3px) 0 0 / 11px 9px,
        radial-gradient(circle at 70% 60%, #4c361c 0 2px, transparent 3px) 0 0 / 13px 11px,
        #6b4c25;
    opacity: .68;
    filter: blur(.15px);
}
.ap-teabag-figure__fold {
    position: absolute;
    top: 15px;
    right: 16px;
    left: 16px;
    height: 8px;
    border: 1px solid rgba(37, 76, 119, .17);
    border-radius: 99px;
}
.ap-teasizes__measure {
    position: absolute;
    color: #99abc0;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.ap-teasizes__measure b { color: #fff; font-size: 15px; font-variant-numeric: tabular-nums; }
.ap-teasizes__measure--w { right: 26%; bottom: 11%; left: 26%; text-align: center; }
.ap-teasizes__measure--h { top: 18%; right: 12%; writing-mode: vertical-rl; }

.ap-materialstory {
    color: var(--ap-ink);
    background: #fff;
}
.ap-materialstory__copy {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: end;
    gap: 48px;
}
.ap-materialstory__copy .ap-storysection__eyebrow { grid-column: 1 / -1; }
.ap-materialstory__composition {
    display: flex;
    min-height: 210px;
    margin-top: 52px;
    overflow: hidden;
    border-radius: 22px;
}
.ap-materialstory__composition span {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-width: 0;
    padding: 30px;
}
.ap-materialstory__wood {
    flex: 0 1 74%;
    color: #fff;
    background: linear-gradient(135deg, #083b3a, #0abab5);
}
.ap-materialstory__thermo {
    flex: 0 1 26%;
    color: var(--ap-ink);
    background: #dfeafa;
}
.ap-materialstory__composition b {
    font-family: var(--ap-font-display);
    font-size: clamp(40px, 5vw, 72px);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.ap-materialstory__composition em {
    max-width: 230px;
    margin-top: 9px;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    line-height: 1.35;
}
.ap-materialstory__specs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 14px;
    border-top: 1px solid #dfe7f1;
}
.ap-materialstory__specs span { padding: 25px 20px 0 0; color: #728097; font-size: 12px; }
.ap-materialstory__specs b { display: block; margin-bottom: 5px; color: var(--ap-ink); font-size: 15px; }

.ap-brandingflow__head {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: end;
    gap: 48px;
}
.ap-brandingflow__head .ap-storysection__eyebrow { grid-column: 1 / -1; }
.ap-brandingflow__steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 56px 0 0;
    padding: 0;
    list-style: none;
}
.ap-brandingflow__steps li {
    min-height: 220px;
    padding: 26px;
    border-top: 1px solid #dce6f2;
    border-right: 1px solid #dce6f2;
}
.ap-brandingflow__steps li:last-child { border-right: 0; }
.ap-brandingflow__steps li > span {
    display: block;
    margin-bottom: 56px;
    color: var(--story-blue);
    font-size: 11px;
    font-weight: 900;
}
.ap-brandingflow__steps b { display: block; margin-bottom: 9px; font-size: 16px; }
.ap-brandingflow__steps p { margin: 0; color: #718096; font-size: 12px; }

.ap-teaprice {
    display: grid;
    grid-template-columns: .95fr 1.05fr;
    align-items: center;
    gap: clamp(38px, 7vw, 90px);
    color: #fff;
    background: linear-gradient(135deg, #083b3a, #0abab5);
}
.ap-teaprice__copy .ap-storysection__eyebrow { color: #b6d7ff; }
.ap-teaprice__copy h2 { margin: 16px 0 22px; }
.ap-teaprice__copy p { color: #d1e1f6; }
.ap-teaprice__tiers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ap-teaprice__tiers article {
    min-height: 220px;
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 22px;
    background: rgba(5, 29, 58, .28);
    backdrop-filter: blur(12px);
}
.ap-teaprice__tiers span { display: block; min-height: 48px; color: #bdd3ef; font-size: 12px; }
.ap-teaprice__tiers b {
    display: block;
    margin-top: 27px;
    font-family: var(--ap-font-display);
    font-size: clamp(45px, 4vw, 62px);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.ap-teaprice__tiers em { display: block; margin-top: 7px; color: #bdd3ef; font-size: 11px; font-style: normal; }

/* Reveal применяется только при наличии JS — контент остаётся доступным без него */
.js .ap-story-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .55s ease-out, transform .55s cubic-bezier(.2, .8, .2, 1);
}
.js .ap-story-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1100px) {
    .ap-storyhero {
        grid-template-columns: minmax(0, .95fr) minmax(390px, 1.05fr);
        padding: 56px;
    }
    .ap-storyhero__studio { min-height: 500px; }
    .ap-storyhero h1 { font-size: clamp(58px, 8vw, 84px); }
    .ap-storysection,
    .ap-formatlab,
    .ap-layerstory,
    .ap-processstory,
    .ap-teasizes,
    .ap-materialstory,
    .ap-brandingflow,
    .ap-teaprice,
    .ap-storycta { padding: 58px; }
}
@media (max-width: 900px) {
    .ap-brandstory { margin-bottom: 64px; }
    .ap-storyhero {
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 54px;
    }
    .ap-storyhero__copy { max-width: 760px; }
    .ap-storyhero__studio { min-height: 560px; }
    .ap-storyhero__scroll { display: none; }
    .ap-storysection__split,
    .ap-formatlab__head,
    .ap-layerstory,
    .ap-teasizes,
    .ap-materialstory__copy,
    .ap-brandingflow__head,
    .ap-teaprice,
    .ap-storycta { grid-template-columns: 1fr; }
    .ap-storysection__split { align-items: start; gap: 24px; }
    .ap-formatlab__body { grid-template-columns: 1fr; }
    .ap-formatlab__visual { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
    .ap-layerstory { min-height: 0; }
    .ap-processtrack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ap-teasizes__copy { order: 1; }
    .ap-teasizes__visual { min-height: 480px; }
    .ap-materialstory__copy .ap-storysection__eyebrow,
    .ap-brandingflow__head .ap-storysection__eyebrow { grid-column: auto; }
    .ap-brandingflow__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ap-brandingflow__steps li:nth-child(2) { border-right: 0; }
    .ap-storycta { align-items: start; }
    .ap-storycta .ap-storybtn { justify-self: start; }
}
@media (max-width: 620px) {
    .ap-content > .ap-container { padding-right: 12px; padding-left: 12px; }
    .ap-brandstory { margin-top: 0; margin-bottom: 42px; }
    .ap-storyhero {
        padding: 38px 22px 24px;
        border-radius: 24px;
    }
    .ap-storyhero::before { background-size: 44px 44px; }
    .ap-storyhero h1 {
        margin-top: 15px;
        font-size: clamp(50px, 15.5vw, 68px);
        line-height: .91;
    }
    .ap-storyhero__copy > p { font-size: 15px; line-height: 1.58; }
    .ap-storyhero__actions { display: grid; grid-template-columns: 1fr; }
    .ap-storybtn { width: 100%; min-height: 52px; padding: 0 17px; }
    .ap-storyhero__facts { grid-template-columns: 1fr; margin-top: 30px; }
    .ap-storyhero__facts span { padding-top: 13px; }
    .ap-storyhero__facts span + span { border-top: 1px solid rgba(255, 255, 255, .09); }
    .ap-storyhero__facts b { display: inline; margin-right: 5px; }
    .ap-storyhero__studio { min-height: 355px; margin: 18px -10px 0; }
    .ap-storypack--orange { top: 12%; left: -4%; width: 52%; }
    .ap-storypack--blue { top: 4%; left: 25%; width: 60%; }
    .ap-storypack--black { right: -8%; bottom: 2%; width: 49%; }
    .ap-teapack--atlas { top: 4%; left: -2%; width: 66%; }
    .ap-teapack--tasty { right: -8%; bottom: 0; width: 61%; }
    .ap-storysection,
    .ap-formatlab,
    .ap-layerstory,
    .ap-processstory,
    .ap-teasizes,
    .ap-materialstory,
    .ap-brandingflow,
    .ap-teaprice,
    .ap-storycta {
        margin-top: 12px;
        padding: 40px 22px;
        border-radius: 24px;
    }
    .ap-storysection h2,
    .ap-formatlab h2,
    .ap-layerstory h2,
    .ap-processstory h2,
    .ap-teasizes h2,
    .ap-materialstory h2,
    .ap-brandingflow h2,
    .ap-teaprice h2,
    .ap-storycta h2 { font-size: clamp(37px, 12vw, 52px); }
    .ap-storysection__split { margin-bottom: 30px; }
    .ap-storysection__split p,
    .ap-layerstory__copy p,
    .ap-materialstory__copy p,
    .ap-brandingflow__head p,
    .ap-teaprice__copy p { font-size: 15px; }
    .ap-pathcards { grid-template-columns: 1fr; }
    .ap-pathcard { min-height: 0; padding: 26px 22px; }
    .ap-pathcard__number { font-size: 74px; }
    .ap-pathcard h3 { margin-top: 34px; font-size: 31px; }
    .ap-formatlab__tabs,
    .ap-teasizes__tabs {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: 100%;
        overflow: hidden;
    }
    .ap-teasizes__tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ap-formatlab__tabs button,
    .ap-teasizes__tabs button { min-width: 0; padding: 0 8px; font-size: 11px; }
    .ap-formatlab__body { min-height: 0; }
    .ap-formatlab__visual { min-height: 330px; }
    .ap-formatlab__panels { min-height: 340px; padding: 28px 22px; }
    .ap-formatpanel h3 { font-size: 46px; }
    .ap-layerstory__stage { min-height: 380px; margin: 0 -6px; }
    .ap-packlayer {
        grid-template-columns: 76px 1fr;
        min-height: 78px;
        padding: 14px;
    }
    .ap-packlayer em { font-size: 11px; }
    .ap-processtrack { grid-template-columns: 1fr; }
    .ap-processtrack li { min-height: 135px; padding-top: 25px; }
    .ap-teafacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ap-teafacts article { min-height: 135px; padding: 20px; }
    .ap-teafacts b { margin-bottom: 16px; font-size: 36px; }
    .ap-teasizes__visual { min-height: 400px; }
    .ap-teabag-figure { width: 158px; height: 222px; }
    .ap-teasizes__measure--w { right: 15%; left: 15%; }
    .ap-materialstory__composition { flex-direction: column; min-height: 320px; }
    .ap-materialstory__wood,
    .ap-materialstory__thermo { flex: 1 1 50%; }
    .ap-materialstory__specs { grid-template-columns: 1fr; }
    .ap-materialstory__specs span { padding: 16px 0; border-bottom: 1px solid #e1e8f2; }
    .ap-brandingflow__steps { grid-template-columns: 1fr; margin-top: 38px; }
    .ap-brandingflow__steps li {
        min-height: 0;
        padding: 22px 0;
        border-right: 0;
    }
    .ap-brandingflow__steps li > span { margin-bottom: 22px; }
    .ap-teaprice__tiers { grid-template-columns: 1fr; }
    .ap-teaprice__tiers article { min-height: 175px; }
    .ap-storycta { gap: 28px; }
}
@media (prefers-reduced-motion: reduce) {
    .ap-brandstory *,
    .ap-brandstory *::before,
    .ap-brandstory *::after {
        animation: none !important;
        transition-duration: .01ms !important;
    }
    .ap-storypack,
    .ap-teapack,
    .ap-storyhero__glow,
    .ap-packlayer,
    .ap-formatlab__scan { transform: none !important; }
    .js .ap-story-reveal { opacity: 1 !important; transform: none !important; }
}

/* Wide service pages
   The Shop-Script page wrapper is intentionally narrower than the viewport.
   These landing pages break out of that wrapper, while their reading sections
   stay capped and centered. */
@media (min-width: 901px) {
    .ap-brandstory {
        width: 100vw;
        max-width: none;
        margin-right: calc(50% - 50vw);
        margin-left: calc(50% - 50vw);
    }
    .ap-storyhero {
        grid-template-columns: minmax(560px, .94fr) minmax(520px, 1.06fr);
        min-height: min(830px, calc(100svh - 150px));
        padding:
            clamp(64px, 6vw, 104px)
            max(48px, calc((100vw - 1660px) / 2));
        border-radius: 0 0 38px 38px;
    }
    .ap-storyhero__copy {
        max-width: 760px;
    }
    .ap-storyhero h1 {
        max-width: 790px;
        font-size: clamp(64px, 5.15vw, 98px);
    }
    .ap-storyhero__copy > p {
        max-width: 680px;
    }
    .ap-storyhero__studio {
        min-height: 610px;
    }
    .ap-storysection,
    .ap-formatlab,
    .ap-layerstory,
    .ap-processstory,
    .ap-teasizes,
    .ap-materialstory,
    .ap-brandingflow,
    .ap-teaprice,
    .ap-storycta {
        width: min(1440px, calc(100vw - 48px));
        margin-right: auto;
        margin-left: auto;
    }
}

@media (min-width: 1700px) {
    .ap-storyhero {
        grid-template-columns: minmax(690px, .92fr) minmax(640px, 1.08fr);
    }
    .ap-storyhero h1 {
        font-size: clamp(78px, 4.9vw, 104px);
    }
}

/* ============================================================
   Final interior layout: coffee service page
   Scoped selectors prevent legacy theme rules from changing the
   section palette, typography and card contrast.
   ============================================================ */
.ap-brandstory--coffee .ap-storysection--intro {
    padding: clamp(54px, 5vw, 76px);
    overflow: hidden;
    color: #08182d;
    background: #fff !important;
}
.ap-brandstory--coffee .ap-storysection--intro .ap-storysection__split {
    grid-template-columns: minmax(0, 1.05fr) minmax(330px, .65fr);
    align-items: end;
    gap: clamp(36px, 6vw, 82px);
    margin: 14px 0 38px;
}
.ap-brandstory--coffee .ap-storysection--intro h2 {
    max-width: 760px;
    color: #08182d !important;
    font-size: clamp(42px, 3.7vw, 58px);
    line-height: .98;
}
.ap-brandstory--coffee .ap-storysection--intro .ap-storysection__split > p {
    max-width: 500px;
    color: #50647b !important;
    font-size: 16px;
    line-height: 1.65;
}
.ap-brandstory--coffee .ap-pathcards {
    gap: 16px;
    margin-top: 0;
}
.ap-brandstory--coffee .ap-pathcard {
    min-height: 350px;
    padding: clamp(28px, 3vw, 38px);
    border: 1px solid #dbe6f2;
    border-radius: 22px;
    background: #f3f7fc !important;
    box-shadow: none;
}
.ap-brandstory--coffee .ap-pathcard--accent {
    color: #fff !important;
    border-color: #0abab5;
    background:
        radial-gradient(circle at 88% 12%, rgba(111, 177, 255, .34), transparent 34%),
        linear-gradient(145deg, #083b3a, #0abab5) !important;
    box-shadow: 0 24px 54px rgba(8, 65, 139, .18);
}
.ap-brandstory--coffee .ap-pathcard__tag {
    margin: 0;
}
.ap-brandstory--coffee .ap-pathcard h3 {
    max-width: 470px;
    margin: 64px 0 12px;
    color: #08182d;
    font-size: clamp(28px, 2.5vw, 38px);
    line-height: 1.02;
}
.ap-brandstory--coffee .ap-pathcard--accent h3,
.ap-brandstory--coffee .ap-pathcard--accent li {
    color: #fff !important;
}
.ap-brandstory--coffee .ap-pathcard p {
    color: #566a81 !important;
    font-size: 14px;
    line-height: 1.6;
}
.ap-brandstory--coffee .ap-pathcard--accent p {
    color: #d5e6fb !important;
}
.ap-brandstory--coffee .ap-pathcard ul {
    margin-top: 22px;
}
.ap-brandstory--coffee .ap-pathcard__number {
    top: 15px;
    right: 22px;
    font-size: 82px;
}

.ap-brandstory--coffee .ap-formatlab {
    position: relative;
    display: block;
    padding: clamp(54px, 5vw, 76px);
    overflow: hidden;
    color: #fff !important;
    border: 0;
    background:
        radial-gradient(circle at 88% 8%, rgba(48, 132, 236, .28), transparent 29%),
        linear-gradient(145deg, #061426, #0a2341) !important;
    box-shadow: 0 28px 66px rgba(6, 20, 38, .18);
}
.ap-brandstory--coffee .ap-formatlab__head {
    display: grid;
    grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr);
    align-items: end;
    gap: clamp(32px, 6vw, 90px);
}
.ap-brandstory--coffee .ap-formatlab .ap-storysection__eyebrow {
    color: #77b2ff;
}
.ap-brandstory--coffee .ap-formatlab__head h2 {
    max-width: 740px;
    color: #fff !important;
    font-size: clamp(42px, 3.9vw, 60px);
    line-height: .98;
}
.ap-brandstory--coffee .ap-formatlab__tabs {
    margin: 32px 0 18px;
    padding: 4px;
    background: rgba(255, 255, 255, .075) !important;
}
.ap-brandstory--coffee .ap-formatlab__tabs button {
    color: #aebed2 !important;
    background: transparent !important;
}
.ap-brandstory--coffee .ap-formatlab__tabs button.is-active {
    color: #081226 !important;
    background: #2acbc5 !important;
}
.ap-brandstory--coffee .ap-formatlab__body {
    grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr);
    min-height: 400px;
    border-color: rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .045) !important;
}
.ap-brandstory--coffee .ap-formatlab__visual {
    min-height: 398px;
    border-color: rgba(255, 255, 255, .1);
    background:
        linear-gradient(rgba(113, 172, 238, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(113, 172, 238, .055) 1px, transparent 1px),
        radial-gradient(circle at 50% 62%, rgba(28, 113, 218, .32), transparent 46%) !important;
    background-size: 38px 38px, 38px 38px, auto !important;
}
.ap-brandstory--coffee .ap-formatlab__panels {
    position: relative;
    display: grid;
    align-items: center;
    min-height: 398px;
    padding: clamp(32px, 4vw, 58px);
}
.ap-brandstory--coffee .ap-formatpanel {
    grid-area: 1 / 1;
    display: block;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}
.ap-brandstory--coffee .ap-formatpanel.is-active {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto;
}
.ap-brandstory--coffee .ap-formatpanel[hidden] {
    display: none !important;
}
.ap-brandstory--coffee .ap-formatpanel h3 {
    color: #fff !important;
    font-size: clamp(42px, 4vw, 62px);
}
.ap-brandstory--coffee .ap-formatpanel p {
    color: #b5c4d7 !important;
}

.ap-brandstory--coffee .ap-layerstory {
    min-height: 520px;
    padding: clamp(54px, 5vw, 76px);
    color: #08182d;
    background: #e7f0fb !important;
}
.ap-brandstory--coffee .ap-layerstory h2 {
    color: #08182d !important;
    font-size: clamp(42px, 3.8vw, 58px);
}
.ap-brandstory--coffee .ap-layerstory__stage {
    min-height: 400px;
}
.ap-brandstory--coffee .ap-processstory {
    padding: clamp(54px, 5vw, 76px);
    color: #08182d;
    background: #fff !important;
}
.ap-brandstory--coffee .ap-processstory > h2 {
    margin-bottom: 40px;
    color: #08182d !important;
    font-size: clamp(42px, 3.8vw, 58px);
}
.ap-brandstory--coffee .ap-storycta {
    min-height: 300px;
    padding: clamp(48px, 5vw, 72px);
    background:
        radial-gradient(circle at 88% 16%, rgba(107, 177, 255, .35), transparent 34%),
        linear-gradient(135deg, #063f3d, #0abab5) !important;
}
.ap-brandstory--coffee .ap-storycta h2 {
    font-size: clamp(40px, 3.9vw, 60px);
}
.ap-brandstory--coffee .ap-storycta .ap-storybtn--primary {
    color: #08203c;
    background: #fff;
    box-shadow: 0 16px 38px rgba(0, 24, 57, .18);
}

@media (max-width: 900px) {
    .ap-brandstory--coffee .ap-storysection--intro .ap-storysection__split,
    .ap-brandstory--coffee .ap-formatlab__head {
        grid-template-columns: 1fr;
    }
    .ap-brandstory--coffee .ap-formatlab__body {
        grid-template-columns: 1fr;
    }
    .ap-brandstory--coffee .ap-formatlab__visual {
        min-height: 340px;
    }
}

@media (max-width: 620px) {
    .ap-brandstory--coffee .ap-storysection--intro,
    .ap-brandstory--coffee .ap-formatlab,
    .ap-brandstory--coffee .ap-layerstory,
    .ap-brandstory--coffee .ap-processstory {
        padding: 38px 20px;
    }
    .ap-brandstory--coffee .ap-storysection--intro h2,
    .ap-brandstory--coffee .ap-formatlab__head h2,
    .ap-brandstory--coffee .ap-layerstory h2,
    .ap-brandstory--coffee .ap-processstory > h2 {
        font-size: clamp(36px, 11vw, 48px);
    }
    .ap-brandstory--coffee .ap-pathcard {
        min-height: 0;
    }
    .ap-brandstory--coffee .ap-formatlab__tabs {
        margin-top: 26px;
    }
    .ap-brandstory--coffee .ap-formatlab__body,
    .ap-brandstory--coffee .ap-formatlab__panels {
        min-height: 0;
    }
}

/* ============================================================
   Сервисные лендинги v2 (.aps-*) — полезные блоки и motion
   Используется на page.brand-tea.html и page.brand-coffee.html
   ============================================================ */
.ap-brandstory {
    --aps-radius: 32px;
    --aps-line: rgba(9, 26, 48, .1);
    --aps-muted: #68788e;
}

/* ---------- Секция-обёртка в общем ритме страницы ---------- */
.aps-section {
    position: relative;
    margin-top: 24px;
    padding: clamp(52px, 6.5vw, 94px);
    border-radius: var(--aps-radius);
    color: var(--ap-ink);
    background: #fff;
}
.aps-section--dark {
    color: #fff;
    background:
        radial-gradient(circle at 82% 8%, rgba(23, 111, 209, .3), transparent 46%),
        linear-gradient(160deg, var(--story-navy-2), var(--story-navy));
    overflow: hidden;
}
.aps-section__eyebrow {
    display: inline-block;
    color: var(--story-blue);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.aps-section--dark .aps-section__eyebrow { color: var(--story-blue-light); }
.aps-section__head {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    align-items: end;
    gap: clamp(28px, 6vw, 90px);
    margin: 20px 0 46px;
}
.aps-section__head h2 {
    margin: 0;
    font-size: clamp(40px, 4.4vw, 68px);
    line-height: .98;
    letter-spacing: -.035em;
    text-wrap: balance;
}
.aps-section__head p {
    max-width: 620px;
    margin: 0;
    color: var(--aps-muted);
    font-size: 17px;
    line-height: 1.65;
}
.aps-section--dark .aps-section__head p { color: var(--story-copy); }
@media (max-width: 900px) {
    .aps-section { width: min(100% - 40px, 760px); margin-left: auto; margin-right: auto; }
    .aps-section__head { grid-template-columns: 1fr; align-items: start; gap: 18px; margin-bottom: 34px; }
}
@media (max-width: 600px) {
    .aps-section { padding: 38px 20px; border-radius: 24px; }
    .aps-section__head h2 { font-size: clamp(34px, 10vw, 46px); }
}

/* ---------- Шаги проекта с прогресс-рельсой ---------- */
.aps-steps {
    --aps-steps-p: 0;
    position: relative;
    display: grid;
    grid-template-columns: repeat(var(--aps-steps-cols, 4), minmax(0, 1fr));
    gap: 26px 22px;
    margin: 0;
    padding: 46px 0 0;
    list-style: none;
    counter-reset: aps-step;
}
.aps-steps::before,
.aps-steps::after {
    content: "";
    position: absolute;
    top: 18px;
    left: 0;
    height: 2px;
    border-radius: 2px;
}
.aps-steps::before { right: 0; background: var(--aps-line); }
.aps-steps::after {
    width: calc(var(--aps-steps-p) * 100%);
    background: linear-gradient(90deg, var(--story-blue), var(--story-blue-light));
    box-shadow: 0 0 18px rgba(12, 106, 216, .45);
    transition: width .45s cubic-bezier(.16, 1, .3, 1);
}
.aps-section--dark .aps-steps::before { background: rgba(255, 255, 255, .12); }
.aps-step {
    position: relative;
    padding-top: 34px;
    opacity: .46;
    transform: translateY(10px);
    transition: opacity .45s ease, transform .55s cubic-bezier(.16, 1, .3, 1);
}
.aps-step.is-active,
.aps-step.is-passed { opacity: 1; transform: translateY(0); }
.aps-step__dot {
    position: absolute;
    top: 9px;
    left: 0;
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    color: #fff;
    background: #c7d3e2;
    border-radius: 50%;
    font-size: 0;
    transition: background .35s ease, box-shadow .35s ease, transform .35s cubic-bezier(.16, 1, .3, 1);
}
.aps-section--dark .aps-step__dot { background: rgba(255, 255, 255, .22); }
.aps-step.is-active .aps-step__dot,
.aps-step.is-passed .aps-step__dot {
    background: var(--story-blue);
    box-shadow: 0 0 0 5px rgba(12, 106, 216, .16);
}
.aps-step.is-active .aps-step__dot { transform: scale(1.18); }
.aps-step__num {
    display: block;
    color: var(--story-blue);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
}
.aps-section--dark .aps-step__num { color: var(--story-blue-light); }
.aps-step__title {
    display: block;
    margin: 10px 0 8px;
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -.02em;
}
.aps-step p {
    margin: 0;
    color: var(--aps-muted);
    font-size: 14px;
    line-height: 1.6;
}
.aps-section--dark .aps-step p { color: var(--story-copy); }
@media (max-width: 900px) {
    .aps-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .aps-steps {
        grid-template-columns: 1fr;
        padding: 0 0 0 30px;
    }
    .aps-steps::before,
    .aps-steps::after {
        top: 6px;
        bottom: 6px;
        left: 9px;
        right: auto;
        width: 2px;
        height: auto;
    }
    .aps-steps::after { height: calc(var(--aps-steps-p) * 100%); }
    .aps-step { padding-top: 0; }
    .aps-step__dot { top: 2px; left: -30px; }
}

/* ---------- Галерея реализованных проектов ---------- */
.aps-gallery {
    display: grid;
    grid-template-columns: repeat(var(--aps-gallery-cols, 3), minmax(0, 1fr));
    gap: 16px;
}
.aps-shot {
    position: relative;
    display: block;
    margin: 0;
    padding: 0;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: 22px;
    background: linear-gradient(165deg, #10294a, #06121f);
    box-shadow: 0 24px 60px rgba(4, 14, 28, .32);
    isolation: isolate;
}
.aps-shot--wide { grid-column: span 2; aspect-ratio: 8 / 5; }
.aps-shot img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 6%;
    transform: scale(1.02);
    transition: transform .7s cubic-bezier(.16, 1, .3, 1);
}
.aps-shot--cover img { object-fit: cover; padding: 0; }
.aps-shot::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: radial-gradient(420px 300px at var(--aps-mx, 50%) var(--aps-my, 40%), rgba(126, 187, 255, .16), transparent 68%);
    opacity: 0;
    transition: opacity .35s ease;
    pointer-events: none;
}
.aps-shot:hover img { transform: scale(1.07); }
.aps-shot:hover::after { opacity: 1; }
.aps-shot::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    height: 42%;
    background: linear-gradient(to top, rgba(4, 13, 25, .82), rgba(4, 13, 25, 0));
    pointer-events: none;
}
.aps-shot--full {
    grid-column: 1 / -1;
    aspect-ratio: 21 / 9;
}
.aps-shot figcaption {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 14px;
    z-index: 2;
    color: rgba(233, 243, 255, .9);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .55);
}
@media (max-width: 900px) {
    .aps-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .aps-shot--wide { grid-column: span 2; }
}
@media (max-width: 560px) {
    .aps-gallery { grid-template-columns: 1fr; }
    .aps-shot--wide,
    .aps-shot--full { grid-column: auto; aspect-ratio: 4 / 3; }
}

/* ---------- Калькулятор тиража ---------- */
.aps-calc {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: clamp(28px, 5vw, 64px);
    align-items: start;
}
.aps-calc__controls { display: grid; gap: 26px; }
.aps-calc__field label {
    display: block;
    margin-bottom: 12px;
    color: rgba(233, 243, 255, .62);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.aps-calc__value {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 16px;
}
.aps-calc__value b {
    font-size: clamp(38px, 4.6vw, 58px);
    font-weight: 850;
    letter-spacing: -.04em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.aps-calc__value span { color: var(--story-copy); font-size: 15px; }
.aps-calc__range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 6px;
    background: linear-gradient(90deg, var(--story-blue) 0 var(--aps-fill, 0%), rgba(255, 255, 255, .14) var(--aps-fill, 0%) 100%);
    border-radius: 999px;
    cursor: pointer;
    outline: none;
}
.aps-calc__range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 24px;
    height: 24px;
    background: #fff;
    border: 5px solid var(--story-blue);
    border-radius: 50%;
    box-shadow: 0 6px 18px rgba(4, 14, 28, .45);
    cursor: grab;
}
.aps-calc__range::-moz-range-thumb {
    width: 24px;
    height: 24px;
    background: #fff;
    border: 5px solid var(--story-blue);
    border-radius: 50%;
    box-shadow: 0 6px 18px rgba(4, 14, 28, .45);
    cursor: grab;
}
.aps-calc__range:focus-visible { box-shadow: 0 0 0 4px rgba(99, 167, 255, .35); }
.aps-calc__marks {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
    color: rgba(226, 238, 255, .42);
    font-size: 11px;
    letter-spacing: .04em;
}
.aps-calc__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.aps-calc__chips button {
    padding: 9px 15px;
    color: rgba(226, 238, 255, .78);
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.aps-calc__chips button:hover,
.aps-calc__chips button.is-active {
    color: #fff;
    background: rgba(99, 167, 255, .2);
    border-color: rgba(132, 186, 255, .4);
}
.aps-calc__result {
    padding: clamp(24px, 3vw, 34px);
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 24px;
    backdrop-filter: blur(14px);
}
.aps-calc__rows { display: grid; gap: 2px; }
.aps-calc__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .09);
}
.aps-calc__row:last-child { border-bottom: 0; }
.aps-calc__row span { color: var(--story-copy); font-size: 14px; }
.aps-calc__row b { font-size: 19px; font-weight: 800; font-variant-numeric: tabular-nums; }
.aps-calc__row--total { padding-top: 20px; }
.aps-calc__row--total span { color: #fff; font-size: 15px; font-weight: 700; }
.aps-calc__row--total b {
    color: var(--story-blue-light);
    font-size: clamp(28px, 3.2vw, 38px);
    letter-spacing: -.035em;
}
.aps-calc__note {
    margin: 18px 0 0;
    color: rgba(226, 238, 255, .5);
    font-size: 12px;
    line-height: 1.6;
}
.aps-calc__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    padding: 7px 13px;
    color: #bcdcff;
    background: rgba(99, 167, 255, .16);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.aps-calc .ap-storybtn { margin-top: 22px; width: 100%; }
@media (max-width: 900px) {
    .aps-calc { grid-template-columns: 1fr; }
}

/* ---------- FAQ ---------- */
.aps-faq { display: grid; gap: 10px; }
.aps-faq__item {
    overflow: hidden;
    background: #f5f8fd;
    border: 1px solid rgba(9, 26, 48, .07);
    border-radius: 18px;
    transition: background .25s ease, border-color .25s ease;
}
.aps-faq__item[open] { background: #fff; border-color: rgba(12, 106, 216, .26); }
.aps-faq__item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px;
    cursor: pointer;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.015em;
    list-style: none;
}
.aps-faq__item summary::-webkit-details-marker { display: none; }
.aps-faq__item summary:focus-visible { outline: 2px solid var(--story-blue); outline-offset: -4px; }
.aps-faq__item summary::after {
    content: "";
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    border-right: 2px solid var(--story-blue);
    border-bottom: 2px solid var(--story-blue);
    transform: translateY(-3px) rotate(45deg);
    transition: transform .3s cubic-bezier(.16, 1, .3, 1);
}
.aps-faq__item[open] summary::after { transform: translateY(2px) rotate(-135deg); }
.aps-faq__body {
    padding: 0 22px 22px;
    color: var(--aps-muted);
    font-size: 15px;
    line-height: 1.68;
}
.aps-faq__item[open] .aps-faq__body { animation: aps-faq-in .4s cubic-bezier(.16, 1, .3, 1) both; }
@keyframes aps-faq-in {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}
.aps-faq-layout {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(28px, 5vw, 72px);
    align-items: start;
}
.aps-faq-layout > div h2 { margin: 0 0 16px; font-size: clamp(36px, 3.8vw, 56px); line-height: 1; letter-spacing: -.035em; }
.aps-faq-layout > div p { margin: 0; color: var(--aps-muted); font-size: 16px; line-height: 1.65; }
.aps-faq-layout__phone { color: var(--story-blue); font-weight: 800; white-space: nowrap; }
@media (max-width: 900px) { .aps-faq-layout { grid-template-columns: 1fr; } }

/* ---------- Таймлайн проекта (кофе) ---------- */
.aps-timeline {
    display: grid;
    gap: 12px;
    margin-top: 42px;
}
.aps-phase {
    display: grid;
    grid-template-columns: 132px 1fr;
    gap: 20px;
    align-items: center;
    padding: 18px 22px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 18px;
}
.aps-phase__when {
    color: var(--story-blue-light);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .04em;
}
.aps-phase__bar {
    display: block;
    position: relative;
    height: 10px;
    background: rgba(255, 255, 255, .08);
    border-radius: 999px;
    overflow: hidden;
}
.aps-phase__bar i {
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--from, 0%);
    width: 0;
    background: linear-gradient(90deg, var(--story-blue), var(--story-blue-light));
    border-radius: 999px;
    transition: width .8s cubic-bezier(.16, 1, .3, 1);
    transition-delay: calc(var(--i, 0) * 110ms);
}
.aps-timeline.is-visible .aps-phase__bar i { width: calc(var(--to, 100%) - var(--from, 0%)); }
.aps-phase__label { display: block; margin-bottom: 9px; font-size: 16px; font-weight: 700; }
@media (max-width: 600px) {
    .aps-phase { grid-template-columns: 1fr; gap: 10px; padding: 16px; }
}

/* ---------- Счётчики ---------- */
[data-countup] { font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
    .aps-step,
    .aps-shot img,
    .aps-phase__bar i,
    .aps-steps::after { transition: none !important; }
    .aps-step { opacity: 1 !important; transform: none !important; }
    .aps-timeline .aps-phase__bar i { width: calc(var(--to, 100%) - var(--from, 0%)); }
    .aps-faq__item[open] .aps-faq__body { animation: none !important; }
}

/* счётчик внутри факта hero не должен подхватывать стиль обёртки-span */
.ap-storyhero__facts b [data-countup],
.ap-storyhero__facts b span {
    padding: 0;
    color: inherit;
    font: inherit;
    line-height: inherit;
}

/* ============================================================
   Главная · «Ваш печатный проект» — галерея v2
   Плавная смена кадров, автоплей с прогрессом, стрелки, подпись.
   Переопределяет прежнюю scroll-driven «фотоленту».
   ============================================================ */
.ap-filterprint__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 26px 0 0;
    padding: 0;
    list-style: none;
}
.ap-filterprint__chips li {
    display: inline-flex;
    align-items: baseline;
    gap: 7px;
    padding: 8px 14px;
    color: rgba(226, 238, 255, .58);
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 999px;
    font-size: 12px;
    letter-spacing: .01em;
}
.ap-filterprint__chips b { color: #fff; font-size: 13px; font-weight: 800; }

.ap-filterprint__stage {
    position: relative;
    aspect-ratio: 4 / 3;
    isolation: isolate;
    overflow: visible;
}
.ap-filterprint__film {
    position: absolute;
    inset: 0 0 58px;
    opacity: 1;
    transform: none;
    will-change: auto;
}
.ap-filterprint__frame {
    --dir: 1;
    position: absolute;
    inset: 0;
    z-index: 1;
    margin: 0;
    opacity: 0;
    transform: translate3d(calc(var(--dir) * 7%), 0, 0) scale(.94);
    transition:
        opacity .55s cubic-bezier(.22, 1, .36, 1),
        transform .85s cubic-bezier(.22, 1, .36, 1);
    pointer-events: none;
    will-change: opacity, transform;
}
.ap-filterprint__frame.is-active {
    z-index: 3;
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}
.ap-filterprint__frame.is-leaving {
    z-index: 2;
    opacity: 0;
    transform: translate3d(calc(var(--dir) * -5%), 0, 0) scale(1.03);
}
.ap-filterprint__frame img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 3%;
    object-fit: contain;
    object-position: center;
    filter: drop-shadow(0 34px 34px rgba(0, 0, 0, .42));
    transform:
        translate3d(var(--ap-film-pointer-x, 0px), var(--ap-film-pointer-y, 0px), 0)
        scale(1);
    transition: transform .5s ease-out;
}
.ap-filterprint__frame.is-active img { animation: apFilmDrift 8s ease-out both; }
@keyframes apFilmDrift {
    from { transform: translate3d(var(--ap-film-pointer-x, 0px), var(--ap-film-pointer-y, 0px), 0) scale(1); }
    to   { transform: translate3d(var(--ap-film-pointer-x, 0px), calc(var(--ap-film-pointer-y, 0px) - 10px), 0) scale(1.05); }
}

.ap-filterprint__film-light {
    position: absolute;
    inset: 0 0 58px;
    z-index: 4;
    background: radial-gradient(
        460px 340px at var(--ap-film-mx, 50%) var(--ap-film-my, 42%),
        rgba(126, 187, 255, .18),
        transparent 68%
    );
    mix-blend-mode: screen;
    opacity: 0;
    transition: opacity .35s ease;
    pointer-events: none;
}
.ap-filterprint__stage:hover .ap-filterprint__film-light { opacity: 1; }

/* стрелки */
.ap-filterprint__nav {
    position: absolute;
    top: calc(50% - 29px);
    z-index: 6;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    color: #fff;
    background: rgba(8, 22, 38, .55);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 50%;
    backdrop-filter: blur(10px);
    cursor: pointer;
    opacity: 0;
    transition: opacity .28s ease, background .2s ease, transform .28s cubic-bezier(.16, 1, .3, 1);
}
.ap-filterprint__nav--prev { left: -6px; transform: translateX(8px); }
.ap-filterprint__nav--next { right: -6px; transform: translateX(-8px); }
.ap-filterprint__stage:hover .ap-filterprint__nav,
.ap-filterprint__nav:focus-visible { opacity: 1; transform: translateX(0); }
.ap-filterprint__nav:hover { background: var(--ap-accent); }
.ap-filterprint__nav:focus-visible { outline: 2px solid #7ebbff; outline-offset: 3px; }

/* нижняя панель: подпись + точки с прогрессом автоплея */
.ap-filterprint__bar {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 44px;
}
.ap-filterprint__caption {
    position: static;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    max-width: 62%;
    padding: 0;
    color: rgba(233, 243, 255, .78);
    background: none;
    border: 0;
    border-radius: 0;
    backdrop-filter: none;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 1;
    transform: none;
    transition: opacity .26s ease, transform .4s cubic-bezier(.16, 1, .3, 1);
}
.ap-filterprint__caption::before {
    content: "";
    flex: 0 0 auto;
    width: 6px;
    height: 6px;
    background: var(--ap-accent);
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(10, 186, 181, .16);
}
.ap-filterprint__caption.is-swapping { opacity: 0; transform: translateY(6px); }

.ap-filterprint__dots {
    display: flex;
    align-items: center;
    gap: 7px;
}
.ap-filterprint__dots button {
    position: relative;
    width: 26px;
    height: 20px;
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
}
.ap-filterprint__dots button::before {
    content: "";
    position: absolute;
    top: 9px;
    left: 0;
    width: 26px;
    height: 3px;
    background: rgba(255, 255, 255, .18);
    border-radius: 999px;
    transition: background .25s ease;
}
.ap-filterprint__dots button i {
    position: absolute;
    top: 9px;
    left: 0;
    width: 0;
    height: 3px;
    background: var(--ap-accent);
    border-radius: 999px;
}
.ap-filterprint__dots button.is-active i { width: 26px; }
.ap-filterprint__dots button.is-active.is-running i {
    width: 0;
    animation: apDotFill var(--ap-dot-duration, 4600ms) linear forwards;
}
.ap-filterprint__dots button.is-passed::before { background: rgba(10, 186, 181, .4); }
.ap-filterprint__dots button:hover::before { background: rgba(255, 255, 255, .38); }
.ap-filterprint__dots button:focus-visible { outline: 2px solid #7ebbff; outline-offset: 3px; border-radius: 4px; }
@keyframes apDotFill { from { width: 0; } to { width: 26px; } }

@media (max-width: 980px) {
    .ap-filterprint__stage { margin-top: 42px; }
    .ap-filterprint__nav { display: none; }
}
@media (max-width: 620px) {
    .ap-filterprint__chips li { font-size: 11px; padding: 7px 12px; }
    .ap-filterprint__caption { max-width: 55%; font-size: 10px; letter-spacing: .07em; }
    .ap-filterprint__dots button { width: 20px; }
    .ap-filterprint__dots button::before,
    .ap-filterprint__dots button i { width: 20px; }
    .ap-filterprint__dots button.is-active i { width: 20px; }
    @keyframes apDotFill { from { width: 0; } to { width: 20px; } }
}
@media (prefers-reduced-motion: reduce) {
    .ap-filterprint__frame { transition: opacity .2s linear !important; transform: none !important; }
    .ap-filterprint__frame.is-active img { animation: none !important; }
    .ap-filterprint__dots button.is-active.is-running i { animation: none !important; width: 26px; }
}

/* ============================================================
   Лендинги: полноширинные секции .aps-section
   Секция тянется на всю ширину экрана (без скруглений), а её
   содержимое выравнивается по той же колонке, что и остальные
   блоки страницы (min(1440px, 100vw - 48px) + внутренний отступ).
   ============================================================ */
@media (min-width: 901px) {
    .aps-section {
        width: 100%;
        margin-inline: 0;
        border-radius: 0;
        padding-block: clamp(52px, 6.5vw, 94px);
        padding-inline: calc(
            (100vw - min(1440px, 100vw - 48px)) / 2 + clamp(52px, 6.5vw, 94px)
        );
    }
}

/* убираем зазор между шапкой сайта и первым блоком лендинга */
.ap-content:has(.ap-brandstory) { padding-top: 0; }
.ap-content:has(.ap-brandstory) > .ap-container { padding-top: 0; }
.ap-brandstory { margin-top: 0; }

/* сцена галереи: компактная портретная область, чтобы коробочка
   занимала кадр, а не терялась в пустом поле */
.ap-filterprint__stage {
    width: min(100%, 560px);
    margin-inline: auto;
    aspect-ratio: 3 / 4;
}
.ap-filterprint__stage::after {
    content: "";
    position: absolute;
    inset: 6% 2% 20%;
    z-index: 0;
    background:
        radial-gradient(60% 46% at 50% 46%, rgba(70, 138, 224, .22), transparent 70%),
        radial-gradient(38% 8% at 50% 88%, rgba(0, 0, 0, .55), transparent 72%);
    filter: blur(2px);
    pointer-events: none;
}
.ap-filterprint__frame img { padding: 0; }
@media (max-width: 980px) {
    .ap-filterprint__stage { width: min(100%, 460px); }
}

/* ============================================================
   Лендинги v3: разрез стенки упаковки, карточки форматов,
   каскадные появления и анимированные шкалы
   ============================================================ */

/* полноширинные секции идут встык — без светлой полосы между ними */
@media (min-width: 901px) {
    .aps-section + .aps-section { margin-top: 0; }
}

/* ---------- каскадное появление элементов внутри секции ---------- */
.aps-stagger > * {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .6s ease, transform .7s cubic-bezier(.16, 1, .3, 1);
    transition-delay: calc(var(--i, 0) * 90ms);
}
.is-visible .aps-stagger > *,
.aps-stagger.is-visible > * {
    opacity: 1;
    transform: translateY(0);
}

/* ---------- разрез стенки упаковки (кофе) ---------- */
.aps-wall {
    position: relative;
    display: grid;
    gap: 10px;
    padding-left: 92px;
}
.aps-wall__axis {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 34px;
    width: 2px;
    background: linear-gradient(180deg, rgba(12, 106, 216, .05), rgba(12, 106, 216, .45), rgba(12, 106, 216, .05));
}
.aps-wall__axis::before,
.aps-wall__axis::after {
    position: absolute;
    left: 50%;
    width: max-content;
    color: #7d8ea4;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    transform: translateX(-50%) rotate(-90deg);
    transform-origin: center;
}
.aps-wall__axis::before { content: "Снаружи"; top: -6px; }
.aps-wall__axis::after { content: "Внутри"; bottom: -6px; }
.aps-wall__layer {
    --tint: #0abab5;
    position: relative;
    display: grid;
    grid-template-columns: 44px minmax(0, 190px) minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    min-height: 78px;
    padding: 16px 22px;
    background: #fff;
    border: 1px solid rgba(9, 26, 48, .08);
    border-radius: 16px;
    box-shadow: 0 14px 34px rgba(9, 26, 48, .07);
    opacity: 0;
    transform: translateX(38px);
    transition:
        opacity .55s ease,
        transform .75s cubic-bezier(.16, 1, .3, 1),
        box-shadow .3s ease,
        border-color .3s ease;
    transition-delay: calc(var(--i, 0) * 130ms);
}
.aps-wall.is-open .aps-wall__layer { opacity: 1; transform: translateX(0); }
.aps-wall__layer::before {
    content: "";
    position: absolute;
    top: 14px;
    bottom: 14px;
    left: 0;
    width: 4px;
    background: var(--tint);
    border-radius: 0 4px 4px 0;
}
.aps-wall__layer:hover {
    border-color: color-mix(in srgb, var(--tint) 45%, transparent);
    box-shadow: 0 22px 48px rgba(9, 26, 48, .14);
    transform: translateX(-6px);
}
.aps-wall__num {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: var(--tint);
    background: color-mix(in srgb, var(--tint) 12%, transparent);
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.aps-wall__name {
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -.02em;
}
.aps-wall__desc {
    color: #68788e;
    font-size: 14px;
    line-height: 1.5;
}
.aps-wall__layer--print { --tint: #0abab5; }
.aps-wall__layer--body { --tint: #1f3d63; }
.aps-wall__layer--barrier { --tint: #7b8ea6; }
.aps-wall__layer--food { --tint: #2aa17a; }
@media (max-width: 760px) {
    .aps-wall { padding-left: 0; }
    .aps-wall__axis { display: none; }
    .aps-wall__layer {
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 8px 14px;
        padding: 15px 16px;
    }
    .aps-wall__desc { grid-column: 2; }
}

/* ---------- карточки форматов упаковки ---------- */
.aps-formats {
    display: grid;
    grid-template-columns: repeat(var(--aps-formats-cols, 3), minmax(0, 1fr));
    gap: 16px;
}
.aps-format {
    display: flex;
    flex-direction: column;
    padding: 30px 28px 28px;
    color: #fff;
    background:
        radial-gradient(120% 90% at 80% -10%, rgba(23, 111, 209, .26), transparent 58%),
        linear-gradient(165deg, #0d2540, #071527);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 24px;
    transition: transform .35s cubic-bezier(.16, 1, .3, 1), border-color .3s ease, box-shadow .3s ease;
}
.aps-format:hover {
    transform: translateY(-6px);
    border-color: rgba(99, 167, 255, .4);
    box-shadow: 0 30px 64px rgba(3, 12, 24, .45);
}
.aps-format__tag {
    color: #7fb4ff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.aps-format__art {
    display: grid;
    place-items: center;
    height: 210px;
    margin: 18px 0 10px;
    overflow: hidden;
}
.aps-format__art svg {
    display: block;
    width: 100%;
    height: 100%;
}
.aps-format__art [data-draw] {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    transition: stroke-dashoffset 1.1s cubic-bezier(.65, 0, .35, 1);
    transition-delay: calc(var(--d, 0) * 160ms);
}
.aps-format.is-drawn [data-draw] { stroke-dashoffset: 0; }
.aps-format__art [data-fade] {
    opacity: 0;
    transition: opacity .5s ease;
    transition-delay: calc(var(--d, 0) * 160ms + 500ms);
}
.aps-format.is-drawn [data-fade] { opacity: 1; }
.aps-format h3 {
    margin: 0 0 10px;
    font-size: clamp(26px, 2vw, 34px);
    line-height: 1;
    letter-spacing: -.03em;
}
.aps-format > p {
    margin: 0 0 20px;
    color: #a9bed6;
    font-size: 14px;
    line-height: 1.6;
}
.aps-format__specs {
    display: grid;
    gap: 1px;
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
    background: rgba(255, 255, 255, .09);
    border-radius: 12px;
    overflow: hidden;
}
.aps-format__specs li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 15px;
    background: rgba(9, 25, 44, .86);
    font-size: 13px;
}
.aps-format__specs span { color: #93a8c1; }
.aps-format__specs b { color: #fff; font-weight: 700; }
.aps-format__link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: auto;
    color: #8dbcff;
    font-size: 13px;
    font-weight: 800;
}
.aps-format__link:hover { color: #fff; }
.aps-format__link i { transition: transform .22s cubic-bezier(.16, 1, .3, 1); }
.aps-format__link:hover i { transform: translateX(4px); }
@media (max-width: 900px) { .aps-formats { grid-template-columns: 1fr; } }

/* ---------- анимированные шкалы состава ---------- */
.aps-bar {
    position: relative;
    height: 8px;
    margin-top: 16px;
    overflow: hidden;
    background: rgba(255, 255, 255, .16);
    border-radius: 999px;
}
.aps-bar i {
    position: absolute;
    inset: 0 auto 0 0;
    width: 0;
    background: currentColor;
    border-radius: 999px;
    transition: width 1.15s cubic-bezier(.16, 1, .3, 1);
    transition-delay: calc(var(--i, 0) * 140ms);
}
.aps-bar.is-filled i { width: var(--to, 100%); }

@media (prefers-reduced-motion: reduce) {
    .aps-stagger > *,
    .aps-wall__layer { opacity: 1 !important; transform: none !important; transition: none !important; }
    .aps-format__art [data-draw] { stroke-dashoffset: 0 !important; transition: none !important; }
    .aps-format__art [data-fade] { opacity: 1 !important; transition: none !important; }
    .aps-bar i { transition: none !important; width: var(--to, 100%); }
}

/* hover-подъём карточек не должен проигрывать правилу каскадного появления */
.is-visible .aps-stagger > .aps-format:hover { transform: translateY(-6px); }
.is-visible .aps-stagger > .aps-shot:hover { transform: translateY(-3px); }

/* блок «Барьерная защита» больше не держит высоту снятой 3D-сцены */
.ap-layerstory { min-height: 0; }
.ap-layerstory:has(.aps-wall) { align-items: start; }
.ap-layerstory .aps-wall { padding-block: 6px; }

/* Счётчик — это <span> внутри крупного числа. Многие блоки лендинга
   стилизуют потомков по тегу span, поэтому сбрасываем наследование
   явно, иначе цифра «сжимается» до подписи. */
.ap-brandstory [data-countup],
.ap-filterprint [data-countup] {
    display: inline;
    min-height: 0;
    margin: 0;
    padding: 0;
    color: inherit;
    background: none;
    border: 0;
    font: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
}

/* карточка формата шире, когда их всего две — иллюстрации крупнее */
.aps-formats[style*="--aps-formats-cols: 2"] .aps-format__art { height: 250px; }

/* состав фильтр-бумаги: полосы «наливаются» при появлении в кадре */
.ap-materialstory__wood,
.ap-materialstory__thermo {
    clip-path: inset(0 100% 0 0);
    transition: clip-path 1.05s cubic-bezier(.16, 1, .3, 1);
}
.ap-materialstory__thermo { transition-delay: .18s; }
.ap-materialstory__composition.is-filled .ap-materialstory__wood,
.ap-materialstory__composition.is-filled .ap-materialstory__thermo {
    clip-path: inset(0 0 0 0);
}
@media (prefers-reduced-motion: reduce) {
    .ap-materialstory__wood,
    .ap-materialstory__thermo { clip-path: none !important; transition: none !important; }
}

/* ============================================================
   Главная · «Ваш печатный проект» — превью-лента кадров v3
   ============================================================ */
.ap-filterprint__note {
    max-width: 560px;
    margin: 16px 0 0;
    color: rgba(226, 238, 255, .5);
    font-size: 13px;
    line-height: 1.6;
}
.ap-filterprint__film,
.ap-filterprint__film-light { inset: 0 0 116px; }

.ap-filterprint__bar {
    display: grid;
    gap: 12px;
    min-height: 0;
}
.ap-filterprint__caption { max-width: 100%; }

.ap-filterprint__dots {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}
.ap-filterprint__dots button {
    position: relative;
    width: auto;
    height: auto;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 12px;
    cursor: pointer;
    transition: border-color .25s ease, transform .3s cubic-bezier(.16, 1, .3, 1), background .25s ease;
}
.ap-filterprint__dots button::before { content: none; }
.ap-filterprint__dots button img {
    display: block;
    width: 100%;
    height: 100%;
    padding: 8%;
    object-fit: contain;
    opacity: .42;
    transition: opacity .3s ease, transform .45s cubic-bezier(.16, 1, .3, 1);
}
.ap-filterprint__dots button:hover {
    background: rgba(255, 255, 255, .07);
    border-color: rgba(255, 255, 255, .24);
    transform: translateY(-2px);
}
.ap-filterprint__dots button:hover img { opacity: .78; }
.ap-filterprint__dots button.is-active {
    background: rgba(99, 167, 255, .1);
    border-color: rgba(132, 186, 255, .55);
}
.ap-filterprint__dots button.is-active img { opacity: 1; transform: scale(1.04); }
.ap-filterprint__dots button i {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    top: auto;
    width: 0;
    height: 3px;
    background: var(--ap-accent);
    border-radius: 0;
}
.ap-filterprint__dots button.is-active i { width: 100%; }
.ap-filterprint__dots button.is-active.is-running i {
    width: 0;
    animation: apThumbFill var(--ap-dot-duration, 4600ms) linear forwards;
}
.ap-filterprint__dots button.is-passed::before { content: none; }
@keyframes apThumbFill { from { width: 0; } to { width: 100%; } }

@media (max-width: 620px) {
    .ap-filterprint__film,
    .ap-filterprint__film-light { inset: 0 0 96px; }
    .ap-filterprint__dots { gap: 6px; }
    .ap-filterprint__dots button { border-radius: 9px; }
    .ap-filterprint__dots button.is-active i { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .ap-filterprint__dots button.is-active.is-running i { animation: none !important; width: 100%; }
}

/* ============================================================
   Ссылки на печатные проекты в шапке и футере
   ============================================================ */
/* мегаменю: отдельная колонка с двумя лендингами */
.ap-megamenu__col--projects { min-width: 260px; }
.ap-megamenu__title--plain { color: var(--ap-ink-faint, #7d8ea4); cursor: default; }
.ap-mmproject-list { display: grid; gap: 8px; margin-top: 12px; }
.ap-mmproject {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 14px;
    align-items: center;
    gap: 12px;
    padding: 11px 13px;
    color: var(--ap-ink);
    background: var(--ap-bg, #f3f7fc);
    border: 1px solid rgba(9, 26, 48, .07);
    border-radius: 13px;
    transition: border-color .2s ease, background .2s ease, transform .2s cubic-bezier(.16, 1, .3, 1);
}
.ap-mmproject:hover {
    color: var(--ap-ink);
    background: #fff;
    border-color: rgba(12, 106, 216, .3);
    transform: translateX(2px);
}
.ap-mmproject__icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    color: var(--ap-accent);
    background: rgba(12, 106, 216, .1);
    border-radius: 11px;
    font-size: 15px;
}
.ap-mmproject__body { display: grid; gap: 2px; min-width: 0; }
.ap-mmproject__body b { font-size: 13px; font-weight: 700; letter-spacing: -.01em; }
.ap-mmproject__body em { color: #7d8ea4; font-size: 11px; font-style: normal; line-height: 1.4; }
.ap-mmproject__go { color: #b3c2d4; font-size: 11px; transition: color .2s ease, transform .2s ease; }
.ap-mmproject:hover .ap-mmproject__go { color: var(--ap-accent); transform: translateX(2px); }

/* вторая строка шапки: акцентные пункты печатных проектов */
.ap-mainnav__project > a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.ap-mainnav__project > a::before {
    content: "";
    width: 5px;
    height: 5px;
    background: var(--ap-accent);
    border-radius: 50%;
    flex: 0 0 auto;
}
.ap-mainnav__project > a:hover::before { background: var(--ap-accent-dark, #0a56b6); }

/* футер: печатные проекты отдельной группой */
.ap-footer__subhead { margin-top: 22px; }
.ap-footer__projects li a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}
.ap-footer__projects li a i {
    width: 16px;
    color: var(--ap-accent-dark);
    font-size: 13px;
    text-align: center;
}
@media (max-width: 900px) {
    .ap-megamenu__col--projects { min-width: 0; }
}

/* ============================================================
   Карточка товара: компактная ссылка на печатный проект
   ============================================================ */
.ap-brandcta {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 14px;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
    padding: 12px 14px;
    color: var(--ap-ink);
    background: linear-gradient(120deg, rgba(12, 106, 216, .07), rgba(12, 106, 216, .02));
    border: 1px solid rgba(12, 106, 216, .18);
    border-radius: 14px;
    transition: border-color .2s ease, background .2s ease, transform .2s cubic-bezier(.16, 1, .3, 1);
}
.ap-brandcta:hover {
    color: var(--ap-ink);
    background: linear-gradient(120deg, rgba(12, 106, 216, .13), rgba(12, 106, 216, .04));
    border-color: rgba(12, 106, 216, .4);
    transform: translateY(-2px);
}
.ap-brandcta__icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    color: var(--ap-accent);
    background: rgba(12, 106, 216, .12);
    border-radius: 11px;
    font-size: 15px;
}
.ap-brandcta__body { display: grid; gap: 2px; min-width: 0; }
.ap-brandcta__body b { font-size: 13px; font-weight: 700; letter-spacing: -.01em; }
.ap-brandcta__body em {
    color: #7d8ea4;
    font-size: 11px;
    font-style: normal;
    line-height: 1.4;
}
.ap-brandcta__go { color: #9db2c9; font-size: 11px; transition: color .2s ease, transform .2s ease; }
.ap-brandcta:hover .ap-brandcta__go { color: var(--ap-accent); transform: translateX(3px); }

/* ============================================================
   Главная · «Ваш печатный проект» — motion-сцена v4
   Две коробочки вместо слайдера: парение, вращающееся кольцо,
   проход печатной головки и плавающие CMYK-пятна.
   ============================================================ */
.ap-filterprint__copy h2 {
    margin: 18px 0 20px;
    font-size: clamp(38px, 3.9vw, 62px);
    letter-spacing: -.05em;
    line-height: .94;
}
.ap-filterprint__copy > p { font-size: clamp(15px, 1.05vw, 17px); line-height: 1.6; }
.ap-filterprint__chips { margin-top: 20px; }
.ap-filterprint__tiers { margin-top: 20px; }
.ap-filterprint__tiers > span { padding: 14px 16px; }
.ap-filterprint__tiers b { font-size: 21px; }
.ap-filterprint__note { margin-top: 12px; font-size: 12.5px; }
.ap-filterprint__button { margin-top: 22px; min-height: 52px; }
.ap-filterprint__more { margin-top: 22px; }
.ap-filterprint { padding: clamp(64px, 6.5vw, 104px) 0; }

.ap-fpscene {
    position: relative;
    width: min(100%, 600px);
    margin-inline: auto;
    aspect-ratio: 1 / 1;
    isolation: isolate;
}
.ap-fpscene__halo {
    position: absolute;
    inset: 8% 6% 12%;
    z-index: 0;
    background: radial-gradient(closest-side, rgba(45, 118, 208, .38), rgba(12, 60, 120, .12) 62%, transparent 76%);
    filter: blur(6px);
    animation: apSceneBreathe 9s ease-in-out infinite;
    pointer-events: none;
}
.ap-fpscene__ring {
    position: absolute;
    inset: 12%;
    z-index: 1;
    border-radius: 50%;
    background: conic-gradient(
        from 0deg,
        transparent 0deg,
        rgba(120, 180, 255, .55) 42deg,
        rgba(120, 180, 255, .06) 96deg,
        transparent 190deg,
        rgba(120, 180, 255, .28) 300deg,
        transparent 360deg
    );
    -webkit-mask: radial-gradient(closest-side, transparent 0 72%, #000 73.5%, #000 100%);
    mask: radial-gradient(closest-side, transparent 0 72%, #000 73.5%, #000 100%);
    animation: apSceneSpin 22s linear infinite;
    pointer-events: none;
}
.ap-fpscene__packs {
    position: absolute;
    inset: 0;
    z-index: 3;
    transform: translate3d(var(--ap-film-pointer-x, 0px), var(--ap-film-pointer-y, 0px), 0);
    transition: transform .5s cubic-bezier(.16, 1, .3, 1);
}
.ap-fpscene__pack {
    position: absolute;
    aspect-ratio: 1040 / 1800;
    margin: 0;
    will-change: transform;
}
.ap-fpscene__pack img {
    display: block;
    width: auto;
    height: 100%;
    filter: drop-shadow(0 30px 34px rgba(0, 0, 0, .5));
}
.ap-fpscene__pack--front {
    z-index: 3;
    top: 9%;
    left: 50%;
    height: 78%;
    transform: translateX(-42%);
    animation: apPackFloatA 7.5s ease-in-out infinite;
}
.ap-fpscene__pack--back {
    z-index: 2;
    top: 17%;
    left: 50%;
    height: 62%;
    opacity: .82;
    transform: translateX(-100%);
    animation: apPackFloatB 9s ease-in-out infinite;
}
/* проход «печатной головки» по композиции */
.ap-fpscene__scan {
    position: absolute;
    z-index: 4;
    top: 0;
    right: 4%;
    left: 4%;
    height: 26%;
    background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(150, 200, 255, .05) 42%,
        rgba(190, 224, 255, .5) 50%,
        rgba(150, 200, 255, .05) 58%,
        transparent 100%
    );
    mix-blend-mode: screen;
    animation: apScenePass 6.5s cubic-bezier(.55, 0, .45, 1) infinite;
    pointer-events: none;
}
.ap-fpscene__floor {
    position: absolute;
    z-index: 1;
    bottom: 9%;
    left: 50%;
    width: 54%;
    height: 5%;
    background: radial-gradient(closest-side, rgba(0, 0, 0, .6), transparent 72%);
    filter: blur(5px);
    transform: translateX(-50%);
    animation: apSceneFloor 7.5s ease-in-out infinite;
    pointer-events: none;
}
/* пятна краски CMYK — очень мягкие, только намёк на печать */
.ap-fpscene__ink {
    position: absolute;
    z-index: 0;
    width: 15%;
    aspect-ratio: 1;
    border-radius: 50%;
    filter: blur(26px);
    opacity: .5;
    pointer-events: none;
}
.ap-fpscene__ink--c { top: 16%; left: 10%; background: #22b6e6; animation: apInkA 13s ease-in-out infinite; }
.ap-fpscene__ink--m { bottom: 20%; right: 8%; background: #e0459a; animation: apInkB 16s ease-in-out infinite; }
.ap-fpscene__ink--y { top: 58%; left: 16%; background: #e8b53c; opacity: .32; animation: apInkC 19s ease-in-out infinite; }
/* подписи-стикеры */
.ap-fpscene__tag {
    position: absolute;
    z-index: 5;
    padding: 7px 13px;
    color: rgba(233, 243, 255, .86);
    background: rgba(8, 22, 38, .6);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 999px;
    backdrop-filter: blur(10px);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
    pointer-events: none;
}
.ap-fpscene__tag--1 { top: 22%; right: 2%; animation: apTagA 7.5s ease-in-out infinite; }
.ap-fpscene__tag--2 { bottom: 20%; left: 0; animation: apTagB 9s ease-in-out infinite; }

@keyframes apSceneBreathe {
    0%, 100% { opacity: .85; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.05); }
}
@keyframes apSceneSpin { to { transform: rotate(360deg); } }
@keyframes apPackFloatA {
    0%, 100% { transform: translateX(-42%) translateY(0)     rotate(0deg); }
    50%      { transform: translateX(-42%) translateY(-16px) rotate(-1.1deg); }
}
@keyframes apPackFloatB {
    0%, 100% { transform: translateX(-100%) translateY(0)    rotate(0deg); }
    50%      { transform: translateX(-100%) translateY(12px) rotate(1.4deg); }
}
@keyframes apScenePass {
    0%       { transform: translateY(-40%); opacity: 0; }
    12%      { opacity: 1; }
    62%      { opacity: 1; }
    78%, 100%{ transform: translateY(420%); opacity: 0; }
}
@keyframes apSceneFloor {
    0%, 100% { opacity: .8; transform: translateX(-50%) scaleX(1); }
    50%      { opacity: .55; transform: translateX(-50%) scaleX(.88); }
}
@keyframes apInkA {
    0%, 100% { transform: translate(0, 0); }
    50%      { transform: translate(26px, 34px); }
}
@keyframes apInkB {
    0%, 100% { transform: translate(0, 0); }
    50%      { transform: translate(-30px, -26px); }
}
@keyframes apInkC {
    0%, 100% { transform: translate(0, 0); }
    50%      { transform: translate(18px, -30px); }
}
@keyframes apTagA {
    0%, 100% { transform: translateY(0);    opacity: .9; }
    50%      { transform: translateY(-9px); opacity: 1; }
}
@keyframes apTagB {
    0%, 100% { transform: translateY(0);   opacity: .82; }
    50%      { transform: translateY(8px); opacity: 1; }
}

@media (max-width: 980px) {
    .ap-fpscene { width: min(100%, 460px); margin-top: 36px; }
    .ap-fpscene__tag { font-size: 10px; padding: 6px 11px; }
}
@media (max-width: 620px) {
    .ap-fpscene { width: min(100%, 360px); }
    .ap-fpscene__tag--1 { right: -2%; }
    .ap-fpscene__tag--2 { left: -2%; }
}
@media (prefers-reduced-motion: reduce) {
    .ap-fpscene *,
    .ap-fpscene::before,
    .ap-fpscene::after { animation: none !important; }
    .ap-fpscene__scan { display: none; }
}

/* ============================================================
   Главная · «Ваш печатный проект» — светлая версия
   Согласована с новым оформлением первого экрана.
   ============================================================ */
.ap-filterprint {
    color: var(--ap-ink);
    background:
        radial-gradient(circle at 82% 38%, rgba(22, 183, 190, .14), transparent 29%),
        radial-gradient(circle at 22% 100%, rgba(11, 127, 136, .08), transparent 34%),
        linear-gradient(135deg, #f7faf9 0%, #edf5f5 58%, #f6f9f8 100%);
    border-top: 1px solid rgba(9, 26, 48, .07);
    border-bottom: 1px solid rgba(9, 26, 48, .07);
}
.ap-filterprint__grid {
    opacity: .48;
    background-image:
        linear-gradient(rgba(9, 74, 82, .075) 1px, transparent 1px),
        linear-gradient(90deg, rgba(9, 74, 82, .075) 1px, transparent 1px);
}
.ap-filterprint__ink {
    opacity: .09;
    filter: blur(18px);
}
.ap-filterprint__ink--one { background: var(--ap-accent); }
.ap-filterprint__ink--two { background: var(--ap-accent); }

.ap-filterprint__index { color: var(--ap-accent-dark); }
.ap-filterprint__copy h2 { color: #091a30; }
.ap-filterprint__copy h2 em { color: var(--ap-accent); }
.ap-filterprint__copy > p {
    color: rgba(9, 26, 48, .68);
}
.ap-filterprint__chips li {
    color: rgba(9, 26, 48, .62);
    background: rgba(255, 255, 255, .72);
    border-color: rgba(11, 127, 136, .16);
    box-shadow: 0 8px 24px rgba(9, 65, 73, .045);
}
.ap-filterprint__chips b { color: #091a30; }

.ap-filterprint__tiers > span {
    position: relative;
    overflow: hidden;
    background: rgba(255, 255, 255, .82);
    border-color: rgba(9, 26, 48, .11);
    box-shadow: 0 16px 38px rgba(9, 65, 73, .075);
    backdrop-filter: blur(14px);
}
.ap-filterprint__tiers > span::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: var(--ap-accent);
}
.ap-filterprint__tiers small { color: rgba(9, 26, 48, .5); }
.ap-filterprint__tiers b { color: #091a30; }
.ap-filterprint__tiers em { color: rgba(9, 26, 48, .48); }
.ap-filterprint__note { color: rgba(9, 26, 48, .62); }

.ap-filterprint__button {
    color: #061f25;
    background: var(--ap-accent);
    box-shadow: 0 16px 38px rgba(10, 186, 181, .22);
}
.ap-filterprint__button:hover {
    color: var(--ap-dark);
    background: var(--ap-accent-dark);
    box-shadow: 0 20px 46px rgba(10, 186, 181, .3);
}
.ap-filterprint__more { color: #0a6870; }
.ap-filterprint__more:hover { color: #06464d; }

.ap-filterprint__stage::after {
    background:
        radial-gradient(60% 46% at 50% 46%, rgba(22, 183, 190, .15), transparent 70%),
        radial-gradient(38% 8% at 50% 88%, rgba(9, 26, 48, .22), transparent 72%);
}
.ap-fpscene__halo {
    background: radial-gradient(closest-side, rgba(22, 183, 190, .22), rgba(11, 127, 136, .07) 62%, transparent 76%);
}
.ap-fpscene__ring {
    background: conic-gradient(
        from 0deg,
        transparent 0deg,
        rgba(22, 183, 190, .7) 42deg,
        rgba(11, 127, 136, .08) 96deg,
        transparent 190deg,
        rgba(11, 127, 136, .35) 300deg,
        transparent 360deg
    );
}
.ap-fpscene__pack img {
    filter: drop-shadow(0 28px 32px rgba(9, 26, 48, .27));
}
.ap-fpscene__scan {
    background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(22, 183, 190, .03) 42%,
        rgba(22, 183, 190, .38) 50%,
        rgba(22, 183, 190, .03) 58%,
        transparent 100%
    );
}
.ap-fpscene__floor {
    background: radial-gradient(closest-side, rgba(9, 26, 48, .34), transparent 72%);
}
.ap-fpscene__tag {
    color: #17424a;
    background: rgba(255, 255, 255, .76);
    border-color: rgba(11, 127, 136, .2);
    box-shadow: 0 10px 28px rgba(9, 65, 73, .09);
}

/* ============================================================
   Шапка: выпадающее меню «Компания» + мегаменю «Печатные проекты»
   ============================================================ */
/* мегаменю: проекты отдельной строкой во всю ширину, карточки в два столбца */
.ap-megamenu__col--projects {
    grid-column: 1 / -1;
    min-width: 0;
    margin-top: 4px;
    padding-top: 18px;
    border-top: 1px solid rgba(9, 26, 48, .08);
}
.ap-mmproject-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.ap-mmproject { align-items: flex-start; }
.ap-mmproject__body b { line-height: 1.25; }
@media (max-width: 900px) {
    .ap-mmproject-list { grid-template-columns: 1fr; }
}

/* выпадающее меню «Компания» */
.ap-cmenu { position: relative; }
.ap-cmenu__btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0;
    color: inherit;
    background: none;
    border: 0;
    cursor: pointer;
    font: inherit;
}
.ap-cmenu__chev {
    font-size: 10px;
    transition: transform .22s ease;
}
.ap-cmenu.is-open .ap-cmenu__chev { transform: rotate(180deg); }
.ap-cmenu__list {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    z-index: 60;
    display: grid;
    gap: 2px;
    min-width: 210px;
    margin: 0;
    padding: 8px;
    list-style: none;
    background: var(--ap-surface, #fff);
    border-radius: 14px;
    box-shadow: var(--ap-shadow-lg, 0 24px 60px rgba(9, 26, 48, .18));
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 6px);
    transition: opacity .2s ease, transform .22s cubic-bezier(.16, 1, .3, 1), visibility .2s ease;
}
.ap-cmenu.is-open .ap-cmenu__list {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}
.ap-cmenu__list li { margin: 0; }
.ap-cmenu__list a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    color: var(--ap-ink);
    border-radius: 9px;
    font-size: 13px;
    white-space: nowrap;
    transition: background .18s ease, color .18s ease;
}
.ap-cmenu__list a:hover { color: var(--ap-accent); background: var(--ap-bg, #f3f7fc); }
.ap-cmenu__list li.is-current a { color: var(--ap-accent); background: var(--ap-accent-soft, rgba(12,106,216,.08)); }
@media (max-width: 900px) {
    .ap-cmenu__list { left: 0; transform: translate(0, 6px); }
    .ap-cmenu.is-open .ap-cmenu__list { transform: translate(0, 0); }
}

/* ============================================================
   Карточка товара: парные плашки «оптовые условия» + «печать»
   ============================================================ */
.ap-pnotes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-top: 14px;
}
.ap-pnotes--single { grid-template-columns: 1fr; }
.ap-pnote {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 15px 17px;
    color: var(--ap-ink);
    background: linear-gradient(130deg, rgba(12, 106, 216, .07), rgba(12, 106, 216, .015));
    border: 1px solid rgba(12, 106, 216, .16);
    border-radius: 16px;
}
.ap-pnote--link {
    grid-template-columns: 42px minmax(0, 1fr) 14px;
    transition: border-color .2s ease, background .2s ease, transform .2s cubic-bezier(.16, 1, .3, 1), box-shadow .2s ease;
}
.ap-pnote--link:hover {
    color: var(--ap-ink);
    background: linear-gradient(130deg, rgba(12, 106, 216, .14), rgba(12, 106, 216, .04));
    border-color: rgba(12, 106, 216, .42);
    box-shadow: 0 14px 34px rgba(9, 26, 48, .1);
    transform: translateY(-2px);
}
.ap-pnote__icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    color: var(--ap-accent);
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(12, 106, 216, .14);
    border-radius: 12px;
    font-size: 16px;
}
.ap-pnote__body { display: grid; gap: 3px; min-width: 0; }
.ap-pnote__body b {
    font-size: 13.5px;
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.25;
}
.ap-pnote__body em {
    color: #7285a0;
    font-size: 11.5px;
    font-style: normal;
    line-height: 1.45;
}
.ap-pnote__go { color: #9db2c9; font-size: 11px; transition: color .2s ease, transform .2s ease; }
.ap-pnote--link:hover .ap-pnote__go { color: var(--ap-accent); transform: translateX(3px); }
@media (max-width: 760px) {
    .ap-pnotes { grid-template-columns: 1fr; }
}

/* вторая строка шапки: раньше пунктов было много и их резали overflow:hidden;
   теперь это два проекта + свёрнутое меню «Компания», выпадашке нужно место */
.ap-subbar__nav { overflow: visible; }
.ap-subbar .ap-mainnav__pages {
    overflow: visible;
    flex-wrap: wrap;
    row-gap: 2px;
}

/* «Компания» — это <button>, поэтому она не подхватывала стили .ap-mainnav__pages a
   (другой размер и насыщенность шрифта) и стояла впритык из-за нулевых паддингов */
.ap-mainnav__pages .ap-cmenu__btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 12px;
    color: inherit;
    background: none;
    border: 0;
    border-radius: var(--ap-radius-pill);
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    line-height: inherit;
    white-space: nowrap;
    transition: background .18s ease, color .18s ease;
}
.ap-subbar .ap-mainnav__pages .ap-cmenu__btn { padding: 6px 10px; font-size: 13.5px; }
.ap-mainnav__pages .ap-cmenu__btn:hover,
.ap-mainnav__pages .ap-cmenu.selected .ap-cmenu__btn {
    color: var(--ap-ink);
    background: rgba(22, 19, 15, .06);
}
/* отделяем печатные проекты от страниц о компании */
.ap-subbar .ap-mainnav__pages .ap-cmenu {
    margin-left: 12px;
    padding-left: 14px;
    border-left: 1px solid var(--ap-line);
}
@media (max-width: 700px) {
    .ap-subbar .ap-mainnav__pages .ap-cmenu {
        margin-left: 4px;
        padding-left: 0;
        border-left: 0;
    }
}

/* ============================================================
   Мобильная версия: лендинги во всю ширину и товарные ряды
   ============================================================ */
@media (max-width: 900px) {
    /* лендинг занимает всю ширину экрана: снимаем гуттеры обёртки страницы,
       иначе .ap-brandstory шириной 100vw вылезает за padding контейнера */
    .ap-content:has(.ap-brandstory) > .ap-container {
        padding-right: 0;
        padding-left: 0;
    }
    .ap-brandstory {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }
    .ap-storysection,
    .ap-formatlab,
    .ap-layerstory,
    .ap-processstory,
    .ap-teasizes,
    .ap-materialstory,
    .ap-brandingflow,
    .ap-teaprice,
    .ap-storycta,
    .aps-section {
        width: auto;
        margin-right: 10px;
        margin-left: 10px;
        padding: 30px 18px;
        border-radius: 20px;
    }
    .aps-section__head { margin-bottom: 26px; }
    .ap-storyhero { padding: 56px 18px 40px; border-radius: 0 0 22px 22px; }
}
@media (max-width: 600px) {
    .ap-storysection,
    .ap-formatlab,
    .ap-layerstory,
    .ap-processstory,
    .ap-teasizes,
    .ap-materialstory,
    .ap-brandingflow,
    .ap-teaprice,
    .ap-storycta,
    .aps-section {
        margin-right: 8px;
        margin-left: 8px;
        padding: 26px 15px;
        border-radius: 18px;
    }
    /* длинные слова заголовков не должны вылезать за экран */
    .ap-brandstory h1,
    .ap-brandstory h2,
    .ap-brandstory h3 {
        text-wrap: pretty;
        overflow-wrap: anywhere;
        hyphens: auto;
    }
    .aps-section__head h2 { font-size: clamp(28px, 8.4vw, 38px); }
    .ap-brandstory--coffee .ap-storysection--intro h2,
    .ap-brandstory .ap-storysection__split h2,
    .ap-formatlab h2,
    .ap-layerstory h2,
    .ap-processstory h2,
    .ap-materialstory h2,
    .ap-storycta h2 { font-size: clamp(28px, 8.4vw, 38px); }
    .ap-storyhero h1 { font-size: clamp(34px, 10.5vw, 52px); }
}

/* товары на лендингах: свайп по горизонтали, виден один товар и край следующего */
@media (max-width: 760px) {
    .aps-section .ap-grid.product-list {
        display: grid;
        grid-auto-flow: column;
        grid-template-columns: none;
        grid-auto-columns: 82%;
        gap: 10px;
        margin-right: -15px;
        padding-right: 15px;
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-inline: contain;
        scroll-snap-type: inline mandatory;
        scroll-padding-left: 0;
        touch-action: pan-y pinch-zoom;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    .aps-section .ap-grid.product-list::-webkit-scrollbar { display: none; }
    .aps-section .ap-grid.product-list > li,
    .aps-section .ap-grid.product-list > .ap-card {
        min-width: 0;
        scroll-snap-align: start;
    }

    /* главная: товары по одному в ряд, вниз */
    .ap-content--home .ap-grid--2,
    .ap-content--home .ap-grid--3,
    .ap-content--home .ap-grid--4 {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}

/* ============================================================
   Страница товара на мобильном: компактный верх карточки
   ============================================================ */
@media (max-width: 760px) {
    /* ── галерея ── */
    .ap-product__media { gap: 10px; }
    .ap-product__figure,
    .ap-product__media .img-main { margin: 0; }
    .ap-product__media .img-main .ap-product__figure { padding: 10px; border-radius: 16px; }
    .ap-product__media .img-main img {
        max-height: min(58vh, 440px);
        object-fit: contain;
    }
    /* стрелки съедали ~90px ширины полосы — на тач-экране листается свайпом */
    .ap-gallery-arrow { display: none !important; }
    .ap-product__media .img-thumbs { gap: 0; }
    .img-thumbs .more-images {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        scroll-snap-type: inline proximity;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    .img-thumbs .more-images::-webkit-scrollbar { display: none; }
    .img-thumbs .image {
        flex: 0 0 auto;
        width: 56px;
        height: 56px;
        scroll-snap-align: start;
    }
    .img-thumbs .image img { width: 100%; height: 100%; object-fit: contain; }

    /* ── заголовочный блок ── */
    .ap-product__heading {
        grid-template-columns: 1fr;
        gap: 7px;
        margin-bottom: 4px;
    }
    .ap-auth-promo--compact {
        justify-self: stretch;
        width: 100%;
        max-width: none;
    }
    .ap-product__infocol { gap: 0; }
    .ap-product__meta { margin-bottom: 4px; }
    .ap-product__title { margin: 0; font-size: 23px; line-height: 1.12; letter-spacing: -.02em; }
    .ap-product__key-specs { margin: 0 0 8px; gap: 6px; }
    .ap-product__key-spec { padding: 6px 10px; font-size: 12px; }
    .ap-product__summary { margin: 10px 0 0; font-size: 14px; line-height: 1.5; }

    /* артикул + сравнение + наличие — одной компактной строкой */
    .ap-product__codeline {
        flex-wrap: wrap;
        gap: 6px 10px;
        margin: 0;
        font-size: 12.5px;
    }
    .ap-product__codeline-sep { display: none; }
    .ap-product__compare-toggle {
        padding: 6px 11px;
        border-radius: 999px;
        font-size: 12px;
    }
    .ap-product__compare-toggle svg { width: 14px; height: 14px; }
    .ap-product__compare-go {
        padding: 6px 11px;
        font-size: 12px;
    }
    .ap-codeline-stock { margin-top: 6px; font-size: 12.5px; }
    .ap-codeline-stock .row { gap: 4px !important; }

    /* ── блок покупки ── */
    .ap-product__cart { padding: 14px; border-radius: 16px; }
    .ap-buy__params { gap: 12px; padding-bottom: 12px; }
    .ap-buy__prices { padding: 12px 0; }
    .ap-buy__action {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        align-items: flex-end;
        padding-top: 12px;
    }
    .ap-buy__field--qty { flex: 0 0 auto; }
    .ap-buy__action .ap-buybar {
        display: flex;
        flex: 1 1 190px;
        gap: 8px;
        min-width: 0;
    }
    .ap-buy__action .ap-buybar__buy { flex: 1 1 auto; min-width: 0; padding: 0 14px; }
    /* «Запросить прайс» — вторичное действие, отдельной строкой и без чёрной заливки */
    .ap-buy__price-link {
        flex: 1 1 100%;
        justify-content: center;
        width: 100%;
        min-width: 0;
        max-width: none;
        height: 48px;
        min-height: 48px;
        color: var(--ap-ink);
        background: var(--ap-bg, #f3f7fc);
        border: 1px solid var(--ap-line);
        box-shadow: none;
    }
    .ap-buy__price-link:hover { color: var(--ap-ink); background: #e9f0fa; }
}
@media (max-width: 520px) {
    .ap-product__title { font-size: 21px; }
    .ap-product__media .img-main img { max-height: min(50vh, 380px); }
    .img-thumbs .image { width: 50px; height: 50px; }
    .ap-pnote { padding: 13px 14px; gap: 12px; grid-template-columns: 38px minmax(0, 1fr); }
    .ap-pnote--link { grid-template-columns: 38px minmax(0, 1fr) 12px; }
    .ap-pnote__icon { width: 38px; height: 38px; font-size: 14px; }
}

/* строка мета-данных товара на мобильном: артикул и наличие — первой строкой,
   управление сравнением — второй и подчёркнуто вторичное (это навигация, не CTA) */
@media (max-width: 760px) {
    .ap-product__codeline {
        align-items: center;
        gap: 4px 10px;
    }
    .ap-product__code { order: 1; }
    .ap-product__codeline .ap-codeline-stock { order: 2; margin-top: 0; }
    .ap-product__compare-actions {
        order: 3;
        flex-basis: 100%;
        display: flex;
        gap: 8px;
        margin-top: 4px;
    }
    .ap-product__compare-toggle,
    .ap-product__compare-go {
        flex: 0 0 auto;
        min-height: 34px;
        padding: 6px 12px;
        font-size: 12px;
        font-weight: 600;
    }
    .ap-product__compare-go {
        color: var(--ap-ink-soft);
        background: transparent;
        border-color: var(--ap-line);
    }
    .ap-product__compare-go .count {
        min-width: 18px;
        height: 18px;
        color: var(--ap-ink);
        background: rgba(9, 26, 48, .08);
        font-size: 10.5px;
    }
    .ap-product__compare-go svg { opacity: .6; }
}

/* ============================================================
   Сравнение товаров на мобильном: компактные колонки со снапом
   ============================================================ */
@media (max-width: 760px) {
    /* стрелки лежали поверх фото второго товара и перекрывали его крестик;
       на тач-экране колонки листаются свайпом */
    .ap-compare__nav { display: none !important; }
    .ap-compare__stage.is-scrollable .ap-compare__nav { display: none !important; }

    .ap-compare__scroll {
        scroll-snap-type: inline mandatory;
        scroll-padding-inline-start: 0;
        scrollbar-width: none;
    }
    .ap-compare__scroll::-webkit-scrollbar { display: none; }

    /* колонка товара: чуть уже, чтобы край следующей читался как «листай» */
    .ap-compare__product-head,
    .ap-compare__table tbody td {
        width: 74vw;
        min-width: 74vw;
        scroll-snap-align: start;
    }
    .ap-compare__table {
        min-width: max(100%, calc(var(--ap-compare-count, 2) * 74vw));
    }
    .ap-compare__product-head { padding: 10px; }

    /* шапка с товаром закрепляется сверху — видно, чья это колонка */
    .ap-compare__product-head {
        position: sticky;
        top: 0;
        z-index: 6;
        box-shadow: 0 1px 0 var(--ap-line);
    }

    /* карточка товара в шапке: фото слева, название справа */
    .ap-compare--few .ap-compare-card,
    .ap-compare--single .ap-compare-card,
    .ap-compare-card {
        display: grid;
        grid-template-columns: 84px minmax(0, 1fr);
        align-items: center;
        gap: 10px;
        min-height: 0;
    }
    .ap-compare--few .ap-compare-card__image,
    .ap-compare--single .ap-compare-card__image,
    .ap-compare-card__image {
        width: 84px;
        height: 84px;
        border-radius: 12px;
    }
    .ap-compare-card__body { min-width: 0; }
    .ap-compare-card__name {
        font-size: 12.5px;
        line-height: 1.25;
        padding-right: 26px;
    }
    .ap-compare-card__more { font-size: 11.5px; }
    .ap-compare-card__remove {
        top: -2px;
        right: -2px;
        width: 30px;
        height: 30px;
    }

    /* строки характеристик плотнее */
    .ap-compare__table tbody td { padding: 10px 12px; }
    .ap-compare__table tbody td::before {
        margin-bottom: 2px;
        font-size: 9.5px;
        letter-spacing: .07em;
    }
    .ap-compare__table .divider th { padding: 8px 12px; }
}

/* ============================================================
   Light editorial refresh · 2026
   Общая визуальная система для главной и сервисных лендингов:
   светлая база, тёмный текст, бирюзовый функциональный акцент.
   ============================================================ */

/* ---------- Главная: печатные проекты ---------- */
.ap-world-section {
    background: #edf4f6;
}
.ap-world {
    color: var(--ap-ink);
    background: #edf4f6;
}
.ap-world__progress {
    background: rgba(11, 26, 48, .08);
}
.ap-world__progress i {
    background: linear-gradient(90deg, var(--ap-accent), var(--ap-accent-2));
}
.ap-world__story {
    color: var(--ap-ink);
    background:
        radial-gradient(circle at 8% 10%, rgba(22, 183, 190, .13), transparent 32%),
        linear-gradient(145deg, #f8fbfb 0%, #edf5f6 72%);
    border-color: rgba(11, 127, 136, .14);
}
.ap-world__story::after {
    background: linear-gradient(90deg, rgba(237, 245, 246, .86), transparent);
}
.ap-world__variant {
    color: #607181;
}
.ap-world__eyebrow {
    color: var(--ap-accent);
}
.ap-world__title {
    color: var(--ap-ink);
}
.ap-world__chapter p {
    color: #526678;
}
.ap-world__hint {
    color: #71808e;
}
.ap-world__tags span,
.ap-world__facts span {
    color: #607181;
    background: rgba(255, 255, 255, .64);
    border-color: rgba(11, 127, 136, .18);
}
.ap-world__facts b {
    color: var(--ap-ink);
}
.ap-world__button {
    color: #fff;
    background: var(--ap-accent);
    box-shadow: 0 14px 30px rgba(11, 127, 136, .2);
}
.ap-world__button:hover {
    color: #fff;
    background: var(--ap-accent-dark);
}
.ap-world__button:focus-visible,
.ap-world__nav button:focus-visible {
    outline-color: var(--ap-accent-2);
}
.ap-world__nav button {
    color: #8794a0;
}
.ap-world__nav button.is-active {
    color: var(--ap-ink);
}
.ap-world__nav button.is-active i {
    background: var(--ap-accent);
    border-color: var(--ap-accent);
}

/* ---------- Главная: оптовые условия ---------- */
.ap-advantages.ap-section--dark {
    position: relative;
    color: var(--ap-ink);
    background:
        radial-gradient(circle at 86% 4%, rgba(22, 183, 190, .11), transparent 32%),
        linear-gradient(180deg, #edf5f6 0%, #f7fafb 100%);
    border-top: 1px solid rgba(11, 127, 136, .1);
    border-bottom: 1px solid rgba(11, 127, 136, .1);
}
.ap-advantages .ap-section__title--light {
    color: var(--ap-ink);
}
.ap-advantages__lead {
    color: #586a7a;
}
.ap-advantage {
    color: var(--ap-ink);
    background: rgba(255, 255, 255, .86);
    border-color: rgba(11, 127, 136, .13);
    box-shadow: 0 18px 44px rgba(15, 39, 53, .06);
}
.ap-advantage:hover {
    background: #fff;
    border-color: rgba(11, 127, 136, .28);
    box-shadow: 0 24px 54px rgba(15, 39, 53, .1);
}
.ap-advantage__num {
    color: var(--ap-accent);
}
.ap-advantage h3 {
    color: var(--ap-ink);
}
.ap-advantage p {
    color: #5e6f7f;
}
.ap-advantage--accent {
    background:
        radial-gradient(circle at 88% 12%, rgba(22, 183, 190, .15), transparent 36%),
        linear-gradient(145deg, #e5f7f7, #f7fbfb);
    border-color: rgba(11, 127, 136, .3);
}

/* ---------- Главная: заявка на прайс ---------- */
.ap-cta2 {
    color: var(--ap-ink);
    background:
        radial-gradient(circle at 88% 10%, rgba(22, 183, 190, .16), transparent 34%),
        linear-gradient(135deg, #ffffff 0%, #edf7f7 100%);
    border: 1px solid rgba(11, 127, 136, .16);
    box-shadow: 0 28px 68px rgba(15, 39, 53, .1);
}
.ap-cta2__glow {
    background: radial-gradient(circle, rgba(22, 183, 190, .21) 0%, transparent 68%);
}
.ap-cta2__badge {
    color: var(--ap-accent-dark);
    background: rgba(22, 183, 190, .09);
    border-color: rgba(11, 127, 136, .24);
}
.ap-cta2__title {
    color: var(--ap-ink);
}
.ap-cta2__title em {
    color: var(--ap-accent);
}
.ap-cta2__sub {
    color: #586a7a;
}
.ap-cta2__feats li {
    color: #34495a;
    background: rgba(255, 255, 255, .8);
    border-color: rgba(11, 127, 136, .14);
}
.ap-cta2__feats li i,
.ap-cta2__phone i {
    color: var(--ap-accent);
}
.ap-cta2__phone {
    color: var(--ap-ink);
}
.ap-cta2__phone:hover {
    color: var(--ap-accent-dark);
}
.ap-cta2__page {
    background:
        radial-gradient(circle at 85% 12%, rgba(22, 183, 190, .22), transparent 30%),
        linear-gradient(145deg, #0b2439, #071526);
    border-color: rgba(22, 183, 190, .32);
}
.ap-cta2__page-brand {
    color: #6bd7da;
}

/* ---------- Сервисные страницы: общая палитра ---------- */
.ap-brandstory {
    --story-blue: #0b7f88;
    --story-blue-light: #16b7be;
    --story-blue-bright: #16b7be;
    --story-ice: #e2f7f7;
    --story-navy: #0b1a30;
    --story-navy-2: #17344a;
    --story-copy: #5a6d7f;
    --aps-line: rgba(11, 127, 136, .16);
    --aps-muted: #5f7181;
    color: var(--ap-ink);
    background:
        radial-gradient(circle at 86% 4%, rgba(22, 183, 190, .1), transparent 26%),
        #edf4f6;
}
.ap-storyhero,
.ap-storyhero.ap-storyhero--tea {
    color: var(--ap-ink);
    background:
        linear-gradient(rgba(11, 127, 136, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(11, 127, 136, .055) 1px, transparent 1px),
        radial-gradient(circle at 76% 42%, rgba(22, 183, 190, .2), transparent 32%),
        linear-gradient(135deg, #f8fbfb 0%, #e8f3f5 55%, #d7ecef 100%);
    background-size: 74px 74px, 74px 74px, auto, auto;
    border: 1px solid rgba(11, 127, 136, .13);
    box-shadow: 0 32px 82px rgba(15, 39, 53, .13);
}
.ap-storyhero::before {
    background: rgba(22, 183, 190, .18);
    opacity: 1;
}
.ap-storyhero::after {
    background: rgba(11, 127, 136, .1);
}
.ap-storyhero__glow {
    background: rgba(22, 183, 190, .18);
}
.ap-storyhero__kicker,
.ap-storysection__eyebrow,
.aps-section__eyebrow,
.aps-section--dark .aps-section__eyebrow {
    color: var(--ap-accent);
}
.ap-storyhero h1 {
    color: var(--ap-ink);
}
.ap-storyhero h1 em {
    color: var(--ap-accent);
}
.ap-storyhero__copy > p {
    color: #526678;
}
.ap-storybtn--primary {
    color: #fff;
    background: var(--ap-accent);
    border-color: var(--ap-accent);
    box-shadow: 0 16px 36px rgba(11, 127, 136, .24);
}
.ap-storybtn--primary:hover {
    color: #fff;
    background: var(--ap-accent-dark);
    border-color: var(--ap-accent-dark);
    box-shadow: 0 22px 44px rgba(11, 127, 136, .3);
}
.ap-storybtn--ghost {
    color: var(--ap-ink);
    background: rgba(255, 255, 255, .5);
    border-color: rgba(11, 26, 48, .18);
}
.ap-storybtn--ghost:hover {
    color: var(--ap-ink);
    background: #fff;
    border-color: rgba(11, 127, 136, .34);
}
.ap-storybtn:focus-visible {
    outline-color: rgba(22, 183, 190, .55);
}
.ap-storyhero__facts {
    background: rgba(11, 127, 136, .13);
    border-color: rgba(11, 127, 136, .13);
}
.ap-storyhero__facts span {
    color: #657584;
    background: rgba(255, 255, 255, .8);
}
.ap-storyhero__facts b {
    color: var(--ap-ink);
}
.ap-storyhero__studio::before,
.ap-storyhero__studio::after {
    border-color: rgba(11, 127, 136, .22);
}
.ap-storyhero__spotlight {
    background: rgba(22, 183, 190, .2);
}
.ap-storyhero__scroll {
    color: #647685;
}
.ap-storyhero__scroll i {
    background: rgba(11, 26, 48, .16);
}
.ap-storyhero__scroll i::after {
    background: var(--ap-accent);
}
.ap-storypack,
.ap-teapack {
    filter: drop-shadow(0 30px 32px rgba(15, 39, 53, .2));
}
.ap-storyhero__studio:hover .ap-storypack,
.ap-storyhero__studio:hover .ap-teapack {
    filter: drop-shadow(0 38px 38px rgba(15, 39, 53, .27));
}

/* Тёмные секции старой версии становятся светлыми, но сохраняют ритм. */
.aps-section--dark {
    color: var(--ap-ink);
    background:
        radial-gradient(circle at 88% 5%, rgba(22, 183, 190, .12), transparent 34%),
        linear-gradient(150deg, #f8fbfb, #e8f3f5);
    border: 1px solid rgba(11, 127, 136, .13);
    box-shadow: 0 24px 62px rgba(15, 39, 53, .08);
}
.aps-section--dark .aps-section__head p,
.aps-section--dark .aps-step p {
    color: var(--aps-muted);
}
.aps-section--dark .aps-steps::before {
    background: rgba(11, 127, 136, .14);
}
.aps-section--dark .aps-step__dot {
    background: #c8dcdf;
}
.aps-section--dark .aps-step__num {
    color: var(--ap-accent);
}
.aps-step.is-active .aps-step__dot,
.aps-step.is-passed .aps-step__dot {
    background: var(--ap-accent);
    box-shadow: 0 0 0 5px rgba(11, 127, 136, .13);
}
.aps-steps::after,
.aps-phase__bar i {
    background: linear-gradient(90deg, var(--ap-accent), var(--ap-accent-2));
    box-shadow: 0 0 18px rgba(11, 127, 136, .22);
}

/* Форматы: белые предметные карточки вместо синего массива. */
.aps-section--dark .aps-format {
    color: var(--ap-ink);
    background:
        radial-gradient(circle at 86% 6%, rgba(22, 183, 190, .09), transparent 32%),
        #fff;
    border-color: rgba(11, 127, 136, .14);
    box-shadow: 0 18px 44px rgba(15, 39, 53, .07);
}
.aps-section--dark .aps-format:hover {
    border-color: rgba(11, 127, 136, .32);
    box-shadow: 0 28px 58px rgba(15, 39, 53, .12);
}
.aps-section--dark .aps-format__tag,
.aps-section--dark .aps-format__link {
    color: var(--ap-accent);
}
.aps-section--dark .aps-format__art svg {
    stroke: var(--ap-accent);
}
.aps-section--dark .aps-format__art [data-fade][fill] {
    fill: rgba(22, 183, 190, .18);
}
.aps-section--dark .aps-format__link:hover {
    color: var(--ap-accent-dark);
}
.aps-section--dark .aps-format > p {
    color: #5e7182;
}
.aps-section--dark .aps-format__specs {
    background: #dce9eb;
}
.aps-section--dark .aps-format__specs li {
    color: var(--ap-ink);
    background: #f4f8f9;
}
.aps-section--dark .aps-format__specs span {
    color: #687988;
}
.aps-section--dark .aps-format__specs b {
    color: var(--ap-ink);
}

/* Таймлайн, галереи и калькулятор на светлой поверхности. */
.aps-section--dark .aps-phase {
    background: rgba(255, 255, 255, .72);
    border-color: rgba(11, 127, 136, .13);
}
.aps-section--dark .aps-phase__when {
    color: var(--ap-accent);
}
.aps-section--dark .aps-phase__bar {
    background: rgba(11, 127, 136, .11);
}
.aps-section--dark .aps-shot {
    background: linear-gradient(165deg, #dcecef, #f7fbfb);
    box-shadow: 0 20px 48px rgba(15, 39, 53, .12);
}
.aps-section--dark .aps-calc__field label,
.aps-section--dark .aps-calc__value span,
.aps-section--dark .aps-calc__marks,
.aps-section--dark .aps-calc__row span,
.aps-section--dark .aps-calc__note {
    color: #627484;
}
.aps-section--dark .aps-calc__range {
    background: linear-gradient(
        90deg,
        var(--ap-accent) 0 var(--aps-fill, 0%),
        rgba(11, 127, 136, .13) var(--aps-fill, 0%) 100%
    );
}
.aps-section--dark .aps-calc__chips button {
    color: #4f6273;
    background: rgba(255, 255, 255, .72);
    border-color: rgba(11, 127, 136, .15);
}
.aps-section--dark .aps-calc__chips button:hover,
.aps-section--dark .aps-calc__chips button.is-active {
    color: #fff;
    background: var(--ap-accent);
    border-color: var(--ap-accent);
}
.aps-section--dark .aps-calc__result {
    background: rgba(255, 255, 255, .82);
    border-color: rgba(11, 127, 136, .15);
    box-shadow: 0 18px 40px rgba(15, 39, 53, .07);
}
.aps-section--dark .aps-calc__row {
    border-color: rgba(11, 127, 136, .11);
}
.aps-section--dark .aps-calc__row--total span {
    color: var(--ap-ink);
}
.aps-section--dark .aps-calc__row--total b,
.aps-section--dark .aps-calc__badge {
    color: var(--ap-accent-dark);
}
.aps-section--dark .aps-calc__badge {
    background: rgba(22, 183, 190, .11);
}

/* Финальные CTA и цветные карточки — светлая фирменная версия. */
.ap-storycta,
.ap-brandstory--coffee .ap-storycta,
.ap-teaprice {
    color: var(--ap-ink);
    background:
        radial-gradient(circle at 90% 12%, rgba(22, 183, 190, .17), transparent 34%),
        linear-gradient(135deg, #ffffff, #def1f2);
    border: 1px solid rgba(11, 127, 136, .16);
    box-shadow: 0 24px 62px rgba(15, 39, 53, .09);
}
.ap-storycta > div > span,
.ap-storycta p,
.ap-brandstory--coffee .ap-storycta p,
.ap-teaprice__copy .ap-storysection__eyebrow,
.ap-teaprice__copy p {
    color: #5c6f80;
}
.ap-storycta > div > span,
.ap-teaprice__copy .ap-storysection__eyebrow {
    color: var(--ap-accent);
}
.ap-brandstory--coffee .ap-storycta .ap-storybtn--primary {
    color: #fff;
    background: var(--ap-accent);
    box-shadow: 0 16px 38px rgba(11, 127, 136, .22);
}
.ap-brandstory--coffee .ap-pathcard--accent {
    color: var(--ap-ink);
    border-color: rgba(11, 127, 136, .25);
    background:
        radial-gradient(circle at 88% 12%, rgba(22, 183, 190, .15), transparent 34%),
        linear-gradient(145deg, #e6f7f7, #f8fbfb);
    box-shadow: 0 18px 44px rgba(15, 39, 53, .07);
}
.ap-brandstory--coffee .ap-pathcard--accent h3,
.ap-brandstory--coffee .ap-pathcard--accent li {
    color: var(--ap-ink);
}
.ap-brandstory--coffee .ap-pathcard--accent p {
    color: #566a7a;
}
.ap-teaprice__tiers article {
    color: var(--ap-ink);
    background: rgba(255, 255, 255, .74);
    border-color: rgba(11, 127, 136, .15);
}
.ap-teaprice__tiers span,
.ap-teaprice__tiers em {
    color: #617383;
}

@media (max-width: 980px) {
    .ap-world__story::after { display: none; }
}

@media (max-width: 600px) {
    .ap-storyhero,
    .ap-storyhero.ap-storyhero--tea {
        border-radius: 0 0 26px 26px;
    }
    .ap-advantages.ap-section--dark {
        padding-bottom: 52px;
    }
    .ap-cta2 {
        border-radius: 24px;
    }
}

/* ============================================================
   Service pages: final Tiffany brand palette and hero fact cards
   ============================================================ */
.ap-brandstory {
    --ap-accent: #2acbc5;
    --ap-accent-dark: #18b8b3;
    --ap-accent-soft: #e8fbfa;
    --ap-accent-2: #54d8d3;
    --story-blue: #2acbc5;
    --story-blue-light: #54d8d3;
    --story-blue-bright: #54d8d3;
    --story-ice: #e8fbfa;
    --aps-line: rgba(10, 186, 181, .16);
    background:
        radial-gradient(circle at 86% 4%, rgba(84, 216, 211, .11), transparent 27%),
        #edf9f8;
}

.ap-brandstory .ap-storyhero,
.ap-brandstory .ap-storyhero.ap-storyhero--tea {
    background:
        linear-gradient(rgba(10, 186, 181, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(10, 186, 181, .055) 1px, transparent 1px),
        radial-gradient(circle at 77% 40%, rgba(84, 216, 211, .23), transparent 34%),
        linear-gradient(135deg, #f8fffe 0%, #eaf9f8 55%, #d9f3f1 100%);
    background-size: 74px 74px, 74px 74px, auto, auto;
    border-color: rgba(10, 186, 181, .14);
    box-shadow: 0 32px 82px rgba(4, 82, 80, .14);
}
.ap-brandstory .ap-storyhero::before,
.ap-brandstory .ap-storyhero__glow {
    background: rgba(84, 216, 211, .2);
}
.ap-brandstory .ap-storyhero::after {
    background: rgba(10, 186, 181, .1);
}
.ap-brandstory .ap-storyhero__kicker,
.ap-brandstory .ap-storyhero h1 em {
    color: #18b8b3;
}
.ap-brandstory .ap-storybtn--primary {
    color: #081226;
    background: #2acbc5;
    border-color: #2acbc5;
    box-shadow: 0 16px 36px rgba(10, 186, 181, .24);
}
.ap-brandstory .ap-storybtn--primary:hover {
    color: #081226;
    background: #18b8b3;
    border-color: #18b8b3;
    box-shadow: 0 22px 44px rgba(10, 186, 181, .3);
}

.ap-brandstory .ap-storyhero__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    max-width: 720px;
    margin-top: 34px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.ap-brandstory .ap-storyhero__facts > span {
    display: flex;
    min-width: 0;
    min-height: 82px;
    padding: 15px 17px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    color: #586b80;
    background: rgba(255, 255, 255, .78);
    border: 1px solid rgba(10, 186, 181, .15);
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(13, 55, 105, .07);
    font-size: 12px;
    line-height: 1.4;
}
.ap-brandstory .ap-storyhero__facts > span + span {
    border-left: 1px solid rgba(10, 186, 181, .15);
}
.ap-brandstory .ap-storyhero__facts > span > b {
    display: block;
    margin: 0 0 6px;
    color: #081a32;
    font-size: clamp(16px, 1.2vw, 19px);
    font-weight: 800;
    line-height: 1.1;
    white-space: nowrap;
}

.ap-brandstory .ap-storycta,
.ap-brandstory--coffee .ap-storycta {
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(84, 216, 211, .38), transparent 35%),
        linear-gradient(135deg, #063f3d, #0abab5) !important;
    border: 1px solid rgba(84, 216, 211, .28);
    box-shadow: 0 28px 66px rgba(4, 82, 80, .2);
}
.ap-brandstory .ap-storycta > div > span {
    color: #b8efed;
}
.ap-brandstory .ap-storycta h2 {
    color: #fff;
}
.ap-brandstory .ap-storycta p,
.ap-brandstory--coffee .ap-storycta p {
    color: #e2f8f7;
}
.ap-brandstory .ap-storycta .ap-storybtn--primary,
.ap-brandstory--coffee .ap-storycta .ap-storybtn--primary {
    color: #08203c;
    background: #fff;
    border-color: #fff;
    box-shadow: 0 16px 38px rgba(0, 24, 57, .2);
}
.ap-brandstory .ap-storycta .ap-storybtn--primary:hover,
.ap-brandstory--coffee .ap-storycta .ap-storybtn--primary:hover {
    color: #08203c;
    background: #e2f8f7;
    border-color: #e2f8f7;
}

@media (max-width: 620px) {
    .ap-brandstory .ap-storyhero__facts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
        margin-top: 28px;
    }
    .ap-brandstory .ap-storyhero__facts > span {
        min-height: 92px;
        padding: 10px 7px;
        align-items: center;
        text-align: center;
        font-size: 9px;
        line-height: 1.3;
    }
    .ap-brandstory .ap-storyhero__facts > span + span {
        border-top: 1px solid rgba(10, 186, 181, .15);
        border-left: 1px solid rgba(10, 186, 181, .15);
    }
    .ap-brandstory .ap-storyhero__facts > span > b {
        display: block;
        margin: 0 0 5px;
        font-size: clamp(12px, 3.7vw, 15px);
        line-height: 1.15;
        white-space: normal;
    }
}

/* ============================================================
   Site-wide Tiffany lock
   Последний слой палитры: не даёт старым локальным стилям
   возвращать синие и фиолетовые интерфейсные акценты.
   ============================================================ */
.ap-lab__live i,
.ap-lab__timeline button.is-active i,
.ap-lab__orbit i {
    background: var(--ap-accent);
    border-color: var(--ap-accent);
    box-shadow: 0 0 16px rgba(10, 186, 181, .55);
}
.ap-lab__eyebrow,
.ap-lab__more,
.ap-lab__callout b {
    color: #54d8d3;
}
.ap-lab__chips span,
.ap-lab__facts span,
.ap-lab__orbit,
.ap-lab__loader span {
    border-color: rgba(10, 186, 181, .26);
}
.ap-lab__button {
    color: var(--ap-dark);
    background: var(--ap-accent);
    box-shadow: 0 14px 38px rgba(10, 186, 181, .25);
}
.ap-lab__button:hover {
    color: var(--ap-dark);
    background: var(--ap-accent-dark);
}
.ap-world__button,
.ap-world__button:hover,
.ap-news-arr:hover,
button.ap-buybar__buy:hover,
.aps-section--dark .aps-calc__chips button.is-active {
    color: var(--ap-dark);
}
.ap-lab__button:focus-visible,
.ap-lab__more:focus-visible,
.ap-lab__timeline button:focus-visible {
    outline-color: var(--ap-accent);
}
.ap-lab__loader span {
    border-top-color: var(--ap-accent);
    box-shadow: 0 0 24px rgba(10, 186, 181, .22);
}
.ap-lab__aura {
    background: radial-gradient(circle, rgba(10, 186, 181, .3), rgba(7, 155, 151, .1) 46%, transparent 70%);
}
.ap-lab__scan {
    background: linear-gradient(90deg, transparent, rgba(84, 216, 211, .92), transparent);
    box-shadow: 0 0 24px rgba(84, 216, 211, .8), 0 0 70px rgba(10, 186, 181, .38);
}
.ap-lab__scan::after {
    background: linear-gradient(0deg, rgba(10, 186, 181, .1), transparent);
}
.ap-lab__callout i,
.ap-lab__callout--body i {
    background: linear-gradient(90deg, transparent, var(--ap-accent));
    box-shadow: 0 0 7px rgba(10, 186, 181, .55);
}
.ap-lab__callout--body i {
    background: linear-gradient(90deg, var(--ap-accent), transparent);
}
.ap-lab__step i {
    background: linear-gradient(90deg, var(--ap-accent) var(--ap-lab-progress-pct), rgba(255,255,255,.17) 0);
}

.ap-hero__designer-badge,
.ap-toolbar__guide-btn,
.ap-guide-launch__btn,
.ap-wizard__dot.is-active,
.ap-result__icon,
.ap-result__cta {
    color: var(--ap-dark);
    background: var(--ap-accent);
}
.ap-toolbar__guide-btn:hover,
.ap-guide-launch__btn:hover {
    box-shadow: 0 12px 28px rgba(10, 186, 181, .28);
}
.ap-wizard__preview {
    background: radial-gradient(120% 90% at 50% 0%, #f2fbfa 0%, #e2f8f7 60%, #d4f1ef 100%);
}
.ap-card-opt.is-selected,
.ap-swatch.is-selected {
    border-color: var(--ap-accent);
    box-shadow: 0 8px 18px rgba(10, 186, 181, .18);
}
.ap-card-opt.is-selected {
    background: rgba(10, 186, 181, .08);
}
.ap-card-opt__check,
.ap-wizard__dot.is-done,
.ap-wizard__next {
    color: var(--ap-dark);
    background: var(--ap-accent);
}
.ap-cards--weight .ap-card-opt.is-selected::after,
.ap-result__pkg {
    color: var(--ap-dark);
    background: var(--ap-accent);
    box-shadow: 0 2px 8px rgba(10, 186, 181, .3);
}
.ap-result__cta,
.ap-wizard__next {
    box-shadow: 0 8px 20px rgba(10, 186, 181, .22);
}
.ap-gallery-arrow:focus-visible,
.filter-search:focus,
.ap-hero__designer:hover {
    border-color: var(--ap-accent);
}
.ap-gallery-arrow:focus-visible {
    color: var(--ap-accent-dark);
    outline-color: rgba(10, 186, 181, .25);
}
