    /* CSS переменные — новая тёплая палитра Шашлык Беру */
    :root {
      --bg-primary: #fdc28e;
      --bg-secondary: #FAF0E8;
      --bg-tertiary: #F0E2D4;
      --bg-section: #EFE0CF;
      --bg-card: #FFFFFF;
      --bg-card-highlighted: #F2E9DB;
      --text-primary: #231F20;
      --text-secondary: #6B5B53;
      --text-muted: rgba(35,31,32,0.45);
      --accent-color: #D43C0D;
      --accent-hover: #F04E1A;
      --accent-secondary: #E7C15A;
      --success-color: #38a169;
      --border-color: rgba(35,31,32,0.1);
      --shadow-color: rgba(0,0,0,0.10);
      --gradient-accent: linear-gradient(135deg, #D43C0D, #F04E1A);
      --card-bg: #FFFFFF;
      --card-border: rgba(35,31,32,0.08);
      --card-text: #231F20;
      --hit-badge-bg: #CC2E2E;
      --gold-accent: #E7C15A;
    }

    /* Светлая тема — те же тёплые цвета */
    [data-theme="light"] {
      --bg-primary: #fdc28e;
      --bg-secondary: #FAF0E8;
      --bg-tertiary: #F0E2D4;
      --bg-section: #EFE0CF;
      --bg-card: #FFFFFF;
      --bg-card-highlighted: #F2E9DB;
      --text-primary: #231F20;
      --text-secondary: #6B5B53;
      --text-muted: rgba(35,31,32,0.45);
      --accent-color: #D43C0D;
      --accent-hover: #F04E1A;
      --accent-secondary: #E7C15A;
      --success-color: #38a169;
      --border-color: rgba(35,31,32,0.1);
      --shadow-color: rgba(0,0,0,0.10);
      --gradient-accent: linear-gradient(135deg, #D43C0D, #F04E1A);
      --card-bg: #FFFFFF;
      --card-border: rgba(35,31,32,0.08);
      --card-text: #231F20;
      --hit-badge-bg: #CC2E2E;
      --gold-accent: #E7C15A;
    }

    /* Общие настройки */
    body {
      background-color: var(--bg-primary);
      color: var(--text-primary);
      margin: 0;
      padding: 0;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      transition: background-color 0.3s ease, color 0.3s ease;
    }

    /* Скроллбар скрыт только в модальных окнах */
    .modal ::-webkit-scrollbar { display: none; }
    .modal * { scrollbar-width: none; }

    html {
      scroll-behavior: smooth;
      overflow-y: scroll; /* Скроллбар всегда виден — чтобы не пропадал при открытии модалки */
    }

    /* Отменяем скроллбар, который появляется вместе с модальным окном.
       .modal — это оверлей, у него по-умолчанию overflow-y:auto — от него и скроллбар.
       Ставим overflow:hidden, чтобы оверлей не создавал свою полосу прокрутки. */
    .modal {
      overflow: hidden !important;
    }
    .modal::-webkit-scrollbar { display: none !important; width: 0 !important; }

    /* Скроллбар всегда виден на html — Bootstrap на body добавляет padding-right
       для компенсации исчезающего скроллбара, но у нас он не исчезает, поэтому
       компенсация не нужна. Также переопределяем overflow:hidden → auto, чтобы
       не ломался sticky-контекст (иначе .sticky-menu вылетал бы из потока и
       страница дёргалась вверх/вниз при открытии/закрытии модалки). Скролл
       страницы всё равно блокируется через wheel/touchmove preventDefault. */
    body.modal-open {
      padding-right: 0 !important;
      overflow: auto !important;
    }

    .seo-hidden {
      position: absolute;
      left: -10000px;
      top: auto;
      width: 1px;
      height: 1px;
      overflow: hidden;
      opacity: 0;
      pointer-events: none;
    }

    /* Стили для иконки телефона в круге */
    .phone-icon-circle {
      width: 32px;
      height: 32px;
      background-color: var(--accent-color);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1rem;
      transition: all 0.3s ease;
      cursor: pointer;
      box-shadow: 0 2px 4px var(--shadow-color);
    }

    @media (hover: hover) and (pointer: fine) {
      .phone-icon-circle:hover {
      background-color: var(--accent-hover);
      transform: scale(1.05);
      box-shadow: 0 4px 8px var(--shadow-color);
    }
    }

    .phone-icon-circle span {
      color: white;
      filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
    }

    /* Убираем стандартные стили ссылки */
    a.phone-icon-circle {
      text-decoration: none;
      color: inherit;
    }

    @media (hover: hover) and (pointer: fine) {
      a.phone-icon-circle:hover {
      text-decoration: none;
      color: inherit;
    }
    }

    /* Мобильная версия иконки телефона */
    .phone-icon-mobile {
      width: 28px;
      height: 28px;
      font-size: 0.9rem;
    }


    /* Стиль для дополнительного описания товара */
    .product-additional-description {
      color: var(--text-primary);
      font-size: 0.9em;
      line-height: 1.5;
      padding: 10px;
      background-color: var(--bg-tertiary);
      border-radius: 5px;
      margin-bottom: 15px;
      transition: all 0.3s ease;
    }

    a {
      color: var(--accent-color);
      font-weight: 700;
      text-decoration: none;
      transition: color 0.3s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      a:hover {
      color: var(--accent-hover);
    }
    }

    /* При наведении на кнопки из верхних блоков */
    @media (hover: hover) and (pointer: fine) {
      .static-header .btn:hover, .sticky-menu .btn:hover, .sticky-menu .category-btn:hover:not(.active) {
      color: var(--accent-hover) !important;
    }
    }

    /* Активные категории сохраняют белый цвет при наведении */
    @media (hover: hover) and (pointer: fine) {
      .sticky-menu .category-btn.active:hover {
      color: white !important;
    }
    }

    /* Статичная верхняя панель */
    .static-header {
      background: linear-gradient(to right, #D43C0D 0%, #E8602A 70%, #f6782e 100%);
      padding: 0.7rem 0;
      border-bottom: none;
    }

    /* Стили для логотипа */
    .brand-logo {
      max-width: 250px;
      /* Размер для десктопной версии */
      height: auto;
    }

    /* Контактный блок */
    .header-contact {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      margin-left: 1rem;
      /* Приближаем к логотипу */
      flex: 1;
      /* Занимает оставшееся пространство */
      justify-content: space-between;
      /* Телефон слева, кнопки справа */
    }

    /* Блок с информацией о телефоне */
    .phone-info {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
    }

    /* Верхняя строка с пояснением, иконкой и номером */
    .phone-line {
      display: flex;
      align-items: center;
      gap: 0.5rem;
    }

    .phone-note {
      font-size: 0.9rem;
      color: var(--text-primary);
    }

    .phone-icon {
      font-size: 1.2rem;
      background: var(--primary-color);
      color: white;
      border-radius: 50%;
      width: 35px;
      height: 35px;
      display: none;
      /* Скрываем на десктопе */
      align-items: center;
      justify-content: center;
      margin: 0 10px;
      transition: all 0.3s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .phone-icon:hover {
      transform: scale(1.1);
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }
    }

    .profile-icon-link {
      text-decoration: none;
    }

    .profile-icon {
      font-size: 1.5rem;
      background: var(--primary-color);
      color: white;
      border-radius: 50%;
      width: 35px;
      height: 35px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      transition: all 0.3s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .profile-icon:hover {
      transform: scale(1.1);
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }
    }

    .mobile-time-text {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: 0.9rem;
      color: var(--text-secondary);
    }

    .mobile-work-status {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: 0.95rem;
      color: var(--text-primary);
    }

    .mobile-profile-btn {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: 0.85rem;
      padding: 12px 20px;
      border-radius: 12px;
      border: 2px solid #ffe8dc;
      background: #ffe8dc;
      color: #D43C0D;
      text-decoration: none;
      transition: all 0.2s ease;
      white-space: nowrap;
    }

    @media (hover: hover) and (pointer: fine) {
      .mobile-profile-btn:hover {
      background: rgba(212,60,13,0.12);
      border-color: rgba(212,60,13,0.3);
      color: #D43C0D;
    }
    }

    .header-phone {
      font-size: 1rem;
      color: var(--text-primary);
    }

    .header-phone-small {
      font-size: 0.8rem;
      color: var(--text-secondary);
    }

    /* Кнопка "Профиль" и "Корзина" */
    .btn-profile,
    .btn-outline-secondary {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: 1rem;
      padding: 0.6rem 1.2rem;
      border-radius: 8px;
      border: 2px solid var(--accent-color);
      background-color: var(--accent-color);
      color: white;
      transition: all 0.3s ease;
      box-shadow: 0 2px 4px var(--shadow-color);
    }

    @media (hover: hover) and (pointer: fine) {
      .btn-profile:hover, .btn-outline-secondary:hover {
      background-color: var(--accent-hover);
      border-color: var(--accent-hover);
      color: white;
      transform: translateY(-1px);
      box-shadow: 0 4px 8px var(--shadow-color);
    }
    }

    /* Кнопка входа */
    .btn-primary {
      background-color: var(--accent-color);
      border-color: var(--accent-color);
      color: white;
      font-weight: 700;
      padding: 0.6rem 1.2rem;
      border-radius: 8px;
      transition: all 0.3s ease;
      box-shadow: 0 2px 4px var(--shadow-color);
    }

    @media (hover: hover) and (pointer: fine) {
      .btn-primary:hover {
      background-color: var(--accent-hover);
      border-color: var(--accent-hover);
      color: white;
      transform: translateY(-1px);
      box-shadow: 0 4px 8px var(--shadow-color);
    }
    }

    /* Стили для кнопок категорий */
    .category-btn {
      background: #FFFFFF;
      border: 1px solid rgba(35,31,32,0.14);
      color: #231F20;
      text-decoration: none;
      transition: all 0.25s ease;
      padding: 0.55rem 1.1rem;
      border-radius: 999px;
      white-space: nowrap;
      font-weight: 600;
      font-size: 0.95rem;
      position: relative;
    }

    @media (hover: hover) and (pointer: fine) {
      .category-btn:hover {
      background: rgba(212,60,13,0.10);
      color: #D43C0D;
      border-color: rgba(212,60,13,0.35);
      transform: translateY(-1px);
    }
    }

    .category-btn:focus,
    .category-btn:focus-visible {
      outline: none;
      box-shadow: none;
    }

    /* Активная категория */
    .category-btn.active {
      background: #D43C0D;
      color: white;
      border-color: transparent;
      font-weight: 700;
      box-shadow: 0 6px 18px rgba(212,60,13,0.30);
    }

    @media (hover: hover) and (pointer: fine) {
      .category-btn.active:hover {
      background: #F04E1A;
      border-color: transparent;
      color: white;
    }
    }

    /* Кнопка "Профиль" — белая на оранжевом хедере */
    .btn-profile {
      background-color: #ffe8dc;
      border: 2px solid #ffe8dc;
      color: #D43C0D;
      cursor: pointer;
      border-radius: 10px;
      font-weight: 700;
      padding: 0.43rem 1.2rem;
    }

    @media (hover: hover) and (pointer: fine) {
      .btn-profile:hover {
      background-color: #FFF4EC;
      border-color: #FFF4EC;
      color: #D43C0D;
    }
    }

    /* Кнопка "Корзина" – с лёгкой обводкой и округленными углами */
    .btn-outline-secondary {
      border: 1px solid var(--border-color) !important;
      background-color: transparent;
      color: var(--text-primary);
      border-radius: 12px;
    }

    @media (hover: hover) and (pointer: fine) {
      .btn-outline-secondary:hover {
      background-color: var(--bg-tertiary);
      color: var(--accent-color);
    }
    }

    /* Фиксированная панель (sticky) */
    .sticky-menu {
      position: sticky;
      top: 0;
      background: #fbeae0;
      /* z-index выше .modal-backdrop (1050), чтобы бар категорий оставался виден
         при открытой модалке — как фоновый элемент сайта */
      z-index: 1051;
      padding: 10px 0 12px 0;
      border-bottom: none !important;
      box-shadow: 0 4px 16px rgba(0,0,0,0.10);
      transition: background-color 0.3s ease;
    }

    .sticky-menu * {
      border: none;
    }

    /* Фон за всеми секциями товаров — тёплый с лёгким зерном */
    .products-outer {
      background-color: #f7e3da;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
      background-repeat: repeat;
      background-size: 200px 200px;
      padding: 8px 0 24px;
    }

    /* Задаём базовый размер шрифта для карточек так, чтобы он масштабировался пропорционально */
    .one-row-card,
    .card {
      font-size: clamp(0.8rem, 3.5vw, 1.2rem);
      /* Увеличиваем масштаб на мобильных */
    }

    /* Атрибуты width/height у фото карточек нужны только для пропорций до загрузки;
       высота — по ширине карточки. Без этого на компьютере фото растягивалось до 600 px. */
    img.card-img-top {
      height: auto;
    }

    /* Стиль карточек товаров */
    .card {
      background: #fff8f4;
      border: 1px solid rgba(35,31,32,0.08);
      border-radius: 20px;
      transition: all 0.25s ease;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      height: 100%;
      box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    }

    @media (hover: hover) and (pointer: fine) {
      .card:hover {
      border-color: rgba(212,60,13,0.30);
      transform: translateY(-2px);
      box-shadow: 0 12px 28px rgba(0,0,0,0.12);
    }
    }

    @media (hover: hover) and (pointer: fine) {
      .card:hover .card-img-top {
      transform: scale(1.03);
    }
    }

    @media (hover: hover) and (pointer: fine) {
      .card:hover .set-component-frame {
      transform: none;
    }
    }

    .card {
      position: relative;
    }

    .card-badge {
      position: absolute;
      top: -16px;
      left: -12px;
      width: 33%;
      height: auto;
      z-index: 3;
      pointer-events: none;
      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
    }

    .set-component-frame {
      position: relative;
      display: block;
      aspect-ratio: 1 / 1;
      min-height: 0;
      overflow-y: auto;
      overflow-x: hidden;
      touch-action: pan-y;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
      scrollbar-width: none;
      -ms-overflow-style: none;
      contain: layout paint;
      background: #fff8f4;
    }

    .set-component-frame::-webkit-scrollbar {
      width: 0;
      height: 0;
      display: none;
    }

    .set-component-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      align-content: start;
      gap: 6px;
      box-sizing: border-box;
      min-height: 100%;
      padding: 8px;
      touch-action: pan-y;
    }

    .set-component-tile {
      position: relative;
      min-width: 0;
      min-height: 0;
      aspect-ratio: 1 / 1;
      overflow: hidden;
      border-radius: 8px;
      touch-action: pan-y;
      background: #f7e3da;
    }

    .set-component-tile--group {
      padding: 4px;
      background: #fff1e8;
    }

    .set-component-sauce-stack {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-auto-rows: 1fr;
      gap: 3px;
      width: 100%;
      height: 100%;
    }

    .set-component-sauce-stack img {
      min-width: 0;
      min-height: 0;
      border-radius: 5px;
      object-fit: cover;
    }


    .set-component-tile img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      touch-action: pan-y;
      user-select: none;
      -webkit-user-drag: none;
      pointer-events: none;
    }

    /* --- Центрирование контента в card-body --- */
    .card-body {
      background: transparent;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      transition: background-color 0.3s ease;
      flex-grow: 1;
      padding: 0.75rem;
      text-align: center;
    }

    /* --- Стили для заголовка при центрировании --- */
    .card-title {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: 1.1em;
      white-space: normal;
      overflow: visible;
      text-overflow: clip;
      margin-bottom: 0.5rem;
      max-width: 100%;
      color: var(--card-text);
      line-height: 1.3;
      text-shadow: none;
    }

    /* Убеждаемся что названия товаров видны */
    .card-body .card-title,
    .one-row-card h4,
    .one-row-card h5 {
      color: var(--card-text) !important;
      font-weight: 700;
    }

    /* Кнопка добавления товара */
    .custom-add-btn {
      background: #D43C0D;
      border: none;
      color: #fff;
      border-radius: 999px;
      padding: 0.55em 1.2em;
      transition: all 0.25s ease;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: 0.95em;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      box-shadow: 0 4px 14px rgba(212,60,13,0.20);
    }

    @media (hover: hover) and (pointer: fine) {
      .custom-add-btn:hover {
      background: #F04E1A;
      color: #fff;
      transform: translateY(-1px);
      box-shadow: 0 6px 18px rgba(212,60,13,0.30);
    }
    }

    /* Изменения для блока с кнопкой и старой ценой в модальном окне */
    .product-modal-add-to-cart-bar {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .custom-add-btn:active {
      background: #B03009;
      transform: scale(0.96);
    }

    .custom-add-btn.active-mobile {
      background: #B03009;
      transform: scale(0.96);
    }

    @keyframes buttonClick {
      0% {
        background-color: transparent;
      }

      50% {
        background-color: var(--accent-hover);
      }

      100% {
        background-color: transparent;
      }
    }

    /* Стили для кнопок-чипов выбора объема */
    .volume-variants-chips {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      justify-content: center;
    }

    .volume-variant-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
    }

    .volume-display {
      color: var(--text-secondary);
      font-size: 0.9rem;
      line-height: 1.4;
      text-align: center;
    }

    .volume-chip-btn {
      background-color: transparent;
      border: 2px solid var(--accent-color);
      color: var(--accent-color);
      border-radius: 12px;
      padding: 8px 12px;
      transition: all 0.3s ease;
      font-family: 'Montserrat', sans-serif;
      font-weight: 600;
      font-size: 0.85em;
      white-space: nowrap;
      text-align: center;
      line-height: 1.2;
      min-width: 70px;
    }

    /* --- Кастомизация ингредиентов --- */
    .customization-section {
      margin: 1.5rem 0;
    }

    .customization-section h6 {
      font-weight: 700;
      margin-bottom: 0.75rem;
    }

    .customization-sauce-section {
      margin-bottom: 14px;
    }

    .sauce-options {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .sauce-option-card {
      width: 100%;
      border: 1px solid rgba(35,31,32,0.12);
      background-color: rgba(35,31,32,0.04);
      border-radius: 10px;
      color: var(--text-primary);
      padding: 8px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      font-weight: 700;
      font-size: 0.85rem;
      transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .sauce-option-card:hover {
      border-color: var(--accent-color);
      transform: translateY(-1px);
    }
    }

    .sauce-option-card.active {
      border-color: var(--accent-color);
      background-color: rgba(212,60,13, 0.18);
      box-shadow: 0 2px 8px rgba(212,60,13, 0.28);
    }

    .sauce-option-card .ingredient-icon-wrapper {
      margin-bottom: 0;
    }

    .customization-validation {
      margin-top: 8px;
      font-size: 0.85rem;
      color: #D43C0D;
      font-weight: 700;
    }

    .customization-layers-section {
      margin-top: 14px;
      padding: 10px;
      border: 1px dashed rgba(35,31,32,0.15);
      border-radius: 10px;
      background: rgba(35,31,32,0.03);
    }

    .customization-layers-section h6 {
      margin-bottom: 8px;
    }

    .layer-base-item {
      border: 1px solid rgba(35,31,32,0.10);
      border-radius: 8px;
      padding: 8px 10px;
      margin-bottom: 8px;
      font-size: 0.85rem;
      background: rgba(231,193,90, 0.12);
    }

    .layer-base-item .label {
      font-weight: 700;
      margin-right: 6px;
      color: #6B5B53;
    }

    .layers-list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

    .layer-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      padding: 8px 10px;
      border: 1px solid rgba(35,31,32,0.10);
      border-radius: 8px;
      background: rgba(35,31,32,0.04);
      font-size: 0.85rem;
      cursor: grab;
      user-select: none;
      touch-action: none;
    }

    .layer-item.dragging {
      opacity: 0.5;
    }

    .layer-item.touch-source {
      opacity: 0.25;
    }

    .layer-item.layer-item-drop-target {
      border-color: var(--accent-color);
      box-shadow: 0 0 0 1px rgba(212,60,13, 0.45) inset;
    }

    .layer-touch-ghost {
      position: fixed;
      z-index: 20000;
      pointer-events: none;
      opacity: 0.95;
      transform: translate(-50%, -50%);
      box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
      background: rgba(255, 244, 236, 0.97);
      border-color: rgba(212,60,13, 0.55);
    }

    .layer-item .drag-handle {
      opacity: 0.65;
      font-size: 0.9rem;
      letter-spacing: 1px;
    }

    .layer-item-empty {
      padding: 6px 2px 2px;
      color: rgba(35,31,32,0.65);
      font-size: 0.8rem;
    }

    .ingredient-grid {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      justify-content: center;
    }

    .ingredient-card {
      flex: 0 0 calc(33.333% - 6px);
      min-width: 0;
      max-width: none;
      background-color: rgba(35,31,32,0.04);
      border: 1px solid rgba(35,31,32,0.08);
      border-radius: 12px;
      padding: 8px 4px;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      transition: border-color 0.2s ease, transform 0.2s ease;
    }

    .ingredient-card.muted {
      opacity: 0.5;
    }

    @media (hover: hover) and (pointer: fine) {
      .ingredient-card:hover {
      border-color: rgba(231,193,90, 0.6);
      transform: translateY(-1px);
    }
    }

    .ingredient-card.ingredient-card--active {
      border-color: var(--accent-color);
      box-shadow: 0 2px 8px rgba(212,60,13, 0.25);
      background-color: rgba(212,60,13, 0.12);
    }

    .ingredient-icon-wrapper {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      overflow: hidden;
      background-color: rgba(35,31,32,0.05);
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 4px;
    }

    .ingredient-icon-wrapper img {
      max-width: 100%;
      max-height: 100%;
      object-fit: cover;
    }

    .ingredient-name {
      font-size: 0.75rem;
      font-weight: 600;
      line-height: 1.2;
      min-height: 2em;
      margin-bottom: 4px;
    }

    .ingredient-required-note {
      font-size: 0.65rem;
      color: var(--accent-color);
      margin-bottom: 2px;
      font-weight: 600;
    }

    .ingredient-controls {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 4px;
      margin-bottom: 2px;
    }

    .ingredient-controls button {
      width: 26px;
      height: 26px;
      border-radius: 50%;
      border: 1px solid rgba(35,31,32,0.18);
      background: transparent;
      color: #231F20;
      font-weight: 700;
      font-size: 0.9rem;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .ingredient-controls button:hover:not(:disabled) {
      background-color: var(--accent-color);
      border-color: var(--accent-color);
      color: #111;
    }
    }

    .ingredient-controls button:disabled {
      opacity: 0.4;
      cursor: not-allowed;
    }

    .ingredient-quantity {
      font-size: 0.85rem;
      font-weight: 700;
      min-width: 18px;
    }

    .ingredient-extra {
      font-size: 0.65rem;
      color: var(--accent-color);
      min-height: 1em;
      transition: opacity 0.2s ease;
    }

    .customization-extra-summary {
      margin-top: 12px;
      font-size: 0.9rem;
      color: rgba(35,31,32,0.65);
    }

    .customization-extra-summary strong {
      color: var(--accent-color);
    }

    /* Всегда 3 колонки для ингредиентов */

    @media (hover: hover) and (pointer: fine) {
      .volume-chip-btn:hover {
      background-color: var(--accent-color);
      color: white;
      transform: translateY(-1px);
      box-shadow: 0 4px 8px rgba(255, 107, 0, 0.3);
    }
    }

    .volume-chip-btn:active {
      background-color: red;
      border-color: red;
      transform: scale(0.95);
      animation: chipClick 0.3s ease;
    }

    @keyframes chipClick {
      0% {
        background-color: transparent;
      }

      50% {
        background-color: var(--accent-hover);
      }

      100% {
        background-color: var(--accent-color);
      }
    }

    /* Адаптивные стили для кнопок-чипов */
    @media (max-width: 576px) {
      .volume-chip-btn {
        font-size: 0.8em;
        padding: 6px 10px;
        min-width: 65px;
      }
    }

    /* Стили для модального окна с весом и дополнительными товарами */
    .product-modal-content {
      height: 90vh;
      display: flex;
      flex-direction: column;
      position: relative;
      border-radius: 28px !important;
      overflow: hidden;
    }

    /* Унифицированная анимация sheet-modal (productModal, cartModal, addressModal).
       И мобилка, и десктоп: bottom-sheet slide вверх из-за экрана, без fade.
       Сама модалка всегда полностью непрозрачна — прозрачность только у backdrop.
       opacity-stub на .modal нужен для того, чтобы Bootstrap мог прочитать
       transition-duration и корректно посчитать момент закрытия. */
    .modal.sheet-modal.fade {
      opacity: 1 !important;
      transition: opacity 0.35s linear;
    }
    .modal.sheet-modal.fade .modal-dialog {
      transform: translate3d(0, 100vh, 0);
      transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
      will-change: transform;
    }
    .modal.sheet-modal.fade.show .modal-dialog {
      transform: translate3d(0, 0, 0);
    }

    /* Универсальный sheet-overlay для кастомных не-Bootstrap оверлеев
       (mainOrderOverlay, addressModal-like). Bootstrap тут не участвует —
       состояние через класс .open. Бэкдроп в ::before, чтобы его фейд
       не влиял на содержимое. --sheet-backdrop переопределяется на каждом. */
    .sheet-overlay {
      position: fixed;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      visibility: hidden;
      pointer-events: none;
      background: transparent !important;
      transition: visibility 0s linear 0.35s;
    }
    .sheet-overlay::before {
      content: "";
      position: absolute;
      inset: 0;
      background: var(--sheet-backdrop, rgba(0, 0, 0, 0.5));
      opacity: 0;
      transition: opacity 0.35s linear;
    }
    .sheet-overlay.open {
      visibility: visible;
      pointer-events: auto;
      transition-delay: 0s;
    }
    .sheet-overlay.open::before {
      opacity: 1;
    }
    .sheet-overlay > * {
      position: relative;
      transform: translate3d(0, 100vh, 0);
      transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
      will-change: transform;
    }
    .sheet-overlay.open > * {
      transform: translate3d(0, 0, 0);
    }

    /* Унифицированный тонкий скроллбар внутри sheet-модалок.
       Перекрывает глобальное `.modal ::-webkit-scrollbar { display: none }`
       за счёт большей специфичности (.modal.sheet-modal vs .modal). */
    .modal.sheet-modal *,
    .sheet-overlay * {
      scrollbar-width: thin;
      scrollbar-color: rgba(35, 31, 32, 0.2) transparent;
    }
    .modal.sheet-modal *::-webkit-scrollbar,
    .sheet-overlay *::-webkit-scrollbar {
      display: block !important;
      width: 6px !important;
      height: 6px !important;
    }
    .modal.sheet-modal *::-webkit-scrollbar-track,
    .sheet-overlay *::-webkit-scrollbar-track {
      background: transparent !important;
    }
    .modal.sheet-modal *::-webkit-scrollbar-thumb,
    .sheet-overlay *::-webkit-scrollbar-thumb {
      background: rgba(35, 31, 32, 0.12) !important;
      border-radius: 3px !important;
    }
    @media (hover: hover) and (pointer: fine) {
      .modal.sheet-modal *::-webkit-scrollbar-thumb:hover, .sheet-overlay *::-webkit-scrollbar-thumb:hover {
      background: rgba(35, 31, 32, 0.25) !important;
    }
    }

    .modal-header {
      border-bottom: 1px solid var(--border-color);
    }

    .close-btn {
      background: #fff0e8;
      border: none;
      color: #D43C0D;
      font-size: 24px;
      font-weight: bold;
      padding: 0 10px;
      cursor: pointer;
      border-radius: 8px;
      transition: background 0.2s ease, color 0.2s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .close-btn:hover {
      background: #ffe0ce;
      color: #b52d08;
    }
    }

    .product-modal-body {
      flex: 1;
      overflow-y: auto;
      padding-bottom: 110px;
    }

    .product-modal-shell {
      display: flex;
      flex-direction: column;
      gap: 1.25rem;
    }

    .product-modal-media-column,
    .product-modal-info-column {
      min-width: 0;
    }

    .product-modal-image-frame {
      background: linear-gradient(145deg, rgba(212,60,13, 0.14), rgba(78, 205, 196, 0.08));
      border: 1px solid var(--border-color);
      border-radius: 24px;
      padding: 12px;
      box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
    }

    #modalProductImage {
      display: block;
      width: 100%;
      max-height: 360px;
      object-fit: contain;
      margin: 0;
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.35);
    }

    .product-copy-stack {
      display: flex;
      flex-direction: column;
      gap: 1rem;
    }

    .product-copy-tabs {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.5rem;
    }

    .product-copy-tab {
      border: 1px solid var(--border-color);
      background: var(--bg-tertiary);
      color: var(--text-secondary);
      border-radius: 999px;
      padding: 0.7rem 1rem;
      font-size: 0.85rem;
      font-weight: 700;
      transition: all 0.25s ease;
    }

    .product-copy-tab.is-active {
      background: var(--gradient-accent);
      color: white;
      border-color: transparent;
      box-shadow: 0 12px 24px rgba(212,60,13, 0.18);
    }

    .product-nutrition-section {
      background: linear-gradient(145deg, rgba(212,60,13, 0.12), rgba(78, 205, 196, 0.1));
      border: 1px solid rgba(212,60,13, 0.18);
      border-radius: 24px;
      padding: 1rem;
    }

    .product-nutrition-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 1rem;
      margin-bottom: 0.9rem;
    }

    .product-nutrition-header h6 {
      margin: 0;
      font-size: 1rem;
    }

    .product-nutrition-note {
      margin: 0.25rem 0 0;
      font-size: 0.78rem;
      color: var(--text-secondary);
      max-width: 260px;
    }

    .product-nutrition-chip {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0.45rem 0.8rem;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.6);
      color: var(--text-primary);
      font-size: 0.78rem;
      font-weight: 700;
      white-space: nowrap;
    }

    [data-theme="dark"] .product-nutrition-chip {
      background: rgba(35,31,32,0.04);
    }

    .product-nutrition-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.75rem;
    }

    .product-nutrition-stat {
      border-radius: 18px;
      padding: 0.85rem 0.9rem;
      background: var(--bg-secondary);
      border: 1px solid var(--border-color);
      display: flex;
      flex-direction: column;
      gap: 0.25rem;
    }

    .product-nutrition-stat span {
      font-size: 0.72rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--text-muted);
    }

    .product-nutrition-stat strong {
      font-size: 1.05rem;
      color: var(--text-primary);
    }

    .product-description-stack {
      display: flex;
      flex-direction: column;
      gap: 0.9rem;
    }

    .product-mobile-sheet-head {
      display: none;
    }

    .product-desktop-head {
      display: none;
      margin-bottom: 1rem;
    }

    .product-desktop-head h2 {
      margin: 0;
      font-size: 2rem;
      line-height: 1.05;
      color: var(--text-primary);
      text-align: center;
    }

    .product-mobile-scroll-cue {
      display: none;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-section,
    .product-modal-content.desktop-showcase-mode .story-automatic-section {
      width: 100%;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-select-shell {
      display: flex;
      flex-direction: column;
      gap: 0.7rem;
      margin-bottom: 0.25rem;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-select-label {
      font-size: 0.78rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: rgba(35,31,32,0.55);
    }

    .product-modal-content.desktop-showcase-mode .story-weight-select-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 0.75rem;
      align-items: center;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-trigger {
      width: 100%;
      min-height: 56px;
      border-radius: 18px;
      border: 1px solid rgba(35,31,32,0.08);
      background: rgba(35,31,32,0.03);
      color: var(--text-primary);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.7rem;
      padding: 0.95rem 1rem;
      font: inherit;
      font-size: 1rem;
      font-weight: 600;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-trigger-icon {
      color: rgba(35,31,32,0.60);
      font-size: 1rem;
      line-height: 1;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-price {
      min-height: 56px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0 1rem;
      border-radius: 18px;
      background: rgba(35,31,32,0.04);
      color: var(--text-primary);
      font-weight: 700;
      white-space: nowrap;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-summary {
      display: none;
    }

    .product-modal-content.desktop-showcase-mode .story-automatic-additionals-list {
      display: flex;
      flex-direction: column;
      gap: 0.55rem;
    }

    .product-modal-content.desktop-showcase-mode .story-automatic-additionals-list .automatic-additional-item {
      margin: 0;
      padding: 0.9rem 1rem;
      border-radius: 18px;
      background: rgba(35,31,32,0.03);
      border: 1px solid rgba(35,31,32,0.08);
      color: rgba(35,31,32,0.90);
      font-size: 0.98rem;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-overlay {
      position: absolute;
      inset: 0;
      z-index: 1200;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-overlay-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(5, 5, 5, 0.6);
      backdrop-filter: blur(6px);
    }

    .product-modal-content.desktop-showcase-mode .story-weight-overlay-sheet {
      position: absolute;
      left: 50%;
      top: 50%;
      width: min(540px, calc(100% - 48px));
      max-height: min(78vh, 620px);
      transform: translate(-50%, -50%);
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
      padding: 1rem;
      border-radius: 28px;
      background: #F2E9DB;
      box-shadow: 0 20px 46px rgba(0, 0, 0, 0.42);
    }

    .product-modal-content.desktop-showcase-mode .story-weight-overlay-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.8rem;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-overlay-title {
      color: var(--text-primary);
      font-size: 1.08rem;
      font-weight: 700;
      line-height: 1.2;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-overlay-close {
      width: 40px;
      height: 40px;
      border: none;
      border-radius: 50%;
      background: rgba(35,31,32,0.04);
      color: var(--text-primary);
      font-size: 1.5rem;
      line-height: 1;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-overlay-options {
      display: flex;
      flex-direction: column;
      gap: 0.45rem;
      overflow-y: auto;
      min-height: 0;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-option {
      width: 100%;
      border: none;
      border-radius: 16px;
      background: rgba(35,31,32,0.03);
      color: rgba(35,31,32,0.90);
      padding: 0.9rem 1rem;
      text-align: left;
      font: inherit;
      font-size: 1rem;
    }

    .product-modal-content.desktop-showcase-mode .story-weight-option.is-active {
      background: linear-gradient(135deg, rgba(212,60,13, 0.2), rgba(255, 107, 26, 0.16));
      color: #D43C0D;
      box-shadow: inset 0 0 0 1px rgba(255, 148, 80, 0.38);
    }

    /* Стили по умолчанию (мобильная версия) */
    .product-modal-add-to-cart-bar {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      background-color: var(--bg-secondary);
      padding: 15px;
      display: flex;
      justify-content: center;
      border-top: 1px solid var(--border-color);
      box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.2);
      z-index: 1060;
    }

    .product-modal-add-to-cart-bar .custom-add-btn {
      width: 100%;
      max-width: 300px;
      padding: 10px;
      font-size: 1.1em;
    }

    .weight-select-container {
      padding: 10px 0;
    }

    .weight-price {
      font-weight: bold;
      color: var(--text-primary);
    }

    /* Стили для автоматических дополнений */
    .automatic-additional-item {
      color: var(--text-muted);
      font-size: 0.9rem;
      font-style: italic;
      margin-bottom: 5px;
      padding: 2px 0;
    }

    #weightSelect {
      background-color: var(--bg-card);
      color: var(--text-primary);
      border: 1px solid var(--border-color);
      padding: 8px 12px;
      border-radius: 8px;
    }

    /* Стили для списка дополнительных товаров */
    #additionalItemsList {
      max-height: none;
      /* Позволяем скроллить все модальное окно */
      background-color: transparent;
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      /* 2 колонки равной ширины */
      gap: 10px;
      width: 100%;
    }

    .additional-item {
      margin-bottom: 5px;
      background-color: var(--bg-card);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      transition: all 0.3s ease;
      position: relative;
      cursor: pointer;
    }

    @media (hover: hover) and (pointer: fine) {
      .additional-item:hover {
      background-color: var(--bg-card);
      border-color: var(--border-color);
    }
    }

    .additional-item.selected {
      border: 2px solid red;
    }

    .additional-item-content {
      display: flex;
      flex-direction: column;
      padding: 10px;
      height: 100%;
    }

    .additional-item-checkbox-container {
      position: absolute;
      top: 10px;
      left: 10px;
      z-index: 2;
      background-color: rgba(31, 31, 31, 0.6);
      border-radius: 4px;
      padding: 3px;
    }

    .additional-item-checkbox {
      width: 18px;
      height: 18px;
      cursor: pointer;
      background-color: var(--bg-card);
      border: 1px solid var(--border-color);
      border-radius: 3px;
    }

    .additional-item-label {
      display: flex;
      flex-direction: column;
      cursor: pointer;
      margin-bottom: 0;
      width: 100%;
      height: 100%;
    }

    .additional-item-image {
      width: 100%;
      height: 120px;
      object-fit: cover;
      border-radius: 6px;
      margin-bottom: 8px;
    }

    .additional-item-details {
      padding-left: 5px;
      padding-right: 5px;
      flex-grow: 1;
    }

    .additional-item-name {
      font-size: 0.9em;
      margin-bottom: 5px;
      color: var(--text-primary);
      display: -webkit-box;
      -webkit-line-clamp: 2;
      /* Webkit версия */
      line-clamp: 2;
      /* Стандартная версия */
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .additional-item-price {
      font-weight: bold;
      color: var(--text-primary);
      font-size: 0.85em;
    }

    /* Стили для товара-витрины с выбором связанного товара */
    #selectionPlaceholderHint {
      display: none;
    }

    #selectionPlaceholderOptions {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }

    .selection-option-card {
      border: 1px solid var(--border-color);
      border-radius: 10px;
      background-color: var(--bg-card);
      overflow: hidden;
      cursor: pointer;
      transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .selection-option-card:hover {
      transform: translateY(-1px);
      border-color: var(--accent-color);
      box-shadow: 0 6px 14px var(--shadow-color);
    }
    }

    .selection-option-image {
      width: 100%;
      height: 150px;
      object-fit: contain;
      display: block;
      padding: 6px;
    }

    .selection-option-body {
      padding: 8px 10px;
    }

    .selection-option-info-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 6px;
      margin-bottom: 8px;
    }

    .selection-option-name {
      color: var(--text-primary);
      font-size: 0.88rem;
      line-height: 1.2;
      flex: 1;
      min-width: 0;
    }

    .selection-option-price {
      color: var(--text-primary);
      font-weight: 700;
      white-space: nowrap;
      flex-shrink: 0;
    }

    .selection-option-empty {
      grid-column: 1 / -1;
      color: var(--text-muted);
      text-align: center;
      padding: 8px 0;
    }

    /* Стили для компонентов сета */
    .set-component {
      margin-bottom: 10px;
      background-color: var(--bg-card);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      padding: 10px;
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .set-component-image {
      width: 50px;
      height: 50px;
      object-fit: cover;
      border-radius: 8px;
    }

    .set-component-details {
      flex: 1;
    }

    .set-component-name {
      font-size: 1rem;
      color: var(--text-primary);
      font-weight: bold;
      margin-bottom: 5px;
    }

    .set-component-quantity {
      font-size: 0.9rem;
      color: var(--text-secondary);
    }

    .set-component.unavailable {
      opacity: 0.6;
      border-color: #ff4444;
    }

    .set-component.unavailable .set-component-name {
      color: #ff4444;
    }

    .set-component-replace {
      margin-top: 8px;
      text-align: right;
    }

    .replace-component-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.35rem;
      min-height: 36px;
      padding: 0.55rem 0.95rem;
      border: 1px solid rgba(212,60,13, 0.28);
      border-radius: 999px;
      background: linear-gradient(135deg, rgba(212,60,13, 0.16), rgba(255, 107, 26, 0.08));
      color: var(--accent-color);
      font-size: 0.82rem;
      font-weight: 700;
      letter-spacing: 0.01em;
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
      transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .replace-component-btn:hover {
      background: linear-gradient(135deg, var(--accent-color), var(--accent-hover));
      border-color: transparent;
      color: white;
      transform: translateY(-1px);
      box-shadow: 0 12px 24px rgba(212,60,13, 0.22);
    }
    }

    .replace-component-btn:active {
      transform: translateY(0);
      box-shadow: 0 6px 16px rgba(212,60,13, 0.18);
    }

    .replace-component-btn--warning {
      background: linear-gradient(135deg, rgba(255, 68, 68, 0.16), rgba(212,60,13, 0.12));
      border-color: rgba(255, 68, 68, 0.26);
      color: #CC2E2E;
    }

    @media (hover: hover) and (pointer: fine) {
      .replace-component-btn--warning:hover {
      background: linear-gradient(135deg, #CC2E2E, #D43C0D);
    }
    }

    [data-theme="light"] .replace-component-btn {
      background: linear-gradient(135deg, rgba(212,60,13, 0.14), rgba(255, 255, 255, 0.95));
      border-color: rgba(212,60,13, 0.22);
      color: #D43C0D;
    }

    [data-theme="light"] .replace-component-btn--warning {
      background: linear-gradient(135deg, rgba(255, 107, 107, 0.12), rgba(255, 255, 255, 0.96));
      color: #CC2E2E;
    }

    /* Стили для модального окна замены */
    .replacement-products-list {
      max-height: 400px;
      overflow-y: auto;
    }

    .replacement-product {
      margin-bottom: 10px;
      background-color: var(--bg-card);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      padding: 15px;
      cursor: pointer;
      transition: all 0.3s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .replacement-product:hover {
      border-color: var(--accent-color);
      background-color: rgba(35,31,32,0.03);
    }
    }

    .replacement-product-content {
      display: flex;
      align-items: center;
      gap: 15px;
    }

    .replacement-product-image {
      width: 60px;
      height: 60px;
      object-fit: cover;
      border-radius: 8px;
    }

    .replacement-product-details {
      flex: 1;
    }

    .replacement-product-name {
      font-size: 1.1rem;
      color: var(--text-primary);
      font-weight: bold;
      margin-bottom: 5px;
    }

    .replacement-product-price {
      font-size: 1rem;
      color: var(--accent-color);
      margin-bottom: 5px;
    }

    .replacement-product-difference {
      font-size: 0.9rem;
      color: var(--text-secondary);
    }

    .weight-selection {
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px solid rgba(35,31,32,0.10);
    }

    .weight-option {
      display: inline-block;
      margin-right: 10px;
      margin-bottom: 5px;
    }

    .weight-option input[type="radio"] {
      margin-right: 5px;
    }

    /* Стили для квадратных блоков замены товаров */
    .replacement-products-list {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 15px;
      max-height: 400px;
      overflow-y: auto;
      padding: 10px;
    }

    .replacement-product {
      background-color: rgba(35,31,32,0.03);
      border: 2px solid rgba(35,31,32,0.15);
      border-radius: 12px;
      padding: 15px;
      cursor: pointer;
      transition: all 0.3s ease;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      min-height: 200px;
      justify-content: center;
    }

    @media (hover: hover) and (pointer: fine) {
      .replacement-product:hover {
      border-color: var(--accent-color);
      background-color: rgba(35,31,32,0.03);
      transform: scale(1.02);
    }
    }

    .replacement-product-card {
      display: flex;
      flex-direction: column;
      align-items: center;
      width: 100%;
    }

    .replacement-product-image {
      width: 120px;
      height: 120px;
      object-fit: cover;
      border-radius: 12px;
      margin-bottom: 15px;
    }

    .replacement-product-name {
      font-size: 1rem;
      color: var(--text-primary);
      font-weight: bold;
      margin-bottom: 5px;
      line-height: 1.2;
    }

    .replacement-product-weight {
      font-size: 0.9rem;
      color: var(--accent-color);
      font-weight: 500;
      margin-bottom: 8px;
    }

    .replacement-product-price {
      font-size: 1rem;
      color: var(--text-secondary);
      font-weight: 600;
      margin-top: auto;
    }

    /* Мобильная версия - 2 блока в строку */
    @media (max-width: 768px) {
      .replacement-products-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
      }

      .replacement-product {
        min-height: 180px;
        padding: 12px;
      }

      .replacement-product-image {
        width: 100px;
        height: 100px;
      }

      .replacement-product-name {
        font-size: 0.9rem;
      }

      .replacement-product-weight {
        font-size: 0.8rem;
      }
    }

    /* --- Модалка замены компонента: единый стиль --- */
    #replaceComponentModal .modal-dialog {
      max-width: 480px;
    }

    .replace-modal-content {
      background: #FFF4EC;
      border: none;
      border-radius: 28px;
      overflow: hidden;
      box-shadow: 0 28px 56px rgba(0, 0, 0, 0.35);
      position: relative;
      max-height: 90vh;
      display: flex;
      flex-direction: column;
    }

    .replace-modal-close {
      position: absolute;
      top: 16px;
      left: 16px;
      width: 46px;
      height: 46px;
      border-radius: 50%;
      background: rgba(35,31,32,0.05);
      border: none;
      color: var(--text-primary);
      font-size: 24px;
      font-weight: bold;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 10;
      cursor: pointer;
      transition: background 0.2s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .replace-modal-close:hover {
      background: rgba(35,31,32,0.07);
    }
    }

    .replace-modal-body {
      flex: 1;
      overflow-y: auto;
      overscroll-behavior: contain;
      padding: 72px 16px 20px;
    }

    /* Карточки замены внутри новой модалки */
    .replace-modal-body .replacement-products-list {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 12px;
      max-height: none;
      padding: 0;
    }

    .replace-modal-body .replacement-product {
      background: rgba(35,31,32,0.03);
      border: 1px solid rgba(35,31,32,0.08);
      border-radius: 20px;
      padding: 14px;
      min-height: 180px;
      transition: border-color 0.2s ease, background 0.2s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .replace-modal-body .replacement-product:hover {
      border-color: rgba(255, 161, 97, 0.6);
      background: rgba(35,31,32,0.04);
      transform: none;
    }
    }

    .replace-modal-body .replacement-product-image {
      width: 100px;
      height: 100px;
      border-radius: 16px;
      margin-bottom: 12px;
    }

    .replace-modal-body .replacement-product-name {
      color: var(--text-primary);
      font-size: 0.95rem;
    }

    .replace-modal-body .replacement-product-weight {
      color: rgba(35,31,32,0.55);
    }

    .replace-modal-body .replacement-product-price {
      color: var(--accent-color);
    }

    .replace-modal-body .weight-selection {
      border-top-color: rgba(35,31,32,0.10);
    }

    .replace-modal-body .weight-option {
      color: rgba(35,31,32,0.85);
    }

    /* Для мобильных устройств - адаптивная сетка доп. товаров */
    @media (max-width: 576px) {

      /* Сохраняем две колонки, но делаем их меньше */
      #additionalItemsList {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
      }

      .additional-item-image {
        height: 80px;
        /* Меньшие картинки на мобильных */
      }

      .additional-item-name {
        font-size: 0.8em;
      }

      .additional-item-price {
        font-size: 0.75em;
      }

      /* Настройка размера логотипа для мобильных устройств */
      .brand-logo {
        max-width: 150px;
        /* Размер для мобильной версии */
      }

      #productModal .modal-dialog.mobile-pizza-dialog {
        max-width: 420px;
        width: calc(100vw - 24px);
        margin: 0.75rem auto;
        min-height: auto;
        align-items: center;
      }


      /* *** Мобильная версия модального окна товара: без шапки ТОЛЬКО ДЛЯ ПИЦЦЫ *** */
      #productModal .product-modal-content.pizza-mode .modal-header {
        display: none;
        /* Скрываем шапку только для пицц */
      }

      #productModal .product-modal-content.pizza-mode {
        position: relative;
        height: auto;
        max-height: 90vh;
        border-radius: 28px;
        overflow: hidden;
        box-shadow: 0 28px 56px rgba(0, 0, 0, 0.35);
      }

      /* Плавающая кнопка закрытия поверх изображения - ТОЛЬКО ДЛЯ ПИЦЦЫ */
      #productModal .product-modal-content.pizza-mode .close-btn.mobile-floating-close {
        position: absolute;
        top: 14px;
        left: 14px;
        right: auto;
        width: 46px;
        height: 46px;
        background: rgba(35,31,32,0.05);
        backdrop-filter: blur(10px);
        border-radius: 50%;
        color: white;
        font-size: 24px;
        font-weight: bold;
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 1100;
        padding: 0;
        border: none;
      }

      @media (hover: hover) and (pointer: fine) {
        #productModal .product-modal-content.pizza-mode .close-btn.mobile-floating-close:hover {
        background: rgba(0, 0, 0, 0.8);
      }
      }

      /* Скрываем плавающую кнопку для НЕ-пицц */
      #productModal .product-modal-content:not(.pizza-mode) .close-btn.mobile-floating-close {
        display: none;
      }

      /* Изображение товара на всю ширину без отступов сверху - ТОЛЬКО ДЛЯ ПИЦЦЫ */
      #productModal .product-modal-content.pizza-mode .product-modal-body {
        padding: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
      }

      #productModal .product-modal-content.pizza-mode #modalProductImage {
        margin-top: 0;
        border-radius: 0;
      }
    }

    /* Добавляем промежуточные брейкпоинты для плавного масштабирования */
    @media (max-width: 400px) {
      .card-title {
        font-size: 1em;
      }
    }

    @media (min-width: 401px) and (max-width: 576px) {
      /* Ничего специфичного здесь */
    }

    /* Для товаров с возможностью выбора веса */
    .price-from {
      font-size: 0.9em;
      color: var(--text-secondary);
    }

    /* --- Стили для модального окна "Пицца пополам" --- */
    .half-pizza-card-icon {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 0;
      padding: 10px;
      background: linear-gradient(135deg, var(--bg-tertiary), var(--bg-card));
    }

    /* Миниатюрные половинки для карточки */
    .half-pizza-card-half {
      width: 50px;
      height: 100px;
      background-color: var(--bg-tertiary);
      background-size: 200% 100%;
      overflow: hidden;
      transition: transform 0.3s ease;
    }

    .half-pizza-card-half.left {
      border-radius: 100px 0 0 100px;
      border: 2px solid var(--accent-color);
      border-right: none;
      background-position: left center;
    }

    .half-pizza-card-half.right {
      border-radius: 0 100px 100px 0;
      border: 2px solid var(--accent-color);
      border-left: none;
      background-position: right center;
    }

    .half-pizza-card-plus {
      font-size: 1.5rem;
      font-weight: bold;
      color: var(--accent-color);
      margin: 0 8px;
      z-index: 1;
    }

    @media (hover: hover) and (pointer: fine) {
      .half-pizza-card:hover .half-pizza-card-half.left {
      transform: rotate(-5deg);
    }
    }

    @media (hover: hover) and (pointer: fine) {
      .half-pizza-card:hover .half-pizza-card-half.right {
      transform: rotate(5deg);
    }
    }

    .half-pizza-description {
      text-align: center;
      color: var(--text-secondary);
      margin-bottom: 1rem;
      font-size: 0.9rem;
    }

    /* Контейнер свайп-конструктора */
    .half-pizza-swipe-container {
      display: flex;
      justify-content: center;
      align-items: flex-start;
      gap: 0;
      margin-bottom: 2rem;
      padding: 0 10px;
    }

    /* Каждая сторона (левая и правая) */
    .half-pizza-side {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0;
      flex: 0 0 auto;
      width: 195px; /* Фиксированная ширина предотвращает смещение при длинных названиях */
      overflow: visible;
    }

    .half-pizza-side:first-child {
      align-items: flex-end;
    }

    .half-pizza-side:last-child {
      align-items: flex-start;
    }


    /* Кнопки-стрелки */
    .half-pizza-arrow {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      border: 2px solid var(--border-color);
      background: var(--bg-card);
      color: var(--text-primary);
      font-size: 1rem;
      cursor: pointer;
      transition: all 0.2s ease;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .half-pizza-arrow.up {
      margin-bottom: 10px;
    }

    .half-pizza-arrow.down {
      margin-top: 10px;
    }

    /* Раздвигаем стрелки в стороны */
    .half-pizza-side:first-child .half-pizza-arrow {
      margin-right: 30px;
    }

    .half-pizza-side:last-child .half-pizza-arrow {
      margin-left: 30px;
    }

    @media (hover: hover) and (pointer: fine) {
      .half-pizza-arrow:hover {
      background: var(--accent-color);
      color: white;
      border-color: var(--accent-color);
    }
    }

    .half-pizza-arrow:active {
      transform: scale(0.95);
    }

    /* Половинка пиццы - КРУГЛАЯ (увеличено на 30%) */
    .half-pizza-half {
      width: 195px;
      height: 390px;
      background-color: var(--bg-tertiary);
      background-size: 200% 100%;
      overflow: hidden;
      cursor: grab;
      touch-action: pan-y;
      transition: background-image 0.3s ease;
    }

    .half-pizza-half.left {
      border-radius: 390px 0 0 390px;
      border: 3px solid var(--accent-color);
      border-right: none;
      background-position: left center;
    }

    .half-pizza-half.right {
      border-radius: 0 390px 390px 0;
      border: 3px solid var(--accent-color);
      border-left: none;
      background-position: right center;
    }

    .half-pizza-half:active {
      cursor: grabbing;
    }

    /* Центральный разделитель */
    .half-pizza-center-divider {
      width: 0;
      height: 390px;
      background: var(--accent-color);
      margin-top: 48px;
      flex-shrink: 0;
    }

    /* Название пиццы под половинкой */
    .half-pizza-name {
      font-weight: 600;
      font-size: 0.95rem;
      color: var(--text-primary);
      text-align: center;
      white-space: nowrap;
      margin-top: 10px;
    }

    /* Раздвигаем названия в стороны */
    .half-pizza-side:first-child .half-pizza-name {
      margin-right: 25px;
    }

    .half-pizza-side:last-child .half-pizza-name {
      margin-left: 25px;
    }

    /* Итоговая цена */
    .half-pizza-total-price {
      text-align: center;
      font-size: 1.3rem;
      font-weight: 700;
      color: var(--accent-color);
      margin-top: 0.5rem;
      margin-bottom: 1rem;
    }

    @media (max-width: 576px) {
      .half-pizza-side {
        width: 170px; /* Фиксированная ширина для мобильных */
      }

      .half-pizza-half {
        width: 170px;
        height: 340px;
      }

      .half-pizza-center-divider {
        height: 340px;
        margin-top: 46px;
      }

      .half-pizza-arrow {
        width: 34px;
        height: 34px;
        font-size: 0.95rem;
      }

      .half-pizza-arrow.up {
        margin-bottom: 8px;
      }

      .half-pizza-arrow.down {
        margin-top: 8px;
      }

      .half-pizza-name {
        font-size: 0.85rem;
        margin-top: 8px;
      }

      .half-pizza-half.left {
        border-radius: 340px 0 0 340px;
      }

      .half-pizza-half.right {
        border-radius: 0 340px 340px 0;
      }

      .half-pizza-side:first-child .half-pizza-arrow {
        margin-right: 20px;
      }

      .half-pizza-side:last-child .half-pizza-arrow {
        margin-left: 20px;
      }

      .half-pizza-side:first-child .half-pizza-name {
        margin-right: 20px;
      }

      .half-pizza-side:last-child .half-pizza-name {
        margin-left: 20px;
      }
    }

    /* --- Убираем margin-top: auto и делаем wrapper компактным --- */
    .custom-add-wrapper {
      display: inline-flex;
      /* Оставляем inline-flex */
      align-items: center;
      width: auto;
      /* Ширина по содержимому */
      margin-top: 0.75rem;
      /* Добавляем небольшой отступ сверху */
    }

    .product-weight {
      font-size: 0.8em;
      color: var(--text-secondary);
      white-space: nowrap;
      margin-left: 0.5rem;
    }

    .product-weight--people {
      display: inline-flex;
      align-items: center;
      gap: 0.28rem;
      color: var(--text-muted);
      font-size: 0.8em;
      font-weight: 700;
    }

    .product-weight--people::before {
      content: "";
      width: 1.16em;
      height: 1.16em;
      display: inline-block;
      background: url('/static/images/person-count.svg') center / contain no-repeat;
      opacity: 0.72;
    }

    /* --- Атрибуты центрируются --- */
    .product-attributes {
      display: flex;
      flex-direction: column;
      text-align: center;
      /* Центрируем текст атрибутов */
      font-size: 0.8em;
      color: var(--text-primary);
      border: none;
      outline: none;
      margin-bottom: 0.5rem;
      /* Отступ снизу перед кнопкой/ценой */
      width: 100%;
      /* Занимаем доступную ширину для центрирования текста */
    }

    .product-attributes div {
      line-height: 1.2;
    }

    /* --- Описание центрируется --- */
    .product-description {
      font-size: 0.7em;
      color: var(--text-secondary);
      margin-top: 0.25em;
      margin-bottom: 0.5rem;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      /* Webkit версия */
      line-clamp: 2;
      /* Стандартная версия */
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-overflow: ellipsis;
      line-height: 1.3;
      width: 100%;
      /* Занимаем доступную ширину для центрирования текста */
      text-align: center;
      /* Центрируем текст описания */
    }

    /* Специально для мобильной версии */
    @media (max-width: 576px) {

      /* --- Убираем flex-grow и отступ для описания --- */
      .product-description {
        margin-bottom: 0.5rem;
        /* Возвращаем отступ, если нужно */
        flex-grow: 0;
        /* НЕ растягиваем описание */
      }
    }

    @keyframes cartPulse {
      0% {
        transform: scale(1);
      }

      50% {
        transform: scale(1.3);
      }

      100% {
        transform: scale(1);
      }
    }

    .cart-pulse {
      animation: cartPulse 0.3s ease;
    }

    .modal-content {
      background-color: var(--bg-card);
      color: var(--text-primary);
      border: none;
    }

    /* Стили для выбора размера пиццы */
    .size-variants-chips {
      display: flex;
      justify-content: space-between;
      /* Распределяем по ширине */
      gap: 10px;
      margin-bottom: 15px;
      width: 100%;
      /* На всю ширину */
    }

    .size-variant-btn {
      flex: 1;
      /* Растягиваем кнопки */
      border-radius: 12px;
      /* Чуть менее скругленные */
      padding: 8px 0;
      /* Больше паддинг */
      font-weight: 700;
      transition: all 0.2s ease;
      border: 2px solid var(--accent-color);
      /* Оранжевая рамка */
      color: var(--accent-color);
      /* Оранжевый текст */
      background-color: transparent;
    }

    @media (hover: hover) and (pointer: fine) {
      .size-variant-btn:hover {
      background-color: rgba(212,60,13, 0.1);
      /* Легкий фон при наведении */
      color: var(--accent-hover);
      border-color: var(--accent-hover);
    }
    }

    .size-variant-btn.active {
      background-color: var(--accent-color);
      /* Оранжевый фон */
      color: white;
      border-color: var(--accent-color);
      box-shadow: 0 4px 10px rgba(212,60,13, 0.3);
      /* Тень */
    }

    .modal-header {
      border-bottom: 1px solid var(--border-color);
    }

    .modal-footer {
      border-top: 1px solid rgba(35,31,32,0.10);
      /* --- ИЗМЕНЕНИЕ: Убираем стандартный футер у модалки корзины --- */
      display: none;
      /* Скрываем стандартный футер */
    }

    /* --- PIZZA MODE STYLES --- */
    /* Стили для модального окна пиццы (картинка во всю ширину) */
    .pizza-mode .product-modal-body {
      padding-top: 0;
    }

    .pizza-mode .product-modal-content,
    #productModal .product-modal-content.pizza-mode {
      background: #FFFFFF;
    }

    .pizza-mode .product-modal-shell,
    #productModal .product-modal-content.pizza-mode .product-modal-shell {
      display: flex;
      flex-direction: column;
      gap: 0;
    }

    .pizza-mode .product-modal-image-frame,
    #productModal .product-modal-content.pizza-mode .product-modal-image-frame {
      background: #FFFFFF;
      border: none;
      box-shadow: none;
      padding: 0;
      border-radius: 0;
      aspect-ratio: 1 / 1;
      overflow: hidden;
    }

    .pizza-mode #modalProductImage {
      width: 100%;
      height: 100%;
      margin-left: 0;
      margin-right: 0;
      margin-top: 0;
      max-width: none;
      border-radius: 0;
      background: #FFFFFF;
      object-fit: cover;
      object-position: center center;
    }

    .pizza-mode .product-modal-info-column,
    #productModal .product-modal-content.pizza-mode .product-modal-info-column {
      background: #FFF4EC;
      border-radius: 24px 24px 0 0;
      margin-top: 0;
      padding: 14px 18px 18px;
      box-shadow: 0 -10px 24px rgba(0, 0, 0, 0.16);
      position: relative;
      z-index: 2;
    }

    /* Пепельный промежуток чтобы закругления были видны */
    .pizza-mode .product-modal-media-column {
      padding-bottom: 14px;
      background: #FFFFFF;
    }

    /* Отступ между "без доплаты за добавки" и КБЖУ */
    .pizza-mode #customizationExtraSummary,
    .desktop-custom-mode #customizationExtraSummary {
      margin-bottom: 0.5rem;
    }

    .pizza-mode .product-description,
    .pizza-mode .product-additional-description,
    .pizza-mode .product-modal-info-column h2,
    .pizza-mode .product-modal-info-column h5,
    .pizza-mode .product-modal-info-column h6 {
      color: rgba(35,31,32,0.90);
    }

    .pizza-mode .product-nutrition-section,
    #productModal .product-modal-content.pizza-mode .product-nutrition-section {
      background: transparent;
      border: none;
      padding: 0;
    }

    .pizza-mode .product-nutrition-header,
    #productModal .product-modal-content.pizza-mode .product-nutrition-header {
      display: none;
    }

    .pizza-mode .product-nutrition-chip,
    #productModal .product-modal-content.pizza-mode .product-nutrition-chip {
      display: none;
    }

    .pizza-mode .product-nutrition-grid,
    #productModal .product-modal-content.pizza-mode .product-nutrition-grid {
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0.45rem;
    }

    .pizza-mode .product-nutrition-stat,
    #productModal .product-modal-content.pizza-mode .product-nutrition-stat {
      padding: 0.72rem 0.4rem;
      text-align: center;
      background: rgba(35,31,32,0.03);
      border-color: rgba(35,31,32,0.08);
    }

    .pizza-mode .product-nutrition-stat span,
    #productModal .product-modal-content.pizza-mode .product-nutrition-stat span {
      font-size: 0.62rem;
    }

    .pizza-mode .product-nutrition-stat strong,
    #productModal .product-modal-content.pizza-mode .product-nutrition-stat strong {
      font-size: 0.92rem;
      color: var(--text-primary);
    }

    /* Пицца: убираем зазоры между картинкой и кнопками */
    .pizza-mode .product-modal-shell {
      gap: 0;
    }

    /* Кнопки размеров пиццы — приподнятые, компактные отступы */
    .pizza-mode #modalSizeVariants {
      margin: -6px 0 0 0 !important;
      padding: 8px 16px;
      background: #FFFFFF;
      position: relative;
      z-index: 1;
    }

    .pizza-mode .size-variant-btn {
      border-color: rgba(212,60,13, 0.45);
      background: #F2E9DB;
      color: #231F20;
    }

    @media (hover: hover) and (pointer: fine) {
      .pizza-mode .size-variant-btn:hover {
      background: rgba(212,60,13, 0.14);
      color: #231F20;
      border-color: rgba(212,60,13, 0.7);
    }
    }

    .pizza-mode .size-variant-btn.active {
      background: #D43C0D;
      border-color: transparent;
    }

    .shawarma-mode #modalSizeVariantsBlock {
      margin-top: 0.85rem !important;
      padding: 0;
    }

    .shawarma-mode #modalSizeVariantsTitle {
      font-family: inherit;
      font-size: 0.95rem;
      font-weight: 700;
      letter-spacing: 0;
      color: rgba(35,31,32,0.82);
      margin-bottom: 0.45rem !important;
    }

    .shawarma-mode .size-variants-chips {
      gap: 8px;
      margin-bottom: 0;
    }

    .shawarma-mode .size-variant-btn {
      font-family: inherit !important;
      font-size: 0.92rem;
      font-weight: 600;
      line-height: 1.15;
      letter-spacing: 0;
      text-transform: none;
      min-height: 44px;
      padding: 8px 10px;
    }

    .shawarma-mode .size-variant-btn:disabled,
    .shawarma-mode .size-variant-btn.size-variant-btn--unavailable {
      opacity: 0.52;
      cursor: not-allowed;
      color: rgba(35,31,32,0.52);
      border-style: dashed;
      box-shadow: none;
    }

    .shawarma-mode .size-variant-unavailable-label {
      display: block;
      margin-top: 2px;
      font-size: 0.68rem;
      font-weight: 700;
      line-height: 1;
      color: rgba(212,60,13,0.78);
    }

    #productModal .product-modal-content.desktop-showcase-mode.shawarma-mode #modalSizeVariantsBlock,
    #productModal .product-modal-content.desktop-showcase-mode.shawarma-mode .customization-section {
      margin-top: 0.95rem !important;
    }

    #productModal .product-modal-content.desktop-showcase-mode.shawarma-mode .customization-section h6 {
      color: rgba(35,31,32,0.85);
      font-family: inherit;
      letter-spacing: 0;
      margin-bottom: 0.65rem;
    }

    #productModal .product-modal-content.desktop-showcase-mode.shawarma-mode .ingredient-grid {
      gap: 10px;
      justify-content: stretch;
    }

    #productModal .product-modal-content.desktop-showcase-mode.shawarma-mode .ingredient-card {
      flex: 0 0 calc(33.333% - 7px);
      background: rgba(35,31,32,0.03);
      border-color: rgba(35,31,32,0.08);
    }

    #productModal .product-modal-content.desktop-showcase-mode.shawarma-mode .ingredient-name {
      color: rgba(35,31,32,0.85);
    }

    #productModal .product-modal-content.desktop-showcase-mode.shawarma-mode .ingredient-extra {
      color: rgba(35,31,32,0.55);
    }

    @media (max-width: 767px) {
      #productModal .product-modal-content.mobile-story-mode.shawarma-mode {
        max-height: 90vh;
      }

      #productModal .product-modal-content.mobile-story-mode.shawarma-mode .product-modal-body {
        overflow-y: auto;
        overscroll-behavior: contain;
      }

      #productModal .product-modal-content.mobile-story-mode.shawarma-mode #modalSizeVariantsBlock {
        width: 100%;
        margin: 0.85rem 0 0 !important;
      }

      #productModal .product-modal-content.mobile-story-mode.shawarma-mode #modalSizeVariants {
        position: static;
        left: auto;
        right: auto;
        bottom: auto;
        display: flex;
        width: 100%;
        padding: 0;
      }

      #productModal .product-modal-content.mobile-story-mode.shawarma-mode .product-nutrition-section {
        display: none !important;
      }

      #productModal .product-modal-content.mobile-story-mode.shawarma-mode .customization-section {
        margin-top: 0.95rem;
      }

      #productModal .product-modal-content.mobile-story-mode.shawarma-mode .customization-section h6 {
        color: rgba(35,31,32,0.85);
        font-family: inherit;
        letter-spacing: 0;
        margin-bottom: 0.65rem;
        text-align: left;
      }

      #productModal .product-modal-content.mobile-story-mode.shawarma-mode .ingredient-grid {
        justify-content: stretch;
        gap: 8px;
      }

      #productModal .product-modal-content.mobile-story-mode.shawarma-mode .ingredient-card {
        flex: 0 0 calc(33.333% - 6px);
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }
    }

    .pizza-mode .product-modal-add-to-cart-bar,
    #productModal .product-modal-content.pizza-mode .product-modal-add-to-cart-bar {
      position: sticky;
      bottom: 0;
      background: linear-gradient(180deg, rgba(255,244,236,0), rgba(255,244,236,0.85) 38%, rgba(255,244,236,0.98));
      padding: 16px 0 calc(16px + env(safe-area-inset-bottom, 0px));
      border-top: none;
      box-shadow: none;
      justify-content: center;
    }

    .pizza-mode .product-modal-add-to-cart-bar .custom-add-btn,
    #productModal .product-modal-content.pizza-mode .product-modal-add-to-cart-bar .custom-add-btn {
      width: 100%;
      min-height: 66px;
      border-radius: 999px;
      font-size: 1.15rem;
      background: #D43C0D;
      border-color: transparent;
      color: #fff;
    }

    .btn-close {
      filter: invert(80%);
    }

    .sticky-menu .container {
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .sticky-menu .category-container {
      display: flex;
      gap: 0.5rem;
      overflow: hidden;
      position: relative;
    }

    .sticky-menu .cart-container {
      flex: 0 0 auto;
      margin-left: 1rem;
      /* Добавляем отступ слева от категорий */
    }

    /* Мобильные стили */
    @media (max-width: 767.98px) {

      /* Запрет auto-zoom на iOS при фокусе на input */
      input, textarea, select {
        font-size: 16px !important;
      }

      /* Изменено на 767.98px для четкого разделения с десктопом */
      .header-contact {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        width: 100%;
      }

      .phone-info {
        align-items: flex-start;
        margin-bottom: 0;
      }

      .phone-note {
        display: none;
      }

      .header-contact .ms-3 {
        margin-left: 0.5rem;
      }

      /* Стили для мобильной версии с иконками */
      .static-header .container {
        flex-wrap: nowrap;
      }

      .header-contact .d-flex.d-sm-none {
        white-space: nowrap;
        flex-wrap: nowrap;
      }

      .sticky-menu {
        position: sticky;
        top: 0;
        width: 100%;
        padding: 8px 0 10px 0;
      }

      .sticky-menu .container {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        overflow: hidden;
      }

      .sticky-menu .category-container {
        display: flex;
        gap: 0.5rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        flex: 1;
      }

      .sticky-menu .category-container::-webkit-scrollbar {
        display: none;
      }

      .sticky-menu .category-container {
        -ms-overflow-style: none;
        scrollbar-width: none;
      }

      /* Скрываем корзину в верхнем меню на мобильных устройствах */
      .sticky-menu .cart-container {
        display: none;
      }

      /* --- ИЗМЕНЕНИЕ: Возвращаем отображение 1 карточки в ряд на мобильных --- */
      .col-6.col-md-3 {
        width: 100%;
        /* Заставляем занимать всю ширину */
        flex: 0 0 100%;
        /* То же самое для flex-контейнера */
        max-width: 100%;
        /* Переопределяем max-width от Bootstrap */
      }

      /* --- КОНЕЦ ИЗМЕНЕНИЯ --- */

      .card {
        display: flex;
        flex-direction: row;
        /* Картинка слева, текст справа */
        align-items: stretch;
        /* Выравнивание по высоте */
        height: auto;
        /* Высота авто */
        max-height: none;
        overflow: hidden;
      }

      .card-img-top {
        width: 45%;
        /* Ширина картинки */
        height: auto;
        object-fit: cover;
        border-radius: 5px 0 0 5px;
        flex-shrink: 0;
      }

      /* --- Мобильное card-body наследует центрирование --- */
      .card-body {
        /* display: flex; flex-direction: column; justify-content: center; align-items: center; */
        /* Уже задано выше */
        width: 55%;
        padding: 0.75rem;
        flex-grow: 1;
        text-align: center;
        /* Убедимся, что текст центрирован */
      }

      .card-body h5.card-title {
        margin-top: 0;
        margin-bottom: 0.25rem;
        font-size: 1em;
        /* white-space: normal; */
        /* Уже задано выше */
      }

      /* --- Убираем order и лишние стили для мобильной версии --- */
      .card-body .product-attributes {
        /* order: 2; */
        /* Убираем order */
        margin-bottom: 0.5rem;
        /* Возвращаем отступ */
        margin-top: 0.25rem;
        text-align: center;
        /* Убедимся, что центрировано */
      }

      .card-body .custom-add-wrapper {
        /* order: 3; */
        /* Убираем order */
        /* align-self: flex-start; */
        /* Убираем, т.к. родитель центрирует */
        /* margin-top: auto; */
        /* Убираем, т.к. не нужно прижимать к низу */
        margin-top: 0.75rem;
        /* Добавляем стандартный отступ */
        width: auto;
        /* Ширина по контенту */
      }

      /* --- КОНЕЦ ИЗМЕНЕНИЯ --- */

      .custom-add-btn {
        padding: 0.4em 0.8em;
        /* Компактнее для мобильных */
        font-size: 0.9em;
      }

      /* Стили для мобильной корзины: кнопка, фиксированная в нижнем правом углу */
      #mobileCartBtn {
        position: fixed;
        bottom: 20px;
        right: 20px;
        z-index: 1050;
        display: none;
        /* по умолчанию скрыта, если корзина пуста */
        visibility: hidden;
        opacity: 0;
        transition: opacity 0.3s ease, visibility 0.3s ease;
        pointer-events: none;
      }

      /* Когда корзина показана */
      #mobileCartBtn.show {
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        display: block !important;
      }

      /* Для мобильных устройств в приложении поднимаем корзину выше */
      @media (max-width: 480px) {
        #mobileCartBtn {
          bottom: 40px;
          /* Поднимаем корзину выше на мобильных */
        }
      }

      /* Новый стиль мобильной кнопки корзины: шрифт как у "Профиль" и обводка как у add-to-cart */
      #mobileCartButton {
        background-color: var(--bg-card);
        border: 2px solid var(--border-color);
        color: var(--text-primary);
        padding: 0.5em 1em;
        border-radius: 12px;
        font-family: 'Montserrat', sans-serif;
        font-weight: 700;
        font-size: 1rem;
        cursor: pointer;
        transform: translateZ(0);
        /* Включает аппаратное ускорение */
        -webkit-tap-highlight-color: transparent;
        /* Убирает подсветку при тапе на мобильных */
        transition: all 0.2s ease;
        min-width: 120px;
        min-height: 44px;
        /* Минимальный размер для удобного тапа */
        display: flex;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
        user-select: none;
        -webkit-user-select: none;
        touch-action: manipulation;
        gap: 0.3em;
        /* Добавляем расстояние между элементами */
      }

      /* Стиль для счетчика в мобильной корзине */
      #mobileCartCount {
        margin-left: 0.3em;
        /* Дополнительный отступ слева */
        background-color: var(--accent-color);
        color: white;
        padding: 0.1em 0.4em;
        border-radius: 10px;
        font-size: 0.9em;
        font-weight: 700;
      }

      /* Анимация при активации */
      #mobileCartButton.active-mobile {
        transform: scale(0.95) translateZ(0);
        background-color: #D43C0D;
        border-color: transparent;
      }

      /* Дополнительные стили для улучшения кликабельности */
      #mobileCartButton:active {
        transform: scale(0.95) translateZ(0);
      }

      #mobileCartButton:focus {
        outline: 2px solid #e0e0e0;
        outline-offset: 2px;
      }

      /* Стили для индикатора статуса заказа */
      .mobile-order-status {
        position: fixed;
        bottom: 20px;
        left: 20px;
        /* В левом углу на том же расстоянии от края */
        z-index: 1045;
        /* Чуть ниже корзины */
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
        transform: translateX(-10px);
      }

      .mobile-order-status.show {
        opacity: 1;
        visibility: visible;
        transform: translateX(0);
      }

      .order-status-content {
        background-color: var(--bg-card);
        /* Используем переменную фона */
        border: 2px solid var(--border-color);
        /* Используем переменную границы */
        color: var(--text-primary);
        /* Такой же цвет текста как у корзины */
        padding: 8px 12px;
        border-radius: 12px;
        /* Такой же радиус как у корзины */
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: 2px;
        font-family: 'Montserrat', sans-serif;
        font-weight: 700;
        /* Такая же толщина как у корзины */
        backdrop-filter: blur(10px);
        min-width: 85px;
        min-height: 60px;
      }

      .order-status-icon {
        font-size: 1.8rem;
        animation: orderPulse 2s infinite;
        line-height: 1;
      }

      .order-status-text {
        font-size: 0.7rem;
        line-height: 1.1;
        margin-top: 2px;
      }

      @keyframes orderPulse {

        0%,
        100% {
          transform: scale(1);
        }

        50% {
          transform: scale(1.15);
        }
      }

      /* Для мобильных устройств в приложении */
      @media (max-width: 480px) {
        .mobile-order-status {
          bottom: 40px;
          /* На том же уровне с корзиной */
          left: 20px;
          /* В левом углу с тем же отступом */
        }
      }

      /* Адаптация для очень маленьких экранов */
      @media (max-width: 350px) {
        .mobile-order-status {
          left: 15px;
          /* Немного ближе к краю на маленьких экранах */
        }

        .order-status-content {
          min-width: 75px;
          min-height: 55px;
          padding: 6px 10px;
        }

        .order-status-icon {
          font-size: 1.6rem;
        }

        .order-status-text {
          font-size: 0.65rem;
        }
      }
    }

    /* Конец @media (max-width: 767.98px) */

    /* Стили для баннера приложения */
    .app-banner {
      background: linear-gradient(135deg, var(--accent-color) 0%, var(--accent-hover) 100%);
      color: white;
      padding: 12px 0;
      position: relative;
      width: 100%;
      z-index: 1000;
      opacity: 0;
      transition: opacity 0.4s ease;
      box-shadow: 0 2px 10px var(--shadow-color);
    }

    .app-banner.show {
      opacity: 1;
    }

    .app-banner-content {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 15px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .app-banner-left {
      display: flex;
      align-items: center;
      gap: 12px;
    }

    .app-icon {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    @keyframes appPulse {

      0%,
      100% {
        transform: scale(1);
      }

      50% {
        transform: scale(1.1);
      }
    }

    .app-text {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .app-title {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: 1rem;
      line-height: 1.2;
    }

    .app-subtitle {
      font-family: 'Montserrat', sans-serif;
      font-weight: 500;
      font-size: 0.85rem;
      opacity: 0.9;
      line-height: 1.2;
    }

    .app-banner-right {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .download-btn {
      background: white;
      color: var(--accent-color);
      border: 2px solid white;
      border-radius: 20px;
      padding: 8px 16px;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: 0.9rem;
      cursor: pointer;
      transition: all 0.3s ease;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    }

    @media (hover: hover) and (pointer: fine) {
      .download-btn:hover {
      background: #f8f9fa;
      transform: translateY(-1px);
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }
    }

    .close-btn {
      background: none;
      border: none;
      color: white;
      font-size: 1.5rem;
      cursor: pointer;
      padding: 4px 8px;
      border-radius: 50%;
      transition: all 0.3s ease;
      opacity: 0.8;
    }

    @media (hover: hover) and (pointer: fine) {
      .close-btn:hover {
      background: rgba(35,31,32,0.07);
      opacity: 1;
    }
    }

    /* Адаптация для мобильных */
    @media (max-width: 480px) {
      .app-banner {
        padding: 10px 0;
      }

      .app-banner-content {
        padding: 0 10px;
      }

      .app-icon {
        font-size: 1.8rem;
      }

      .app-title {
        font-size: 0.9rem;
      }

      .app-subtitle {
        font-size: 0.8rem;
      }

      .download-btn {
        padding: 6px 12px;
        font-size: 0.85rem;
        background: rgba(255, 255, 255, 0.95) !important;
        color: var(--accent-color) !important;
        border: 2px solid rgba(255, 255, 255, 0.9) !important;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
        text-shadow: none !important;
      }

      @media (hover: hover) and (pointer: fine) {
        .download-btn:hover {
        background: rgba(255, 255, 255, 1) !important;
        color: var(--accent-hover) !important;
        border-color: rgba(35,31,32,0.25) !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4) !important;
      }
      }
    }

    h2 {
      scroll-margin-top: 20px;
      margin-top: 1rem;
      margin-bottom: 1rem;
    }

    .sold-out {
      opacity: 0.6;
      position: relative;
    }

    /* Стилизация недоступных карточек товаров */
    .sold-out::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-color: rgba(0, 0, 0, 0.2);
      pointer-events: none;
      z-index: 1;
    }

    /* Стилизация кнопки "раскупили" */
    .sold-out-btn {
      opacity: 0.6;
      background: rgba(35,31,32,0.05) !important;
      border: 1px solid rgba(35,31,32,0.08) !important;
      color: rgba(35,31,32,0.45) !important;
      border-radius: 999px !important;
      cursor: not-allowed;
    }

    .set-unavailable-btn {
      background: #E7C15A !important;
      border: none !important;
      color: #ffffff !important;
      border-radius: 999px !important;
    }

    .one-row-card {
      padding: 1rem;
      background-color: var(--card-bg);
      border: 1px solid var(--card-border);
      border-radius: 8px;
      min-height: 300px;
      transition: all 0.3s ease;
      box-shadow: 0 2px 4px var(--shadow-color);
    }

    @media (hover: hover) and (pointer: fine) {
      .one-row-card:hover {
      box-shadow: 0 4px 8px var(--shadow-color);
      transform: translateY(-1px);
    }
    }

    /* Стиль для отображения старой цены */
    .old-price {
      position: relative;
      color: var(--text-muted);
      margin-right: 8px;
      font-size: 0.9em;
      white-space: nowrap;
      text-decoration: line-through;
    }

    /* Красная линия для зачеркивания старой цены */
    .old-price:after {
      content: '';
      position: absolute;
      left: 0;
      top: 50%;
      width: 100%;
      height: 1px;
      background-color: var(--accent-color);
    }

    /* Стиль для старой цены в модальном окне */
    .product-modal-add-to-cart-bar .old-price {
      display: inline-block;
      margin-right: 12px;
    }

    h5.product-detail {
      color: #ffffff !important;
    }

    /* --- Корректировка обертки кнопки внутри .custom-add-wrapper --- */
    /* Убираем w-100 и justify-content-between, т.к. сама обертка центрируется */
    .custom-add-wrapper .d-flex {
      width: auto !important;
      /* Ширина по содержимому */
      justify-content: center !important;
      /* Центрируем кнопку и вес */
    }

    /* --- *** НОВЫЙ БЛОК: Стили для десктопной версии модального окна товара *** --- */
    @media (min-width: 768px) {

      .card-badge {
        width: 63%;
        top: -20px;
        left: -14px;
      }

      .half-pizza-card-half {
        width: 75px;
        height: 150px;
      }

      .half-pizza-card-icon {
        padding: 18px;
      }

      .half-pizza-card-plus {
        font-size: 2rem;
        margin: 0 14px;
      }

      #productModal .modal-dialog {
        max-width: 1040px;
      }

      #productModal .modal-dialog.desktop-showcase-dialog {
        max-width: 480px;
        margin-left: auto;
        margin-right: auto;
      }

      #productModal .modal-dialog.desktop-showcase-dialog > .product-modal-content {
        max-width: 480px;
        margin: 0;
        width: 100%;
        border: none;
        border-radius: 18px;
        overflow: hidden;
      }

      #productModal .product-modal-content.desktop-showcase-mode {
        background: #FFF4EC;
      }

      #productModal .product-modal-content.desktop-showcase-mode .modal-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-showcase-mode .close-btn.mobile-floating-close {
        display: flex !important;
        position: absolute;
        top: 20px;
        left: 20px;
        width: 46px;
        height: 46px;
        border-radius: 50%;
        background: rgba(212,60,13,0.12);
        color: #D43C0D;
        align-items: center;
        justify-content: center;
        z-index: 1105;
      }

      #productModal .product-modal-content.desktop-showcase-mode .modal-body.product-modal-body {
        padding: 0;
        margin: 0;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-shell {
        display: flex;
        flex-direction: column;
        gap: 0;
        max-width: none;
        width: 100%;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-image-frame {
        width: 100%;
        padding: 0;
        background: #FFFFFF;
        border: none;
        border-radius: 0;
        overflow: hidden;
        box-shadow: none;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-image-frame > img {
        display: block;
        width: 100%;
        max-width: none;
        height: 380px;
        max-height: none;
        object-fit: cover;
        object-position: center center;
        background: #FFFFFF;
        border-radius: 0;
        transform: none;
        margin: 0;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-info-column {
        display: flex;
        flex-direction: column;
        min-height: 100%;
        background: #FFF4EC;
        border-radius: 28px 28px 0 0;
        margin-top: -18px;
        padding: 1.2rem 1.2rem 1rem;
        box-shadow: 0 22px 48px rgba(0, 0, 0, 0.2);
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-desktop-head {
        display: block !important;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-copy-stack {
        gap: 1rem;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-section {
        order: 2;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-description-stack {
        order: 1;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-description,
      #productModal .product-modal-content.desktop-showcase-mode .product-additional-description {
        color: rgba(35,31,32,0.85);
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-section {
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-chip {
        background: rgba(35,31,32,0.04);
        color: var(--text-primary);
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-stat {
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-weight-mode .product-copy-stack {
        display: flex;
        flex-direction: column;
        gap: 0.95rem;
      }

      #productModal .product-modal-content.desktop-weight-mode .product-description-stack {
        order: 1;
      }

      #productModal .product-modal-content.desktop-weight-mode .product-nutrition-section {
        order: 2;
      }

      #productModal .product-modal-content.desktop-weight-mode .product-nutrition-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-weight-mode .product-nutrition-chip {
        display: none;
      }

      #productModal .product-modal-content.desktop-weight-mode .product-nutrition-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.45rem;
      }

      #productModal .product-modal-content.desktop-weight-mode .product-nutrition-stat {
        padding: 0.72rem 0.4rem;
        text-align: center;
      }

      #productModal .product-modal-content.desktop-weight-mode .product-nutrition-stat span {
        font-size: 0.62rem;
      }

      #productModal .product-modal-content.desktop-weight-mode .product-nutrition-stat strong {
        font-size: 0.92rem;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-add-to-cart-bar {
        padding-top: 1rem;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-add-to-cart-bar .custom-add-btn {
        min-height: 64px;
        border-radius: 999px;
        background: #D43C0D;
        border-color: transparent;
        color: #fff;
      }

      @media (hover: hover) and (pointer: fine) {
        #productModal .product-modal-content.desktop-showcase-mode .product-modal-add-to-cart-bar .custom-add-btn:hover {
        background: #F04E1A;
        color: #fff;
      }
      }

      #productModal .product-modal-content.desktop-weight-mode #weightSelectionSection,
      #productModal .product-modal-content.desktop-weight-mode #automaticAdditionalsSection {
        display: none !important;
      }

      #productModal .product-modal-content.desktop-weight-mode #additionalItemsSection {
        margin-top: 1rem !important;
      }

      #productModal .product-modal-content.desktop-weight-mode #additionalItemsList {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-add-to-cart-bar {
        justify-content: center;
      }

      /* --- Десктоп: скроллируемое модальное окно в стиле мобильной версии --- */

      /* Перекрываем глобальные story-mode стили: description-stack не должен быть невидимым и absolute */
      #productModal .product-modal-content.desktop-showcase-mode .product-description-stack {
        position: static;
        transform: none;
        opacity: 1;
        z-index: auto;
        text-align: left;
      }

      /* Аналогично — nutrition-section не должна быть абсолютной */
      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-section {
        position: static;
        transform: none;
        opacity: 1;
        z-index: auto;
      }

      /* copy-stack не нужен position: relative (от story-mode) — нормальный flow */
      #productModal .product-modal-content.desktop-showcase-mode .product-copy-stack {
        position: static;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-copy-stack::after {
        display: none;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-body {
        overflow-y: auto;
        overscroll-behavior: contain;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-info-column {
        max-height: none;
        overflow: visible;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-add-to-cart-bar {
        position: sticky;
        bottom: 0;
        left: auto;
        right: auto;
        background: linear-gradient(180deg, rgba(255,244,236,0), rgba(255,244,236,0.85) 38%, rgba(255,244,236,0.98));
        border-top: none;
        box-shadow: none;
        padding: 16px 0 0;
        z-index: 4;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-modal-add-to-cart-bar .custom-add-btn {
        max-width: none;
        width: 100%;
        min-height: 64px;
        border-radius: 999px;
        font-size: 1.1rem;
        background: #D43C0D;
        border-color: transparent;
        color: #fff;
        box-shadow: 0 18px 40px rgba(212,60,13, 0.28);
      }

      @media (hover: hover) and (pointer: fine) {
        #productModal .product-modal-content.desktop-showcase-mode .product-modal-add-to-cart-bar .custom-add-btn:hover {
        background: #F04E1A;
        color: #fff;
      }
      }

      /* Весовые товары внутри desktop-showcase: текст и описание */
      #productModal .product-modal-content.desktop-showcase-mode .product-description,
      #productModal .product-modal-content.desktop-showcase-mode .product-additional-description {
        color: rgba(35,31,32,0.85);
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-section {
        background: transparent;
        border: none;
        padding: 0;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-chip {
        display: none;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.4rem;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-stat {
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
        padding: 0.6rem 0.35rem;
        text-align: center;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-stat span {
        color: rgba(35,31,32,0.55);
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-stat strong {
        color: var(--text-primary);
      }

      /* КБЖУ 4 колонки для весовых товаров */
      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.5rem;
      }

      #productModal .product-modal-content.desktop-showcase-mode .product-nutrition-section {
        border-radius: 20px;
      }

      /* Допы внутри desktop-showcase */
      #productModal .product-modal-content.desktop-showcase-mode #additionalItemsSection h6 {
        color: rgba(35,31,32,0.85);
      }

      #productModal .product-modal-content.desktop-showcase-mode #additionalItemsList {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
      }

      #productModal .product-modal-content.desktop-showcase-mode .additional-item {
        overflow: hidden;
        border-radius: 20px;
        background: rgba(35,31,32,0.03);
        border: 1px solid rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-showcase-mode .additional-item.selected {
        border: 1px solid rgba(255, 161, 97, 0.95);
      }

      #productModal .product-modal-content.desktop-showcase-mode .additional-item-content {
        padding: 0;
      }

      #productModal .product-modal-content.desktop-showcase-mode .additional-item-image {
        width: 100%;
        height: 180px;
        object-fit: cover;
        margin-bottom: 0;
        border-radius: 0;
      }

      #productModal .product-modal-content.desktop-showcase-mode .additional-item-details {
        padding: 14px;
      }

      #productModal .product-modal-content.desktop-showcase-mode .additional-item-name {
        color: rgba(35,31,32,0.90);
      }

      #productModal .product-modal-content.desktop-showcase-mode .additional-item-price {
        color: var(--text-primary);
      }

      #productModal .product-modal-content.desktop-showcase-mode .additional-item-checkbox-container {
        background-color: rgba(20, 20, 20, 0.6);
      }

      #productModal .product-modal-content.desktop-weight-mode .additional-item {
        overflow: hidden;
        border-radius: 20px;
        background: rgba(35,31,32,0.03);
        border: 1px solid rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-weight-mode .additional-item.selected {
        border: 1px solid rgba(255, 161, 97, 0.95);
      }

      #productModal .product-modal-content.desktop-weight-mode .additional-item-content {
        padding: 0;
      }

      #productModal .product-modal-content.desktop-weight-mode .additional-item-image {
        width: 100%;
        height: 180px;
        object-fit: cover;
        margin-bottom: 0;
        border-radius: 0;
      }

      #productModal .product-modal-content.desktop-weight-mode .additional-item-details {
        padding: 14px;
      }

      /* --- Desktop Set Mode: сеты на десктопе в стиле мобильной версии --- */
      #productModal .modal-dialog.desktop-set-dialog {
        max-width: 480px;
      }

      #productModal .product-modal-content.desktop-set-mode .modal-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-set-mode .close-btn.mobile-floating-close {
        display: flex !important;
        position: absolute;
        top: 20px;
        left: 20px;
        width: 46px;
        height: 46px;
        border-radius: 50%;
        background: rgba(212,60,13,0.12);
        color: #D43C0D;
        align-items: center;
        justify-content: center;
        z-index: 1105;
      }

      #productModal .product-modal-content.desktop-set-mode .product-modal-body {
        display: flex;
        flex-direction: column;
      }

      #productModal .product-modal-content.desktop-set-mode .product-modal-shell {
        flex: 1;
        min-height: 100%;
      }

      #productModal .product-modal-content.desktop-set-mode .product-modal-info-column {
        flex: 1;
        min-height: 100%;
        overflow: hidden;
        padding-top: 18px !important;
      }

      #productModal .product-modal-content.desktop-set-mode .product-desktop-head {
        display: flex !important;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        text-align: center;
        padding: 0 58px 10px;
      }

      #productModal .product-modal-content.desktop-set-mode .product-desktop-head h2 {
        margin: 0;
        font-size: 1.55rem;
        line-height: 1.12;
        color: var(--text-primary);
      }

      #productModal .product-modal-content.desktop-set-mode .product-modal-media-column,
      #productModal .product-modal-content.desktop-set-mode .product-modal-image-frame {
        display: none !important;
      }

      /* description-stack и nutrition видимы, не абсолютные */
      #productModal .product-modal-content.desktop-set-mode .product-description-stack {
        position: static;
        transform: none;
        opacity: 1;
        z-index: auto;
        text-align: left;
      }

      #productModal .product-modal-content.desktop-set-mode .product-nutrition-section {
        position: static;
        transform: none;
        opacity: 1;
        z-index: auto;
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
        border-radius: 20px;
      }

      #productModal .product-modal-content.desktop-set-mode .product-copy-stack {
        position: static;
        gap: 1rem;
      }

      #productModal .product-modal-content.desktop-set-mode .product-copy-stack::after {
        display: none;
      }

      #productModal .product-modal-content.desktop-set-mode .product-nutrition-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-set-mode .product-nutrition-chip {
        display: none;
      }

      #productModal .product-modal-content.desktop-set-mode .product-nutrition-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.4rem;
      }

      #productModal .product-modal-content.desktop-set-mode .product-nutrition-stat {
        padding: 0.6rem 0.35rem;
        text-align: center;
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-set-mode .product-nutrition-stat span {
        color: rgba(35,31,32,0.55);
      }

      #productModal .product-modal-content.desktop-set-mode .product-nutrition-stat strong {
        color: var(--text-primary);
      }

      /* Компоненты сета */
      #productModal .product-modal-content.desktop-set-mode #setComponentsSection {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        margin: 0.35rem 0 0;
        padding-right: 2px;
        overscroll-behavior: contain;
      }

      #productModal .product-modal-content.desktop-set-mode #setComponentsSection h6 {
        color: rgba(35,31,32,0.85);
        margin-bottom: 0.75rem;
      }

      #productModal .product-modal-content.desktop-set-mode .set-component {
        margin-bottom: 0.7rem;
        padding: 0.8rem;
        border-radius: 18px;
        background: rgba(35,31,32,0.03);
        border: 1px solid rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-set-mode .set-component-image {
        width: 64px;
        height: 64px;
        border-radius: 14px;
      }

      #productModal .product-modal-content.desktop-set-mode .set-component-name {
        color: var(--text-primary);
      }

      #productModal .product-modal-content.desktop-set-mode .set-component-quantity {
        color: rgba(35,31,32,0.55);
      }

      #productModal .product-modal-content.desktop-set-mode .set-component-replace {
        margin-top: 0.7rem;
        text-align: left;
      }

      #productModal .product-modal-content.desktop-set-mode .replace-component-btn {
        width: 100%;
      }

      /* Скрываем ненужные секции для сетов */
      #productModal .product-modal-content.desktop-set-mode #modalSizeVariants,
      #productModal .product-modal-content.desktop-set-mode #weightSelectionSection,
      #productModal .product-modal-content.desktop-set-mode #automaticAdditionalsSection,
      #productModal .product-modal-content.desktop-set-mode #mainDescriptionSection,
      #productModal .product-modal-content.desktop-set-mode #additionalDescriptionSection {
        display: none !important;
      }

      /* Кнопка В корзину */
      #productModal .product-modal-content.desktop-set-mode .product-modal-add-to-cart-bar {
        position: static;
        left: auto;
        right: auto;
        margin-top: auto;
        flex-shrink: 0;
        background: #FFF4EC;
        border-top: none;
        box-shadow: none;
        padding: 16px 0 0;
        justify-content: center;
        z-index: 4;
      }

      #productModal .product-modal-content.desktop-set-mode .product-modal-add-to-cart-bar .custom-add-btn {
        max-width: none;
        width: 100%;
        min-height: 64px;
        border-radius: 999px;
        font-size: 1.1rem;
        background: #D43C0D;
        border-color: transparent;
        color: #fff;
        box-shadow: 0 18px 40px rgba(212,60,13, 0.28);
      }

      @media (hover: hover) and (pointer: fine) {
        #productModal .product-modal-content.desktop-set-mode .product-modal-add-to-cart-bar .custom-add-btn:hover {
        background: #F04E1A;
        color: #fff;
      }
      }

      /* Описания и текст в тёмной теме */
      #productModal .product-modal-content.desktop-set-mode .product-description,
      #productModal .product-modal-content.desktop-set-mode .product-additional-description {
        color: rgba(35,31,32,0.85);
      }

      /* --- Desktop Pizza Mode: пицца на десктопе в стиле мобильной версии --- */
      #productModal .modal-dialog.desktop-pizza-dialog {
        max-width: 480px;
      }

      #productModal .product-modal-content.desktop-pizza-mode .modal-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-pizza-mode .close-btn.mobile-floating-close {
        display: flex !important;
        position: absolute;
        top: 20px;
        left: 20px;
        width: 46px;
        height: 46px;
        border-radius: 50%;
        background: rgba(35,31,32,0.05);
        color: var(--text-primary);
        align-items: center;
        justify-content: center;
        z-index: 1105;
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-desktop-head {
        display: block !important;
        margin-bottom: 0.75rem;
      }

      #productModal .product-modal-content.desktop-pizza-mode #modalSizeVariants {
        margin-top: 0.5rem;
        margin-bottom: 0.75rem;
        padding: 0;
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-desktop-head h2 {
        color: var(--text-primary);
      }

      /* description-stack и nutrition видимы */
      #productModal .product-modal-content.desktop-pizza-mode .product-description-stack {
        position: static;
        transform: none;
        opacity: 1;
        z-index: auto;
        text-align: left;
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-nutrition-section {
        position: static;
        transform: none;
        opacity: 1;
        z-index: auto;
        background: transparent;
        border: none;
        padding: 0;
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-copy-stack {
        position: static;
        gap: 1rem;
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-copy-stack::after {
        display: none;
      }

      /* КБЖУ компактный */
      #productModal .product-modal-content.desktop-pizza-mode .product-nutrition-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-nutrition-chip {
        display: none;
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-nutrition-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.4rem;
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-nutrition-stat {
        padding: 0.6rem 0.35rem;
        text-align: center;
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-nutrition-stat span {
        color: rgba(35,31,32,0.55);
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-nutrition-stat strong {
        color: var(--text-primary);
      }

      /* Кастомизация ингредиентов */
      #productModal .product-modal-content.desktop-pizza-mode .customization-section h6 {
        color: rgba(35,31,32,0.85);
      }

      #productModal .product-modal-content.desktop-pizza-mode .customization-extra-summary {
        color: rgba(35,31,32,0.65);
      }

      #productModal .product-modal-content.desktop-pizza-mode .ingredient-card {
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-pizza-mode .ingredient-name {
        color: rgba(35,31,32,0.85);
      }

      #productModal .product-modal-content.desktop-pizza-mode .ingredient-extra {
        color: rgba(35,31,32,0.55);
      }

      /* Соусы */
      #productModal .product-modal-content.desktop-pizza-mode .sauce-options .sauce-btn {
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
        color: rgba(35,31,32,0.85);
      }

      #productModal .product-modal-content.desktop-pizza-mode .sauce-options .sauce-btn.active {
        background: linear-gradient(135deg, rgba(212,60,13, 0.2), rgba(255, 107, 26, 0.16));
        border-color: rgba(255, 148, 80, 0.38);
        color: var(--text-primary);
      }

      /* Описания */
      #productModal .product-modal-content.desktop-pizza-mode .product-description,
      #productModal .product-modal-content.desktop-pizza-mode .product-additional-description {
        color: rgba(35,31,32,0.85);
      }

      /* Кнопка В корзину */
      #productModal .product-modal-content.desktop-pizza-mode .product-modal-add-to-cart-bar {
        position: sticky;
        bottom: 0;
        left: auto;
        right: auto;
        background: linear-gradient(180deg, rgba(255,244,236,0), rgba(255,244,236,0.85) 38%, rgba(255,244,236,0.98));
        border-top: none;
        box-shadow: none;
        padding: 16px 0 0;
        justify-content: center;
        z-index: 4;
      }

      #productModal .product-modal-content.desktop-pizza-mode .product-modal-add-to-cart-bar .custom-add-btn {
        max-width: none;
        width: 100%;
        min-height: 64px;
        border-radius: 999px;
        font-size: 1.1rem;
        background: #D43C0D;
        border-color: transparent;
        color: #fff;
        box-shadow: 0 18px 40px rgba(212,60,13, 0.28);
      }

      @media (hover: hover) and (pointer: fine) {
        #productModal .product-modal-content.desktop-pizza-mode .product-modal-add-to-cart-bar .custom-add-btn:hover {
        background: #F04E1A;
        color: #fff;
      }
      }

      /* --- Desktop Custom Mode: своя пицца на десктопе --- */
      #productModal .modal-dialog.desktop-custom-dialog {
        max-width: 480px;
      }

      #productModal .product-modal-content.desktop-custom-mode .modal-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-custom-mode .close-btn.mobile-floating-close {
        display: flex !important;
        position: absolute;
        top: 20px;
        left: 20px;
        width: 46px;
        height: 46px;
        border-radius: 50%;
        background: rgba(212,60,13,0.12);
        color: #D43C0D;
        align-items: center;
        justify-content: center;
        z-index: 1105;
      }

      #productModal .product-modal-content.desktop-custom-mode .product-desktop-head {
        display: block !important;
        margin-bottom: 0.4rem;
      }

      #productModal .product-modal-content.desktop-custom-mode .product-desktop-head h2 {
        color: var(--text-primary);
      }

      #productModal .product-modal-content.desktop-custom-mode .product-description-stack {
        position: static;
        transform: none;
        opacity: 1;
        z-index: auto;
        text-align: left;
      }

      #productModal .product-modal-content.desktop-custom-mode .product-nutrition-section {
        position: static;
        transform: none;
        opacity: 1;
        z-index: auto;
        background: transparent;
        border: none;
        padding: 0;
      }

      #productModal .product-modal-content.desktop-custom-mode .product-copy-stack {
        position: static;
        gap: 1rem;
      }

      #productModal .product-modal-content.desktop-custom-mode .product-copy-stack::after {
        display: none;
      }

      /* КБЖУ */
      #productModal .product-modal-content.desktop-custom-mode .product-nutrition-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-custom-mode .product-nutrition-chip {
        display: none;
      }

      #productModal .product-modal-content.desktop-custom-mode .product-nutrition-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.4rem;
      }

      #productModal .product-modal-content.desktop-custom-mode .product-nutrition-stat {
        padding: 0.6rem 0.35rem;
        text-align: center;
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-custom-mode .product-nutrition-stat span {
        color: rgba(35,31,32,0.55);
      }

      #productModal .product-modal-content.desktop-custom-mode .product-nutrition-stat strong {
        color: var(--text-primary);
      }

      /* Кастомизация */
      #productModal .product-modal-content.desktop-custom-mode .customization-section h6 {
        color: rgba(35,31,32,0.85);
      }

      #productModal .product-modal-content.desktop-custom-mode .customization-extra-summary {
        color: rgba(35,31,32,0.65);
      }

      #productModal .product-modal-content.desktop-custom-mode .ingredient-card {
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-custom-mode .ingredient-name {
        color: rgba(35,31,32,0.85);
      }

      #productModal .product-modal-content.desktop-custom-mode .ingredient-extra {
        color: rgba(35,31,32,0.55);
      }

      #productModal .product-modal-content.desktop-custom-mode .sauce-options .sauce-btn {
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
        color: rgba(35,31,32,0.85);
      }

      #productModal .product-modal-content.desktop-custom-mode .sauce-options .sauce-btn.active {
        background: linear-gradient(135deg, rgba(212,60,13, 0.2), rgba(255, 107, 26, 0.16));
        border-color: rgba(255, 148, 80, 0.38);
        color: var(--text-primary);
      }

      /* Описания */
      #productModal .product-modal-content.desktop-custom-mode .product-description,
      #productModal .product-modal-content.desktop-custom-mode .product-additional-description {
        color: rgba(35,31,32,0.85);
      }

      /* Кнопка В корзину */
      #productModal .product-modal-content.desktop-custom-mode .product-modal-add-to-cart-bar {
        position: sticky;
        bottom: 0;
        left: auto;
        right: auto;
        background: linear-gradient(180deg, rgba(255,244,236,0), rgba(255,244,236,0.85) 38%, rgba(255,244,236,0.98));
        border-top: none;
        box-shadow: none;
        padding: 16px 0 0;
        justify-content: center;
        z-index: 4;
      }

      #productModal .product-modal-content.desktop-custom-mode .product-modal-add-to-cart-bar .custom-add-btn {
        max-width: none;
        width: 100%;
        min-height: 64px;
        border-radius: 999px;
        font-size: 1.1rem;
        background: #D43C0D;
        border-color: transparent;
        color: #fff;
        box-shadow: 0 18px 40px rgba(212,60,13, 0.28);
      }

      @media (hover: hover) and (pointer: fine) {
        #productModal .product-modal-content.desktop-custom-mode .product-modal-add-to-cart-bar .custom-add-btn:hover {
        background: #F04E1A;
        color: #fff;
      }
      }

      /* --- Desktop Unified Mode: товары на выбор / с объёмами --- */
      #productModal .modal-dialog.desktop-unified-dialog {
        max-width: 480px;
      }

      #productModal .product-modal-content.desktop-unified-mode .modal-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-unified-mode .close-btn.mobile-floating-close {
        display: flex !important;
        position: absolute;
        top: 20px;
        left: 20px;
        width: 46px;
        height: 46px;
        border-radius: 50%;
        background: rgba(35,31,32,0.05);
        color: var(--text-primary);
        align-items: center;
        justify-content: center;
        z-index: 1105;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-desktop-head {
        display: block !important;
        margin-bottom: 0.75rem;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-desktop-head h2 {
        color: var(--text-primary);
      }

      #productModal .product-modal-content.desktop-unified-mode #modalSizeVariants {
        margin-top: 0.5rem;
        margin-bottom: 0.75rem;
        padding: 0;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-description-stack {
        position: static;
        transform: none;
        opacity: 1;
        z-index: auto;
        text-align: left;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-nutrition-section {
        position: static;
        transform: none;
        opacity: 1;
        z-index: auto;
        background: transparent;
        border: none;
        padding: 0;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-copy-stack {
        position: static;
        gap: 1rem;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-copy-stack::after {
        display: none;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-nutrition-header {
        display: none;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-nutrition-chip {
        display: none;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-nutrition-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.4rem;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-nutrition-stat {
        padding: 0.6rem 0.35rem;
        text-align: center;
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.desktop-unified-mode .product-nutrition-stat span {
        color: rgba(35,31,32,0.55);
      }

      #productModal .product-modal-content.desktop-unified-mode .product-nutrition-stat strong {
        color: var(--text-primary);
      }

      /* Описания */
      #productModal .product-modal-content.desktop-unified-mode .product-description,
      #productModal .product-modal-content.desktop-unified-mode .product-additional-description {
        color: rgba(35,31,32,0.85);
      }

      /* Карточки выбора товара */
      #productModal .product-modal-content.desktop-unified-mode #selectionPlaceholderHint {
        color: rgba(35,31,32,0.65);
      }

      #productModal .product-modal-content.desktop-unified-mode .selection-option-card {
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      @media (hover: hover) and (pointer: fine) {
        #productModal .product-modal-content.desktop-unified-mode .selection-option-card:hover {
        border-color: rgba(212,60,13, 0.5);
        background: rgba(35,31,32,0.04);
      }
      }

      #productModal .product-modal-content.desktop-unified-mode .selection-option-name {
        color: var(--text-primary);
      }

      #productModal .product-modal-content.desktop-unified-mode .selection-option-price {
        color: var(--accent-color);
      }

      #productModal .product-modal-content.desktop-unified-mode .selection-option-weight {
        color: rgba(35,31,32,0.45);
      }

      /* Кнопка В корзину */
      #productModal .product-modal-content.desktop-unified-mode .product-modal-add-to-cart-bar {
        position: sticky;
        bottom: 0;
        left: auto;
        right: auto;
        background: linear-gradient(180deg, rgba(255,244,236,0), rgba(255,244,236,0.85) 38%, rgba(255,244,236,0.98));
        border-top: none;
        box-shadow: none;
        padding: 16px 0 0;
        justify-content: center;
        z-index: 4;
      }

      #productModal .product-modal-content.desktop-unified-mode .product-modal-add-to-cart-bar .custom-add-btn {
        max-width: none;
        width: 100%;
        min-height: 64px;
        border-radius: 999px;
        font-size: 1.1rem;
        background: #D43C0D;
        border-color: transparent;
        color: #fff;
        box-shadow: 0 18px 40px rgba(212,60,13, 0.28);
      }

      @media (hover: hover) and (pointer: fine) {
        #productModal .product-modal-content.desktop-unified-mode .product-modal-add-to-cart-bar .custom-add-btn:hover {
        background: #F04E1A;
        color: #fff;
      }
      }

      .product-modal-add-to-cart-bar {
        position: sticky;
        bottom: 0;
        left: auto;
        right: auto;
        margin-top: auto;
        padding: 1rem 0 0;
        background: transparent;
        border-top: none;
        box-shadow: none;
        justify-content: flex-start;
        z-index: 1;
      }

      .product-modal-body {
        padding-bottom: 1.5rem;
      }

      .product-modal-add-to-cart-bar .custom-add-btn {
        width: 100%;
        max-width: 100%;
        min-height: 58px;
        padding: 0.95rem 1.2rem;
        border-radius: 18px;
        font-size: 1rem;
      }

      .product-modal-shell {
        display: grid;
        grid-template-columns: minmax(320px, 0.92fr) minmax(0, 1.08fr);
        align-items: start;
        gap: 1.5rem;
      }

      .product-modal-info-column {
        display: flex;
        flex-direction: column;
        min-height: 100%;
      }

      .product-copy-tabs {
        display: none;
      }

      .mobile-centered-card .product-modal-content {
        height: auto;
        max-height: 90vh;
        display: flex;
        flex-direction: column;
      }

      .mobile-centered-card .product-modal-body {
        flex: 0 1 auto;
        padding-bottom: 20px;
      }

      .mobile-centered-card .product-modal-add-to-cart-bar {
        position: static;
        box-shadow: none;
      }
    }

    /* --- *** КОНЕЦ НОВОГО БЛОКА *** --- */

    /* --- *** НОВЫЕ СТИЛИ ДЛЯ КОРЗИНЫ *** --- */
    #cartModal .modal-dialog {
      max-width: 650px;
      /* Немного шире для лучшего вида */
    }

    #cartModal .modal-body {
      padding: 1rem;
      /* Общий отступ для содержимого */
    }

    .cart-item {
      display: flex;
      align-items: center;
      /* Выравнивание по центру вертикально */
      background-color: rgba(35,31,32,0.03);
      /* Фон как у header/footer */
      border: 1px solid var(--border-color);
      border-radius: 8px;
      padding: 1rem;
      margin-bottom: 1rem;
      /* Отступ между товарами */
      gap: 1rem;
      /* Пространство между картинкой и деталями */
    }

    .cart-item-image img {
      width: 80px;
      /* Увеличенный размер изображения */
      height: 80px;
      object-fit: cover;
      /* Масштабирование с сохранением пропорций */
      border-radius: 4px;
      flex-shrink: 0;
      /* Не сжимать картинку */
    }

    .half-pizza-cart-icon {
      width: 95px;
      height: 95px;
      border-radius: 50%;
      overflow: hidden;
      display: flex;
      position: relative;
      flex-shrink: 0;
      border: none;
      background: transparent;
      margin: auto;
    }

    .half-pizza-cart-half {
      width: 50%;
      height: 100%;
      background-size: 200% 100%;
      background-repeat: no-repeat;
      background-color: transparent;
    }

    .half-pizza-cart-half.left {
      background-position: left center;
      border-right: none;
    }

    .half-pizza-cart-half.right {
      background-position: right center;
    }

    .cart-item.half-pizza-item .cart-item-image,
    .cart-modal-body .cart-item.half-pizza-item .cart-item-image {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .half-pizza-cart-fallback {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 24px;
    }

    .cart-item-details {
      flex-grow: 1;
      /* Занимает оставшееся пространство */
      display: flex;
      flex-direction: column;
      /* Элементы друг под другом */
      justify-content: center;
      /* Центрируем контент */
    }

    .cart-item-utensils {
      margin-top: 0.2rem;
      font-size: 0.85rem;
      color: var(--text-secondary);
      align-self: flex-end;
      font-weight: 600;
      text-align: right;
    }

    .cart-item-name {
      font-size: 1.1em;
      /* Немного крупнее */
      font-weight: 700;
      margin-bottom: 0.25rem;
      line-height: 1.3;
      /* Для лучшей читаемости */
      color: var(--text-primary);
    }

    .cart-item-replacements {
      font-size: 0.9em;
      color: #ffa726 !important;
      /* Оранжевый цвет для хорошей видимости */
      margin: 0.25rem 0;
      font-weight: 500;
      background-color: rgba(255, 167, 38, 0.1);
      /* Легкий фон */
      padding: 0.3rem 0.5rem;
      border-radius: 4px;
      border-left: 3px solid #ffa726;
    }

    .cart-item-price {
      font-size: 1em;
      font-weight: bold;
      color: var(--text-primary);
      margin-bottom: 0.5rem;
      /* Отступ перед кнопками */
    }

    .cart-item-footer {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      gap: 0.75rem;
    }

    .cart-item-controls {
      display: flex;
      align-items: center;
    }

    .cart-item-controls .btn {
      padding: 0.25rem 0.6rem;
      /* Компактные кнопки */
      font-size: 0.9em;
      min-width: 30px;
      /* Минимальная ширина кнопок */
    }

    .cart-item-qty {
      min-width: 35px;
      /* Место для количества */
      text-align: center;
      font-size: 1.1em;
      font-weight: bold;
      padding: 0 0.5rem;
      /* Отступы вокруг цифры */
      color: var(--text-primary);
    }

    /* Стили для автоматических дополнений в корзине */
    .cart-item-automatic-additionals {
      margin: 0.3rem 0;
      font-size: 0.85em;
    }

    .automatic-additional-item {
      color: #999;
      /* Приглушенный серый цвет */
      line-height: 1.2;
      font-size: 0.85em;
      margin-bottom: 0.1rem;
    }

    .cart-item.custom-item {
      align-items: flex-start;
    }

    .cart-item.custom-item .cart-item-price {
      margin-bottom: 0;
    }

    .cart-item-custom-ingredients {
      list-style: none;
      padding-left: 0;
      margin: 0.35rem 0 0.5rem;
      font-size: 0.85rem;
      color: rgba(35,31,32,0.70);
    }

    .cart-item-custom-ingredients li {
      margin-bottom: 4px;
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      align-items: baseline;
    }

    .custom-ingredient-status {
      color: rgba(35,31,32,0.58);
      font-size: 0.8rem;
      font-weight: 600;
    }

    .custom-ingredient-extra {
      color: var(--accent-color);
      font-size: 0.8rem;
      font-weight: 600;
    }

    .cart-item.custom-item .cart-item-footer {
      align-items: center;
    }

    .cart-total-container {
      border-top: 1px solid rgba(35,31,32,0.10);
      padding: 1.5rem 1rem 1rem 1rem;
      /* Отступы сверху и снизу */
      display: flex;
      flex-direction: column;
      /* Стек элементов в колонку */
      align-items: flex-start;
      /* Выравниваем по левой стороне */
      background-color: rgba(35,31,32,0.03);
      /* Фон как у хедера */
      /* Прижимаем к низу модального окна */
      margin-top: auto;
      border-radius: 0 0 var(--bs-modal-border-radius) var(--bs-modal-border-radius);
      /* Закругления как у модалки снизу */
    }

    /* Удалено дублирование cart-total-price */

    .cart-total-price {
      font-size: 1.3em;
      font-weight: bold;
      color: var(--text-primary);
      margin-bottom: 0.5rem;
      /* Отступ между итогом и информацией о бонусах */
    }

    .cart-bonus-available {
      margin-bottom: 1rem;
      /* Отступ между бонусами и кнопкой */
      font-size: 0.9em;
      color: var(--text-secondary);
    }

    .cart-bonus-available strong {
      color: var(--success-color);
      /* Зеленый цвет для шашлыкоинов */
      font-weight: 700;
    }


    /* Адаптация для мобильных */
    @media (max-width: 576px) {
      .cart-item {
        padding: 0.75rem;
        gap: 0.75rem;
      }

      .cart-item-image img {
        width: 65px;
        height: 65px;
      }

      .half-pizza-cart-icon {
        width: 94px;
        height: 94px;
        border: none;
      }

      .half-pizza-cart-fallback {
        font-size: 20px;
      }

      .cart-item-name {
        font-size: 1em;
      }

      .cart-item-price {
        font-size: 0.95em;
      }

      .cart-total-container {
        padding: 1rem 0.75rem;
        flex-direction: column;
        /* Элементы друг под другом */
        align-items: stretch;
        /* Растягиваем по ширине */
        gap: 0.75rem;
        /* Отступ между ценой и кнопкой */
      }

      .cart-total-price {
        font-size: 1.2em;
        text-align: center;
        /* Центрируем итоговую цену */
      }
    }

    /* --- *** КОНЕЦ НОВЫХ СТИЛЕЙ ДЛЯ КОРЗИНЫ *** --- */

    /* --- Footer Styles точно как в отзывах --- */
    .footer {
      background-color: #FFF4EC;
      padding: 2rem 0;
      margin-top: 0;
      border-top: 1px solid rgba(35,31,32,0.10);
      font-family: 'Montserrat', sans-serif;
      font-weight: 400;
      color: var(--text-primary);
    }

    .footer-heading {
      color: var(--accent-color);
      font-weight: 700;
      margin-bottom: 1rem;
    }

    .footer-links {
      list-style: none;
      padding: 0;
      margin: 0;
    }

    .footer-links li {
      margin-bottom: 0.5rem;
    }

    .footer-links a {
      color: var(--text-secondary);
      text-decoration: none;
    }

    @media (hover: hover) and (pointer: fine) {
      .footer-links a:hover {
      color: var(--accent-color);
    }
    }

    /* Выравнивание меток и значений в разделе Контакты */
    .footer .footer-links li {
      display: flex;
      align-items: baseline;
      gap: 8px;
    }

    .footer .contact-label {
      display: inline-block;
      min-width: 90px;
    }

    .footer .contact-value {
      display: inline-block;
    }

    /* Обособляем футер от остальных стилей страницы */
    .footer * {
      font-family: 'Montserrat', sans-serif;
      font-weight: 400;
      color: var(--text-secondary);
    }

    .footer h5 {
      color: var(--accent-color);
      font-weight: 700;
    }

    .footer p {
      color: var(--text-secondary);
      margin-bottom: 0;
    }

    /* Стили для светлой темы - футер */
    [data-theme="light"] .footer {
      background-color: #ffffff;
      border-top: 2px solid var(--accent-color);
    }

    [data-theme="light"] .footer-heading {
      color: var(--accent-color);
    }

    [data-theme="light"] .footer-links a {
      color: #2d3748;
    }

    @media (hover: hover) and (pointer: fine) {
      [data-theme="light"] .footer-links a:hover {
      color: var(--accent-color);
    }
    }

    [data-theme="light"] .footer p {
      color: #2d3748;
    }

    /* Обычный текст в футере (не ссылки) */
    [data-theme="light"] .footer-links li {
      color: #2d3748;
    }

    /* Скрываем контакты и время работы на мобильных */
    @media (max-width: 767.98px) {

      .footer .col-md-4:nth-child(2),
      .footer .col-md-4:nth-child(3) {
        display: none;
      }
    }

    /* Скрываем мобильную корзину на десктопе */
    @media (min-width: 768px) {
      #mobileCartBtn {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
      }
    }

    /* Стили для индикатора статуса заказа (для всех размеров экрана) */
    .mobile-order-status {
      position: fixed;
      bottom: 20px;
      left: 20px;
      z-index: 1045;
      opacity: 0;
      visibility: hidden;
      transition: all 0.3s ease;
      transform: translateX(-10px);
    }

    .mobile-order-status.show {
      opacity: 1;
      visibility: visible;
      transform: translateX(0);
    }

    .order-status-content {
      background-color: var(--bg-card);
      border: 2px solid var(--border-color);
      color: var(--text-primary);
      padding: 8px 12px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 0.9rem;
      font-weight: 600;
      min-width: 80px;
      min-height: 60px;
      text-align: center;
      white-space: nowrap;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    }

    .order-status-icon {
      font-size: 1.2rem;
      flex-shrink: 0;
    }

    .order-status-text {
      font-size: 0.85rem;
      font-weight: 600;
    }

    /* iPad и большие планшеты (1024px и выше) */
    @media (min-width: 1024px) {

      /* Увеличиваем размер логотипа для iPad */
      .brand-logo {
        max-width: 250px;
      }

      /* Улучшаем отображение категорий на iPad */
      .category-btn {
        font-size: 1.1rem;
        padding: 0.6rem 1.2rem;
        margin: 0.3rem;
      }

      /* Карточки товаров - 3 в ряду для iPad */
      .product-card {
        max-width: 300px;
        margin: 0 auto 1.5rem;
      }

      /* Увеличиваем размер текста в карточках товаров */
      .product-card .card-title {
        font-size: 1.2rem;
      }

      .product-card .card-text {
        font-size: 1rem;
      }

      /* Улучшаем кнопки в карточках товаров */
      .product-card .btn {
        font-size: 1rem;
        padding: 0.6rem 1.2rem;
      }

      /* Модальное окно товара - стандартный размер */
      .product-modal-content {
        max-width: 600px;
        margin: 2rem auto;
      }

      .product-modal-content .modal-title {
        font-size: 1.5rem;
      }

      .product-modal-content .modal-body {
        font-size: 1.1rem;
        padding: 2rem;
      }

      /* Корзина - фиксированная позиция справа на iPad */
      .cart-sidebar {
        width: 400px;
        right: -400px;
      }

      .cart-sidebar.show {
        right: 0;
      }

      /* Увеличиваем размер элементов в корзине */
      .cart-item {
        padding: 1rem;
      }

      .cart-item-title {
        font-size: 1.1rem;
      }

      .cart-item-price {
        font-size: 1.1rem;
      }

      /* Кнопки управления количеством в корзине */
      .quantity-btn {
        width: 40px;
        height: 40px;
        font-size: 1.2rem;
      }

      .quantity-display {
        font-size: 1.1rem;
        min-width: 50px;
      }

      /* Футер - лучшее использование пространства */
      .footer {
        padding: 2rem 0;
      }

      .footer-links a {
        font-size: 1.1rem;
        margin: 0;
      }

      .footer-contact {
        font-size: 1.1rem;
      }
    }

    /* iPad Pro и очень большие планшеты (1200px и выше) */
    @media (min-width: 1200px) {

      /* Максимальная ширина контента для удобного чтения */
      .container {
        max-width: 1140px;
      }

      /* Карточки товаров - 4 в ряду (только для товаров) */
      .container .row>.col-md-4:has(.card),
      .container .row>.col-md-4:has(.one-row-card) {
        flex: 0 0 25%;
        max-width: 25%;
      }

      /* Еще больше увеличиваем элементы интерфейса */
      .category-btn {
        font-size: 1.2rem;
        padding: 0.7rem 1.5rem;
      }

      .product-card .card-title {
        font-size: 1.3rem;
      }

      .product-modal-content {
        max-width: 700px;
      }
    }

    /* Стили для блока акций - широкоформатные баннеры */
    .promotions-banner-section {
      margin-top: 10px;
      margin-bottom: 10px;
    }

    .promotions-swiper-container {
      position: relative;
      width: 100%;
      border-radius: 16px;
      overflow: hidden;
    }

    .promotions-swiper-wrapper {
      display: flex;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-behavior: smooth;
      scrollbar-width: none;
      -ms-overflow-style: none;
    }

    .promotions-swiper-wrapper::-webkit-scrollbar {
      display: none;
    }

    .promotion-slide {
      /* Гарантируем одинаковую ширину каждого слайда */
      flex: 0 0 100%;
      min-width: 100%;
      scroll-snap-align: start;
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    /* Ссылка тоже должна растягиваться на всю ширину слайда */
    .promotion-slide>a {
      display: block;
      width: 100%;
      height: 100%;
    }

    .promotion-slide img {
      width: 100%;
      height: 400px;
      object-fit: cover;
      display: block;
    }

    .promotions-pagination {
      position: absolute;
      bottom: 15px;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      justify-content: center;
      gap: 8px;
      z-index: 10;
    }

    .promotions-pagination .dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background-color: rgba(35,31,32,0.45);
      cursor: pointer;
      transition: all 0.3s ease;
      backdrop-filter: blur(10px);
    }

    .promotions-pagination .dot.active {
      background-color: rgba(35,31,32,0.88);
      transform: scale(1.2);
    }

    /* Стили для блока надкатегорий */
    .supercategories-section {
      background-color: #fbe8dc;
      padding: 8px 0 4px 0;
      margin-bottom: 0;
      border-bottom: 1px solid rgba(255,255,255,0.06);
    }

    .supercategories-container {
      display: flex;
      gap: 10px;
      overflow-x: auto;
      overflow-y: hidden;
      scrollbar-width: none;
      -ms-overflow-style: none;
      padding: 5px 0;
    }

    .supercategories-container::-webkit-scrollbar {
      display: none;
    }

    .supercategory-btn {
      background-color: var(--bg-card);
      color: var(--text-secondary);
      border: 1px solid var(--border-color);
      padding: 8px 16px;
      border-radius: 8px;
      text-decoration: none;
      white-space: nowrap;
      transition: all 0.3s ease;
      font-size: 0.9rem;
      font-weight: 700;
      /* Сделали жирнее */
      display: flex;
      align-items: center;
      gap: 5px;
    }

    @media (hover: hover) and (pointer: fine) {
      .supercategory-btn:hover {
      background-color: var(--bg-tertiary);
      color: var(--text-primary);
      text-decoration: none;
      border-color: var(--accent-color);
    }
    }

    .supercategory-btn.active {
      background-color: var(--bg-tertiary);
      color: var(--text-primary);
      border-color: var(--accent-color);
      opacity: 0.8;
      box-shadow: 0 1px 4px var(--shadow-color);
    }

    @media (hover: hover) and (pointer: fine) {
      .supercategory-btn.active:hover {
      background-color: var(--bg-tertiary);
      color: var(--text-primary);
      opacity: 0.9;
    }
    }

    /* Мобильная адаптация для надкатегорий */
    @media (max-width: 768px) {
      .supercategories-container {
        gap: 8px;
      }

      .supercategory-btn {
        padding: 6px 12px;
        font-size: 0.8rem;
      }
    }


    .old-price {
      color: var(--text-muted);
      text-decoration: line-through;
      font-size: 0.9rem;
    }

    .new-price {
      color: var(--accent-color);
      font-weight: 700;
      font-size: 1.1rem;
    }

    /* Дополнительные стили для заголовков категорий */
    h2 {
      color: var(--text-primary);
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      transition: color 0.3s ease;
    }

    /* Стили для описаний товаров */
    .product-description,
    .card-text {
      color: var(--text-secondary);
      font-size: 0.9rem;
      line-height: 1.4;
    }

    /* Стили для цен товаров */
    .price,
    .product-price {
      color: var(--accent-color);
      font-weight: 700;
      font-size: 1.1rem;
    }

    /* Стили для модального окна */
    .modal-content {
      background-color: var(--bg-secondary);
      border: 1px solid var(--border-color);
      color: var(--text-primary);
    }

    .modal-header {
      border-bottom: 1px solid var(--border-color);
    }

    .modal-body {
      background-color: var(--bg-secondary);
    }

    /* Стили для корзины */
    .cart-total-container {
      background-color: var(--bg-card-highlighted);
      border-top: 1px solid var(--border-color);
      padding: 15px;
      color: var(--text-primary);
    }

    .cart-total-price {
      font-size: 1.1rem;
      margin-bottom: 8px;
      color: var(--text-primary);
    }

    .cart-bonus-available {
      font-size: 0.9rem;
      color: var(--text-secondary);
      margin-bottom: 12px;
    }

    .btn-checkout {
      background-color: var(--accent-color);
      border-color: var(--accent-color);
      color: white;
      width: 100%;
      padding: 12px;
      font-weight: 700;
      border-radius: 8px;
      transition: all 0.3s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .btn-checkout:hover {
      background-color: var(--accent-hover);
      border-color: var(--accent-hover);
      color: white;
    }
    }

    /* Обеспечиваем видимость текста кнопки в обеих темах */
    #checkoutBtn.btn.btn-checkout, #checkoutBtn.btn.btn-checkout:focus, #checkoutBtn.btn.btn-checkout:active {
      color: white !important;
      background-color: var(--accent-color) !important;
      border-color: var(--accent-color) !important;
    }
    @media (hover: hover) and (pointer: fine) {
      #checkoutBtn.btn.btn-checkout:hover {
      color: white !important;
      background-color: var(--accent-color) !important;
      border-color: var(--accent-color) !important;
    }
    }

    /* Для светлой темы - белый текст на оранжевом фоне должен быть видимым */
    [data-theme="light"] #checkoutBtn.btn.btn-checkout, [data-theme="light"] #checkoutBtn.btn.btn-checkout:focus, [data-theme="light"] #checkoutBtn.btn.btn-checkout:active {
      color: white !important;
      background-color: var(--accent-color) !important;
      border-color: var(--accent-color) !important;
    }
    @media (hover: hover) and (pointer: fine) {
      [data-theme="light"] #checkoutBtn.btn.btn-checkout:hover {
      color: white !important;
      background-color: var(--accent-color) !important;
      border-color: var(--accent-color) !important;
    }
    }

    /* Стили для элементов корзины */
    .cart-item {
      background-color: var(--bg-card-highlighted) !important;
      border: 1px solid var(--border-color) !important;
      color: var(--text-primary) !important;
      border-radius: 8px;
      margin-bottom: 10px;
      padding: 12px;
      transition: all 0.3s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .cart-item:hover {
      box-shadow: 0 2px 8px var(--shadow-color);
    }
    }

    .cart-item .item-name {
      color: var(--text-primary) !important;
      font-weight: 700;
    }

    .cart-item .item-price {
      color: var(--accent-color) !important;
      font-weight: 700;
    }

    .cart-item .item-quantity {
      color: var(--text-secondary) !important;
    }

    .cart-item .btn {
      border-color: var(--border-color) !important;
      color: var(--text-primary) !important;
    }

    @media (hover: hover) and (pointer: fine) {
      .cart-item .btn:hover {
      background-color: var(--bg-tertiary) !important;
      border-color: var(--accent-color) !important;
    }
    }

    /* Общие стили для корзины */
    #cartContent {
      background-color: var(--bg-secondary) !important;
    }

    #cartModal .modal-content {
      background-color: var(--bg-secondary) !important;
      color: var(--text-primary) !important;
      border: 2px solid var(--border-color);
      box-shadow: 0 8px 25px var(--shadow-color);
    }

    #cartModal .modal-body {
      background-color: var(--bg-secondary) !important;
    }

    /* Исправления для светлой темы в корзине */
    [data-theme="light"] .cart-item {
      background-color: #ffffff !important;
      border: 2px solid #e2e8f0 !important;
      color: #2d3748 !important;
    }

    [data-theme="light"] #cartContent {
      background-color: #ffffff !important;
    }

    [data-theme="light"] #cartModal .modal-content {
      background-color: #ffffff !important;
      color: #2d3748 !important;
      border: 2px solid #e2e8f0;
    }

    [data-theme="light"] #cartModal .modal-body {
      background-color: #ffffff !important;
    }

    [data-theme="light"] .cart-item .item-name {
      color: #2d3748 !important;
    }

    [data-theme="light"] .cart-item .item-quantity {
      color: #4a5568 !important;
    }

    [data-theme="light"] .cart-item .btn {
      border-color: #e2e8f0 !important;
      color: #2d3748 !important;
      background-color: #f7fafc !important;
    }

    @media (hover: hover) and (pointer: fine) {
      [data-theme="light"] .cart-item .btn:hover {
      background-color: #edf2f7 !important;
    }
    }

    /* Выделение счетчика корзины */
    #cartCount {
      background: var(--gradient-accent);
      color: white;
      border-radius: 50%;
      padding: 2px 8px;
      margin-left: 8px;
      font-weight: 700;
      font-size: 0.85rem;
      min-width: 24px;
      text-align: center;
      display: inline-block;
      box-shadow: 0 2px 6px var(--shadow-color);
      border: 2px solid white;
      animation: pulse 2s infinite;
    }

    @keyframes pulse {
      0% {
        transform: scale(1);
      }

      50% {
        transform: scale(1.05);
      }

      100% {
        transform: scale(1);
      }
    }

    /* Для светлой темы */
    [data-theme="light"] #cartCount {
      border: 2px solid #2d3748;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    }

    /* Исправления для светлой темы - кнопка скачать */
    [data-theme="light"] .download-btn {
      background: var(--accent-color) !important;
      color: white !important;
      border: 2px solid var(--accent-color) !important;
      box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2) !important;
      font-weight: 700 !important;
    }

    @media (hover: hover) and (pointer: fine) {
      [data-theme="light"] .download-btn:hover {
      background: var(--accent-hover) !important;
      color: white !important;
      border-color: var(--accent-hover) !important;
      box-shadow: 0 5px 15px rgba(0, 0, 0, 0.25) !important;
    }
    }

    /* Исправления для светлой темы - уведомления о заказе */
    [data-theme="light"] .order-status-content {
      background-color: #ffffff;
      border: 2px solid #e2e8f0;
      color: #2d3748;
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    }

    [data-theme="light"] .order-status-text {
      color: #2d3748;
    }

    /* Стили для светлой темы - кнопки категорий */
    [data-theme="light"] .category-btn {
      background-color: #ffffff;
      border: 2px solid #e2e8f0;
      color: #2d3748;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    }

    @media (hover: hover) and (pointer: fine) {
      [data-theme="light"] .category-btn:hover {
      background-color: #f7fafc;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    }
    }

    /* Стили для светлой темы - надкатегории */
    [data-theme="light"] .supercategory-btn {
      background-color: #ffffff;
      border: 1px solid #e2e8f0;
      color: #4a5568;
    }

    [data-theme="light"] .supercategory-btn.active {
      background-color: #edf2f7;
      color: #2d3748;
      border-color: var(--accent-color);
    }

    /* Улучшенное выделение блоков - более заметные тени и границы */
    .card {
      border: 2px solid var(--border-color);
      box-shadow: 0 4px 12px var(--shadow-color);
      transition: all 0.3s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .card:hover {
      box-shadow: 0 8px 20px var(--shadow-color);
      transform: translateY(-2px);
      border-color: var(--accent-color);
    }
    }

    /* Выделение составов сетов */
    .set-components {
      background-color: var(--bg-card-highlighted);
      border: 2px solid var(--border-color);
      border-radius: 12px;
      padding: 15px;
      margin: 15px 0;
      box-shadow: 0 3px 10px var(--shadow-color);
    }

    .component-item {
      background-color: var(--bg-secondary);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      padding: 10px;
      margin-bottom: 8px;
      box-shadow: 0 2px 6px var(--shadow-color);
      transition: all 0.3s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .component-item:hover {
      box-shadow: 0 4px 12px var(--shadow-color);
      border-color: var(--accent-color);
    }
    }

    /* Светлая тема - улучшенный контраст */
    [data-theme="light"] .card-img-top,
    [data-theme="light"] .promotion-image img {
      border-radius: 6px;
      box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
    }

    [data-theme="light"] .card {
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
      border: 2px solid #e2e8f0;
    }

    @media (hover: hover) and (pointer: fine) {
      [data-theme="light"] .card:hover {
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
      border-color: var(--accent-color);
    }
    }

    [data-theme="light"] .set-components {
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
      border: 2px solid #e2e8f0;
    }

    [data-theme="light"] .component-item {
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
      border: 1px solid #e2e8f0;
    }

    @media (hover: hover) and (pointer: fine) {
      [data-theme="light"] .component-item:hover {
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    }
    }

    /* Мобильная адаптация для широкоформатных акций */
    @media (max-width: 768px) {
      .promotion-slide img {
        height: 200px;
      }

      .promotions-swiper-container {
        border-radius: 12px;
      }

      .promotions-pagination {
        bottom: 10px;
      }

      .promotions-pagination .dot {
        width: 6px;
        height: 6px;
      }
    }

    /* Стили для модального окна акций (Instagram-story стиль) */
    .promotion-modal-dialog {
      max-width: 400px;
      width: 90%;
      margin: 2rem auto;
    }

    .promotion-modal-content {
      background-color: var(--bg-secondary);
      border: none;
      border-radius: 20px;
      overflow: hidden;
      box-shadow: 0 20px 40px var(--shadow-color);
      position: relative;
    }

    .promotion-modal-header {
      position: absolute;
      top: 15px;
      right: 15px;
      z-index: 10;
      border: none;
      background: none;
      padding: 0;
    }

    .promotion-modal-body {
      padding: 0;
    }

    .promotion-modal-image-container {
      position: relative;
      width: 100%;
      height: 400px;
      overflow: hidden;
      background: linear-gradient(135deg, var(--accent-color), var(--accent-hover));
    }

    .promotion-modal-image {
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: brightness(0.9);
    }

    .promotion-modal-discount {
      position: absolute;
      top: 20px;
      left: 20px;
      background: var(--gradient-accent);
      color: white;
      padding: 8px 16px;
      border-radius: 20px;
      font-weight: 700;
      font-size: 1.1rem;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    }

    .promotion-modal-info {
      padding: 25px;
      text-align: center;
      background: var(--bg-secondary);
    }

    .promotion-modal-title {
      color: var(--text-primary);
      font-size: 1.4rem;
      font-weight: 700;
      margin-bottom: 15px;
      line-height: 1.3;
    }

    .promotion-modal-description {
      color: var(--text-secondary);
      font-size: 1rem;
      line-height: 1.5;
      margin-bottom: 20px;
    }

    .promotion-modal-prices {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 15px;
      margin-top: 15px;
    }

    .promotion-modal-prices .old-price {
      color: var(--text-muted);
      text-decoration: line-through;
      font-size: 1rem;
    }

    .promotion-modal-prices .new-price {
      color: var(--accent-color);
      font-weight: 700;
      font-size: 1.2rem;
    }

    /* Анимация появления модального окна */
    .modal.fade .promotion-modal-content {
      transform: scale(0.8) translateY(-50px);
      opacity: 0;
      transition: all 0.3s ease;
    }

    .modal.show .promotion-modal-content {
      transform: scale(1) translateY(0);
      opacity: 1;
    }

    /* Мобильная адаптация для модального окна акций */
    @media (max-width: 768px) {
      .promotion-modal-dialog {
        max-width: 95%;
        margin: 1rem auto;
      }

      .promotion-modal-image-container {
        height: 300px;
      }

      .promotion-modal-info {
        padding: 20px;
      }

      .promotion-modal-title {
        font-size: 1.2rem;
      }

      .promotion-modal-description {
        font-size: 0.9rem;
      }
    }

    .promotion-modal .btn-close {
      background: rgba(0, 0, 0, 0.5);
      border-radius: 50%;
      width: 35px;
      height: 35px;
      opacity: 0.8;
    }

    @media (hover: hover) and (pointer: fine) {
      .promotion-modal .btn-close:hover {
      opacity: 1;
    }
    }

    .promotion-modal .modal-body {
      padding: 2rem;
    }

    .promotion-modal .old-price {
      color: var(--text-muted);
      text-decoration: line-through;
      font-size: 1.2rem;
    }

    .promotion-modal .new-price {
      color: var(--accent-color);
      font-weight: 700;
      font-size: 1.5rem;
    }

    .promotion-modal .discount-badge {
      background: var(--accent-color);
      color: white;
      padding: 4px 12px;
      border-radius: 15px;
      font-weight: 700;
      font-size: 0.9rem;
    }

    .promotion-modal h3 {
      color: var(--text-primary);
      font-weight: 700;
    }

    .promotion-modal p {
      color: var(--text-secondary);
      line-height: 1.6;
    }

    /* --- CENTERED CARD (Mobile) --- */
    @media (max-width: 767px) {

      /* Класс, который мы будем вешать JS-ом на .modal-dialog */
      .mobile-centered-card {
        display: flex;
        align-items: center;
        /* Центрируем вертикально */
        min-height: calc(100% - 1rem);
        /* Высота экрана минус отступы */
        margin: 0.5rem auto;
        /* Центрируем горизонтально */
      }

      .mobile-centered-card .modal-content {
        border-radius: 20px;
        /* Закругляем все углы */
        max-height: 90vh;
        /* Не выше 90% экрана */
        height: auto;
        /* Высота по содержимому */
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
        /* Тень */
        display: flex;
        flex-direction: column;
      }

      .mobile-centered-card .modal-body {
        overflow-y: auto;
        overscroll-behavior: contain;
        padding-bottom: 10px !important;
        /* Небольшой отступ до кнопки */
      }

      /* Кнопка внутри карточки становится обычной (static) */
      .mobile-centered-card .product-modal-add-to-cart-bar {
        position: static;
        /* Открепляем от низа экрана */
        box-shadow: none;
        /* Убираем тень, она не нужна внутри карточки */
        background-color: transparent;
        padding: 10px 15px 20px 15px;
        /* Отступы вокруг кнопки */
        display: flex;
        justify-content: center;
        border-top: none;
      }
    } /* Конец @media (max-width: 767px) перед story-mode */

    /* Глобальные стили для story-mode (применяются и на десктопе) */
    #productModal .modal-dialog.mobile-story-dialog {
      max-width: 420px;
      width: calc(100vw - 24px);
      margin: 0.75rem auto;
      /* Диалог должен занимать всю высоту экрана, чтобы align-items:center
         смог отцентрировать modal-content по вертикали */
      min-height: calc(100% - 1.5rem);
      height: auto !important;
      align-items: center;
    }

      #productModal .product-modal-content.mobile-story-mode {
        height: auto;
        max-height: 90vh;
        border-radius: 28px;
        background: #F2E9DB;
        overflow: hidden;
        box-shadow: 0 28px 56px rgba(0, 0, 0, 0.35);
      }

      #productModal .product-modal-content.mobile-story-mode .modal-header {
        display: none;
      }

      #productModal .product-modal-content.mobile-story-mode .close-btn.mobile-floating-close {
        display: flex;
        position: absolute;
        top: 14px;
        left: 14px;
        right: auto;
        width: 46px;
        height: 46px;
        border-radius: 50%;
        background: rgba(212,60,13,0.12);
        backdrop-filter: blur(10px);
        color: #D43C0D;
        align-items: center;
        justify-content: center;
        z-index: 1105;
      }

      #productModal .product-modal-content.mobile-story-mode .product-modal-body {
        padding: 0;
        overflow: visible;
      }

      #productModal .product-modal-content.mobile-story-mode .product-modal-shell {
        display: flex;
        flex-direction: column;
        width: 100%;
        align-items: stretch;
        position: static;
        height: auto;
        gap: 0;
      }

      #productModal .product-modal-content.mobile-story-mode .product-modal-media-column {
        height: auto;
      }

      #productModal .product-modal-content.mobile-story-mode .product-modal-image-frame {
        height: auto;
        aspect-ratio: 1 / 1;
        display: flex;
        align-items: stretch;
        justify-content: center;
        border: none;
        border-radius: 0;
        padding: 0;
        box-shadow: none;
        background: #FFFFFF;
      }

      #productModal .product-modal-content.mobile-story-mode #modalProductImage {
        width: 100%;
        height: 100%;
        max-height: none;
        object-fit: contain;
        object-position: center center;
        border-radius: 0;
        background: #FFFFFF;
      }

      #productModal .product-modal-content.mobile-story-mode #modalSizeVariants {
        position: absolute;
        left: 16px;
        right: 16px;
        bottom: 12px;
        z-index: 4;
      }

      #productModal .product-modal-content.mobile-story-mode .product-modal-info-column {
        position: relative;
        display: flex;
        flex-direction: column;
        width: 100%;
        align-items: stretch;
        text-align: center;
        background: #FFF4EC;
        border-radius: 24px 24px 0 0;
        margin-top: -14px;
        padding: 18px 18px 18px;
        max-height: none;
        overflow: visible;
        box-shadow: 0 -10px 24px rgba(0, 0, 0, 0.16);
      }

      #productModal .product-modal-content.mobile-story-mode .product-mobile-sheet-head {
        display: block;
        width: 100%;
        text-align: center;
        padding: 0 8px 10px;
        flex: 0 0 auto;
      }

      #productModal .product-modal-content.mobile-story-mode .product-mobile-sheet-handle {
        display: none;
      }

      #productModal .product-modal-content.mobile-story-mode .product-mobile-sheet-head h2 {
        margin: 0;
        font-size: 1.4rem;
        line-height: 1.08;
        color: var(--text-primary);
      }

      #productModal .product-modal-content.mobile-story-mode .product-copy-tabs {
        display: none !important;
      }

      #productModal .product-modal-content.mobile-story-mode .product-copy-stack {
        position: relative;
        display: flex;
        flex-direction: column;
        gap: 0.6rem;
      }

      #productModal .product-modal-content.mobile-story-mode .product-copy-stack::after {
        display: none;
      }

      #productModal .product-modal-content.mobile-story-mode .product-description-stack {
        position: static;
        text-align: center;
        order: 1;
      }

      #productModal .product-modal-content.mobile-story-mode .product-nutrition-section {
        order: 2;
      }

      #productModal .product-modal-content.mobile-story-mode .product-description,
      #productModal .product-modal-content.mobile-story-mode .product-additional-description {
        font-size: 0.95rem;
        line-height: 1.4;
        margin-bottom: 0;
        background: transparent;
        padding: 0;
        color: rgba(35,31,32,0.88);
      }

      #productModal .product-modal-content.mobile-story-mode #weightSelectionSection,
      #productModal .product-modal-content.mobile-story-mode #automaticAdditionalsSection {
        display: none !important;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-section,
      #productModal .product-modal-content.mobile-story-mode .story-automatic-section {
        width: 100%;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-select-shell {
        display: flex;
        flex-direction: column;
        gap: 0.55rem;
        margin-bottom: 0.75rem;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-select-label {
        font-size: 0.72rem;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: rgba(35,31,32,0.50);
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-select-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.65rem;
        align-items: center;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-picker {
        position: relative;
        min-width: 0;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-trigger {
        width: 100%;
        min-height: 48px;
        border-radius: 16px;
        border: 1px solid rgba(35,31,32,0.08);
        background: rgba(35,31,32,0.03);
        color: var(--text-primary);
        box-shadow: none;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.7rem;
        padding: 0.8rem 0.95rem;
        font: inherit;
        font-size: 0.98rem;
        font-weight: 600;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-trigger-icon {
        color: rgba(35,31,32,0.60);
        font-size: 1rem;
        line-height: 1;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-option {
        width: 100%;
        border: none;
        border-radius: 14px;
        background: rgba(35,31,32,0.03);
        color: rgba(35,31,32,0.90);
        padding: 0.78rem 0.9rem;
        text-align: left;
        font: inherit;
        font-size: 0.96rem;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-option.is-active {
        background: linear-gradient(135deg, rgba(212,60,13, 0.2), rgba(255, 107, 26, 0.16));
        color: var(--text-primary);
        box-shadow: inset 0 0 0 1px rgba(255, 148, 80, 0.38);
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-overlay {
        position: absolute;
        inset: 0;
        z-index: 1200;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-overlay-backdrop {
        position: absolute;
        inset: 0;
        background: rgba(5, 5, 5, 0.6);
        backdrop-filter: blur(6px);
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-overlay-sheet {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom));
        border-radius: 28px 28px 0 0;
        background: #F2E9DB;
        box-shadow: 0 -18px 42px rgba(0, 0, 0, 0.4);
        max-height: min(72vh, 540px);
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-overlay-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.8rem;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-overlay-title {
        color: var(--text-primary);
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.2;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-overlay-close {
        width: 38px;
        height: 38px;
        border: none;
        border-radius: 50%;
        background: rgba(35,31,32,0.04);
        color: var(--text-primary);
        font-size: 1.5rem;
        line-height: 1;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-overlay-options {
        display: flex;
        flex-direction: column;
        gap: 0.45rem;
        overflow-y: auto;
        min-height: 0;
        padding-bottom: 0.2rem;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-price {
        min-height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 0.95rem;
        border-radius: 16px;
        background: rgba(35,31,32,0.04);
        color: var(--text-primary);
        font-weight: 700;
        white-space: nowrap;
      }

      #productModal .product-modal-content.mobile-story-mode .story-weight-summary {
        font-size: 0.95rem;
        line-height: 1.35;
        color: rgba(35,31,32,0.85);
        text-align: left;
      }

      #productModal .product-modal-content.mobile-story-mode .story-automatic-additionals-list {
        display: flex;
        flex-direction: column;
        gap: 0.45rem;
      }

      #productModal .product-modal-content.mobile-story-mode .story-automatic-additionals-list .automatic-additional-item {
        margin: 0;
        padding: 0.82rem 0.95rem;
        border-radius: 16px;
        background: rgba(35,31,32,0.03);
        border: 1px solid rgba(35,31,32,0.08);
        color: rgba(35,31,32,0.90);
        font-size: 0.95rem;
      }

      #productModal .product-modal-content.mobile-story-mode .product-nutrition-section {
        position: static;
        background: transparent;
        border: none;
        padding: 0;
        display: block !important;
      }

      #productModal .product-modal-content.mobile-story-mode .product-nutrition-header {
        display: none;
      }

      #productModal .product-modal-content.mobile-story-mode .product-nutrition-chip {
        display: none;
      }

      #productModal .product-modal-content.mobile-story-mode .product-nutrition-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.4rem;
      }

      #productModal .product-modal-content.mobile-story-mode .product-nutrition-stat {
        padding: 0.6rem 0.35rem;
        text-align: center;
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.mobile-story-mode .product-nutrition-stat span {
        font-size: 0.62rem;
      }

      #productModal .product-modal-content.mobile-story-mode .product-nutrition-stat strong {
        font-size: 0.9rem;
      }

      /* Кнопка КБЖУ toggle */
      .kbju-toggle-row {
        display: flex;
        justify-content: flex-end;
        padding: 0 4px 4px;
      }

      .kbju-toggle-btn {
        padding: 5px 14px;
        border-radius: 999px;
        border: 1px solid rgba(255,255,255,0.1);
        background: rgba(255,255,255,0.05);
        color: rgba(255,255,255,0.4);
        font-size: 0.72rem;
        font-weight: 600;
        font-family: inherit;
        letter-spacing: 0.04em;
        cursor: pointer;
        transition: all 0.2s ease;
      }

      @media (hover: hover) and (pointer: fine) {
        .kbju-toggle-btn:hover {
        background: rgba(35,31,32,0.05);
        color: rgba(255,255,255,0.6);
      }
      }

      .kbju-toggle-btn.active {
        background: rgba(212,60,13,0.12);
        border-color: rgba(212,60,13,0.3);
        color: var(--accent-color);
      }

      #productModal .product-modal-content.mobile-story-mode .product-modal-add-to-cart-bar {
        position: sticky;
        flex: 0 0 auto;
        width: 100%;
        left: auto;
        right: auto;
        bottom: 0;
        background: linear-gradient(180deg, rgba(255,244,236,0), rgba(255,244,236,0.85) 38%, rgba(255,244,236,0.98));
        border-top: none;
        box-shadow: none;
        padding: 16px 0 0;
        z-index: 4;
      }

      #productModal .product-modal-content.mobile-story-mode .product-modal-add-to-cart-bar .custom-add-btn {
        max-width: none;
        width: 100%;
        min-height: 66px;
        border-radius: 999px;
        font-size: 1.15rem;
        background: #D43C0D;
        border-color: transparent;
        color: #fff;
        opacity: 1;
        box-shadow: 0 18px 40px rgba(212,60,13, 0.28);
      }

      #productModal .product-modal-content.mobile-story-mode .product-modal-add-to-cart-bar .custom-add-btn:active {
        background: #F04E1A;
        color: #fff;
      }
      @media (hover: hover) and (pointer: fine) {
        #productModal .product-modal-content.mobile-story-mode .product-modal-add-to-cart-bar .custom-add-btn:hover {
        background: #F04E1A;
        color: #fff;
      }
      }

    /* Снова открываем для остальных режимов */
    @media (max-width: 767px) {

      #productModal .modal-dialog.mobile-set-dialog {
        max-width: 420px;
        width: calc(100vw - 24px);
        margin: 0.75rem auto;
        min-height: auto;
        height: auto !important;
        align-items: center;
      }

      #productModal .product-modal-content.mobile-set-mode {
        height: auto;
        max-height: 90vh;
        border-radius: 28px;
        background: #F2E9DB;
        overflow: hidden;
        box-shadow: 0 28px 56px rgba(0, 0, 0, 0.35);
      }

      #productModal .product-modal-content.mobile-set-mode .modal-header {
        display: none;
      }

      #productModal .product-modal-content.mobile-set-mode .close-btn.mobile-floating-close {
        display: flex;
        position: absolute;
        top: 14px;
        left: 14px;
        width: 46px;
        height: 46px;
        border-radius: 50%;
        background: rgba(212,60,13,0.12);
        backdrop-filter: blur(10px);
        color: #D43C0D;
        align-items: center;
        justify-content: center;
        z-index: 1105;
      }

      #productModal .product-modal-content.mobile-set-mode .product-modal-body {
        display: flex;
        flex-direction: column;
        padding: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
      }

      #productModal .product-modal-content.mobile-set-mode .product-modal-shell {
        display: flex;
        flex-direction: column;
        flex: 1;
        min-height: 100%;
        gap: 0;
      }

      #productModal .product-modal-content.mobile-set-mode .product-modal-media-column,
      #productModal .product-modal-content.mobile-set-mode .product-modal-image-frame {
        display: none !important;
      }

      #productModal .product-modal-content.mobile-set-mode .product-modal-image-frame {
        padding: 0;
        border: none;
        border-radius: 0;
        background: #FFFFFF;
        aspect-ratio: 1 / 1;
        overflow: hidden;
      }

      #productModal .product-modal-content.mobile-set-mode #modalProductImage {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center center;
        border-radius: 0;
        background: #FFFFFF;
      }

      #productModal .product-modal-content.mobile-set-mode #modalSizeVariants,
      #productModal .product-modal-content.mobile-set-mode #weightSelectionSection,
      #productModal .product-modal-content.mobile-set-mode #automaticAdditionalsSection,
      #productModal .product-modal-content.mobile-set-mode #additionalItemsSection,
      #productModal .product-modal-content.mobile-set-mode #mainDescriptionSection,
      #productModal .product-modal-content.mobile-set-mode #additionalDescriptionSection {
        display: none !important;
      }

      #productModal .product-modal-content.mobile-set-mode .product-modal-info-column {
        display: flex;
        flex-direction: column;
        flex: 1;
        min-height: 100%;
        overflow: hidden;
        background: #FFF4EC;
        border-radius: 28px;
        margin-top: 0;
        padding: 14px 18px 18px;
        box-shadow: none;
      }

      #productModal .product-modal-content.mobile-set-mode .product-mobile-sheet-head {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        text-align: center;
        padding: 0 50px 10px;
      }

      #productModal .product-modal-content.mobile-set-mode .product-mobile-sheet-handle {
        display: none;
      }

      #productModal .product-modal-content.mobile-set-mode .product-mobile-sheet-head h2 {
        margin: 0;
        font-size: 1.4rem;
        line-height: 1.08;
        color: var(--text-primary);
      }

      #productModal .product-modal-content.mobile-set-mode .product-copy-stack {
        display: flex;
        flex-direction: column;
        gap: 0.9rem;
      }

      #productModal .product-modal-content.mobile-set-mode .product-nutrition-section {
        display: none !important;
      }

      #productModal .product-modal-content.mobile-set-mode .product-nutrition-header {
        display: none;
      }

      #productModal .product-modal-content.mobile-set-mode .product-nutrition-chip {
        display: none;
      }

      #productModal .product-modal-content.mobile-set-mode .product-nutrition-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.4rem;
      }

      #productModal .product-modal-content.mobile-set-mode .product-nutrition-stat {
        padding: 0.6rem 0.35rem;
        text-align: center;
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.mobile-set-mode .product-nutrition-stat span {
        font-size: 0.62rem;
      }

      #productModal .product-modal-content.mobile-set-mode .product-nutrition-stat strong {
        font-size: 0.9rem;
      }

      #productModal .product-modal-content.mobile-set-mode #setComponentsSection {
        display: block;
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        margin: 0.35rem 0 0 !important;
        padding-right: 2px;
        overscroll-behavior: contain;
      }

      #productModal .product-modal-content.mobile-set-mode #setComponentsSection h6 {
        margin-bottom: 0.75rem;
      }

      #productModal .product-modal-content.mobile-set-mode .set-component {
        margin-bottom: 0.7rem;
        padding: 0.8rem;
        border-radius: 18px;
        background: rgba(35,31,32,0.03);
        border: 1px solid rgba(35,31,32,0.08);
        align-items: flex-start;
      }

      #productModal .product-modal-content.mobile-set-mode .set-component-image {
        width: 64px;
        height: 64px;
        border-radius: 14px;
      }

      #productModal .product-modal-content.mobile-set-mode .set-component-name {
        color: var(--text-primary);
      }

      #productModal .product-modal-content.mobile-set-mode .set-component-quantity {
        color: rgba(35,31,32,0.55);
      }

      #productModal .product-modal-content.mobile-set-mode .set-component-replace {
        margin-top: 0.7rem;
        text-align: left;
      }

      #productModal .product-modal-content.mobile-set-mode .replace-component-btn {
        width: 100%;
      }

      #productModal .product-modal-content.mobile-set-mode .product-modal-add-to-cart-bar {
        position: static;
        margin-top: auto;
        flex-shrink: 0;
        background: #FFF4EC;
        padding: 16px 0 0;
        border-top: none;
        box-shadow: none;
      }

      #productModal .product-modal-content.mobile-set-mode .product-modal-add-to-cart-bar .custom-add-btn {
        width: 100%;
        min-height: 66px;
        border-radius: 999px;
        font-size: 1.15rem;
        background: #D43C0D;
        border-color: transparent;
        color: #fff;
      }

      #productModal .product-modal-content.mobile-story-weight-mode {
        max-height: 94vh;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-modal-body {
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-modal-info-column {
        margin-top: -25px;
        max-height: none;
        overflow: visible;
        padding-bottom: 20px;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-copy-stack {
        position: static;
        min-height: 0;
        overflow: visible;
        display: flex;
        flex-direction: column;
        gap: 0.9rem;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-copy-stack::after {
        display: none;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-description-stack,
      #productModal .product-modal-content.mobile-story-weight-mode .product-nutrition-section {
        position: static;
        inset: auto;
        transform: none !important;
        opacity: 1 !important;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-description-stack {
        order: 1;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-nutrition-section {
        order: 2;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-description-stack {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        text-align: left;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-nutrition-section {
        padding-top: 0.15rem;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-nutrition-grid {
        gap: 0.55rem;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-nutrition-stat {
        background: rgba(35,31,32,0.04);
      }

      #productModal .product-modal-content.mobile-story-weight-mode .story-weight-select-shell {
        margin-bottom: 0;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .story-automatic-additionals-list {
        gap: 0.5rem;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .story-automatic-additionals-list .automatic-additional-item {
        text-align: left;
      }

      #productModal .product-modal-content.mobile-story-weight-mode #additionalItemsSection {
        display: block;
        margin-top: 1.1rem !important;
      }

      #productModal .product-modal-content.mobile-story-weight-mode #additionalItemsList {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .additional-item {
        overflow: hidden;
        border-radius: 18px;
        background: rgba(35,31,32,0.03);
        border: 1px solid rgba(35,31,32,0.08);
        box-shadow: 0 14px 28px rgba(0, 0, 0, 0.16);
      }

      #productModal .product-modal-content.mobile-story-weight-mode .additional-item.selected {
        border: 1px solid rgba(255, 161, 97, 0.95);
        box-shadow: 0 18px 34px rgba(255, 120, 44, 0.18);
      }

      #productModal .product-modal-content.mobile-story-weight-mode .additional-item-content {
        padding: 0;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .additional-item-checkbox-container {
        top: 12px;
        left: 12px;
        border-radius: 999px;
        padding: 4px;
        background: rgba(11, 11, 11, 0.5);
        backdrop-filter: blur(10px);
      }

      #productModal .product-modal-content.mobile-story-weight-mode .additional-item-label {
        gap: 0;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .additional-item-image {
        height: 132px;
        width: 100%;
        object-fit: cover;
        border-radius: 0;
        margin-bottom: 0;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .additional-item-details {
        padding: 12px 12px 14px;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .additional-item-name {
        font-size: 0.88rem;
        line-height: 1.25;
        margin-bottom: 6px;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .additional-item-price {
        color: var(--text-primary);
        font-size: 0.92rem;
      }

      #productModal .product-modal-content.mobile-story-weight-mode #additionalItemsSection h6,
      #productModal .product-modal-content.mobile-story-weight-mode .product-nutrition-section h6 {
        margin-bottom: 0.7rem;
      }

      #productModal .product-modal-content.mobile-story-weight-mode .product-modal-add-to-cart-bar {
        padding-top: 14px;
      }

      #productModal .modal-dialog.mobile-unified-dialog {
        max-width: 420px;
        width: calc(100vw - 24px);
        margin: 0.75rem auto;
        min-height: auto;
        height: auto !important;
        align-items: center;
      }

      #productModal .product-modal-content.mobile-unified-mode {
        height: auto;
        max-height: 90vh;
        border-radius: 28px;
        background: #F2E9DB;
        overflow: hidden;
        box-shadow: 0 28px 56px rgba(0, 0, 0, 0.35);
      }

      #productModal .product-modal-content.mobile-unified-mode .modal-header {
        display: none;
      }

      #productModal .product-modal-content.mobile-unified-mode .close-btn.mobile-floating-close {
        display: flex;
        position: absolute;
        top: 14px;
        left: 14px;
        width: 46px;
        height: 46px;
        border-radius: 50%;
        background: rgba(212,60,13,0.12);
        backdrop-filter: blur(10px);
        color: #D43C0D;
        align-items: center;
        justify-content: center;
        z-index: 1105;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-modal-body {
        padding: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-modal-shell {
        display: flex;
        flex-direction: column;
        gap: 0;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-modal-image-frame {
        padding: 0;
        border: none;
        border-radius: 0;
        background: #FFFFFF;
        aspect-ratio: 1 / 1;
        overflow: hidden;
      }

      #productModal .product-modal-content.mobile-unified-mode #modalProductImage {
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center center;
        border-radius: 0;
        background: #FFFFFF;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-modal-info-column {
        display: flex;
        flex-direction: column;
        background: #FFF4EC;
        border-radius: 24px 24px 0 0;
        margin-top: -14px;
        padding: 14px 18px 18px;
        box-shadow: 0 -10px 24px rgba(0, 0, 0, 0.16);
      }

      #productModal .product-modal-content.mobile-unified-mode .product-mobile-sheet-head {
        display: block;
        text-align: center;
        padding: 0 8px 12px;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-mobile-sheet-handle {
        display: none;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-mobile-sheet-head h2 {
        margin: 0;
        font-size: 1.4rem;
        line-height: 1.08;
        color: var(--text-primary);
      }

      #productModal .product-modal-content.mobile-unified-mode .product-copy-stack {
        display: flex;
        flex-direction: column;
        gap: 0.9rem;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-description,
      #productModal .product-modal-content.mobile-unified-mode .product-additional-description {
        color: rgba(35,31,32,0.88);
      }

      #productModal .product-modal-content.mobile-unified-mode .product-nutrition-section {
        display: none !important;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-nutrition-header,
      #productModal .product-modal-content.mobile-unified-mode .product-nutrition-chip {
        display: none;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-nutrition-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.4rem;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-nutrition-stat {
        padding: 0.6rem 0.35rem;
        text-align: center;
        background: rgba(35,31,32,0.03);
        border-color: rgba(35,31,32,0.08);
      }

      #productModal .product-modal-content.mobile-unified-mode .product-nutrition-stat span {
        font-size: 0.62rem;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-nutrition-stat strong {
        font-size: 0.9rem;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-modal-add-to-cart-bar {
        position: sticky;
        bottom: 0;
        background: linear-gradient(180deg, rgba(255,244,236,0), rgba(255,244,236,0.85) 38%, rgba(255,244,236,0.98));
        padding: 16px 0 0;
        border-top: none;
        box-shadow: none;
        justify-content: center;
      }

      #productModal .product-modal-content.mobile-unified-mode .product-modal-add-to-cart-bar .custom-add-btn {
        width: 100%;
        min-height: 66px;
        border-radius: 999px;
        font-size: 1.15rem;
        background: #D43C0D;
        border-color: transparent;
        color: #fff;
      }

      /* Дополнительный отступ для картинки внутри центрированной карточки */
      .mobile-centered-card #modalProductImage {
        border-radius: 15px;
        margin-bottom: 15px !important;
      }
    }

    /* --- Корзина --- */
    #cartModal .modal-dialog {
      max-width: 520px;
      width: 100%;
      margin: auto;
    }

    .cart-modal-content {
      background: #FFF4EC !important;
      border: 1px solid rgba(35,31,32,0.10) !important;
      border-radius: 28px;
      overflow: hidden;
      box-shadow: 0 8px 48px rgba(0,0,0,0.14);
      position: relative;
      max-height: 90vh;
      display: flex;
      flex-direction: column;
      color: var(--text-primary) !important;
    }

    .cart-modal-close {
      position: absolute;
      top: 16px;
      left: 16px;
      width: 46px;
      height: 46px;
      border-radius: 50%;
      background: rgba(35, 31, 32, 0.06);
      border: none;
      color: #231F20;
      font-size: 24px;
      font-weight: bold;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 10;
      cursor: pointer;
      transition: background 0.2s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .cart-modal-close:hover {
      background: rgba(35, 31, 32, 0.12);
    }
    }

    .cart-modal-header {
      padding: 22px 20px 12px 72px;
      text-align: left;
    }

    .cart-modal-header h5 {
      color: var(--text-primary);
      font-size: 1.2rem;
      font-weight: 700;
      margin: 0;
      line-height: 46px;
    }

    .cart-modal-body {
      flex: 1;
      overflow-y: auto;
      overscroll-behavior: contain;
      padding: 0 16px 8px !important;
      background: #FFF4EC !important;
    }

    /* Товары в корзине */
    .cart-modal-body .cart-item {
      background: rgba(35,31,32,0.03) !important;
      border: 1px solid rgba(35,31,32,0.08) !important;
      border-radius: 18px !important;
      padding: 0 !important;
      margin-bottom: 10px;
      overflow: hidden;
      display: flex;
      align-items: stretch;
    }

    .cart-modal-body .cart-item-image {
      flex-shrink: 0;
      width: 100px;
    }

    .cart-modal-body .cart-item-image img {
      width: 100px !important;
      height: 100% !important;
      min-height: 100px;
      object-fit: cover;
      border-radius: 0 !important;
      display: block;
    }

    .cart-modal-body .cart-item-details {
      flex: 1;
      padding: 12px 14px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      min-width: 0;
    }

    .cart-modal-body .cart-item-title,
    .cart-modal-body .cart-item .item-name {
      color: var(--text-primary) !important;
    }

    .cart-modal-body .cart-item-price,
    .cart-modal-body .cart-item .item-price {
      color: var(--accent-color) !important;
    }

    .cart-modal-body .cart-item .item-quantity,
    .cart-modal-body .cart-item-quantity {
      color: rgba(35,31,32,0.58) !important;
    }

    /* Кнопки +/- */
    .cart-modal-body .quantity-btn {
      background: rgba(35,31,32,0.04) !important;
      border: 1px solid rgba(35,31,32,0.12) !important;
      color: var(--text-primary) !important;
      border-radius: 12px !important;
    }

    @media (hover: hover) and (pointer: fine) {
      .cart-modal-body .quantity-btn:hover {
      background: rgba(212,60,13,0.10) !important;
    }
    }

    .cart-modal-body .quantity-display {
      color: var(--text-primary) !important;
    }

    /* Футер корзины */
    .cart-modal-footer {
      background: #F2E9DB !important;
      border-top: 1px solid rgba(35,31,32,0.10) !important;
      padding: 16px 18px 20px !important;
      color: var(--text-primary) !important;
    }

    .cart-modal-footer .cart-total-price {
      color: #231F20 !important;
      font-size: 1.15rem;
      margin-bottom: 6px;
    }

    .cart-modal-footer .cart-bonus-available {
      color: rgba(35,31,32,0.45) !important;
      font-size: 0.85rem;
      margin-bottom: 14px;
    }

    .cart-modal-footer .btn-checkout,
    .cart-modal-footer #checkoutBtn.btn.btn-checkout {
      width: 100% !important;
      min-height: 58px !important;
      border-radius: 999px !important;
      font-size: 1.1rem !important;
      font-weight: 700 !important;
      background: #D43C0D !important;
      border-color: transparent !important;
      color: #fff !important;
      box-shadow: 0 14px 32px rgba(212,60,13, 0.25);
    }

    @media (hover: hover) and (pointer: fine) {
      .cart-modal-footer .btn-checkout:hover, .cart-modal-footer #checkoutBtn.btn.btn-checkout:hover {
      background: #F04E1A !important;
      color: #fff !important;
    }
    }

    /* Пустая корзина */
    .cart-modal-body .empty-cart-message {
      color: rgba(35,31,32,0.45);
      text-align: center;
      padding: 40px 20px;
    }

    /* --- Модалка "Из двух половинок": slide-up + новый layout --- */
    #halfPizzaModal.fade {
      opacity: 1 !important;
      transition: opacity 0.5s linear !important;
    }
    #halfPizzaModal.fade .modal-dialog {
      transform: translateY(100%);
      transition: transform 0.45s cubic-bezier(0.32, 0.72, 0, 1) !important;
    }
    #halfPizzaModal.fade.show .modal-dialog {
      transform: translateY(0);
    }
    #halfPizzaModal .modal-dialog {
      max-width: 440px;
    }

    .half-pizza-modal-content {
      background: #F2E9DB;
      border: none;
      border-radius: 28px;
      overflow: hidden;
      box-shadow: 0 28px 56px rgba(0, 0, 0, 0.35);
      position: relative;
      height: 700px;
      max-height: 90vh;
      display: flex;
      flex-direction: column;
    }

    @media (max-width: 767px) {
      #halfPizzaModal .modal-dialog {
        max-width: calc(100vw - 16px);
        margin: 8px auto;
      }
      .half-pizza-modal-content {
        height: auto;
        max-height: 94vh;
        border-radius: 24px;
      }
    }

    .half-pizza-modal-close {
      position: absolute;
      top: 16px;
      left: 16px;
      width: 46px;
      height: 46px;
      border-radius: 50%;
      background: rgba(35,31,32,0.05);
      border: none;
      color: var(--text-primary);
      font-size: 24px;
      font-weight: bold;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 10;
      cursor: pointer;
      transition: background 0.2s ease;
    }

    @media (hover: hover) and (pointer: fine) {
      .half-pizza-modal-close:hover {
      background: rgba(35,31,32,0.07);
    }
    }

    .half-pizza-modal-body {
      flex: 1;
      overflow: hidden;
      padding: 0;
      display: flex;
      flex-direction: column;
    }

    /* Область пиццы */
    .hp-image-area {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      flex: 1;
      min-height: 0;
      overflow: visible;
      position: relative;
      gap: 0;
    }

    @media (max-width: 767px) {
      .hp-image-area {
        flex: none;
        padding: 34% 0 28% 0;
      }
      .hp-half-wrap {
        width: 70%;
      }
    }

    /* Колонки: левая и правая — без зазора */
    .hp-column {
      width: 50%;
      height: 100%;
      position: relative;
      cursor: grab;
      user-select: none;
      -webkit-user-select: none;
      touch-action: pan-y;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0;
      padding: 0;
    }
    .hp-column--left { justify-content: center; }
    .hp-column--right { justify-content: center; }

    /* Wrap для половинок — aspect-ratio 1:2 = идеальный полукруг */
    .hp-half-wrap {
      width: 70%;
      aspect-ratio: 1 / 2;
      position: relative;
      overflow: visible;
    }
    .hp-column--left .hp-half-wrap { margin-left: auto; margin-right: 0; }
    .hp-column--right .hp-half-wrap { margin-left: 0; margin-right: auto; }

    .hp-half {
      width: 100%;
      height: 100%;
      background-color: transparent;
      background-size: 200% 100%;
      position: absolute;
      left: 0;
      transition: none;
    }

    .hp-half--current { top: 0; opacity: 1; transform: translateY(0) scale(0.92); filter: none; z-index: 2; }
    .hp-half--prev    { top: 0; opacity: 0.18; transform: translateY(-65%) scale(0.42); filter: blur(1px); z-index: 1; }
    .hp-half--next    { top: 0; opacity: 0.18; transform: translateY(65%) scale(0.42); filter: blur(1px); z-index: 1; }

    .hp-half--left {
      border-radius: 999px 0 0 999px;
      border: none;
      background-position: left center;
      transform-origin: right center;
    }

    .hp-half--right {
      border-radius: 0 999px 999px 0;
      border: none;
      background-position: right center;
      transform-origin: left center;
    }

    /* Группа названий — компактный вертикальный список */
    .hp-labels-group {
      position: absolute;
      z-index: 5;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 2px;
      top: 24%;
      pointer-events: none;
    }

    .hp-column--left .hp-labels-group { left: 8px; }
    .hp-column--right .hp-labels-group { right: 8px; align-items: flex-end; }

    @media (max-width: 767px) {
      .hp-labels-group { top: -5%; }
    }

    .hp-label {
      font-weight: 600;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 100%;
      padding: 1px 0;
      transition: none;
    }

    .hp-label--prev {
      color: rgba(35, 31, 32, 0.3);
      font-size: 0.62rem;
    }

    .hp-label--current {
      color: var(--text-primary);
      font-size: 1rem;
    }

    .hp-label--next {
      color: rgba(35, 31, 32, 0.3);
      font-size: 0.62rem;
    }

    /* Тёмный блок с кнопкой */
    .hp-info-block {
      background: #FFF4EC;
      border-radius: 24px 24px 0 0;
      position: relative;
      z-index: 3;
      padding: 14px 18px 20px;
      display: flex;
      flex-direction: column;
    }

    .hp-info-title {
      color: var(--text-primary);
      font-size: 1.15rem;
      font-weight: 700;
      line-height: 1.05;
      text-align: center;
      margin-bottom: 12px;
    }

    /* Кнопка В корзину */
    .hp-cart-bar {
      padding-top: 0;
    }

    .hp-cart-bar .custom-add-btn {
      width: 100%;
      min-height: 64px;
      border-radius: 999px;
      font-size: 1.1rem;
      background: #D43C0D;
      border-color: transparent;
      color: #fff;
      box-shadow: 0 18px 40px rgba(212,60,13, 0.28);
    }

    @media (hover: hover) and (pointer: fine) {
      .hp-cart-bar .custom-add-btn:hover {
      background: #F04E1A;
      color: #fff;
    }
    }

    /* Адаптив для маленьких экранов */
    @media (max-width: 400px) {
      .hp-pizza-visual { max-height: 180px; }
    }

  
