/* ============================================================================
   Bulka 2 — новый визуал (октябрь 2026). Подключают ТОЛЬКО дубли
   base2.php («о нас») и menu2.php (витрина); боевые страницы его не грузят.

   Палитра дублей:
     #f9eed7  фон страниц (перебивает крем #F0EEE9)
     #a5161e  акцент — цвет фирменной графики (Цветы/Цветок/Девочки) и лого
     #3E342F  текст — как на боевом сайте
   Шрифты те же: Poiret One — заголовки, PT Mono — остальное (bulka-brand.css).

   Графика лежит в bulka/img/: cvety.svg, cvetok.svg, devochki.svg —
   перекрашенные копии из img/ с обрезанным по контенту viewBox.
   ========================================================================== */

/* ── Шрифты дублей ──
   Poiret One — весь текст (Involve вернули обратно 13.10.2026 по решению
   клиента, @font-face ниже оставлены на случай отката),
   Hello January — рукописные заголовки. */
@font-face {
    font-family: 'Involve';
    src: url('../fonts/Involve-VF.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Involve';
    src: url('../fonts/Involve-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Hello January';
    src: url('../fonts/hello-january.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
/* Статический Medium отдельным семейством — верхнее меню витрины */
@font-face {
    font-family: 'Involve-Medium';
    src: url('../fonts/Involve-Medium.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* ── Палитра дублей: переменные бренда и ядра на уровне body ── */
body.bulka-home2,
body.bulka-menu2,
body.bulka-contacts2,
body.bulka-about2 {
    --bulka-cream:      #f9eed7;
    --bulka-red:        #a5161e;
    --nbc-primary:      #a5161e;
    --nbc-primary-dark: #a5161e;
    --nbc-accent:       #a5161e;
    --nbc-orange:       #a5161e;
    --nbc-bg:           #f9eed7;
    --nbc-bg-warm:      #f9eed7;
    --nbc-bg-white:     #f9eed7;
}

/* ── База страницы (родитель blankslate красит body в чёрный) ── */
body.bulka-home2,
body.bulka-menu2,
body.bulka-contacts2,
body.bulka-about2 {
    margin: 0;
    background: #f9eed7;
    color: #3E342F;
    font-family: 'PT Mono', 'Courier New', monospace;
    font-size: 15px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
body.bulka-home2 *,
body.bulka-menu2 *,
body.bulka-contacts2 *,
body.bulka-about2 *,
body.bulka-home2 *::before,
body.bulka-menu2 *::before,
body.bulka-contacts2 *::before,
body.bulka-about2 *::before,
body.bulka-home2 *::after,
body.bulka-menu2 *::after,
body.bulka-contacts2 *::after,
body.bulka-about2 *::after { box-sizing: border-box; }
body.bulka-home2 h1, body.bulka-home2 h2, body.bulka-home2 h3,
body.bulka-menu2 h1, body.bulka-menu2 h2, body.bulka-menu2 h3,
body.bulka-contacts2 h1, body.bulka-contacts2 h2, body.bulka-contacts2 h3,
body.bulka-about2 h1, body.bulka-about2 h2, body.bulka-about2 h3 {
    font-family: 'Poiret One', 'PT Mono', monospace;
    font-weight: 400;
    margin: 0;
}
body.bulka-home2 a,
body.bulka-menu2 a,
body.bulka-contacts2 a,
body.bulka-about2 a { color: #3E342F; text-decoration: none; transition: color .18s ease; }
body.bulka-home2 a:hover,
body.bulka-menu2 a:hover,
body.bulka-contacts2 a:hover,
body.bulka-about2 a:hover { color: var(--bulka-red); }

/* Полоса категорий и прелоадер витрины — на новом креме */
body.bulka-menu2 .nbc-catalog-nav {
    background: rgba(249, 238, 215, .72);
}
body.bulka-menu2 .nbc-preloader { background: #f9eed7; }
/* Штатный прелоадер с процентами не показываем вовсе (ядро показывает его
   только раз за сессию). Вместо него — свой: лого на креме при каждой
   загрузке, чистый CSS без JS. */
body.bulka-menu2 .nbc-preloader { display: none !important; }

/* Прелоадер витрины: лого «пишется красной ручкой» — та же анимация, что на
   главной / (разметка bulka/preloader-logo.html + bulka/js/b2-preloader.js).
   Лого рисуется ~5.4с на бежевом, затем оверлей растворяется (b2-pl-done
   вешает скрипт) и открывается витрина. */
.b2-preloader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: #f9eed7;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity .5s ease, visibility .5s ease;
}
.b2-preloader svg {
    display: block;
    width: min(24vw, 420px);
    height: auto;
}
@media (max-width: 767px) {
    .b2-preloader svg { width: 75vw; }
}
body.b2-pl-done .b2-preloader {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .18s ease, visibility .18s ease;
}
/* Пока идёт прелоадер, шапочного лого нет: после отрисовки на его место
   прилетает нарисованное (B2_flyLogo), и они меняются одним кадром */
body.b2-pl-active .b2-splash-logo { visibility: hidden; }

/* ── Шрифты витрины (menu2) ──
   Весь текст витрины — Poiret One; заголовки категорий — рукописный
   Hello January (красный). Правила с !important перебивают PT Mono,
   зашитый в bulka-brand.css. */
body.bulka-menu2 .nbc-catalog-wrapper {
    font-family: 'Poiret One', 'PT Mono', sans-serif !important;
}
body.bulka-menu2 .nbc-nav-tab,
body.bulka-menu2 .nbc-product-price,
body.bulka-menu2 .nbc-product-price .woocommerce-Price-amount,
body.bulka-menu2 .nbc-product-price bdi,
body.bulka-menu2 .nbc-product-price .woocommerce-Price-currencySymbol,
body.bulka-menu2 .nbc-modal-price,
body.bulka-menu2 .nbc-modal-price .woocommerce-Price-amount,
body.bulka-menu2 .nbc-modal-price bdi,
body.bulka-menu2 .nbc-modal-add-btn,
body.bulka-menu2 .nbc-cart-checkout-btn,
body.bulka-menu2 .nbc-cart-clear,
body.bulka-menu2 .nbc-sidebar-cart-total,
body.bulka-menu2 .bulka-pickup-label,
body.bulka-menu2 .bulka-pickup-opt,
body.bulka-menu2 .bulka-sostav-label,
body.bulka-menu2 .bulka-sostav-text,
body.bulka-menu2 .nbc-closed-toast,
body.bulka-menu2 .nbc-pl-counter {
    font-family: 'Poiret One', sans-serif !important;
}
/* Заголовки категорий — рукописные, красные */
body.bulka-menu2 .nbc-cat-title {
    font-family: 'Hello January', cursive !important;
    font-weight: 400;
    color: var(--bulka-red);
    font-size: 76px;
    line-height: 1;
    text-transform: none;
    letter-spacing: 0;
    padding: 30px 0 10px;
}
/* Отступы между пунктами полосы категорий — 20px; у активной рамки паддинг уже */
body.bulka-menu2 .nbc-nav-tab { padding: 0 10px; }
body.bulka-menu2 .nbc-nav-tab.active { padding: 0 8px; }

/* ============================================================================
   ШАПКА ВИТРИНЫ (menu2): слева навигация, справа лого + корзина + кабинет.
   На мобильном: лого слева, иконки справа, навигация переносится ниже.
   ========================================================================== */
.b2-header {
    position: relative; /* при прокрутке уезжает, липнет полоса категорий */
    z-index: 500;
    background: rgba(249, 238, 215, .72);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(62, 52, 47, .18);
}
.b2-header-in {
    max-width: none; /* навигация вровень с полосой категорий на любой ширине */
    margin: 0 auto;
    padding: 12px 28px 12px 16px; /* слева 16px — как у полосы категорий */
    min-height: 96px;
    display: flex;
    align-items: center;
    gap: 40px;
}
.b2-nav {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}
.b2-nav a {
    font-family: 'Poiret One', 'PT Mono', sans-serif;
    font-weight: 400;
    font-size: 17px;
    text-transform: lowercase;
    letter-spacing: .02em;
    padding: 2px 0;
}
/* Активный пункт навигации — та же гарнитура, тонкая рамка (задаёт
   part-header2 по $bulka_active) */
.b2-nav a.b2-active {
    border: 1px solid #3E342F;
    padding: 0 10px 3px;
    line-height: 1.15;
}
.b2-nav a.b2-active:hover { color: var(--bulka-red); border-color: var(--bulka-red); }

.b2-logo { display: inline-flex; margin-left: auto; margin-top: 5px; } /* лого на 5px ниже */
.b2-logo img {
    height: 76px;
    width: auto;
    display: block;
}
.b2-icons {
    display: flex;
    align-items: center;
    gap: 20px;
}
.b2-icons a { color: var(--bulka-red); display: inline-flex; position: relative; }
.b2-icons a:hover { color: var(--bulka-red); opacity: .8; }
.b2-icons svg { display: block; }
/* корзина и кабинет — на одной линии (подъём на -5px убран по правке клиента) */
/* ядро перекрашивает ссылки шапки — фиксируем фирменный красный напрямую */
.b2-icons a.b2-lk svg { fill: var(--bulka-red); }
.b2-icons a.bulka-cart svg { stroke: var(--bulka-red); }

/* корзина — класс .bulka-cart обязателен: его ловит bulka.js (дрозер) */
.b2-icons .bulka-cart { color: var(--bulka-red); gap: 0; }
.b2-icons .bulka-cart-badge {
    top: -7px;
    left: 21px;
    background: var(--bulka-red);
    color: #f9eed7;
}
.b2-icons .bulka-cart-sum { display: none; }

/* ============================================================================
   ГЛАВНАЯ (base2) — splash на весь экран: лого по центру сверху, меню слева,
   Девочки справа, Цветы снизу, контакты и реквизиты внизу.
   ========================================================================== */
.b2-splash {
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    overflow: hidden;
}
.b2-splash-logo {
    position: absolute;
    top: 44px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
}
.b2-splash-logo img { height: 147px; width: auto; display: block; }

.b2-splash-nav {
    position: absolute;
    left: 13vw;
    top: 37vh;
    z-index: 5;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
}
.b2-splash-nav a {
    font-family: 'Poiret One', sans-serif;
    font-weight: 400;
    font-size: 21px;
    text-transform: none;
    letter-spacing: .06em;
    line-height: 1.3;
}

/* Фирменная графика (уже окрашена в #a5161e внутри файлов).
   Загрузка страницы: цветы выезжают снизу (0.5с, с пружинкой на финише),
   Девочки «рисуются карандашом» ~4с после цветков (см. keyframes внизу). */
.b2-girls {
    position: absolute;
    right: 10vw;
    top: 27vh;
    width: 25vw;
    pointer-events: none;
}
.b2-girls svg { display: block; width: 100%; height: auto; }
/* Цветы: прижаты к нижнему краю (на 30px за него), непрерывно качаются
   «от ветра» (b2-sway на самой картинке). При проведении курсора/пальца
   качаются сильнее в сторону движения — наклон вешает скрипт на обёртку
   (page-home2.php), поэтому трансформации не конфликтуют. */
.b2-flowers {
    position: absolute;
    left: 30vw;
    bottom: -30px;
    width: 15vw;
    transform-origin: bottom center;
    transition: transform .4s ease-out;
}
.b2-flowers img {
    display: block;
    width: 100%;
    height: auto;
    transform-origin: bottom center;
    animation: b2-sway 7s ease-in-out infinite;
}
/* Маленький цветок — внизу справа от букета, соразмерно ему (~0.43 ширины) */
.b2-flower-sm {
    position: absolute;
    left: 46.5vw;
    bottom: -30px;
    width: 6.5vw;
    transform-origin: bottom center;
    transition: transform .4s ease-out;
    z-index: 4;
}
.b2-flower-sm img {
    display: block;
    width: 100%;
    height: auto;
    transform: rotate(10deg);
    transform-origin: bottom center;
    animation: b2-sway-10 7s ease-in-out infinite;
}

/* Контакты + реквизиты внизу (на splash — абсолютом, в футере витрины — потоком) */
.b2-foot {
    z-index: 5;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    font-family: 'Poiret One', 'PT Mono', sans-serif; /* адрес и реквизиты — Poiret One */
    font-size: 11px;
    line-height: 16px; /* интерлиньяж плотнее на 2px */
}
/* Контакты + реквизиты — прижаты к нижнему краю первого экрана
   (реквизиты должны быть видны сразу, требование закона о продажах) */
.b2-splash .b2-foot {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0 13vw 20px;
}
.b2-foot p { margin: 0; }
.b2-foot a { text-decoration: underline; text-underline-offset: 3px; }

/* ── Анимации загрузки главной ──────────────────────────────────────────
   Цветки сразу видны вместе со страницей и непрерывно покачиваются «от
   ветра» (b2-sway* на самой картинке). Девочки «рисуются карандашом»
   ~4с после загрузки (b2-draw/b2-fill). */
@keyframes b2-sway {
    0%   { transform: rotate(0deg); }
    25%  { transform: rotate(1.3deg); }
    50%  { transform: rotate(0deg); }
    75%  { transform: rotate(-1.3deg); }
    100% { transform: rotate(0deg); }
}
@keyframes b2-sway-10 {
    0%   { transform: rotate(10deg); }
    25%  { transform: rotate(11.3deg); }
    50%  { transform: rotate(10deg); }
    75%  { transform: rotate(8.7deg); }
    100% { transform: rotate(10deg); }
}
@keyframes b2-sway-21 {
    0%   { transform: rotate(21deg); }
    25%  { transform: rotate(22.3deg); }
    50%  { transform: rotate(21deg); }
    75%  { transform: rotate(19.7deg); }
    100% { transform: rotate(21deg); }
}
/* Девочки: контуры «рисуются» штрихом (pathLength=1 нормирован в шаблоне),
   затем заливка проявляется, а карандашный штрих тает. */
.b2-girls .b2-draw {
    fill-opacity: 0;
    stroke: #a5161e;
    stroke-width: 150; /* координаты путей до scale(0.1) — ≈2.5px на экране */
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    animation: b2-draw 2.6s ease-in-out 1.2s forwards,
               b2-fill .8s ease 4.3s forwards;
}
/* лёгкий разнобой штрихов — как будто рисует рука */
.b2-girls .b2-draw:nth-of-type(2) { animation-delay: 1.45s, 4.3s; }
.b2-girls .b2-draw:nth-of-type(3) { animation-delay: 1.7s, 4.3s; }
.b2-girls .b2-draw:nth-of-type(4) { animation-delay: 1.95s, 4.3s; }
.b2-girls .b2-draw:nth-of-type(5) { animation-delay: 2.2s, 4.3s; }
.b2-girls .b2-draw:nth-of-type(6) { animation-delay: 2.45s, 4.3s; }
.b2-girls .b2-draw:nth-of-type(7) { animation-delay: 2.7s, 4.3s; }
.b2-girls .b2-draw:nth-of-type(8) { animation-delay: 2.95s, 4.3s; }
@keyframes b2-draw { to { stroke-dashoffset: 0; } }
@keyframes b2-fill { to { fill-opacity: 1; stroke-opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
    .b2-flowers img, .b2-flower-sm img { animation: none; }
    .b2-about-flowers img { animation: none; }
    .b2-about-fl-cvetok img { transform: rotate(10deg); }
    .b2-girls .b2-draw {
        animation: none;
        fill-opacity: 1;
        stroke: none;
        stroke-dasharray: none;
        stroke-dashoffset: 0;
    }
}

/* ============================================================================
   ВИТРИНА (menu2): сетка 3 колонки, без «+» на карточках — добавление
   только в модалке блюда. Цветок у правого края под полосой категорий.
   ========================================================================== */
.b2-menu {
    position: relative;
    min-height: 60vh;
}
.b2-menu-flower {
    position: absolute;
    top: 120px;   /* на 30px выше прежнего */
    right: -28px; /* на 10px правее прежнего */
    width: 112px;
    height: auto;
    transform: rotate(15deg); /* вокруг оси на 15 градусов */
    pointer-events: none;
    z-index: -1;  /* под карточками товара, над фоном */
}

/* ── Бейдж и мини-корзина: их стили жили в bulka-pages.css, который дубли
   не подключают, поэтому базовые правила повторяем здесь ── */
.bulka-cart-badge {
    position: absolute;
    top: -7px;
    left: 18px;
    min-width: 19px;
    height: 19px;
    padding: 0 4px;
    background: var(--bulka-red);
    color: #f9eed7;
    font-family: 'PT Mono', monospace;
    font-size: 11px;
    line-height: 19px;
    text-align: center;
    border-radius: 999px;
}
.bulka-nav-cart {
    display: none;
    position: absolute;
    right: 56px;
    top: 50%;
    transform: translateY(-50%);
    align-items: center;
    gap: 8px;
    cursor: pointer;
    color: #3E342F;
    background: none;
    border: none;
    padding: 4px;
    font-family: 'PT Mono', monospace;
}
.bulka-nav-cart svg { display: block; }
.bulka-nav-cart .bulka-cart-badge,
.bulka-nav-cart .bulka-cart-sum { display: inline; }
body.bulka-scrolled .bulka-nav-cart { display: inline-flex; }
body.bulka-scrolled.bulka-cart-open .bulka-nav-cart { visibility: hidden; }

/* ── Полоса категорий: карусель со стрелками (десктоп) ──
   Названия не наезжают на мини-корзину: у ленты справа резерв под неё,
   стрелки рисует bulka.js, когда лента реально скроллится. */
@media (min-width: 769px) {
    body .nbc-catalog-nav-inner { padding-right: 120px; }

    /* Пункты «прерываются» до стрелок: маска-затухание с той стороны,
       куда есть куда листать (классы can-prev/can-next вешает bulka.js).
       Две маски при затухании с обеих сторон объединяются (composite add). */
    body.bulka-nav-can-prev .nbc-catalog-nav-inner {
        -webkit-mask-image: linear-gradient(to right, transparent 48px, #000 60px);
        mask-image: linear-gradient(to right, transparent 48px, #000 60px);
    }
    body.bulka-nav-can-next .nbc-catalog-nav-inner {
        -webkit-mask-image: linear-gradient(to left, transparent 88px, #000 104px);
        mask-image: linear-gradient(to left, transparent 88px, #000 104px);
    }
    body.bulka-nav-can-prev.bulka-nav-can-next .nbc-catalog-nav-inner {
        -webkit-mask-image: linear-gradient(to right, transparent 48px, #000 60px),
                            linear-gradient(to left, transparent 140px, #000 160px);
        mask-image: linear-gradient(to right, transparent 48px, #000 60px),
                    linear-gradient(to left, transparent 140px, #000 160px);
    }

    .bulka-nav-arrows {
        display: none;
        position: absolute;
        inset: 0;
        pointer-events: none;
    }
    body.bulka-nav-overflow .bulka-nav-arrows { display: block; }
    .bulka-nav-arrow {
        pointer-events: auto;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 36px;
        height: 36px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(249, 238, 215, .92);
        border: 1px solid rgba(62, 52, 47, .35);
        color: #3E342F;
        cursor: pointer;
        z-index: 5;
    }
    .bulka-nav-arrow:hover { color: var(--bulka-red); border-color: var(--bulka-red); }
    .bulka-nav-arrow[disabled] { opacity: .25; pointer-events: none; }
    .bulka-nav-arrow svg { display: block; }
    .bulka-nav-prev { left: 8px; }
    .bulka-nav-next { right: 8px; } /* симметрично левой; мини-корзина ушла левее */
}

/* Сетка: 3 колонки на десктопе (боевой сайт — 4) */
body.bulka-menu2 .nbc-products-grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1200px) {
    body.bulka-menu2 .nbc-products-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Добавление в корзину — только в модалке: «+» на фото не показываем.
   Инлайн-счётчик уже скрыт в bulka-brand.css на всех страницах. */
body.bulka-menu2 .nbc-img-add-btn { display: none !important; }

/* Плавающую кнопку мобильной корзины нет даже с классом .visible ядра */
body.bulka-menu2 .nbc-mobile-cart-btn { display: none !important; }

/* Карточка: имя слева — цена справа, PT Mono Regular */
body.bulka-menu2 .nbc-product-card { cursor: pointer; }
body.bulka-menu2 .nbc-product-name { font-weight: 400; letter-spacing: .02em; }
body.bulka-menu2 .nbc-product-price,
body.bulka-menu2 .nbc-product-price .woocommerce-Price-amount { font-weight: 400 !important; }

/* Подпись «закончилось» на новом креме */
body.bulka-menu2 .nbc-sold-out-label { background: #f9eed7; }

/* ── Модалка блюда (menu2): поля 30px от краёв браузера, рамка как у
   крестика (1px, шоколад), фон бежевый; крестик в 20px от рамки ── */
body.bulka-menu2 .nbc-modal-overlay { padding: 30px; }
body.bulka-menu2 .nbc-modal {
    width: calc(100% - 60px);
    height: calc(100vh - 60px);
    height: calc(100dvh - 60px);
    background: #f9eed7;
    border: 1px solid #3E342F;
}
body.bulka-menu2 .nbc-modal-close {
    top: 20px;
    right: 20px;
    background: #f9eed7;
}
body.bulka-menu2 .nbc-modal-sticky-bar { background: #f9eed7; }

/* ============================================================================
   ФУТЕР (menu2): контакты слева, реквизиты справа — как низ главной.
   ========================================================================== */
.b2-footer {
    background: #f9eed7;
    border-top: 1px solid rgba(62, 52, 47, .14);
}
.b2-footer .b2-foot {
    max-width: 1440px;
    margin: 0 auto;
    padding: 34px 28px 30px;
}

/* ============================================================================
   СТРАНИЦА «КОНТАКТЫ» (contacts.php)
   ========================================================================== */
/* Корзины на этой странице нет — в шапке только кабинет */
body.bulka-contacts2 .b2-icons a.bulka-cart { display: none !important; }

.b2-contacts-in {
    max-width: 1440px;
    margin: 0 auto;
    padding: 56px 28px 70px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: 70px;
    align-items: start;
    font-family: 'Poiret One', 'PT Mono', sans-serif;
}
.b2-contacts-block { margin-bottom: 48px; }
.b2-contacts-block:last-child { margin-bottom: 0; }
.b2-contacts-block h2 {
    font-family: 'Poiret One', sans-serif;
    font-weight: 400;
    font-size: 20px;
    margin: 0 0 20px;
}
.b2-contacts-block p {
    margin: 0 0 8px;
    font-size: 16px;
    line-height: 1.9;
}
.b2-contacts-block a:hover { color: var(--bulka-red); }
.b2-contacts-map {
    border: 1px solid rgba(62, 52, 47, .3);
    height: 470px;
    overflow: hidden;
}
.b2-contacts-map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* ============================================================================
   СТРАНИЦА «О НАС» (/about/, шаблон page-about.php) — новый визуал 10.2026.
   Мокап клиента (мобильный): Hello January → видео → лид → цветы
   (cvety + cvetok + podsneg) → текст → росчерк bulka1 у правого края.
   ========================================================================== */
/* Корзины на странице нет — в шапке только кабинет (как на контактах) */
body.bulka-about2 .b2-icons a.bulka-cart { display: none !important; }

/* bulka1 уходит правым краем за экран: обрезаем горизонтальное переполнение,
   чтобы не было горизонтальной прокрутки (clip не создаёт скролл-контейнер) */
.b2-about {
    overflow-x: hidden;
    overflow-x: clip;
}

.b2-about-in {
    max-width: 900px;
    margin: 0 auto;
    padding: 44px 28px 90px;
}
/* Заголовок тёмный (клиент: «на рефе он чёрный»); селектор с body —
   перебивает базовое body.bulka-about2 h1 из шапки файла */
body.bulka-about2 .b2-about-title {
    font-family: 'Hello January', cursive;
    font-weight: 400;
    color: #3E342F;
    font-size: 72px;
    line-height: 1.05;
    margin: 0 0 44px;
}
/* Разрыв «…полного цикла в / центре Краснодара» — только на мобильном */
.b2-about-br { display: none; }
.b2-about-video {
    margin: 0 0 48px;
}
.b2-about-video video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    background: #3E342F;
}
.b2-about-lead {
    font-family: 'Poiret One', 'PT Mono', sans-serif;
    font-size: 30px;
    line-height: 1.3;
    margin: 0 0 36px;
}
.b2-about-flowers {
    display: flex;
    align-items: flex-end;
    margin: 0 0 48px;
}
.b2-about-fl { display: block; }
.b2-about-flowers img {
    display: block;
    width: 100%;
    height: auto;
    transform-origin: bottom center;
    animation: b2-sway 7s ease-in-out infinite;
}
.b2-about-fl-cvety  { width: 34%; }
.b2-about-fl-cvetok {
    width: 12%;
    margin-left: 6%;
}
.b2-about-fl-cvetok img {
    transform: rotate(10deg);
    animation-name: b2-sway-10;
}
.b2-about-fl-podsneg {
    width: 30%;
    margin-left: auto;
}
.b2-about-fl-podsneg img { animation-duration: 8s; animation-delay: 1.1s; }

.b2-about-bottom {
    display: flex;
    align-items: flex-end;
    gap: 48px;
}
.b2-about-text {
    font-family: 'Poiret One', 'PT Mono', sans-serif;
    font-size: 20px;
    line-height: 1.55;
    margin: 0;
    max-width: 560px;
    transform: translateY(-60px); /* десктоп: текст на 60px выше (моб. сбрасывается) */
}
.b2-about-mark {
    flex: 0 0 auto;
    width: 250px;
    margin-left: auto;
}
.b2-about-mark img { display: block; width: 100%; height: auto; }

/* ============================================================================
   МОБИЛЬНЫЕ ВЕРСИИ
   ========================================================================== */
@media (max-width: 768px) {

    /* ── Шапка витрины: лого слева, иконки справа, навигация ниже ── */
    .b2-header-in {
        flex-wrap: wrap;
        min-height: 0;
        padding: 10px 16px;
        row-gap: 12px;
    }
    .b2-logo { order: -1; margin-left: 0; }
    .b2-logo img { height: 58px; }
    .b2-icons { order: 1; margin-left: auto; gap: 16px; }
    .b2-nav {
        order: 2;
        flex-basis: 100%;
        gap: 10px 20px;
    }
    .b2-nav a { font-size: 15px; }
    .b2-nav a.b2-active { padding: 1px 8px; }

    /* ── Контакты: одна колонка, текст над картой ── */
    .b2-contacts-in {
        grid-template-columns: 1fr;
        padding: 30px 16px 50px;
        gap: 36px;
    }
    .b2-contacts-block { margin-bottom: 36px; }
    .b2-contacts-block h2 { font-size: 17px; margin-bottom: 12px; }
    .b2-contacts-block p { font-size: 14px; line-height: 1.8; }
    .b2-contacts-map { height: 330px; }

    /* ── О нас: размеры мокапа (Hello January 44px, лид 20px, текст 15px),
       росчерк bulka1 уходит правым краем за экран ── */
    .b2-about-in { padding: 24px 16px 10px; } /* низ 10px: футер ближе (было 60) */
    body.bulka-about2 .b2-about-title { font-size: 50px; line-height: 0.9; margin-bottom: 24px; text-align: center; }
    .b2-about-br { display: inline; } /* перенос перед «центре Краснодара» */
    /* Видео — от края до края экрана, без отступов контейнера */
    .b2-about-video { margin: 0 -16px 26px; }
    .b2-about-video video { aspect-ratio: 16 / 10; }
    .b2-about-lead { font-size: 28px; margin-bottom: 22px; }
    .b2-about-flowers { margin-bottom: 28px; }
    .b2-about-fl-cvety { width: 42vw; flex-shrink: 0; }
    .b2-about-fl-cvetok { width: 15vw; margin-left: 5vw; flex-shrink: 0; }
    .b2-about-fl-podsneg { width: 38vw; flex-shrink: 0; } /* сумма ровно 100vw */
    .b2-about-bottom { display: block; }
    .b2-about-text { font-size: 23px; padding-right: 40px; max-width: none; transform: none; }
    .b2-about-mark {
        width: 50vw;                      /* на 10% меньше */
        margin-left: auto;
        /* за правый край экрана: padding контейнера 16px + 6vw + ещё 20px правее */
        margin-right: calc(-16px - 6vw - 20px);
        transform: translateY(-60px);     /* на 60px выше (ещё +20 по правке) */
    }
    .b2-about-mark img { transform: rotate(-30deg); } /* против часовой */

    /* ── Splash главной ── */
    .b2-splash-logo { top: 26px; }
    .b2-splash-logo img { height: 85px; } /* моб.: +15% дважды (64 → 74 → 85) */
    .b2-splash-nav {
        left: 26px;
        top: 24vh;
        gap: 24px;
    }
    .b2-splash-nav a { font-size: 18px; } /* на 2px больше, начертание обычное */
    .b2-girls { display: none; }              /* Девочки — только на десктопе */
    .b2-flowers {
        left: auto;
        right: 4vw;
        top: 21vh;
        bottom: auto;
        width: 56vw;
    }
    .b2-flower-sm {
        left: 5vw;
        top: calc(60vh - 20px); /* на 20px выше */
        bottom: auto;
        width: 30vw;            /* на 10% крупнее */
    }
    .b2-flower-sm img {
        transform: rotate(21deg);
        animation-name: b2-sway-21;
    }
    .b2-splash .b2-foot {
        position: fixed; /* строго по низу экрана, не уезжает */
        left: 0;
        right: 0;
        bottom: 0;
        background: #f9eed7;
        padding: 8px 16px 10px;
        font-size: 9.5px;
        line-height: 14px;
        gap: 20px;
    }

    /* ── Витрина ── */
    .b2-menu-flower { display: none; }        /* цветок — только на десктопе */
    body.bulka-menu2 .nbc-catalog-products { padding-top: 20px; }
    body.bulka-menu2 .nbc-cat-title { font-size: 52px; padding: 20px 0 6px; }
    /* одна колонка: правило для ≤1200 выше специфичностью равно боевому
       ≤768 и позже по печати — на мобильном перебиваем его здесь */
    body.bulka-menu2 .nbc-products-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    /* Корзина: не висит вверху (в полосе категорий и в шапке её нет) —
       вместо неё внизу плавает плашка .b2-mplate с бейджем и ценой */
    body.bulka-menu2 .bulka-nav-cart { display: none !important; }
    body.bulka-menu2 .b2-icons a.bulka-cart { display: none !important; }

    /* Плашка корзины: иконка + бейдж + сумма, клик открывает дрозер;
       видна только когда в корзине есть товары */
    .b2-mplate {
        display: none;
        position: fixed;
        left: 50%;
        bottom: 14px;
        transform: translateX(-50%);
        z-index: 200;
        align-items: center;
        gap: 12px;
        background: #fff;
        border: 1px solid rgba(62, 52, 47, .14);
        border-radius: 10px;
        padding: 10px 18px;
        box-shadow: 0 4px 18px rgba(62, 52, 47, .16);
        cursor: pointer;
        color: var(--bulka-red);
    }
    .b2-mplate.b2-mplate-on { display: flex; }
    .b2-mplate:active { transform: translateX(-50%) scale(.97); }
    .b2-mplate svg { display: block; }
    .b2-mplate .bulka-cart-badge {
        position: absolute;
        top: -8px;
        left: -8px;
        margin: 0;
        min-width: 20px;
        height: 20px;
        line-height: 20px;
        font-size: 12px;
        border-radius: 999px;
        background: var(--bulka-red);
        color: #f9eed7;
    }
    .b2-mplate .bulka-cart-sum {
        font-family: 'Poiret One', sans-serif;
        font-weight: 400;
        font-size: 16px;
        color: #3E342F;
        white-space: nowrap;
        display: inline;
    }

    /* ── Модалка блюда: 10px от краёв, высота по контенту, кнопки без гигантизма ── */
    body.bulka-menu2 .nbc-modal-overlay { padding: 10px; }
    body.bulka-menu2 .nbc-modal {
        width: calc(100% - 20px);
        height: auto;
        max-height: calc(100dvh - 20px);
    }
    body.bulka-menu2 .nbc-modal-sticky-bar { padding: 10px; gap: 8px; }
    body.bulka-menu2 .nbc-modal-qty { height: 42px; }
    body.bulka-menu2 .nbc-modal-qty-btn { width: 38px; height: 40px; }
    body.bulka-menu2 .nbc-modal-sticky-bar .nbc-modal-add-btn {
        height: 42px;
        padding: 0 14px;
        font-size: 12px;
        letter-spacing: .04em;
        min-width: 0;
        white-space: nowrap;
    }

    /* Футер витрины: те же две колонки, плотнее */
    .b2-footer .b2-foot { padding: 24px 16px 22px; font-size: 9.5px; gap: 20px; }
}
