/* ==========================================================================
   0. КАСТОМНЫЙ ШРИФТ (MONTSERRAT)
   ========================================================================== */
@font-face {
    font-family: 'Montserrat';
    src: url('/assets/fonts/text.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/* ==========================================================================
   0.1 ТИПОГРАФИКА MONTSERRAT — LUXURY STYLE
   ========================================================================== */

/* Заголовки: Light/Regular в крупном размере + разрядка для UPPERCASE */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    letter-spacing: 0.02em;
    margin-bottom: 0.5em;
}

.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: .5rem;
    font-weight: 500;
    line-height: 15px;
    color: var(--bs-heading-color);
}

/* UPPERCASE заголовки — разрядка 10-15% для "люксового" вида */
.category-title,
.section-title {
    font-weight: 300;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* Кнопки и мелкие подзаголовки: Bold (700) + легкая разрядка */
.greenbutton,
.order-btn,
.show-all-btn,
.category-show-more-btn,
.main-catalog-link,
.logo {
    font-weight: 700;
    letter-spacing: 0.08em;
}

/* Продуктовые карточки — Regular для читаемости */
.product-name {
    font-weight: 400;
    letter-spacing: 0.01em;
}

/* Преимущества — Regular */
#features .main-featuresTitle,
#features .main-featuresText {
    font-weight: 400;
    letter-spacing: 0.01em;
}

::-webkit-scrollbar {
    width: 2px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background-color: var(--button-color);
    border-radius: 30px;
}
body, html {
    margin: 0;
    padding: 0;
    max-width: 100%;
}
body {
    overflow-x: clip;
}
html {
    overflow-y: overlay;
}
body {
    background-color: var(--background);
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    color: #333;
}
*, *::before, *::after {
    font-family: 'Montserrat', sans-serif;
}

/* ==========================================================================
   1. ПЕРЕМЕННЫЕ
   ========================================================================== */
:root {
    --top-bar: #00cc55;
    --header-bg: #ffffff;
    --category-bar: #000000;
    --footer-bar: #fbf6ee;
    --background: #ffffff;
    --border-color: #ffb8c6;
    --button-color: #e855a8;
}
.container {
    max-width: 1180px;
    margin: 0 auto;
}
.row {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 0;
    display: flex;
    flex-wrap: wrap;
    margin-top: calc(-1 * var(--bs-gutter-y));
    margin-right: calc(-.5 * var(--bs-gutter-x));
    margin-left: calc(-.5 * var(--bs-gutter-x));
}
.gap-3 { gap: 3rem !important; }
.bi-flower-custom {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    font-size: inherit; color: inherit; vertical-align: -0.125em; line-height: 1;
}
.flower-icon-svg { width: 1em; height: 1em; fill: currentColor; display: inline-block; }

/* ==========================================================================
   1.1 КРОССБРАУЗЕРНЫЕ УТИЛИТЫ И КНОПКИ
   ========================================================================== */
