/* Глобально задаём шрифт Mulish для всего проекта */
html,
body,
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
p, a, li, span, small, strong, em,
button, input, textarea, select,
label, blockquote, code, pre,
table, th, td, caption
{
    font-family: 'Mulish', Arial, sans-serif !important;
}

/* Гарантируем наследование для вложенных элементов */
*, *::before, *::after {
    font-family: inherit !important;
}

/* Текстовые акценты шрифтами Libertinus Sans */
.libertinus-regular {
    font-family: 'Libertinus Sans', Arial, sans-serif !important;
    font-weight: normal;
    font-style: normal;
}

.libertinus-bold {
    font-family: 'Libertinus Sans', Arial, sans-serif !important;
    font-weight: bold;
    font-style: normal;
}


/* Flip у card-wrapper */
.card-wrapper { perspective: 1200px; }
.card-flip { position: relative; height: 100%; transform-style: preserve-3d; transition: transform .6s ease; }
.card-wrapper.is-flipped .card-flip { transform: rotateY(180deg); }
.card-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.card-face-front { z-index: 2; }
.card-face-back { transform: rotateY(180deg); background: #ffffff; color: var(--primary, #0d6efd); z-index: 3; }
.card-wrapper.is-flipped .card-face-front { pointer-events: none; }
.card-wrapper.is-flipped .card-face-back { pointer-events: auto; }

/* Прячем соц.панель при развороте */
.card-wrapper.is-flipped .card-social-container { opacity: 0; pointer-events: none; transition: opacity .3s ease; }

/* Контент меню на обратной стороне */
.menu-title { margin: 0 0 12px 0; }
.menu-list { list-style: none; margin: 0; padding: 0; }
.menu-list li { display: flex; align-items: baseline; gap: 10px; padding: 6px 0; }
.menu-item-name { flex: 0 1 auto; min-width: 0; }
.menu-item-price { white-space: nowrap; flex: 0 0 auto; }
.menu-item-dots { flex: 1 1 auto; width: auto; min-width: 12px; height: 1px; border-bottom: 1px dashed currentColor; opacity: .35; align-self: center; margin: 0 8px; overflow: hidden; }

@media (max-width: 576px) {
    .menu-item-dots { max-width: 30vw; }
}

/* Крестик закрытия на обратной стороне */
.flip-close {
    position: absolute;
    top: 12px;
    right: 14px;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    color: var(--primary, #0d6efd);
    opacity: .85;
}
.flip-close:hover { opacity: 1; }

/* Меню: нормальное перенесение слов везде на обратной стороне */
.card-face-back,
.card-face-back * {
    word-break: normal;
}

.h-100vh {
    height: 100vh;
}

.card-fullscreen .btn, .swiper-fullscreen-vertical .swiper-pagination-wrapper {
    bottom: 120px;
}