/* 1. Базовый класс кнопки */
.greenbutton {
    background-color: #fff;
    border:         none;
    color:          #000;
    cursor:         pointer;
    font-size:      15px;
    font-weight:    bold;
    letter-spacing: 3px;
    min-height:     50px;
    padding:        4px 15px;
    text-transform: uppercase;
    /* Убрали transition: all. Оставляем плавность только для тени и цвета текста. 
       Фон теперь будет переключаться моментально! */
    transition: color 0.1s, box-shadow 0.1s; 
}
.greenbutton:hover {
    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.05);
}
.greenbutton:focus {
    outline: 0;
}
/* 2. Класс-модификатор градиента */
.button-border-gradient {
    /* Центрирование кнопки */
    display: block; 
    margin: 0 auto; 
    width: fit-content; /* Чтобы кнопка не растянулась на всю ширину страницы */
    
    border-left:         2px solid #ff0044;
    border-right:        2px solid #8a00f4;
    box-sizing:          border-box;
    background-position: 0 0, 0 100%;
    background-repeat:   no-repeat;
    background-size:     100% 2px;
    background-image:    linear-gradient(to right, #ff0044 0%, #8a00f4 100%), linear-gradient(to right, #ff0044 0%, #8a00f4 100%);
    border-radius:       0;
}
/* Моментальная заливка градиентом при наведении (:hover) и клике (:active) */
.button-border-gradient:hover,
.button-border-gradient:active {
    background-size: 100% 100%;
    color:           #fff;
    box-shadow:      0 2px 2px 0 rgba(0, 0, 0, 0.08);
}
.text-right {
    text-align: right !important;
}
.pointer-events-no {
    pointer-events: none;
}

/* ==========================================================================
   2. ШАПКА (HEADER) И НАВИГАЦИЯ
   ========================================================================== */
.top-stripe { background-color: var(--top-bar); height: 4px; width: 100%; }
.site-header { background-color: var(--header-bg); padding: 10px 0; border-bottom: none; }
.logo { font-size: 24px; font-weight: 700; color: var(--button-color); text-decoration: none; }
.logo i { color: #00cc55; }
.header-logo { width: 74%; max-width: 300px; height: auto; }
.main-catalog-link {
    display: inline-flex !important; align-items: center !important; flex-direction: row !important;
    gap: 0px; white-space: nowrap !important; font-size: 21px; font-weight: 700; color: #333;
    text-decoration: none; letter-spacing: 0.12em; transition: color 0.3s ease; line-height: 1 !important;
    border-bottom: 2px solid transparent; text-transform: uppercase;
}
.main-catalog-link:hover { color: #e855a8; }
.main-catalog-link i { display: flex !important; align-items: center !important; margin: 0 !important; transform: translateY(-1px); color: #00cc55; }
.main-catalog-link > div { display: flex !important; align-items: center !important; margin-right: 4px !important; }
.header-contacts-box { display: flex; flex-direction: row; justify-content: center; align-items: center; gap: 20px; }
.header-pipe-line { display: inline-block; width: 20px; text-align: center; }
.contact-info { font-size: 18px; font-weight: 600; color: #000000; cursor: default; }
.contact-info span { cursor: default; }
.contact-info i { font-size: 25px !important; color: #00cc55 !important; margin-right: 0px; }
.contact-info .mx-3 { font-size: 20px; color: #000000; margin: 0 15px; }
.cart-icon { position: relative; font-size: 1.5rem; }
.cart-badge {
    position: absolute; top: -10px; right: 0px; background-color: var(--button-color); color: white;
    border-radius: 50%; width: 28px; height: 28px; font-size: 16px; display: flex; align-items: center;
    justify-content: center; font-weight: bold; line-height: 1;
}
.cart-icon i { font-size: 1.7rem !important; }
.header-icon-label {
    font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em;
    color: #999; margin-top: 3px; line-height: 1; text-align: center; width: 100%;
}
.col-md-3.text-end .d-flex i { font-size: 2.5rem !important; transition: color 0.3s ease, transform 0.3s ease; }
.col-md-3.text-end .d-flex a:hover i { color: var(--button-color) !important; transform: scale(1.1); }
.col-md-3.text-end .dropdown-toggle { border-radius: 50%; padding: 5px; transition: color 0.2s; }
.col-md-3.text-end .dropdown-toggle:hover { color: var(--button-color) !important; }

/* Catalog Search Form (над ссылкой ИНФО, absolute) */
.catalog-search-wrapper { position: relative; display: inline-flex; align-items: center; }
.catalog-search-form {
    position: absolute;
    bottom: 100%;
    left: 0;
    margin-bottom: 10px;
    width: 265px;
    z-index: 100;
}
@media (max-width: 1200px) {
    .catalog-search-form { width: 235px; }
}
.catalog-search-form .input-group {
    border-radius: 8px; overflow: visible;
    border: 1px solid #dee2e6 !important;
    transition: border-color 0.2s;
}
.catalog-search-form .input-group:focus-within {
    border-color: #e855a8 !important;
}
.catalog-search-input {
    border: none !important;
    box-shadow: none !important;
    font-size: 13px !important;
    padding: 0 8px !important;
    height: 30px !important;
    line-height: 30px !important;
    background: #fff;
    border-radius: 8px 0 0 8px !important;
    cursor: pointer;
    transition: background 0.2s;
}
.btn-catalog-search {
    background: #fff !important; color: var(--button-color) !important;
    border: none !important;
    border-radius: 0 8px 8px 0 !important;
    padding: 0 8px !important; height: 30px !important;
    display: flex; align-items: center; justify-content: center;
    transition: background 0.2s; cursor: pointer;
}
.catalog-search-form .input-group:hover .catalog-search-input,
.catalog-search-form .input-group:hover .btn-catalog-search {
    background: #f8f9fa !important;
}
.catalog-search-input::-webkit-search-cancel-button { display: none; }
.catalog-search-input::-ms-clear { display: none; }
.catalog-search-input:focus { box-shadow: none !important; background: #fff; }
.btn-catalog-search {
    background: #fff !important; color: var(--button-color) !important;
    border: none !important;
    border-radius: 0 8px 8px 0 !important;
    padding: 0 8px !important; height: 30px !important;
    display: flex; align-items: center; justify-content: center;
    transition: background 0.2s; cursor: pointer;
}
.btn-catalog-search:hover { background: #f8f9fa !important; }
.btn-catalog-search svg { width: 30px; height: 30px; display: block; }

/* Категории */
.category-bar { background-color: var(--category-bar); padding: 0px 0; position: relative; z-index: 100; }
.category-nav { display: flex; justify-content: center; align-items: center; position: relative; min-height: 40px; }
.category-links {
    display: flex; justify-content: center; align-items: center; flex-wrap: nowrap; gap: 20px;
    width: 100%; max-width: 100%; overflow: hidden; position: relative; padding: 0 120px 0 40px;
}
.category-link {
    color: white; text-decoration: none; font-weight: 600; padding: 5px 10px; border-radius: 18px;
    transition: all 0.3s; flex-shrink: 0; white-space: nowrap; border: 2px solid transparent;
    text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.85rem;
}
.category-link:hover { background-color: rgba(255, 255, 255, 0.1); color: white; border-color: rgba(255, 255, 255, 0.2); }
.category-link.active { background-color: var(--button-color); color: white; }
.more-categories-btn {
    position: absolute; right: 0; background-color: rgba(255, 255, 255, 0.1); color: white; border: none;
    padding: 8px 8px; border-radius: 20px; font-weight: 500; cursor: pointer; display: flex; align-items: center;
    gap: 8px; transition: all 0.3s; flex-shrink: 0; z-index: 10;
}
.more-categories-btn:hover { background-color: rgba(255, 255, 255, 0.2); }
.hidden-categories-dropdown {
    position: absolute; top: 100%; right: 0; background-color: var(--category-bar); border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); min-width: 200px; z-index: 1000; display: none;
    flex-direction: column; padding: 10px 0; margin-top: 5px; max-height: 300px; overflow-y: auto;
}
.hidden-categories-dropdown.show { display: flex; }
.hidden-category-link { color: white; text-decoration: none; padding: 10px 20px; transition: all 0.3s; white-space: nowrap; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; font-size: 0.85rem; }
.hidden-category-link:hover { background-color: rgba(255, 255, 255, 0.1); color: white; }

/* ==========================================================================
   3. КАТАЛОГ (ВИТРИНА)
   ========================================================================== */
.product-showcase { padding: 0px 0 0px 0; }
.category-container { margin-bottom: 50px; }
.category-hidden-products { display: none; }
.category-title {
    color: #333;
    font-weight: 700;
    margin-bottom: -45px;
    position: relative;
    padding: 65px 0 70px 0;
    text-align: center;
    font-size: 32px;
    cursor: default;
}
.category-title * { cursor: default; }
.category-title:first-child { margin-top: -15px; }
.category-title:before, .category-title:after {
    content: ''; width: calc(50% - 15px); max-width: 700px; position: absolute; top: 25px;
    display: block; height: 2px; background: #00cc55;
}
.category-title:before { left: 0; background: linear-gradient(270deg, #00cc55, transparent); }
.category-title:after { right: 0; background: linear-gradient(90deg, #00cc55, transparent); }
.category-title i {
    position: absolute; left: 50%; top: 6px; transform: translateX(-50%); color: #00cc55;
    font-size: 30px; background: transparent; padding: 10px 0; z-index: 1;
}
.category-title .bi-flower-custom { padding: 0; width: 30px; height: 40px; }
.category-title .bi-flower-custom .flower-icon-svg { width: 30px; height: 30px; }

/* Карточки */
.product-card {
    transform: scale(0.9); background: white; border: 1px solid var(--border-color);
    border-radius: 25px; overflow: hidden; transition: all 0.2s ease; position: relative; margin-bottom: 21px; min-height: 420px;
}
.product-card:hover { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(255, 184, 198, 0.3); }
.product-card:hover:before {
    content: ''; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px;
    border: 2px solid var(--border-color); border-radius: 12px; z-index: -1; animation: borderGlow 2s infinite;
}
@keyframes borderGlow { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } }
.product-image {
    transform: scale(0.9); aspect-ratio: 1 / 1.1; object-fit: cover; width: 100%; height: 270px;
    object-position: center; border-bottom: 0px solid var(--border-color); border-radius: 12px; overflow: hidden;
}
.product-info { padding: 0px; }
.product-name { font-weight: 600; font-size: 18px; color: #333; margin-bottom: 5px; line-height: 25px; height: 50px; text-align: center; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: break-word; }
.product-price { color: #00cc55; font-weight: 700; font-size: 21px; margin-bottom: 1px; text-align: center; }
.order-btn {
    background-color: var(--button-color); color: white; border: none; width: 100%;
    padding: 10px; border-radius: 8px; font-weight: 600; transition: background-color 0.3s;
}
.order-btn:hover { background-color: #d34495; color: white; }
.product-card.sold-out .product-image { filter: grayscale(40%); opacity: 0.65; }
.product-card.sold-out .product-name, .product-card.sold-out .product-price { color: #95a5a6; transform: none; box-shadow: none; }
.show-all-btn, .category-show-more-btn {
    background-color: var(--button-color); color: white; border: none; padding: 8px 20px;
    border-radius: 20px; font-weight: 600; transition: transform 0.3s; white-space: nowrap;
}
.show-all-btn { margin-left: 20px; flex-shrink: 0; }
.category-show-more-btn { display: block; margin: -35px auto -35px; padding: 8px 30px; font-size: 1rem; background-color: #000000; }
.show-all-btn:hover, .category-show-more-btn:hover { transform: scale(1.05); color: white; background-color: #d34495; }
.category-container.is-expanded .product-item { display: block !important; }

/* Пустые категории */
.no-products-message { text-align: center; padding: 60px 0; }
.no-products-message i { font-size: 4rem; color: #ddd; margin-bottom: 20px; }
.no-products-message .bi-flower-custom { width: 64px; height: 64px; }
.no-products-message .bi-flower-custom .flower-icon-svg { width: 64px; height: 64px; }
.no-categories-message { color: rgba(255, 255, 255, 0.7); font-style: italic; }

/* ==========================================================================
   4. ПРЕИМУЩЕСТВА И ПОДВАЛ
   ========================================================================== */
#features { margin-bottom: 15px; padding-top: 15px; background-color: #fff; }
#features .container { margin-right: auto; margin-left: auto; max-width: 1170px; width: 100%; }
.features-flex-container { display: flex !important; align-items: center; width: 95%; }
#features .social-links._vertical { width: 20px; margin-right: 40px; flex-shrink: 0; }
#features .social-links._vertical a { display: block; margin-bottom: 7px; text-align: center; text-decoration: none; }
#features .social-links._vertical a:last-child { margin-bottom: 0; }
#features .social-links._vertical .icon { width: 20px; height: 20px; fill: #00cc55; transition: fill 0.3s ease; }
#features .social-links._vertical a:hover .icon { fill: #e855a8; }
#features .social-links._vertical::before, #features .social-links._vertical::after { content: ''; display: block; margin: 0 auto; width: 2px; height: 15px; background-color: #00cc55; }
#features .social-links._vertical::before { margin-bottom: 8px; }
#features .social-links._vertical::after { margin-top: 8px; }
.features-new-list { display: flex !important; flex-direction: row !important; justify-content: center !important; flex-grow: 1; gap: 20px; }
#features .main-featuresItem { display: block; text-decoration: none; color: inherit; height: 100%; cursor: default; }
#features .main-featuresInner { border-radius: 10px; padding: 0 60px; text-align: center; height: 100%; display: flex; flex-direction: column; align-items: center; transition: border-color 0.3s ease; }
#features .main-featuresItem:hover .main-featuresInner { border-color: #00cc55; }
#features .main-featuresIcon { width: 80px; height: 80px; margin-bottom: 15px; display: flex; align-items: center; justify-content: center; }
#features .main-featuresIcon img {height: auto; display: block; margin: -25px auto -20px;}
#features .main-featuresTitle { font-family: 'Montserrat', Arial, sans-serif; font-size: 16px; font-weight: 700; color: #333; margin-bottom: 8px; line-height: 1.3; }
#features .main-featuresText { font-family: 'Montserrat', sans-serif; font-size: 14px; color: #666; line-height: 1; }

.benefits-section { padding: 60px 0; background: url(/assets/luxury.png?lc=1769722068), linear-gradient(to top, #00cc55 0, #fff 100%); }
.section-title { color: #333; font-weight: 700; margin-bottom: 50px; position: relative; padding: 80px 0 20px 0; text-align: center; font-size: 45px; cursor: default; }
.section-title * { cursor: default; }
.benefit-card { text-align: center; padding: 30px 20px; background: #fbf6ee47; border-radius: 10px; border: 2px solid transparent; height: 100%; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); cursor: default; }
.benefit-card * { cursor: default; }
.benefit-icon { width: 60px; height: 60px; background: linear-gradient(135deg, var(--button-color), #ffb8c6); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; color: white; font-size: 24px; }
.benefit-icon .bi-flower-custom { width: 24px; height: 24px; }
.benefit-icon .bi-flower-custom .flower-icon-svg { width: 24px; height: 24px; }

.site-footer { background-color: #ffffff; padding: 21px 0 30px; margin-top: 0px; }
.footer-top { display: none; }
.footer-logo { width: 100%; max-width: 300px; height: auto; margin-top: 20px; }
.site-footer h5 { margin-top: 20px; cursor: default; }
.site-footer { cursor: default; }
.site-footer * { cursor: default; }
.site-footer a { cursor: default !important; }
.footer-contact { margin-bottom: 20px; cursor: default; }
.footer-contact * { cursor: default; }
.footer-contact i { color: var(--button-color); margin-right: 10px; }
.copyright { padding-top: 20px; border-top: 1px solid #000000; margin-top: 5px; text-align: center; color: #666; cursor: default; }
.copyright * { cursor: default; }

/* Выпадающее меню профиля/админки */
.dropdown-menu { border: 2px solid #000000; border-radius: 15px; background-color: var(--header-bg); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15); padding: 0; overflow: hidden; min-width: 220px; }
.dropdown-header { background: linear-gradient(135deg, var(--button-color), #ffb8c6); color: white; border-radius: 13px 13px 0 0; padding: 15px; text-align: center; margin-bottom: 0; }
.dropdown-header .text-muted { color: rgba(255, 255, 255, 0.9) !important; }
.dropdown-header h6 { font-weight: 600; margin-bottom: 5px; color: white; }
.dropdown-header .mb-2, .dropdown-header .mt-2 { display: flex; justify-content: center; }
.dropdown-header .mb-2 .bi-person-circle, .dropdown-header .mb-2 .text-primary, .dropdown-header .mb-2 i.bi-person-circle.fs-3.text-primary { color: white !important; }
.dropdown-header .mt-2 a { display: inline-flex; align-items: center; color: #dc3545 !important; font-weight: 600; text-decoration: none; padding: 6px 12px; border-radius: 6px; margin-top: 8px; background-color: rgba(255, 255, 255, 0.15); font-size: 0.9rem; border: 1px solid rgba(255, 255, 255, 0.25); transition: background-color 0.2s; }
.dropdown-header .mt-2 a:hover { background-color: rgba(255, 255, 255, 0.25); color: #dc3545 !important; }
.dropdown-header .mt-2 a i { margin-right: 6px; }
.dropdown-item { padding: 0px 10px; color: #333; border-bottom: 1px solid rgba(255, 184, 198, 0.2); font-size: 1.5rem; text-align: center; display: flex; align-items: center; transition: background-color 0.2s; background-color: #fbf6ee; justify-content: space-between; }
.dropdown-item:last-child { border-bottom: none; }
.dropdown-item:hover { background-color: rgba(255, 184, 198, 0.1); color: var(--button-color); }
.dropdown-item i { color: var(--button-color); margin-right: 10px; width: 35px; text-align: center; }
.dropdown-item.text-danger { color: #dc3545 !important; }
.dropdown-item.text-danger i { color: #dc3545; }
.dropdown-divider { margin: 0; border-color: #000000; }
.dropdown-menu.show { animation: none; }

.badge {
    --bs-badge-padding-x: 0.65em; --bs-badge-padding-y: 0.35em; --bs-badge-font-size: 1.00em; --bs-badge-font-weight: 700;
    --bs-badge-color: #fff; --bs-badge-border-radius: var(--bs-border-radius);
    display: inline-block; padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
    font-size: var(--bs-badge-font-size); font-weight: var(--bs-badge-font-weight); line-height: 1;
    color: var(--bs-badge-color); text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: var(--bs-badge-border-radius);
}
.bg-success { background-color: #00cc5c !important; }
.bg-secondary { background-color: #6c757d !important; }

/* БАЗОВЫЙ СКРЫТЫЙ СТИЛЬ ДЛЯ МОБИЛЬНОЙ ПАНЕЛИ */
.mobile-sticky-panel { display: none; }

/* ==========================================================================
   5. МОДАЛЬНЫЕ ОКНА И АВТОРИЗАЦИЯ
   ========================================================================== */
.rb-modal {
    position: fixed; top: 0; left: 0; display: none; align-items: center; justify-content: center;
    width: 100%; height: 100%; background: rgba(51, 51, 51, 0.5); z-index: 1100; will-change: auto; backdrop-filter: blur(3px); z-index: 20000 !important;
    overflow: hidden !important;
    overscroll-behavior: contain !important;
    touch-action: none !important;
    -webkit-overflow-scrolling: touch;
}
.rb-modal__content { display: flex; flex-direction: column; width: 100%; max-width: 100%; height: 100%; max-height: 100%; background: #fff; position: relative; touch-action: auto !important; overscroll-behavior: auto !important; }
.rb-modal__close {
    position: absolute; 
    right: 15px; 
    top: 20px;
    width: 32px; 
    height: 32px; 
    border: none; 
    background: transparent;
    cursor: pointer; 
    padding: 0; 
    z-index: 10;
    display: flex; 
    align-items: center; 
    justify-content: center;
    outline: none !important;
    transition: transform 0.2s ease;
}
.rb-modal__close::before,
.rb-modal__close::after {
    content: '';
    position: absolute;
    width: 18px; /* Длина усиков крестика */
    height: 2px; /* Толщина крестика */
    background-color: #e855a8; /* Заданный вами цвет */
    border-radius: 2px; /* Слегка скругляем края для мягкости */
    transition: background-color 0.2s ease;
}
.rb-modal__close::before { transform: rotate(45deg); }
.rb-modal__close::after { transform: rotate(-45deg); }
.rb-modal__close:active {
    transform: scale(0.9);
}
.rb-modal__header { padding: 24px 15px 16px; }
.rb-modal__title { padding-right: 28px; font-size: 20px; font-weight: 700; line-height: 24px; }
.rb-modal__body { flex: 1 1 auto; padding: 8px 15px; overflow: auto; }
.rb-modal__body_not-footer { padding-bottom: 24px; }
.rb-btn { padding: 12px 20px; border-radius: 8px; border: none; font-weight: 600; cursor: pointer; transition: all 0.3s; text-align: center; font-size: 16px; }
.rb-btn_success { background: #e855a8; color: #fff; }
.rb-btn_success:hover { background: #d34495; color: #fff; }
.rb-btn_link { background: transparent; color: #e855a8; padding: 5px 10px; }
.rb-btn_link:hover { text-decoration: underline; }
.rb-btn_block { display: block; width: 100%; }
.rb-form-field { width: 100%; padding: 12px 15px; border: 1px solid #dee2e6; border-radius: 8px; font-size: 16px; transition: border-color 0.3s; }
.rb-form-field:focus { border-color: #e855a8; outline: none; }
.rb-form-check { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.rb-form-check__label_small { font-size: 13px; color: #666; }
.rb-form-check__label-link { color: #e855a8; text-decoration: underline; }
.rb-modal_show { display: flex; }
.rb-modal_show > .rb-modal__content { animation: rbScale .3s cubic-bezier(.68, -.55, .265, 1.55) forwards; }
@keyframes rbScale { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* --- ИНТЕГРИРОВАННЫЕ СТИЛИ TINGLE MODAL --- */
.tingle-modal {
    display: none !important; 
    position: fixed;
    top: 0; 
    right: 0;
    bottom: 0;
    left: 0; 
    width: 100%; 
    height: 100%;
    background: rgba(0, 0, 0, 0.4); 
    z-index: 20000 !important; 
    align-items: center; 
    justify-content: center;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    opacity: 0;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: pointer;
    backdrop-filter: blur(3px); padding: 20px 0;
}
/* Класс, который добавляет JS при клике (Показываем окно) */
.tingle-modal.tingle-modal--visible {
    display: flex !important;
    visibility: visible;
    opacity: 1;
}
.tingle-modal * { box-sizing: border-box; }
.tingle-modal--visible .tingle-modal-box {
    animation: scale .2s cubic-bezier(.68,-.55,.265,1.55) forwards;
}
.tingle-modal--confirm .tingle-modal-box { text-align: center; }
.tingle-modal--noOverlayClose { cursor: default; }
.tingle-modal--noClose .tingle-modal__close { display: none; }
.tingle-modal__close {
    order: 2; align-self: center; margin-top: 25px; padding: 0;
    width: 2rem; height: 2rem; border: none; background-color: transparent;
    color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center;
    z-index: 1000;
}
.tingle-modal__close svg * { fill: currentColor; }
.tingle-modal__closeLabel { display: none; }
.tingle-modal__close:hover { color: #fff; }
.tingle-modal-box {
    position: relative; flex-shrink: 0; margin: 0 auto; order: 1;
    width: 540px; max-width: 100%; border-radius: 4px; background: #fff;
    opacity: 1; cursor: auto; will-change: transform, opacity;
}
.tingle-modal__close {
    order: 2; align-self: center; margin-top: 30px; padding: 0;
    width: 40px; height: 40px; border: none; 
    background-color: rgba(0, 0, 0, 0.2); /* Легкий фон для видимости */
    border-radius: 50%; color: #fff; cursor: pointer; 
    display: flex; align-items: center; justify-content: center;
    z-index: 1000; flex-shrink: 0;
}
.tingle-modal__close svg { width: 20px; height: 20px; }
.tingle-modal__close svg * { fill: #ffffff !important; }
.tingle-modal_auto .tingle-modal-box { width: auto; }
.tingle-modal_xl .tingle-modal-box { width: 1030px; }
.tingle-modal_lg .tingle-modal-box { width: 800px; }
.tingle-modal_sm .tingle-modal-box { width: 400px; }
.tingle-modal-box__content { padding: 40px 20px; }
.tingle-modal-box__footer {
    padding: 15px 20px 20px; width: auto; border-bottom-right-radius: 4px;
    border-bottom-left-radius: 4px; background-color: #f5f5f5; cursor: auto;
}
.tingle-modal-box__footer::after { display: table; clear: both; content: ""; }
.tingle-modal-box__footer--sticky {
    position: fixed; bottom: -200px; z-index: 10001; opacity: 1;
    transition: bottom .3s ease-in-out .3s;
}
.tingle-modal_p-none .tingle-modal-box__content { padding: 0; }
@media (hover: hover) and (pointer: fine) {
    .tingle-modal--overflow { padding-bottom: 10px; padding-left: 10px; overflow-y: scroll; padding-top: 8vh; }
    .tingle-modal--overflow::before { right: 10px; }
}
.tingle-enabled { position: fixed; right: 0; left: 0; overflow: hidden; }
.tingle-modal--visible .tingle-modal-box__footer { bottom: 0; }
.tingle-enabled .tingle-content-wrapper { filter: blur(8px); }
.tingle-btn {
    display: inline-block; margin: 0 .5rem; padding: 1rem 2rem; border: none;
    background-color: grey; box-shadow: none; color: #fff; vertical-align: middle;
    text-decoration: none; font-size: inherit; font-family: inherit;
    line-height: normal; cursor: pointer; transition: background-color .4s ease;
}
.tingle-btn--primary { background-color: #3498db; }
.tingle-btn--danger { background-color: #e74c3c; }
.tingle-btn--default { background-color: #34495e; }
.tingle-btn--pull-left { float: left; }
.tingle-btn--pull-right { float: right; }

/* --- Стили для контента внутри модалки (modal-box) --- */
.modal-box .title {
    text-align: center; font-size: 25px; text-transform: uppercase; letter-spacing: 3px;
}
.modal-box input {
    color: #000; font-size: 15px; padding-top: 7px; padding-bottom: 7px;
    border: 1px solid transparent; border-bottom: 1px solid #7f7f7f; outline: none; width: 100%;
}
.modal-box input::-moz-placeholder { color: #000; }
.modal-box input::-webkit-input-placeholder { color: #000; }
.modal-box input[type="checkbox"] { display: none; }
.modal-box label {
    padding-left: 30px; position: relative; left: 20px;
}
.modal-box label::before {
    content: "\F26A";
    font-family: "bootstrap-icons";
    position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    font-size: 18px; color: #999;
}
.modal-box input[type="checkbox"]:checked + label::before {
    content: "\F26B";
    color: #00cc55;
}
.modal-box .text-popup { font-size: 15px; color: #a4a4a4; }
@keyframes scale {
    0% { opacity: 0; transform: scale(.9); }
    100% { opacity: 1; transform: scale(1); }
}
@supports ((-webkit-backdrop-filter: blur(12px)) or (backdrop-filter: blur(12px))) {
    .tingle-modal:before {
        position: fixed; top: 0; right: 0; bottom: 0; left: 0; content: "";
        -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); pointer-events: none;
    }
    .tingle-enabled .tingle-content-wrapper { filter: none; }
}

.auth-error-msg { color: #dc3545; font-size: 14px; margin-bottom: 15px; display: none; text-align: center; background: #f8d7da; padding: 10px; border-radius: 8px; }

/* =========================================
   РАЗМЕРЫ ИКОНОК ПРЕИМУЩЕСТВ (ПК)
   ========================================= */
/* 1-я иконка: Бесплатная доставка (features-1.svg) */
.features-new-list .main-featuresItem:nth-child(1) .main-featuresIcon img {
    width: 260px; 
}

/* 2-я иконка: Гарантия свежести (features-3.svg) */
.features-new-list .main-featuresItem:nth-child(2) .main-featuresIcon img {
    width: 245px; 
}

/* 3-я иконка: Пришлем фото букета (features-4.svg) */
.features-new-list .main-featuresItem:nth-child(3) .main-featuresIcon img {
    width: 125px; 
}

/* ==========================================================================
   6. МЕДИАЗАПРОСЫ (АДАПТИВ, СЕТКА, МОДАЛКИ)
   ========================================================================== */
@media (max-width: 991px) {
    .container { max-width: 100%; padding-left: 15px; padding-right: 15px; }
    .header-logo { width: 60%; max-width: 250px; }            
    .category-nav { display: none !important; }            
    .category-bar { min-height: 40px !important; }
    .category-nav { flex-direction: column; gap: 10px; }            
    .category-links { justify-content: flex-start; overflow-x: auto; padding-bottom: 10px; padding-right: 0; padding-left: 0; flex-wrap: nowrap; }            
    .more-categories-btn { display: none; }            
    .hidden-categories-dropdown { position: static; display: flex !important; flex-direction: row; flex-wrap: wrap; background: none; box-shadow: none; padding: 10px 0; max-height: none; overflow: visible; gap: 10px; }            
    .hidden-category-link { background-color: rgba(255, 255, 255, 0.1); border-radius: 20px; padding: 5px 15px; }            
    .show-all-btn { margin-left: 0; margin-top: 10px; }
    .features-flex-container { flex-direction: column !important; align-items: center !important; gap: 0px; width: 99%; }
    .social-links._vertical { position: static !important; display: flex !important; flex-direction: row !important; justify-content: center !important; align-items: center !important; width: 100%; transform: none !important; margin-right: 0 !important; margin-bottom: 20px; }
    .social-links._vertical a { display: flex !important; align-items: center !important; justify-content: center !important; margin: 0 !important; padding: 0 !important; line-height: 1 !important; }
    .social-links._vertical a:not(:last-child)::after { content: ""; display: block; width: 1px; height: 10px; background-color: #000000; margin: 0 21px; flex-shrink: 0; }
    .social-links._vertical .icon { width: 20px !important; height: 20px !important; display: block !important; }
    .features-new-list { flex-wrap: wrap; justify-content: center !important; gap: 0px; }            
    .main-featuresItem { flex: 0 0 calc(50% - 15px); max-width: calc(50% - 15px); min-width: 160px; }            
    .main-featuresInner { padding: 15px 10px !important; }           
    .main-featuresIcon { width: 60px; height: 60px; margin-bottom: 10px; }            
    .main-featuresTitle { font-size: 14px; }           
    .main-featuresText { font-size: 12px; }

    /* Мобильный каталог — UPPERCASE + разрядка */
    .catalog-menu-item { font-size: 0.75rem; letter-spacing: 0.1em; }
    .cat-showcase-title { font-size: 0.9rem; letter-spacing: 0.1em; }
    .col-md-9 h2 { font-size: 1.5rem !important; letter-spacing: 0.1em !important; }
    .catalog-sort-bar h4 { font-size: 1.2rem !important; letter-spacing: 0.1em !important; }

    /* Мобильное меню категорий (footer.php overlay) */
    #mobileCatalogOverlay a { text-transform: uppercase; letter-spacing: 0.08em; }
    #mobileCatalogOverlay a span.fw-bold { font-size: 0.85rem !important; }

    .product-card { transform: scale(0.95); margin-bottom: 16px; min-height: 340px; }            
    .product-image {
        transform: scale(0.9); aspect-ratio: 1 / 1.1; object-fit: cover; width: 100%; height: 187px;
        object-fit: contain; object-position: center; border-bottom: 0px solid var(--border-color);
    }            
    .product-item { flex: 0 0 50% !important; max-width: 50% !important; padding-left: 8px; padding-right: 8px; }
    .category-hidden-products .product-item { flex: 0 0 50% !important; max-width: 50% !important; }            
    .product-name { font-size: 13px; line-height: 22px; height: 44px; font-weight: 600; color: #333; margin-bottom: 5px; text-align: center; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: break-word; }
    .order-btn { background-color: var(--button-color); color: white; border: none; width: 100%; padding: 5px; border-radius: 3px; font-weight: 600; transition: background-color 0.3s; }
    .product-price { font-size: 15px; }

    .category-title { padding: 60px 0 20px 0; font-size: 21px; margin-bottom: -5px; }
    .category-title:before, .category-title:after { top: 35px; width: calc(50% - 15px); }
    .category-title .bi-flower-custom { top: 16px; font-size: 30px; width: 30px; height: 40px; }
    
    .benefit-card { padding: 20px 15px; }
    .benefit-icon { width: 50px; height: 50px; font-size: 20px; }
    .benefits-section .section-title { font-size: 24px; padding: 40px 0 15px 0; margin-bottom: 25px; line-height: 1.2; }
    
    .footer-logo { max-width: 200px; margin-top: 20px; }
    .contact-info { font-size: 14px; }
    .contact-info i { font-size: 18px !important; }
    .main-catalog-link { font-size: 18px !important; margin-left: 15px !important; border-bottom: none; text-transform: uppercase; letter-spacing: 0.1em; }

    /* Кнопка "Показать всё / Скрыть" - без изменений при нажатии на мобилках */
    .category-show-more-btn:hover,
    .category-show-more-btn:active,
    .category-show-more-btn:focus {
        transform: none !important;
        color: white !important;
        background-color: #000000 !important;
    }

    /* ОРИГИНАЛЬНАЯ МОБИЛЬНАЯ ПАНЕЛЬ */
    body { padding-bottom: 0px; }
    .mobile-sticky-panel {
        display: flex; align-items: flex-start; justify-content: space-around; width: 100%; height: 55px;
        border-top: 0.5px solid #e1e1e5; background: #fff; overflow: hidden; position: fixed; bottom: 0;
        left: 0; user-select: none; z-index: 9990; box-shadow: 0 -2px 10px rgba(0,0,0,0.05);
    }
    .mobile-sticky-panel__item, .mobile-sticky-panel__item:focus, .mobile-sticky-panel__item:hover {
        position: relative; display: grid; grid-gap: 4px; flex: 1 1 0; align-items: center;
        justify-items: center; min-height: 47px; padding: 8px 8px 0; outline: 0 !important; color: #999;
        text-align: center; text-decoration: none; transition: .15s; cursor: pointer;
    }
    .mobile-sticky-panel__item_active, .mobile-sticky-panel__item_active:focus,
    .mobile-sticky-panel__item_active:hover, .mobile-sticky-panel__item:active { color: #e855a8; }
    .mobile-sticky-panel__item_active[href="index.php"] .mobile-sticky-panel__item-icon {
        filter: drop-shadow(0 0 8px #e855a8);
    }
    .mobile-sticky-panel__item::before {
        content: ''; width: 2px; height: 2px; border-radius: 50%; background: #e855a8; opacity: 0;
        position: absolute; top: calc(50% - 1px); left: calc(50% - 1px); z-index: -1; transition: transform .3s;
    }
    .mobile-sticky-panel__item:active::before { opacity: .1; transform: scale(50); }
    .mobile-sticky-panel__item-name { font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 600; line-height: 11px; text-transform: uppercase; letter-spacing: 0.08em; }
    .mobile-sticky-panel__qty {
        display: none; align-items: center; justify-content: center; width: 18px; height: 18px;
        border-radius: 50%; background: #e855a8; position: absolute; top: 3px; left: calc(50% + 2px);
        color: #fff; font-size: 10px; font-weight: 700; line-height: 1;
    }    
}

/* Интегрированный адаптив для modal-box из новых стилей */
@media (max-width: 767.98px) {
    .modal-box .title {
        font-size: 20px;
    }
}

/* Интегрированный адаптив для Tingle из новых стилей */
@media (max-width: 540px) {
    .tingle-modal {
        padding-top: 0 !important; 
        align-items: center;
        justify-content: center;
        flex-direction: column; /* Выстраиваем элементы в колонку */
    }
    
    .tingle-modal-box {
        width: 92% !important;
        border-radius: 12px !important;
        margin: 0 auto !important;
        order: 1; /* Окно сверху */
    }
    
    .tingle-modal-box__content {
        overflow-y: auto;
        padding: 30px 15px;
    }
    
    .tingle-modal__close {
        width: 40px !important; 
        height: 40px !important; 
    }
    
    .tingle-modal__closeIcon {
        margin: 0; width: 100%; height: 100%; display: flex; 
        align-items: center; justify-content: center;
    }
    
    .tingle-modal__close svg {
        width: 24px; height: 24px;
    }
    
    .tingle-modal__close svg * {
        fill: #ffffff !important; 
    }

    .tingle-modal--noClose { top: 0; }
    .tingle-modal--noOverlayClose { padding-top: 0; }
    .tingle-modal-box__footer .tingle-btn {
        display: block; float: none; margin-bottom: 1rem; width: 100%;
    }
}

@media (max-width: 359px) {
    .mobile-sticky-panel__item-name { display: none; }
    .mobile-sticky-panel { height: 50px; }
}

@media (min-width: 767px) {
    .category-first-products .product-item { flex: 0 0 25% !important; max-width: 25% !important; }
    .category-first-products .product-item:nth-child(n+7) { display: block !important; }
    .category-hidden-products .product-item { flex: 0 0 25% !important; max-width: 25% !important; }
    .col-lg-3 { flex: 0 0 auto; width: 25%; }
}

@media (max-width: 767.98px) {
    /* Интегрированный адаптив для модалок */
    .rb-modal { align-items: flex-end; padding-top: 60px; }
    .rb-modal__content { height: auto; border-radius: 20px 20px 0 0; }
    .rb-modal__header::before { content: ''; display: block; width: 40px; height: 5px; background: #ddd; border-radius: 5px; margin: -10px auto 20px; }
}

@media (min-width: 768px) {
    /* Интегрированный адаптив для модалок (Десктоп) */
    .rb-modal { padding: 10px; }
    .rb-modal__content { width: 450px; height: auto; border-radius: 24px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); }
    .rb-modal__header { padding: 32px 32px 10px; }
    .rb-modal__title { font-size: 24px; line-height: 30px; }
    .rb-modal__body { padding: 16px 32px 32px; }
}

@media (min-width: 768px) and (max-width: 991px) {
    .product-item { flex: 0 0 33.333% !important; max-width: 33.333% !important; }
    .product-image {
        transform: scale(0.9); aspect-ratio: 1 / 1.1; object-fit: cover; width: 100%; height: 272px; 
        object-fit: contain; object-position: center; border-bottom: 0px solid var(--border-color);
    }
}

@media (min-width: 611px) and (max-width: 767.98px) {
    .product-item { flex: 0 0 33.333% !important; max-width: 33.333% !important; }
    .category-hidden-products .product-item { flex: 0 0 33.333% !important; max-width: 33.333% !important; }
    .product-image {
        transform: scale(0.9); aspect-ratio: 1 / 1.1; object-fit: cover; width: 100%;
        object-fit: contain; object-position: center; border-bottom: 0px solid var(--border-color);
    }
}

@media (min-width: 992px) {
    .category-first-products .product-item { flex: 0 0 25% !important; max-width: 25% !important; }
    .category-first-products .product-item:nth-child(n+7) { display: block !important; }
    .category-hidden-products .product-item { flex: 0 0 25% !important; max-width: 25% !important; }
    .col-lg-3 { flex: 0 0 auto; width: 25%; }
    .category-container:not(.is-expanded) .product-item:nth-child(n+9) { display: none !important; }
}

@media (min-width: 150px) and (max-width: 611px) {	
    .product-image {
        transform: scale(0.9); aspect-ratio: 1 / 1.1; object-fit: cover; width: 100%; height: 187px;
        object-fit: contain; object-position: center; border-bottom: 0px solid var(--border-color);
    }
}

@media (min-width: 611px) and (max-width: 991px) {
    .category-container:not(.is-expanded) .product-item:nth-child(n+7) { display: none !important; }
}

@media (max-width: 610px) {
    .category-container:not(.is-expanded) .product-item:nth-child(n+5) { display: none !important; }
}

@media (max-width: 1200px) and (min-width: 992px) {
    .col-md-5.d-flex.align-items-center.justify-content-center.justify-content-md-start.gap-2 {
        gap: 0.75rem !important;
    }
    .header-logo {
        width: 70% !important;
        max-width: 220px !important;
    }
    .main-catalog-link {
        font-size: 18px !important;
    }
    .header-contacts-box {
        font-size: 16px !important;
    }
    .contact-info {
        font-size: 16px !important;
    }
    .contact-info i {
        font-size: 20px !important;
    }
    .header-pipe-line {
        margin: 0 10px !important;
    }
}

@media (max-width: 575px) {
    .header-contacts-box { flex-direction: column; gap: 5px; }
    .header-pipe-line { display: none !important; }
    .mobile-icons-spacing { margin-top: 0px !important; }
}

/* ==========================================================================
   7. СТИЛИ СТРАНИЦЫ ОШИБОК (EX-ERROR.CSS) - ИЗОЛИРОВАНЫ
   ========================================================================== */
body.error-page-body {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    min-height: 100vh;
    display: flex;
    align-items: center;
}
.error-page-body .error-container {
    max-width: 600px;
    margin: 0 auto;
    padding: 2rem;
    background: white;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

/* ==========================================================================
   8. СТИЛИ АДМИН-ПАНЕЛИ (EX-OWN.CSS) - ИЗОЛИРОВАНЫ
   ========================================================================== */
.admin-page-body .admin-sidebar { 
    background: linear-gradient(180deg, #fce4ec 0%, #f8bbd0 50%, #fce4ec 100%); 
    min-height: 100vh; 
    color: #333; 
    padding: 20px 0;
}
.admin-page-body .admin-sidebar .nav-link { 
    color: #555; 
    padding: 10px 15px;
    margin: 5px 15px;
    border-radius: 10px;
    text-decoration: none;
    display: block;
    transition: all 0.2s;
}
.admin-page-body .admin-sidebar .nav-link:hover { 
    color: var(--button-color); 
    background: rgba(232,85,168,0.1); 
    transform: translateX(4px);
}
.admin-page-body .admin-sidebar .nav-link.active { 
    color: white; 
    background: var(--button-color);
    border-left: none;
    font-weight: 700;
}
.admin-page-body .form-check-input:checked {
    background-color: var(--button-color);
    border-color: var(--button-color);
}
.admin-page-body .table-warning { background-color: #fff3cd !important; }
.admin-page-body .product-image-preview { width: 60px; height: 60px; object-fit: cover; border-radius: 5px; }
.admin-page-body .bg-purple { background-color: #9b59b6 !important; }
.admin-page-body .slug-preview {
    font-size: 0.85rem; color: #666; background: #f8f9fa;
    padding: 5px 10px; border-radius: 4px; margin-top: 5px; border-left: 3px solid #00cc55;
}
.admin-page-body .low-stock { background-color: #fff3cd !important; }
.admin-page-body .cost-cell { font-weight: bold; color: #dc3545; }
.admin-page-body .product-images-preview { display: flex; gap: 5px; flex-wrap: wrap; }
.admin-page-body .product-image-mini { width: 100px; height: 100px; object-fit: cover; border-radius: 15px; border: 1px solid #dee2e6; }
.admin-page-body .action-buttons { white-space: nowrap; }
.admin-page-body .no-category-badge { background-color: #6c757d; }
.admin-page-body .ingredient-row:hover { background-color: #f8f9fa; }
.admin-page-body .order-row:hover { background-color: #f8f9fa; }
.admin-page-body .status-badge { font-size: 0.85em; padding: 5px 10px; }
.admin-page-body details.dashboard-toggle > summary::-webkit-details-marker { display: none; }
.admin-page-body details.dashboard-toggle > summary::marker { display: none; content: ''; }
.admin-page-body .status-active { color: #00cc55; font-weight: bold; }
.admin-page-body .status-inactive { color: #999; }
.admin-page-body .table>:not(caption)>*>* {
    padding: .5rem .5rem;
    color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));
    background-color: var(--bs-table-bg);
    border-bottom-width: var(--bs-border-width);
    box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));
    vertical-align: middle !important;
}		
.admin-page-body input[type="file"].form-control {
    max-width: 290px;
    display: inline-block;
}				
.admin-page-body .admin-zoom-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.9); z-index: 10000;
    display: none; justify-content: center; align-items: center;
    cursor: zoom-out; transition: all 0.3s ease;
}
.admin-page-body .admin-zoom-overlay.active { display: flex; }
.admin-page-body .admin-zoom-img { 
    max-width: 90%; max-height: 90%; border-radius: 8px; 
    box-shadow: 0 0 30px rgba(0,0,0,0.5); transform: scale(0.9); 
    transition: transform 0.3s ease;
}
.admin-page-body .admin-zoom-overlay.active .admin-zoom-img { transform: scale(1); }
.admin-page-body .admin-zoom-close {
    position: absolute; top: 20px; right: 30px; color: #fff;
    font-size: 40px; font-weight: bold; cursor: pointer; line-height: 1;
}
.admin-page-body .product-image-preview, 
.admin-page-body .product-image-mini, 
.admin-page-body .img-thumbnail { cursor: zoom-in; }

html.lock-scroll,
body.lock-scroll {
    overflow: hidden !important;
    height: 100dvh !important;
    overscroll-behavior: none !important;
    touch-action: none !important;
}

.rb-modal, 
.tingle-modal {
    touch-action: auto !important;
    overscroll-behavior: contain !important;
}

/* ==========================================================================
   9. СТИЛИ ИЗ CATALOG.PHP (Уникальные стили каталога, добавлены без конфликтов)
   ========================================================================== */
.catalog-sidebar {
    background: #fff;
    border-radius: 15px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.08);
    padding: 20px;
    position: sticky;
    top: 100px;
    border: 1px solid #eee;
}
.catalog-menu-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: 12px 15px 12px 20px; color: #333; text-decoration: none;
    border-radius: 10px; margin-bottom: 8px; transition: all 0.2s ease;
    background: #f8f9fa;
    text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; font-size: 0.8rem;
}
.catalog-menu-item:hover { background-color: #ffeef5; color: #e855a8; }
.catalog-menu-item.active { background: #e855a8; color: white; box-shadow: 0 4px 10px rgba(232, 85, 168, 0.4); }
.cat-count { background: rgba(0,0,0,0.1); padding: 2px 8px; border-radius: 10px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.05em; }
.category-showcase-card {
    border: 2px solid #e855a8; border-radius: 20px; overflow: hidden;
    background: white; transition: transform 0.3s ease, box-shadow 0.3s ease;
    position: relative; height: 100%; display: flex; flex-direction: column;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    margin-bottom: 24px !important;
}
.row.g-4 > div {
    display: flex;
    flex-direction: column;
}
.row.g-4 > div > a {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    height: 100%;
}
.category-showcase-card:hover { transform: translateY(-7px); box-shadow: 0 15px 30px rgba(232, 85, 168, 0.3); border-color: #00cc55; }
.category-showcase-card::after {
    content: ''; position: absolute; top: 6px; left: 6px; right: 6px; bottom: 6px;
    border: 1px dashed rgba(232, 85, 168, 0.5); border-radius: 14px; pointer-events: none; z-index: 5;
}
.cat-showcase-header { padding: 15px 10px; text-align: center; background: #fff; border-bottom: 1px solid #f0f0f0; z-index: 2; }
.cat-showcase-title { font-size: 1.1rem; font-weight: 300; margin: 0; color: #333; text-transform: uppercase; letter-spacing: 0.12em; }
.cat-showcase-img-wrapper { height: 220px; width: 100%; overflow: hidden; background: #f9f9f9; display: flex; align-items: center; justify-content: center; }
.cat-showcase-img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.category-showcase-card:hover .cat-showcase-img { transform: scale(1.1); }
.catalog-sort-bar {
    background: #fff;
    padding: 12px 20px;
    border-radius: 15px;
    margin-bottom: 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid #e855a8;
    box-shadow: 0 5px 15px rgba(232, 85, 168, 0.08);
}
.sort-label {
    font-weight: 700;
    color: #333;
    margin-right: 10px;
    text-transform: uppercase;
    font-size: 0.85rem;
    letter-spacing: 0.5px;
}
.sort-select {
    border-radius: 20px;
    border: 1px solid #ccc;
    padding: 6px 35px 6px 15px;
    font-size: 0.9rem;
    cursor: pointer;
    background-color: #fff;
    transition: all 0.3s ease;
}
.sort-select:focus, .sort-select:hover {
    border-color: #e855a8;
    box-shadow: 0 0 0 3px rgba(232, 85, 168, 0.1);
}
.sort-dropdown-menu {
    border: 2px solid #e855a8 !important;
    border-radius: 12px !important;
    padding: 6px !important;
    box-shadow: 0 0px 30px rgba(0, 0, 0, 0.15) !important;
    min-width: 184px;
    position: absolute !important;
    inset: auto 0 auto auto !important;
    top: 82% !important;
    margin-top: 8px !important;
    transform: none !important;
}
.sort-dropdown-item {
    border-radius: 8px !important;
    padding: 10px 10px !important;
    font-weight: 600 !important;
    color: #333 !important;
    background-color: #ffffff !important;
    transition: all 0.2s ease !important;
    text-align: center !important;
    display: block !important;
    width: 100% !important;
}
.sort-dropdown-item:hover, .sort-dropdown-item:focus {
    background-color: #e855a8 !important;
    color: white !important;
    transform: none !important;
}
.sort-toggle-btn {
    border: 1px solid #ccc;
    border-radius: 20px;
    padding: 6px 20px;
    background: #fff;
    color: #333;
    font-weight: 600;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 180px;
}
.sort-toggle-btn:hover, .sort-toggle-btn.show {
    border-color: #e855a8;
    color: #e855a8;
}

/* ==========================================================================
   10. СТИЛИ ИЗ CART.PHP (Уникальные стили корзины)
   ========================================================================== */
.acc-control-group {
    display: inline-flex;
    align-items: center;
    height: 34px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    border-radius: 8px;
}
.acc-btn {
    width: 36px;
    height: 100%;
    background-color: #fff;
    border: 1px solid #dee2e6;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    transition: background 0.2s;
    z-index: 1;
}    
.acc-btn:hover {
    background-color: #f8f9fa;
}
.acc-btn-minus {
    border-top-left-radius: 8px !important;
    border-bottom-left-radius: 8px !important;
    border-right: none;
}
.acc-btn-plus {
    border-top-right-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
    border-left: none;
}
.acc-input-red {
    width: 50px;
    height: 100%;
    border: 1px solid var(--button-color);
    background-color: var(--button-color);
    color: white !important;
    text-align: center;
    font-weight: bold;
    font-size: 15px;
    padding: 0;
    border-radius: 0 !important;
    outline: none;
    z-index: 2;
    -moz-appearance: textfield;
}    
.acc-input-red:focus {
    background-color: #d34495;
    border-color: #d34495;
}
.acc-input-red::-webkit-outer-spin-button,
.acc-input-red::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.cart-item {
    padding-bottom: 12px;
    margin-bottom: 12px;
    border-bottom: 1px solid #dee2e6;
}        
.cart-item:last-child {
    border-bottom: none;
}        
.item-controls {
    display: flex;
    align-items: center;
}        
.item-controls .btn {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}        
.item-qty {
    width: 60px;
    text-align: center;
    margin: 0 5px;
}        
.sticky-summary {
    position: sticky;
    top: 86px;
    background: white;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}        
@media (max-width: 767.98px) {
    .sticky-summary {
        position: relative;
        top: 0;
        margin-top: 20px;
    }
}
.acc-qty-input::-webkit-outer-spin-button,
.acc-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.acc-qty-input {
    -moz-appearance: textfield;
}

/* Анимация уведомлений корзины (интегрирована из скрипта) */
@keyframes slideIn { 
    from { 
        transform: translateX(100%); 
        opacity: 0; 
    } 
    to { 
        transform: translateX(0); 
        opacity: 1; 
    } 
}

/* ==========================================================================
   11. СТИЛИ ПРОФИЛЯ ПОЛЬЗОВАТЕЛЯ И ЗАКАЗОВ (PROFILE.PHP)
   ========================================================================== */
.profile-avatar {
    width: 100px;
    height: 100px;
    background: linear-gradient(135deg, #ff6b6b 0%, #ff4757 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    color: white;
    font-size: 2.5rem;
}
.stat-card {
    border: none;
    border-radius: 10px;
    transition: all 0.3s;
}
.stat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}
.order-status-badge {
    font-size: 0.8em;
    padding: 5px 10px;
    border-radius: 20px;
}
.nav-tabs .nav-link {
    border: none;
    color: #6c757d;
    font-weight: 500;
}
.nav-tabs .nav-link.active {
    color: #ff4757;
    border-bottom: 3px solid #ff4757;
    background: transparent;
}
.order-details-modal .modal-content {
    border-radius: 15px;
    border: none;
}
.order-item-row {
    border-bottom: 1px solid #dee2e6;
    padding: 10px 0;
}
.order-item-row:last-child {
    border-bottom: none;
}
.security-alert {
    background: linear-gradient(135deg, #ff6b6b10 0%, #ff475710 100%);
    border-left: 4px solid #ff4757;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 5px;
}

/* ==========================================================================
   ФИРМЕННЫЙ СЛАЙД-ТРЕК СЛАЙДЕРА ТОВАРА (ИДЕНТИЧНО INDEX.PHP)
   ========================================================================= */

.flower-hero-img-container {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1.1; 
    overflow: hidden;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
    margin-bottom: 0px;
    cursor: grab;
    touch-action: pan-y;
    
    /* Очистка субпикселей и аппаратный рендеринг */
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* Гибкая лента-трек для слайдов */
.flower-slider-track {
    display: flex;
    width: 100%;
    height: 100%;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
    border-radius: inherit;
}

/* Контейнер отдельного слайда */
.flower-slider-slide {
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    position: relative;
    border-radius: inherit;
}

/* Картинка слайда */
.flower-hero-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    user-select: none;
    -webkit-user-drag: none;
    border-radius: inherit !important;
}

/* Навигационная панель внизу слайдера */
.flower-slider-nav {
    position: absolute;
    bottom: 15px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    z-index: 10;
    width: 100%;
    pointer-events: none;
}

/* Контейнер точек навигации */
.flower-slider-dots {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-bottom: 8px;
    pointer-events: auto; /* Разрешаем клики по точкам */
}

/* Стили точек */
.slide-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.6);
    transition: background 0.3s, transform 0.2s;
    border: 1px solid rgba(0, 0, 0, 0.1);
    cursor: pointer;
}

.slide-dot.active {
    background: #e855a8 !important;
    transform: scale(1.2);
}

/* Плашка названия размера */
.flower-slide-label {
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    display: inline-block;
    padding: 3px 15px;
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: 600;
    backdrop-filter: blur(4px);
    transition: opacity 0.3s;
    font-family: 'Montserrat', sans-serif;
}

@media (max-width: 991px) {
    .flower-hero-img-container {
        aspect-ratio: 1 / 1;
        border-radius: 16px;
        margin-bottom: 0px;
    }
}
.flower-desc {
    font-size: 1.05rem;
    line-height: 1.7;
    color: #555;
    margin-bottom: 40px;
}

.roulette-wrapper {
    overflow: hidden;
    position: relative;
    padding: 20px 0;
    background: #fdf5f8;
    border-radius: 16px;
    user-select: none;
    -webkit-user-select: none;
}
.roulette-track {
    display: flex;
    gap: 20px;
    width: max-content;
    cursor: grab;
}
.roulette-track:active { cursor: grabbing; }
.roulette-wrapper:hover .roulette-track { animation-play-state: paused; }
@keyframes scroll-left {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.roulette-card {
    width: 160px;
    flex-shrink: 0;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
    transition: transform 0.2s;
    text-decoration: none;
    color: inherit;
}
.roulette-card:hover { transform: translateY(-5px); border: 1px solid #e855a8; }
.roulette-img { width: 100%; height: 120px; object-fit: cover; }
.roulette-info { padding: 10px; text-align: center; }
.flower-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 2rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #222;
    margin-bottom: 0;
    line-height: 1.2;
}
.d-flex {
    display: flex !important;
}
.modifications-box {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 24px;
    margin: 25px 0;
    box-shadow: 0 5px 20px rgba(0,0,0,0.02);
}        
.mod-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #e855a8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border-bottom: 2px solid #eee;
    padding-bottom: 0px;
}        
.mod-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px dashed #e0e0e0;
    font-size: 1.1rem;
}
.mod-item:last-child { border-bottom: none; }        
.mod-name { font-weight: 500; display: flex; align-items: center; gap: 10px; }
.mod-qty { background: #e855a8; color: white; padding: 2px 8px; border-radius: 6px; font-size: 0.8em; font-weight: bold; }
.mod-price { font-weight: 700; color: #333; font-size: 1.2rem; }

.bi-flower1 { color: #e855a8; }

/* Белый фон для bg-light на странице товара */
.bg-light {
    background-color: #fff !important;
}

.mb-4 {
    margin-bottom: 16px !important;
}

/* ==========================================================================
   КОМПЛЕКТАЦИЯ: СЕТКА НА ПК (2 КОЛОНКИ) / СТОЛБИК НА МОБИЛЬНЫХ (1 КОЛОНКА)
   ========================================================================== */

/* Десктопная сетка — 2 колонки */
.product-variants-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    width: 100%;
}

/* Базовая карточка плитки */
.variant-card {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    padding: 12px 16px;
    border: 1px solid #dee2e6;
    transition: all 0.2s ease-in-out;
    height: 100%;
    box-sizing: border-box;
}

/* Эффект наведения на десктопе */
.variant-link:not(.active) .variant-card:hover {
    border-color: #ffb8c6;
    background-color: #fffafd !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(232, 85, 168, 0.08) !important;
}

/* Стили активного выбранного элемента */
.variant-link.active .variant-card {
    border: 2px solid #e855a8 !important;
    background-color: #fffcfd !important;
}

/* Вспомогательный флекс-контейнер иконки и текста */
.variant-info {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    min-width: 0;
    margin-right: 5px;
}

/* Шрифты для ПК */
.variant-name, .variant-price {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.95rem;
    color: #333 !important;
    white-space: nowrap !important;
}

.variant-name {
    font-weight: 600;
}

.variant-price {
    font-weight: 700;
    flex-shrink: 0;
}

/* Иконки */
.checked-icon { color: #e855a8; }
.unchecked-icon { color: #ced4da; }

/* ==========================================================================
   ПЕРЕХОД В СТОЛБИК ДЛЯ МОБИЛЬНЫХ (max-width: 767.98px)
   ========================================================================== */
@media (max-width: 767.98px) {
    .product-variants-grid {
        grid-template-columns: 1fr !important;
        gap: 8px;
    }

    .variant-card {
        padding: 10px 14px !important;
        border-radius: 10px !important;
    }

    .variant-name, .variant-price {
        font-size: 0.9rem !important;
    }

    .variant-card .bi {
        font-size: 0.95rem;
        margin-right: 6px !important;
    }
}

.total-block {
    background: #333;
    color: white;
    border-radius: 15px;
    padding: 10px;
    text-align: center;
    margin-top: 20px;
    margin-bottom: 20px !important;
}
.total-price { font-size: 2.5rem; font-weight: 800; color: #00cc55; margin-bottom: 0px; display: block;}        
.buy-btn-big {
    background: #e855a8;
    color: white;
    border: none;
    width: 100%;
    padding: 15px;
    font-size: 1.3rem;
    font-weight: 700;
    border-radius: 10px;
    transition: all 0.3s;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.buy-btn-big:hover { background: #d63d8b; transform: scale(1.02); color: white; }
.buy-btn-big:disabled { background: #555; transform: none; cursor: not-allowed; }
.zoom-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.95);
    z-index: 9999;
    display: none;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: opacity 0.3s;
}
.zoom-overlay.active { display: flex; opacity: 1; }
.zoom-img { max-width: 90%; max-height: 90%; border-radius: 10px; box-shadow: 0 0 50px rgba(255,255,255,0.1); }
/* Базовый круглый стиль кнопки закрытия (для десктопа по умолчанию) */
.zoom-close {
    position: absolute;
    top: 30px;                  /* Оригинальное положение сверху */
    right: 40px;                /* Оригинальное положение справа */
    color: white;
    cursor: pointer;
    line-height: 1;
    
    /* Круглый полупрозрачный стиль */
    font-size: 40px;            /* Размер символа "×" */
    width: 60px;                /* Размер кнопки */
    height: 60px;
    display: flex;              /* Центрирование символа "×" */
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.15); /* Полупрозрачный белый фон */
    border: 1px solid rgba(255, 255, 255, 0.3); /* Граница */
    border-radius: 50%;         /* Круглая форма */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); /* Тень для контраста */
    transition: background-color 0.2s, border-color 0.2s, color 0.2s, transform 0.15s;
    z-index: 10000;
}

/* Интерактивные эффекты на десктопе (для мыши) */
@media (min-width: 992px) {
    .zoom-close:hover {
        background-color: rgba(255, 71, 87, 0.3); /* Приглушенный красный ховер */
        border-color: rgba(255, 71, 87, 0.5);
        color: #ff4757;
        transform: scale(1.05); /* Легкое увеличение при наведении */
    }
    .zoom-close:active {
        transform: scale(0.95); /* Эффект нажатия */
    }
}

/* Медиа-запрос для мобильных устройств (перенос кнопки вниз) */
@media (max-width: 991px) {
    .zoom-close {
        top: auto;                  /* Сбрасываем позиционирование сверху */
        right: auto;                /* Сбрасываем позиционирование справа */
        bottom: 40px;               /* Смещаем вниз */
        left: 50%;                  /* Центрируем по горизонтали */
        transform: translateX(-50%); /* Точное выравнивание по центру */
    }
    
    /* Эффект нажатия на тач-экранах */
    .zoom-close:active {
        background: rgba(255, 255, 255, 0.3);
        transform: translateX(-50%) scale(0.95);
    }
}
/* Кнопка аксессуара, когда он добавлен в корзину */
.btn-in-order {
    background-color: #00cc55 !important;
    color: white !important;
    border: 1px solid #00cc55 !important;
    transition: all 0.2s ease;
}

.btn-in-order:hover {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: white !important;
}
.btn-in-order::after {
    content: ' В заказе';
}
.btn-in-order:hover::after {
    content: ' Убрать?';
}
.btn-in-order::before {
    font-family: "bootstrap-icons";
    content: "\F272";
}
.btn-in-order:hover::before {
    content: "\F5DE";
}
.logo-link { 
    text-decoration: none; 
}

/* Адаптивность для мобильных экранов */
@media (max-width: 991px) {
    .flower-title {
        font-size: 1.5rem;
    }
}

/* ==========================================================================
    13. СТИЛИ ОФОРМЛЕНИЯ ЗАКАЗА (CHECKOUT.PHP)
   ========================================================================== */
.checkout-section { background: white; border: 1px solid var(--border-color); border-radius: 25px; padding: 24px; margin-bottom: 20px; }
.checkout-section h4 { font-weight: 700; font-size: 1.1rem; color: #333; letter-spacing: 0.06em; margin-bottom: 18px; display: flex; align-items: center; gap: 10px; border-bottom: none; padding-bottom: 0; }
.checkout-section h4 i { color: var(--button-color); font-size: 1.2rem; }
.form-label.required::after { content: " *"; color: var(--button-color); }
.order-type-option, .delivery-option, .payment-method { border: 2px solid #eee; border-radius: 16px; padding: 16px; margin-bottom: 10px; cursor: pointer; transition: all 0.2s; }
.order-type-option { border-radius: 12px; padding: 8px 12px; margin-bottom: 10px; display: flex; align-items: center; gap: 10px; }
.order-type-option:hover, .delivery-option:hover, .payment-method:hover { border-color: var(--border-color); }
.order-type-option.selected { border-color: var(--button-color); background: rgba(232, 85, 168, 0.03); }
.delivery-option.selected { border-color: var(--button-color); background: rgba(232, 85, 168, 0.03); }
.payment-method.selected { border-color: var(--button-color); background: rgba(232, 85, 168, 0.03); }
.order-summary-card { position: sticky; top: 86px; background: white; border: 1px solid var(--border-color); border-radius: 25px; overflow: hidden; box-shadow: none; }
.order-type-icon { font-size: 2rem; margin-bottom: 10px; color: var(--button-color); }
.order-type-option .order-type-icon { font-size: 1.2rem; margin: 0; flex-shrink: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; background: rgba(232, 85, 168, 0.06); border-radius: 8px; color: var(--button-color); }
.order-type-option .order-type-text { flex: 1; min-width: 0; }
.order-type-option .form-check-input { margin-right: 6px; }
.order-type-option .form-check-label { font-size: 0.8rem; margin: 0; }
.order-type-option .text-muted { font-size: 0.68rem; margin: 2px 0 0 !important; line-height: 1.3; }
.guest-option .order-type-icon { color: var(--button-color); }
.register-option .order-type-icon { color: #00cc55; }
.cursor-pointer { cursor: pointer; }

#delivery-map { height: 330px; width: 100%; border-radius: 20px !important; overflow: hidden !important; border: 2px solid #dee2e6; z-index: 1; margin-top: 8px; }
#address-suggestions { z-index: 1050; max-height: 250px; overflow-y: auto; border: 1px solid #ddd; border-radius: 5px; margin-top: 2px; background: white; }
.map-container-hidden { display: none; }
.map-container-visible { display: block; animation: fadeIn 0.5s; }

/* Кастомные правила для Яндекс.Карт на странице заказа */
ymaps[class*="copyright__content-cell"] { display: none !important; width: 0 !important; height: 0 !important; opacity: 0 !important; position: absolute !important; }
a[href*="yandex.ru/legal"] { display: none !important; }
ymaps[class*="map-copyrights-promo"] { display: none !important; visibility: hidden !important; }
ymaps[class*="copyright__layout"], ymaps[class*="copyright__wrap"] { background: none !important; box-shadow: none !important; }
ymaps[class*="copyright__fog"] { display: none !important; }
[class*="-ground-pane"] { filter: grayscale(100%) invert(90%) brightness(0.9) contrast(110%); -webkit-filter: grayscale(100%) invert(90%) brightness(0.9) contrast(110%); }
ymaps[class*="copyright__logo-cell"] { display: block !important; opacity: 1 !important; transform: scale(0.7) !important; transform-origin: bottom right !important; }
[class*="ymaps-"][class*="-ground-pane"] { filter: grayscale(100%) brightness(1.1) contrast(90%); -webkit-filter: grayscale(100%) brightness(1.1) contrast(90%); }

/* Изолированные элементы управления допродажами (чтобы не ломали корзину cart.php) */
.checkout-section .acc-control-group,
.order-summary-card .acc-control-group { 
    height: 32px; 
    width: 100%; 
}
.checkout-section .acc-input-red,
.order-summary-card .acc-input-red { 
    flex-grow: 1; 
    width: auto; 
    font-size: 14px; 
}

@media (max-width: 767.98px) { 
    .order-summary-card { position: relative; top: 0; margin-top: 20px; } 
}

/* ==========================================================================
   14. UI/UX ОБНОВЛЕНИЯ (СТРОГОЕ РАЗДЕЛЕНИЕ ПК И МОБИЛЬНЫХ)
   ========================================================================== */

/* --- ПРАВИЛА ТОЛЬКО ДЛЯ ПК (min-width: 992px) --- */
@media (min-width: 992px) {
    /* Скрываем мобильную шапку и оверлеи на ПК железобетонно */
    .mobile-header-bar,
    .ui-overlay-screen:not(#mobileInfoOverlay):not(#searchOverlay) {
        display: none !important;
    }
    
    /* Поиск оверлей — десктопная модалка */
    #searchOverlay {
        display: none;
        position: fixed;
        top: 0; left: 0;
        width: 100%; height: 100%;
        background: rgba(0, 0, 0, 0.5);
        backdrop-filter: blur(4px);
        z-index: 10030 !important;
        align-items: flex-start;
        justify-content: center;
        padding-top: 120px;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }
    #searchOverlay.active {
        display: flex !important;
        opacity: 1;
        visibility: visible;
    }
    #searchOverlay > .bg-white {
        width: 500px !important;
        max-height: 70vh !important;
        border-radius: 16px !important;
        overflow: hidden !important;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3) !important;
    }
    #searchOverlay .search-header {
        border-radius: 16px 16px 0 0 !important;
    }
    #searchOverlay .search-results {
        max-height: calc(70vh - 70px) !important;
        border-radius: 0 0 16px 16px !important;
    }
    #searchOverlay #closeSearch {
        font-size: 0.9rem !important;
    }
    #searchOverlay #searchInput {
        font-size: 1rem !important;
    }
    
    /* ИНФО оверлей — десктопная модалка */
    #mobileInfoOverlay {
        display: none;
        position: fixed;
        top: 0; left: 0;
        width: 100%; height: 100%;
        background: rgba(0, 0, 0, 0.4);
        backdrop-filter: blur(3px);
        z-index: 20000 !important;
        align-items: center;
        justify-content: center;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }
    #mobileInfoOverlay.active {
        display: flex !important;
        opacity: 1;
        visibility: visible;
    }
    #mobileInfoOverlay .mobile-info-overlay-inner {
        width: 90%;
        max-width: 600px;
        max-height: 95vh;
        border-radius: 20px;
        overflow: hidden;
        box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
        transform: scale(0.9) translateY(20px);
        transition: transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
        padding-top: 0 !important;
        height: auto !important;
        position: relative;
    }
    #mobileInfoOverlay.active .mobile-info-overlay-inner {
        transform: scale(1) translateY(0);
    }
    #mobileInfoOverlay .mobile-info-overlay-inner > .flex-grow-1 {
        padding-top: 16px !important;
        padding-bottom: 24px !important;
        max-height: calc(95vh - 56px);
    }
    .info-overlay-header {
        background: #fff;
        min-height: 56px;
        position: relative;
    }
    .info-overlay-spacer {
        width: 40px;
        flex-shrink: 0;
    }
    .info-overlay-logo-link {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        align-items: center;
        gap: 8px;
        text-decoration: none;
    }
    .info-overlay-close-btn {
        background: transparent;
        border: none;
        padding: 0;
        cursor: pointer;
        width: 40px;
        height: 40px;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }
    .info-overlay-close-btn span {
        display: block;
        position: absolute;
        left: 50%;
        margin-left: -12px;
        width: 24px;
        height: 2px;
        background: #e855a8;
        border-radius: 2px;
    }
    .info-overlay-close-btn span:nth-child(1) {
        top: 19px;
        transform: rotate(45deg);
    }
    .info-overlay-close-btn span:nth-child(2) {
        top: 19px;
        transform: rotate(-45deg);
    }
    
    body.info-overlay-open {
        overflow: hidden !important;
    }
    
    /* ПК Ховеры */
    .product-card:hover { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(255, 184, 198, 0.3); }
.show-all-btn:hover, .category-show-more-btn:hover { transform: scale(1.05); color: white; background-color: #d34495; }
}

/* --- КНОПКА "НАВЕРХ" (Работает везде, но адаптируется) --- */
.back-to-top-btn {
    position: fixed; bottom: 69px; right: 20px; z-index: 1010;
    width: 50px; height: 50px; border-radius: 50%;
    background-color: #00cc55; color: #fff; border: none;
    box-shadow: 0 5px 15px rgba(232, 85, 168, 0.4);
    font-size: 30px; display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden; transform: translateY(30px);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    background-clip: padding-box;
}
.back-to-top-btn::before {
    content: ''; position: absolute;
    top: -15px; left: -15px; right: -15px; bottom: -15px; 
    border-radius: 50%; cursor: pointer; pointer-events: none;
}
.back-to-top-btn.show { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
.back-to-top-btn.is-scrolling { pointer-events: none !important; }
.back-to-top-btn:active { transform: scale(0.9); }
@media (min-width: 768px) {
    .back-to-top-btn { bottom: 90px; right: 40px; width: 60px; height: 60px; font-size: 28px; }
}


/* --- ПРАВИЛА ТОЛЬКО ДЛЯ МОБИЛЬНЫХ (max-width: 991px) --- */
@media (max-width: 991px) {
    /* Отключаем ПК ховеры */
    .product-card, .benefit-card, .main-featuresItem { transform: none !important; }
    
    /* Отступ для фиксированной мобильной шапки */
    body { padding-top: 60px; }

    /* Мобильная шапка UI/UX */
    .mobile-header-bar {
        position: fixed; top: 0; left: 0; width: 100%; height: 55px;
        background: #ffffff; 
        z-index: 10020 !important; /* Жестко выше меню и выше нижней липкой панели */
		box-shadow: 0 2px 15px rgb(0 0 0 / 21%);
    }

    /* Гамбургер в крестик (Идеальная толщина через абсолютное позиционирование) */
    .hamburger-btn {
        background: transparent; 
        border: none; 
        padding: 0; /* Убрали padding, он тут не нужен */
        cursor: pointer; 
        width: 40px; 
        height: 40px;
        position: relative; 
        z-index: 1050;
    }
    .hamburger-btn span {
        display: block; 
        position: absolute;
        left: 50%;
        margin-left: -12px; /* Жестко центрируем (половина от width: 24px) */
        width: 24px; 
        height: 2px; /* Фиксированная четкая толщина для всех! */
        background: var(--button-color); 
        border-radius: 2px;
        transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    }
    
    /* Жесткая привязка к сетке пикселей (чтобы не мылило) */
    .hamburger-btn span:nth-child(1) { top: 12px; }
    .hamburger-btn span:nth-child(2) { top: 19px; }
    .hamburger-btn span:nth-child(3) { top: 26px; }
    
    /* Анимация крестика (Сводим верхнюю и нижнюю точно в 19px) */
    .hamburger-btn.is-active span:nth-child(1) { 
        top: 19px; 
        transform: rotate(45deg); 
    }
    .hamburger-btn.is-active span:nth-child(2) { 
        opacity: 0; 
    }
    .hamburger-btn.is-active span:nth-child(3) { 
        top: 19px; 
        transform: rotate(-45deg); 
    }

    /* Оверлеи Поиска и Меню */
    .ui-overlay-screen {
        position: fixed; top: 0; left: 0; width: 100%; height: 100%;
        background: #fff; 
        z-index: 10010 !important; /* 10010 перекрывает 9990 (нижнюю панель) 100% */
        opacity: 0; visibility: hidden; transform: translateY(-20px);
        transition: all 0.3s ease-in-out;
    }
    .ui-overlay-screen.active {
        opacity: 1; visibility: visible; transform: translateY(0);
    }
	
	/* Поиск перекрывает ВСЁ (даже шапку) */
    #searchOverlay {
        z-index: 10030 !important; 
    }
    
    /* ФИКС: Блок Преимуществ (Features) для мобилок */
    #features { padding-top: 15px; padding-bottom: 25px; }
    
    /* Соцсети остаются как есть (горизонтально с палочками) */
    .social-links._vertical {
        display: flex !important; flex-direction: row !important; justify-content: center !important;
        align-items: center !important; width: 100%; margin-bottom: 15px !important;
    }
    
    /* 3 Преимущества в ОДНУ СТРОКУ */
    .features-new-list {
        display: flex !important; 
        flex-direction: row !important; /* Строго в строку */
        flex-wrap: nowrap !important;   /* Запрещаем перенос */
        justify-content: space-between !important;
        gap: 5px !important;            /* Минимальный зазор */
        width: 100%;
    }
    .main-featuresItem {
        flex: 1; /* Равномерно делим ширину на 3 */
        min-width: 0; /* Разрешаем сужаться сколько нужно */
        max-width: 33.33% !important;
    }
    .main-featuresInner {
        padding: 0 !important; /* Убираем лишние отступы внутри */
    }
    /* Уменьшаем картинки SVG */
    .main-featuresIcon {
        width: 35px !important; 
        height: 35px !important; 
        margin: 0 auto 5px !important;
    }
    .main-featuresIcon img {
        width: 35px !important; 
        margin: 0 auto !important;
    }
    /* Уменьшаем текст */
    .main-featuresTitle {
        font-size: 12px !important; 
        margin-bottom: 2px !important;
        white-space: normal; /* Разрешаем перенос текста если длинный */
        line-height: 1.1 !important;
    }
    .main-featuresText {
        font-size: 11px !important; 
        line-height: 1.1 !important;
    }
	
	/* --- СОСТОЯНИЕ ОТКРЫТОГО МЕНЮ (ЛЮБОГО) --- */
    body.menu-open .header-mobile-logo { opacity: 0 !important; pointer-events: none; }
    
    /* Человечек и Колокольчик пропадают СРАЗУ при открытии любого меню */
    body.menu-open .header-mobile-user-icons { display: none !important; }
    body.menu-open #mobile-bell-wrapper * { display: none !important; } /* Жестко гасим колокольчик */
    
    body.menu-open .mobile-header-bar { box-shadow: none !important; border-bottom: 1px solid #f0f0f0; }

    /* Динамические заголовки в шапке */
    body.menu-open.catalog-open .header-mobile-catalog-title { display: flex !important; opacity: 1 !important; }
    body.menu-open.info-open .header-mobile-info-title { display: flex !important; opacity: 1 !important; }
    .header-mobile-title h5 { text-transform: uppercase; letter-spacing: 0.12em; font-weight: 300; }

    /* Лупа пропадает СРАЗУ (без плавности), ТОЛЬКО если открыто ИНФО-МЕНЮ (с полочек) */
    body.menu-open.info-open #mobileSearchBtn { display: none !important; }
    
    /* Подсветка активной кнопки в нижнем меню */
    body.catalog-open #mobileBottomCatalogBtn { color: #e855a8; }
	
	/* Компактная кнопка "Показать все" для мобильных */
    .category-show-more-btn {
        padding: 6px 25px;       /* Уменьшаем внутренние отступы (кнопка станет ниже) */
        font-size: 0.8rem;       /* Уменьшаем шрифт текста */
        margin-top: -15px;        /* Уменьшаем отступ сверху */
        margin-bottom: 0;        /* Убираем отступ снизу */
    }
	
	/* Отдельный отступ для первого заголовка на мобильных */
    .category-title:first-child {
        margin-top: -50px; /* Уменьшаем негативный отступ (было -35px) */
    }
	
	/* Полностью скрываем вертикальные соцсети на мобильных */
    .social-links._vertical {
        display: none !important;
    }
	
	/* =========================================
       РАЗМЕРЫ ИКОНОК ПРЕИМУЩЕСТВ (МОБИЛЬНЫЕ)
       ========================================= */
    /* 1-я: Бесплатная доставка */
    #features .main-featuresItem:nth-child(1) .main-featuresIcon img {
        width: 100px !important; 
        margin: 0 auto 5px !important; /* возвращаем нормальный отступ */
    }
    /* 2-я: Гарантия свежести */
    #features .main-featuresItem:nth-child(2) .main-featuresIcon img {
        width: 95px !important; 
        margin: 0 auto 5px !important;
    }
    /* 3-я: Пришлем фото букета */
    #features .main-featuresItem:nth-child(3) .main-featuresIcon img {
        width: 51px !important; 
        margin: 0 auto 5px !important;
    }
	
	/* =========================================
       ЗЕЛЕНАЯ ПОЛОСКА (МОБИЛЬНАЯ ШАПКА)
       ========================================= */
    .mobile-top-stripe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 2.3px; /* <--- ЗДЕСЬ МЕНЯЙ ТОЛЩИНУ ДЛЯ МОБИЛОК */
        background-color: #00cc55; /* Твой фирменный зеленый цвет */
        z-index: 10; /* Чтобы полоска всегда была поверх фона шапки */
    }
	
	/* Анимация стрелочки в мобильном инфо-меню */
	.info-chevron {
		transition: transform 0.3s ease, color 0.3s ease;
	}
	/* Когда аккордеон открыт, стрелка переворачивается ВВЕРХ и красится в розовый */
	.info-accordion-btn[aria-expanded="true"] .info-chevron,
	.info-accordion-btn.is-open .info-chevron {
		transform: rotate(180deg);
		color: var(--button-color) !important;
	}


/* ==========================================================================
   IMAGE PRELOADER (Senior Fix)
   ========================================================================== */
.lazy-image-wrapper {
    position: relative;
    overflow: hidden;
    min-height: 150px; /* Защита от схлопывания до загрузки */
    background: #f8f9fa;
}
.lazy-image-wrapper .img-placeholder {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(110deg, #f0f0f0 8%, #fafafa 18%, #f0f0f0 33%);
    background-size: 200% 100%;
    animation: shimmer 1.5s linear infinite;
    transition: opacity 0.4s ease, visibility 0.4s ease;
    z-index: 2; /* Поверх изображения */
}
.lazy-image-wrapper .img-placeholder.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* Outline Heart SVG */
.img-placeholder .heart-outline {
    width: 44px;
    height: 44px;
    fill: none;
    stroke: var(--button-color);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 60;
    stroke-dashoffset: 60;
    animation: drawHeart 1.8s ease-in-out infinite, pulseHeart 1.8s ease-in-out infinite;
    transform-origin: center;
}
@keyframes drawHeart {
    0% { stroke-dashoffset: 60; }
    40% { stroke-dashoffset: 0; }
    70% { stroke-dashoffset: 0; }
    100% { stroke-dashoffset: -60; }
}
@keyframes pulseHeart {
    0%, 100% { transform: scale(1); }
    20% { transform: scale(1.15); }
    40% { transform: scale(1); }
    60% { transform: scale(1.1); }
}
@keyframes shimmer {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

/* Линия-перегородка аккордеона: управляется через inline style + JS (все версии) */
.info-accordion-btn.no-border {
    border-bottom: none !important;
}
/* Линия внутри collapse — видна только когда аккордеон раскрыт */
.collapse .border-bottom {
    border-bottom: 1px solid #dee2e6 !important;
}
}

/* ========================================================================
   КАРТЫ ЯНДЕКС — ЦЕНТРИРОВАНИЕ ПРЕЛОАДЕРА (все версии: мобилка + десктоп)
   ======================================================================== */
#info-map-container,
#contacts-map-container {
    position: relative !important;
    overflow: hidden !important;
    border-radius: 12px !important;
}

.map-preloader {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 10 !important;
    background: #e9ecef !important;
    border-radius: 12px !important;
}

#info-map-container .spinner-border,
#contacts-map-container .spinner-border {
    display: block !important;
    animation: spinner-border .75s linear infinite !important;
}

/* Плавное появление карты */
@keyframes mapFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

#info-map-container > *:not(.map-preloader),
#contacts-map-container > *:not(.map-preloader) {
    animation: mapFadeIn 0.5s ease forwards;
}

/* ==========================================================================
   Мини-слайдер изображений модификаций внутри карточки товара
   ========================================================================== */
.mod-image-slider {
    position: relative;
    overflow: hidden;
    touch-action: pan-y pan-x;
    -webkit-user-select: none;
    user-select: none;
}

.mod-slider-track {
    display: flex;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
}

.mod-slider-slide {
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
}

.mod-slider-slide .product-image {
    margin-bottom: 0;
}

.mod-slide-img {
    transform: scale(0.9);
    aspect-ratio: 1 / 1.1;
    object-fit: cover;
    width: 100%;
    height: 270px;
    object-position: center;
    border-bottom: 0px solid var(--border-color);
    border-radius: 12px;
    overflow: hidden;
    display: block;
}

.mod-slider-dots {
    position: absolute;
    bottom: 21px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 5px;
    z-index: 5;
}

.mod-slider-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transition: all 0.3s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.mod-slider-dot.active {
    background: #fff;
    transform: scale(1.4);
    box-shadow: 0 0 6px rgba(255, 255, 255, 0.8);
}

@media (max-width: 767.98px) {
    .mod-slider-dots {
        bottom: 18px;
    }
    
    .mod-slider-dot {
        width: 5px;
        height: 5px;
    }
}

/* ==========================================================================
   ИСПРАВЛЕНИЕ ЗАЗОРА ЗАГОЛОВКА И СТАТУСА НАЛИЧИЯ (ZERO-GAP WRAP)
   ========================================================================== */

#main-title-block {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 8px 12px !important;
    width: 100%;
}

@media (max-width: 991px) {
    #main-title-block {
        align-items: flex-start !important;
        gap: 6px 10px !important;
        margin-bottom: 15px !important;
    }
}

/* ==========================================================================
   СВЕРХКОМПАКТНЫЕ АДАПТИВНЫЕ ХЛЕБНЫЕ КРОШКИ (BREADCRUMBS ZERO-WRAP)
   ========================================================================== */

.breadcrumb {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    list-style: none;
    align-items: center;
}

.breadcrumb-item {
    display: flex !important;
    align-items: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    flex-shrink: 0;
}

.breadcrumb-item.active {
    color: #999 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    max-width: 250px;
    display: inline-block !important;
    vertical-align: bottom;
}

@media (max-width: 767.98px) {
    .breadcrumb-item {
        font-size: 0.72rem !important;
    }

    .breadcrumb-item.active {
        max-width: 110px !important;
    }
    
    .breadcrumb-item + .breadcrumb-item::before {
        padding-right: 5px !important;
        padding-left: 5px !important;
        font-size: 0.7rem;
    }
}

@media (max-width: 340px) {
    .breadcrumb-item.active {
        max-width: 75px !important;
    }
}

/* Фирменный зеленый цвет для цен в карусели допродаж */
.acc-price {
    color: #00cc55 !important;
    font-family: 'Montserrat', sans-serif;
}

/* Фирменная розовая кнопка "Добавить" для сопутствующих товаров */
.add-acc-btn {
    color: #e855a8 !important;
    border-color: #e855a8 !important;
    background-color: transparent !important;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    transition: all 0.2s ease-in-out;
}

.add-acc-btn:hover, 
.add-acc-btn:active, 
.add-acc-btn:focus {
    background-color: #e855a8 !important;
    border-color: #e855a8 !important;
    color: #ffffff !important;
}

.roulette-hint {
    margin-top: 0px !important;
    font-family: 'Montserrat', sans-serif;
}

/* ==========================================================================
   ОБНОВЛЁННЫЙ ВИЗУАЛ СТРАНИЦЫ ТОВАРА (FLOWER.PHP) — LUXURY СТИЛИЗАЦИЯ
   ========================================================================== */

/* Описание товара: Устранение бага с line-height: 0px */
.flower-desc {
    margin-top: 30px;
    margin-bottom: 30px;
}
.flower-desc-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.95rem;
    line-height: 1.7 !important; /* Увеличено до комфортного чтения */
    color: #444;
}

/* Общий люксовый стиль заголовков секций на странице товара */
/* Исправление наложения строк для многострочных заголовков */
.flower-section-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 1.3rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #333;
    position: relative;
    padding-bottom: 12px;
    margin-top: 35px;
    margin-bottom: 20px;
    
    /* Решение проблемы наложения */
    display: block;                  /* Переключаем на стандартный блочный режим */
    line-height: 1.4 !important;     /* Принудительно задаем безопасную высоту строки */
    
    border-bottom: 1px solid rgba(0, 204, 85, 0.15);
}

/* Выравнивание иконки-цветка внутри блочного заголовка */
.flower-section-title .bi-flower-custom {
    display: inline-block;           /* Иконка обтекается текстом */
    vertical-align: middle;          /* Выравнивание по центру текстовой строки */
    color: #00cc55;
    font-size: 1.4rem;
    margin-right: 8px;               /* Отступ справа от иконки */
    margin-top: -4px;                /* Точечная корректировка высоты */
}

.flower-section-title .flower-icon-svg {
    width: 22px;
    height: 22px;
    fill: #00cc55;
    display: inline-block;
    vertical-align: middle;
}

/* Сглаженное масштабирование карточек модификаций при наведении */
.variant-link {
    transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.variant-link:hover .variant-card {
    border-color: var(--border-color) !important;
    background-color: #fffcfd !important;
    transform: scale(1.02); /* Мягкое увеличение (scale) */
    box-shadow: 0 8px 16px rgba(232, 85, 168, 0.08) !important;
}

.variant-link.active .variant-card {
    transform: scale(1.01);
    box-shadow: 0 4px 10px rgba(232, 85, 168, 0.06);
}

/* Модификация анимации большой кнопки покупки */
.buy-btn-big {
    transition: background-color 0.25s ease, transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.25s ease !important;
}

.buy-btn-big:hover:not(:disabled) {
    transform: scale(1.025) translateY(-1px); /* Фирменный скейл при наведении */
    box-shadow: 0 8px 20px rgba(232, 85, 168, 0.3);
}

.buy-btn-big:active:not(:disabled) {
    transform: scale(0.98) translateY(0); /* Эффект нажатия */
}

/* Оптимизация заголовка товара */
.flower-title {
    font-weight: 400 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase;
    line-height: 1.3 !important;
}

/* Иконка в наличии */
#main-title-block .badge {
    transition: transform 0.3s ease;
}
#main-title-block:hover .badge {
    transform: scale(1.05);
}