
/* Custom Styles */

html, body, #page {
    touch-action: pan-y !important;
}

body{
    top: 0 !important;
    font-size: 14px;
}

a, button {
    touch-action: manipulation;
}

img.lazy:not(.nolazy, .preload-img) {
    display: none;
}

.lazy-hidden:not(.nolazy, .preload-img) {
    opacity: 0;
}
.lazy-loaded {
    -webkit-transition: opacity 0.3s;
    -moz-transition: opacity 0.3s;
    -ms-transition: opacity 0.3s;
    -o-transition: opacity 0.3s;
    transition: opacity 0.3s;
    opacity: 1;
}

.accessibility .header-icon-1,
.accessibility .header-icon-2 {
    margin-left: 5px;
}

.lang-menu {
    max-height: 600px !important;
    overflow-y: scroll;
}

#preloader .preload-img {
    max-height: 100px;
}

#page,
.menu-box-detached {
    max-width: 700px;
    margin: auto;
}

#preloader img {
    max-width: 200px;
    height: auto;
    position: absolute;
    top: 100px;
    left: 50%;
    transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

.header .header-logo {
    background-size: contain;
    height: 50px;
    margin-top: 5px;
}

#header-bar .icon-label {
    display: block;
    position: absolute;
    top: 18px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10px;
    font-weight: 500;
    opacity: 0.7;
}

.page-header {
    min-height: 100px;
    border-radius: 0;
}

.header-icon-1 i,
.header-icon-2 i {
    font-size: 16px;
}

.search-page .search-result-list {
    min-height: 70px;
}

.search-result-list {
    display: block;
}

.search-page .search-results p {
    padding-right: 30px;
}

.search-image {
    background-size: cover !important;
    width: 90px;
    height: 70px;
    position: absolute;
    top: 0;
    left: 0;
}

.btn-xxs.btn-icon i {
    line-height: 30px;
}

.header-icon-4 {
    padding-right: 10px;
    padding-top: 4px;
}

#footer-bar a {
    flex-basis: 0 !important;
}

.footer-img {
    max-width: 150px;
    height: auto;
}

.prezzo {
    min-width: 80px;
}

.prezzo-info {
    display: inherit;
    margin-top: -5px;
}

.list-custom-large a i:first-child {
    margin-right: 10px;
}

.list-custom-large a strong {
    max-width: 260px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
}

.alert strong {
    display: block;
    line-height: 1.5;
    margin-top: 10px;
}

.fac-default > span::after {
    color: #dedede;
}

.fac-default > label {
    padding-left: 25px;
}

.fac-default > input[type="checkbox"] + label:before {
    color: #333 !important;
}

.border-bg-orange-dark {
    border: solid 2px #c74834 !important;
}
.border-bg-magenta2-dark {
    border: solid 2px #6A50A7 !important;
}
.border-bg-blue2-dark {
    border: solid 2px #3f76bd !important;
}
.border-bg-brown2-dark {
    border: solid 2px #7B7163 !important;
}
.border-bg-red1-dark {
    border: solid 2px #BF263C !important;
}
.border-bg-pink2-dark {
    border: solid 2px #c44d6b !important;
}
.border-bg-green2-dark {
    border: solid 2px #1C8848 !important;
}
.border-bg-dark2-dark {
    border: solid 2px #323133 !important;
}

.color-bg-orange-dark {
    color: #c74834 !important;
}
.color-bg-magenta2-dark {
    color: #6A50A7 !important;
}
.color-bg-blue2-dark {
    color: #3f76bd !important;
}
.color-bg-brown2-dark {
    color: #7B7163 !important;
}
.color-bg-red1-dark {
    color: #BF263C !important;
}
.color-bg-pink2-dark {
    color: #c44d6b !important;
}
.color-bg-green2-dark {
    color: #1C8848 !important;
}
.color-bg-dark2-dark {
    color: #323133 !important;
}


@media (prefers-color-scheme: dark) {
    .fac-default > input[type="checkbox"] + label:before {
        color: #333 !important;
    }
}

.fac-default > input[type="checkbox"] + label {
    height: 40px;
    line-height: 40px;
}

.fac-default > span:after {
    margin-top: 6.5px;
}

.menu-box-bottom-xl {
    height: 400px;
}

.menu-box-detached .menu-title {
    padding-right: 50px;
}

.menu-box-detached .menu-title p {
    margin-top: 0;
    line-height: 1.5;
}

/* HIERARCHICAL CATEGORY PADDING */
.cat-pl-0{
    padding-left: 0;
}
.cat-pl-1{
    padding-left: 10px;
}
.cat-pl-2{
    padding-left: 20px;
}
.cat-pl-3{
    padding-left: 30px;
}
.cat-pl-4{
    padding-left: 40px;
}
.cat-pl-5{
    padding-left: 50px;
}
.cat-pl-6{
    padding-left: 60px;
}
.cat-pl-7{
    padding-left: 70px;
}
.cat-pl-8{
    padding-left: 80px;
}
.cat-pl-9{
    padding-left: 90px;
}
.cat-pl-10{
    padding-left: 100px;
}

.main-lev{
    font-weight: 900 !important;
}

.pref-tel select {
    position: absolute;
    left: 30px;
    font-size: 15px;
    margin: 0;
    padding: 0;
    width: 50px;
}

.pref-tel input {
    padding-left: 80px !important;
}

input[type=date],
input::-webkit-date-and-time-value {
    text-align: left !important;
}


/* MULTILANGUAGE */

.goog-te-banner-frame,
#google_translate_element,
.skiptranslate,
.goog-tooltip {
    display: none !important;
}

.lang-flag,
.lang-flag-custom,
.lang-flag-list {
    width: 100%;
    height: 100%;
    background-position: center center;
    background-size: contain;
    background-repeat: no-repeat;
}

.Italiano,
.lang-flag-it {
    background-image: url("../images/flags/it_IT.svg");
}

.Inglese,
.lang-flag-en,
.lang-flag-us {
    background-image: url("../images/flags/en_US.svg");
}

.lang-flag-gb {
    background-image: url("../images/flags/en_GB.svg");
}

.Spagnolo,
.lang-flag-es {
    background-image: url("../images/flags/es_ES.svg");
}

.Tedesco,
.lang-flag-de {
    background-image: url("../images/flags/de_DE.svg");
}

.Francese,
.lang-flag-fr {
    background-image: url("../images/flags/fr_FR.svg");
}

.lang-flag-ru {
    background-image: url("../images/flags/ru_RU.svg");
}

.lang-flag-cn {
    background-image: url("../images/flags/zh_CN.svg");
}

.lang-flag-tw {
    background-image: url("../images/flags/zh_TW.svg");
}

.lang-flag-jp {
    background-image: url("../images/flags/ja_JP.svg");
}

.lang-flag-sa {
    background-image: url("../images/flags/ar_SA.svg");
}

.lang-flag-pt {
    background-image: url("../images/flags/pt_PT.svg");
}

.lang-flag-br {
    background-image: url("../images/flags/pt_BR.svg");
}

.lang-flag-kr {
    background-image: url("../images/flags/ko_KR.svg");
}

.lang-flag-gr {
    background-image: url("../images/flags/el_GR.svg");
}

/* #chicchinero_#newlang */


/* OPZIONE DESIGN SMALL */

.header-small {
    border-radius: 0 !important;
}

.voce-small .content {
    cursor: pointer;
}

.voce-small .collapsed .item-small-arrow i:before,
.categoria-small .collapsed .item-small-arrow i:before {
    content: "\f105" !important;
}

.categoria-small .preview-img,
.voce-small .preview-img {
    max-height: 50px;
    border: none;
}

.categoria-small .preview-img div,
.voce-small .preview-img div {
    display: inline-block;
    width: 50px;
    height: 50px;
    background-size: cover !important;
}


.categoria-small .item-small-arrow,
.voce-small .item-small-arrow {
    flex-shrink: 2;
    min-width: 20px;
    text-align: right;
}

.categoria-small .item-small-arrow i {
    color: #1a1a1a;
}

.theme-dark .categoria-small .item-small-arrow i {
    color: #fff;
}


/* OPZIONE DESIGN ONEPAGE */

.voce-popup-close {
    color: #000;
    text-align: center;
    display: inline-block;
    font-size: 16px;
    width: 40px;
    height: 40px;
    position: absolute;
    right: 10px;
    background: #fff;
    line-height: 40px;
    border-radius: 100%;
    top: 10px;
    padding: 0 !important;
    -webkit-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.1);
    box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.1);
}

.voce-popup-close:hover {
    background: #000;
    color: #fff;
}

.voce-small:last-child .voce-content {
    padding-bottom: 10px;
}

.voce-small:last-child .divider {
    display: none;
}

.expand-button {
    width: 100%;
    height: 30px;
    line-height: 30px;
    background: #fff;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%);
    -moz-transform: translate(-50%);
    -webkit-transform: translate(-50%);
    -o-transform: translate(-50%);
    -ms-transform: translate(-50%);
    cursor: pointer;
}

small, .small {
    display: inline-block;
    line-height: 1.5;
}


/* THEME DARK */
.theme-dark #page{
    z-index: 0;
}

.theme-dark .bg-light {
    background-color: inherit !important;
}

.theme-dark .list-custom-small a,
.theme-dark .list-custom-large a {
    color: #6c6c6c !important;
}

.theme-dark #subtotale-ordine,
.theme-dark #totale-ordine {
    background-color: transparent !important;
    border: solid 1px #333;
}

.theme-dark  .bg-fade-yellow1-dark {
    background-color: rgba(246,187,66,0.7) !important;
}


/* ABBINAMENTO */

.hook-abbinamento { /* #chicchinero_#deprecated */
    position: absolute;
    width: 8px;
    height: 40px;
    left: 50%;
    margin-left: -4px;
    margin-top: -40px;
    z-index: -1;
    border: 2px solid #ddd;
}

.voce-abbinamento {
    margin-top: -30px;
    margin-left: 30px;
    margin-right: 30px;
    border-radius: 0px 0px 15px 15px;
    z-index: 0;
}

.voce-onepage  .voce-abbinamento {
    margin: 0 -15px -15px -15px;
}

.voce-onepage.menu-box-bottom.menu-box-detached {
    max-height: calc(100vh - 40px);
    overflow-y: auto;
}

.voce-abbinamento:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 20px;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));
    pointer-events: none;
}

.voce-abbinamento .content {
    min-height: 50px;
}

.prezzo-abbinamento {
    min-width: 60px;
    text-align: right;
}


/* VISUALIZZA CONTO */

.table-conto-head,
.table-conto-ordine,
.table-conto-desc,
.table-conto-totals {
    overflow: hidden;
}

.table-conto-head th {
    width: 50%;
}

.table-conto-head th:first-child {
    text-align: left;
}

.table-conto-head th:last-child {
    text-align: right;
}

.table-conto-ordine td:first-child {
    width: 70%;
    text-align: left;
    padding-top: 5px;
    padding-bottom: 5px;
    line-height: 16px;
}

.table-conto-ordine td:last-child {
    width: 30%;
    text-align: right;
    padding-top: 5px;
    padding-bottom: 5px;
}

.table-conto-totals {
    border-top: solid 3px #000;
}

.table-conto-totals th:first-child {
    width: 65%;
    text-align: left;
    padding-top: 5px;
    padding-bottom: 5px;
}

.table-conto-totals td:last-child {
    width: 35%;
    text-align: right;
    padding-top: 5px;
    padding-bottom: 5px;
}

.table-conto-totals tr:last-child th,
.table-conto-totals tr:last-child td {
    font-size: 18px;
    font-weight: bold;
}


/* CTA BAR ASPORTO / DELIVERY */
#cta-bar {
    position: fixed;
    left: 0;
    right: 0;
    height: 60px;
    bottom: 60px;
    z-index: 15;
    background: #dc3545;
    color: #fff;
    line-height: 60px;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    text-transform: uppercase;
    animation: pulse 2s linear infinite;
}

#cta-bar:hover, #cta-bar:active {
    background: #000;
}


@keyframes pulse {
    0% {
        transform: scale(1);
        box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2);
    }
    50% {
        transform: scale(1.05);
        box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2);
    }
}


/* CATEGORIES SLIDER BAR */

.category-pill:focus,
.category-pill:active {
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

/* Assicurati che .active vinca sempre */
.category-pill.active,
.category-pill.active:focus,
.category-pill.active:active {
    background: #222 !important;
    color: #fff !important;
    border-color: #222 !important;
}

/* Stessa cosa per sub slider */
.subcategory-slider-wrapper .category-pill.active,
.subcategory-slider-wrapper .category-pill.active:focus,
.subcategory-slider-wrapper .category-pill.active:active {
    background: #333 !important;
    color: #fff !important;
}

.category-slider-wrapper {
    position: relative;
    z-index: 90;
    background: transparent;
    padding: 4px 0 20px 0;
    margin: 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0);
    transition: background 0.3s ease, box-shadow 0.3s ease;
}
.category-slider-wrapper::before,
.category-slider-wrapper::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 15px;
    pointer-events: none;
    z-index: 10;
}
.category-slider-wrapper::before {
    left: 0;
    background: linear-gradient(to left, rgba(240,240,240,0) 0%, #f0f0f0 70%, #f0f0f0 100%);
}
.category-slider-wrapper::after {
    right: 0;
    background: linear-gradient(to right, rgba(240,240,240,0) 0%, #f0f0f0 70%, #f0f0f0 100%);
}
.category-slider-wrapper.is-sticky {
    position: fixed;
    top: 56px;
    left: 0;
    right: 0;
    max-width: 100%;
    margin: 0 auto;
    padding: 15px 0;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.category-slider-wrapper.is-sticky::before {
    background: linear-gradient(to left, rgba(255,255,255,0) 0%, #fff 70%, #fff 100%);
}
.category-slider-wrapper.is-sticky::after {
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, #fff 70%, #fff 100%);
}
.category-slider-placeholder {
    display: none;
}
.category-slider-placeholder.visible {
    display: block;
}
.category-slider {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-behavior: smooth;
    padding: 0 15px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.category-slider::-webkit-scrollbar {
    display: none;
}
.category-pill {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    padding: 10px 18px;
    background: transparent;
    border-radius: 25px;
    font-size: 13px;
    font-weight: 600;
    color: #333;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.25s ease;
    border: 2px solid #222;
}
.category-pill:hover {
    background: #e0e0e0;
    color: #333;
    text-decoration: none;
}
.category-pill.active {
    background: #222;
    color: #fff;
    border-color: #222;
}

/* Subcategory Slider */

.subcategory-slider-wrapper.is-sticky {
    top: 136px; /* 56px header + 80px main slider */
    border-top: 1px solid rgba(0,0,0,0.05);
}

.subcategory-slider-wrapper .category-pill {
    font-size: 11px;
    padding: 6px 12px;
    border: none;
    background: #e8e8e8;
    color: #555;
    text-transform: none; /* Rimuovi uppercase */
    font-weight: 500;
}

.subcategory-slider-wrapper .category-pill.active {
    background: #444;
    color: #fff;
}

.subcategory-slider-wrapper .category-pill:hover {
    background: #d0d0d0;
}

.category-slider-wrapper.is-sticky {
    z-index: 91;
}
.subcategory-slider-wrapper.is-sticky {
    z-index: 90;
}

/* Dark Theme Support */
.theme-dark .category-pill {
    background: #2d2d2d !important;
    color: #e0e0e0 !important;
    border-color: #2d2d2d !important;
}
.theme-dark .category-pill.active {
    background: #fff !important;
    color: #222 !important;
}
.theme-dark .category-slider-wrapper::before {
    background: linear-gradient(to left, rgba(0,0,0,0) 0%, #1a1c1f 70%, #1a1c1f 100%);
}
.theme-dark .category-slider-wrapper::after {
    background: linear-gradient(to right, rgba(0,0,0,0) 0%, #1a1c1f 70%, #1a1c1f 100%);
}
.theme-dark .category-slider-wrapper.is-sticky {
    background: #1a1c1f !important;
}
.theme-dark .category-slider-wrapper.is-sticky::before {
    background: linear-gradient(to left, rgba(0,0,0,0) 0%, #1a1c1f 70%, #1a1c1f 100%);
}
.theme-dark .category-slider-wrapper.is-sticky::after {
    background: linear-gradient(to right, rgba(0,0,0,0) 0%, #1a1c1f 70%, #1a1c1f 100%);
}


/*********************/
/* MODALITA SPECIALE */
/*********************/

/* NATALE */

body.modalita-natale #footer-bar,
body.modalita-natale .theme-dark #footer-bar{
    background:
            radial-gradient(circle at 50% -40%, rgba(255,255,255,0.12) 0, transparent 65%),
            linear-gradient(to right, #0A3A2A, #14513B, #0A3A2A) !important;
    border-top: 1px solid rgba(255,255,255,0.2) !important;
    overflow:hidden !important;
}

body.modalita-natale #footer-bar::before{
    content:'';
    position:absolute;
    inset:0;
    background:
            radial-gradient(circle at 15% 0, rgba(255,215,160,0.22) 0 10px, transparent 40px),
            radial-gradient(circle at 50% 0, rgba(255,230,200,0.18) 0 10px, transparent 40px),
            radial-gradient(circle at 85% 0, rgba(255,215,160,0.22) 0 10px, transparent 40px) !important;
    mix-blend-mode:screen !important;
    pointer-events:none !important;
    opacity:0.9 !important;
}

body.modalita-natale #footer-bar a {
    color: #fff !important;
}

/* Header garland */
body.modalita-natale #page-content .page-header.card:after{
    content:'';
    position:absolute;
    left:0;
    right:0;
    background: url(https://admin.leggimenu.it/assets/media/app/ghirlanda.png) no-repeat;
    background-size: cover;
    background-position: bottom;
    height:90px;
    top:-22px;
}

/* Snowflakes */
body.modalita-natale .snowflake{
    position:fixed;
    top:-10px;
    background:#fff;
    border-radius:50%;
    pointer-events:none;
    opacity:0.8;
    animation:fall linear forwards;
    z-index:9999;
}

@keyframes fall{
    0%{transform:translateY(0) translateX(0);}
    100%{transform:translateY(100vh) translateX(20px);opacity:0;}
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
    body.modalita-natale .snowflake{
        animation:none;
    }
}

/* ESTATE */

body.modalita-estate {
    background-color: #f7f3eb !important;
}

/* Header summer garland */
body.modalita-estate #page-content .page-header.card:after{
    content:'';
    position:absolute;
    left:0;
    right:0;
    background: url(https://admin.leggimenu.it/assets/media/app/estate.png) no-repeat;
    background-size: cover;
    background-position: bottom;
    height:90px;
    top:0;
}

body.modalita-estate .estate-blob {
    position: relative;
}
body.modalita-estate .estate-blob::before {
    content: '';
    position: absolute;
    top: -90px;
    right: -90px;
    width: 140px;
    height: 140px;
    background: #fff8e7;
    border-radius: 50%;
    z-index: -1;
    pointer-events: none;
}
.theme-dark.modalita-estate .estate-blob::before {
    background: rgba(245,158,11,0.2);
}

body.modalita-estate .badge {
    background-color: #F59E0B !important;
    color: #333 !important;
}

body.modalita-estate #footer-bar,
body.modalita-estate .theme-dark #footer-bar {
    background:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.22'/%3E%3C/svg%3E"),
            radial-gradient(circle at 50% -40%, rgba(255,255,255,0.15) 0, transparent 65%),
            linear-gradient(to right, #c9a44a, #dbb960, #c9a44a) !important;
    border-top: 1px solid rgba(255,215,0,0.3) !important;
    overflow: hidden !important;
}

body.modalita-estate #footer-bar::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
            radial-gradient(circle at 20% 0, rgba(255,223,100,0.2) 0 10px, transparent 40px),
            radial-gradient(circle at 55% 0, rgba(255,240,180,0.15) 0 10px, transparent 40px),
            radial-gradient(circle at 80% 0, rgba(255,223,100,0.2) 0 10px, transparent 40px) !important;
    mix-blend-mode: screen !important;
    pointer-events: none !important;
}

body.modalita-estate #footer-bar a {
    color: #333 !important;
}
body.modalita-estate #footer-bar a i,
body.modalita-estate #footer-bar a span {
    color: #333 !important;
}

body.modalita-estate #footer-bar .badge {
    color: #333 !important;
}

/* Pollen specks */
body.modalita-estate .pollen-speck {
    position: fixed;
    background: #fff;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0;
    animation: pollenIn ease-out forwards, drift ease-in-out infinite;
    z-index: 9999;
}

@keyframes pollenIn {
    0%   { opacity: 0; }
    100% { opacity: var(--p-opacity); }
}

@keyframes drift {
    0%   { transform: translate(0, 0); }
    25%  { transform: translate(var(--dx1), var(--dy1)); }
    50%  { transform: translate(var(--dx2), var(--dy2)); }
    75%  { transform: translate(var(--dx3), var(--dy3)); }
    100% { transform: translate(0, 0); }
}

@media (prefers-reduced-motion: reduce){
    body.modalita-estate .pollen-speck {
        animation: none;
    }
}

/* CARNEVALE */

body.modalita-carnevale {
    background-color: #f5f0fa !important;
}

body.modalita-carnevale #page-content .page-header.card:after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    background: url(https://admin.leggimenu.it/assets/media/app/carnevale.png) no-repeat;
    background-size: cover;
    background-position: bottom;
    height: 90px;
    top: 0;
}

body.modalita-carnevale .carnevale-blob {
    position: relative;
    overflow: hidden;
}
body.modalita-carnevale .carnevale-blob::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
            radial-gradient(circle 3px at 8% 15%, rgba(236,72,153,0.18) 100%, transparent 100%),
            radial-gradient(circle 4px at 25% 70%, rgba(139,92,246,0.16) 100%, transparent 100%),
            radial-gradient(circle 2px at 42% 30%, rgba(245,158,11,0.2) 100%, transparent 100%),
            radial-gradient(circle 5px at 60% 80%, rgba(16,185,129,0.14) 100%, transparent 100%),
            radial-gradient(circle 3px at 75% 20%, rgba(59,130,246,0.18) 100%, transparent 100%),
            radial-gradient(circle 4px at 90% 55%, rgba(239,68,68,0.16) 100%, transparent 100%),
            radial-gradient(circle 2px at 15% 85%, rgba(245,158,11,0.15) 100%, transparent 100%),
            radial-gradient(circle 5px at 50% 10%, rgba(236,72,153,0.14) 100%, transparent 100%),
            radial-gradient(circle 3px at 85% 90%, rgba(139,92,246,0.18) 100%, transparent 100%),
            radial-gradient(circle 4px at 35% 50%, rgba(59,130,246,0.15) 100%, transparent 100%),
            radial-gradient(circle 2px at 68% 42%, rgba(16,185,129,0.17) 100%, transparent 100%),
            radial-gradient(circle 3px at 95% 12%, rgba(239,68,68,0.14) 100%, transparent 100%),
            radial-gradient(circle 4px at 18% 40%, rgba(20,184,166,0.16) 100%, transparent 100%),
            radial-gradient(circle 2px at 55% 60%, rgba(236,72,153,0.15) 100%, transparent 100%);
}
.theme-dark.modalita-carnevale .carnevale-blob::before {
    background:
            radial-gradient(circle 3px at 8% 15%, rgba(236,72,153,0.35) 100%, transparent 100%),
            radial-gradient(circle 4px at 25% 70%, rgba(139,92,246,0.32) 100%, transparent 100%),
            radial-gradient(circle 2px at 42% 30%, rgba(245,158,11,0.38) 100%, transparent 100%),
            radial-gradient(circle 5px at 60% 80%, rgba(16,185,129,0.28) 100%, transparent 100%),
            radial-gradient(circle 3px at 75% 20%, rgba(59,130,246,0.35) 100%, transparent 100%),
            radial-gradient(circle 4px at 90% 55%, rgba(239,68,68,0.32) 100%, transparent 100%),
            radial-gradient(circle 2px at 15% 85%, rgba(245,158,11,0.3) 100%, transparent 100%),
            radial-gradient(circle 5px at 50% 10%, rgba(236,72,153,0.28) 100%, transparent 100%),
            radial-gradient(circle 3px at 85% 90%, rgba(139,92,246,0.35) 100%, transparent 100%),
            radial-gradient(circle 4px at 35% 50%, rgba(59,130,246,0.3) 100%, transparent 100%),
            radial-gradient(circle 2px at 68% 42%, rgba(16,185,129,0.33) 100%, transparent 100%),
            radial-gradient(circle 3px at 95% 12%, rgba(239,68,68,0.28) 100%, transparent 100%),
            radial-gradient(circle 4px at 18% 40%, rgba(20,184,166,0.32) 100%, transparent 100%),
            radial-gradient(circle 2px at 55% 60%, rgba(236,72,153,0.3) 100%, transparent 100%);
}

body.modalita-carnevale #footer-bar,
body.modalita-carnevale .theme-dark #footer-bar {
    background:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.15'/%3E%3C/svg%3E"),
            radial-gradient(circle at 50% -40%, rgba(167,139,250,0.12) 0, transparent 65%),
            #4C1D95 !important;
    border-top: 1px solid rgba(255,255,255,0.15) !important;
    overflow: hidden !important;
}

body.modalita-carnevale #footer-bar::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
            radial-gradient(circle at 15% 0, rgba(167,139,250,0.2) 0 10px, transparent 40px),
            radial-gradient(circle at 50% 0, rgba(196,181,253,0.15) 0 10px, transparent 40px),
            radial-gradient(circle at 85% 0, rgba(167,139,250,0.2) 0 10px, transparent 40px) !important;
    mix-blend-mode: screen !important;
    pointer-events: none !important;
}

body.modalita-carnevale #footer-bar a {
    color: #fff !important;
}

body.modalita-carnevale .confetti {
    position: fixed;
    top: -10px;
    pointer-events: none;
    opacity: 0;
    z-index: 9999;
    border-radius: 1px;
    animation: confettiFadeIn 0.5s ease-out forwards,
    confettiFall linear forwards;
}

@keyframes confettiFadeIn {
    0%   { opacity: 0; }
    100% { opacity: var(--c-opacity); }
}

@keyframes confettiFall {
    0%   { transform: translateY(0) translateX(0) rotate(var(--c-rot-start)); }
    100% { transform: translateY(100vh) translateX(var(--c-drift)) rotate(var(--c-rot-end)); opacity: 0; }
}

@media (prefers-reduced-motion: reduce){
    body.modalita-carnevale .confetti {
        animation: none;
    }
}

/* PASQUA */

body.modalita-pasqua {
    background-color: #f0faf4 !important;
}

body.modalita-pasqua #page-content .page-header.card:after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    background: url(https://admin.leggimenu.it/assets/media/app/pasqua.png) no-repeat;
    background-size: cover;
    background-position: bottom;
    height: 90px;
    top: 0;
}

body.modalita-pasqua .badge {
    background-color: #86efac !important;
    color: #333 !important;
}

body.modalita-pasqua #footer-bar,
body.modalita-pasqua .theme-dark #footer-bar {
    background:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.15'/%3E%3C/svg%3E"),
            radial-gradient(circle at 50% -40%, rgba(255,255,255,0.12) 0, transparent 65%),
            linear-gradient(to right, #9f1239, #be185d, #9f1239) !important;
    border-top: 1px solid rgba(255,200,220,0.2) !important;
    overflow: hidden !important;
}

body.modalita-pasqua #footer-bar::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
            radial-gradient(circle at 18% 0, rgba(255,182,193,0.2) 0 10px, transparent 40px),
            radial-gradient(circle at 52% 0, rgba(255,200,210,0.15) 0 10px, transparent 40px),
            radial-gradient(circle at 82% 0, rgba(255,182,193,0.2) 0 10px, transparent 40px) !important;
    mix-blend-mode: screen !important;
    pointer-events: none !important;
}

body.modalita-pasqua #footer-bar a {
    color: #fff !important;
}
body.modalita-pasqua #footer-bar a i,
body.modalita-pasqua #footer-bar a span {
    color: #fff !important;
}

body.modalita-pasqua #footer-bar .badge {
    color: #333 !important;
}

body.modalita-pasqua .easter-egg {
    position: fixed;
    top: -10px;
    pointer-events: none;
    opacity: 0;
    z-index: 9999;
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
    animation: eggFadeIn 0.5s ease-out forwards,
    eggFall linear forwards;
}

@keyframes eggFadeIn {
    0%   { opacity: 0; }
    100% { opacity: var(--e-opacity); }
}

@keyframes eggFall {
    0%   { transform: translateY(0) translateX(0) rotate(var(--e-rot-start)); }
    100% { transform: translateY(100vh) translateX(var(--e-drift)) rotate(var(--e-rot-end)); opacity: 0; }
}

body.modalita-pasqua .easter-bunny {
    position: fixed;
    top: -10px;
    pointer-events: none;
    opacity: 0;
    z-index: 9999;
    background-size: contain;
    background-repeat: no-repeat;
    animation: eggFadeIn 0.5s ease-out forwards,
    eggFall linear forwards;
}

@media (prefers-reduced-motion: reduce){
    body.modalita-pasqua .easter-egg,
    body.modalita-pasqua .easter-bunny {
        animation: none;
    }
}

/* HALLOWEEN */

body.modalita-halloween {
    background-color: #fef7ed !important;
}

body.modalita-halloween #page-content .page-header.card:after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    background: url(https://admin.leggimenu.it/assets/media/app/halloween.png) no-repeat;
    background-size: cover;
    background-position: bottom;
    height: 90px;
    top: 0;
}

body.modalita-halloween .halloween-blob {
    position: relative;
    overflow: hidden;
}
body.modalita-halloween .halloween-blob::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: 0.15;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100'%3E%3Cline x1='145' y1='50' x2='0' y2='0' stroke='%23666' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='200' y2='0' stroke='%23666' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='0' y2='100' stroke='%23666' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='200' y2='100' stroke='%23666' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='0' y2='50' stroke='%23666' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='200' y2='50' stroke='%23666' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='145' y2='0' stroke='%23666' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='145' y2='100' stroke='%23666' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='70' y2='0' stroke='%23666' stroke-width='0.3'/%3E%3Cline x1='145' y1='50' x2='200' y2='25' stroke='%23666' stroke-width='0.3'/%3E%3Cline x1='145' y1='50' x2='70' y2='100' stroke='%23666' stroke-width='0.3'/%3E%3Cline x1='145' y1='50' x2='200' y2='75' stroke='%23666' stroke-width='0.3'/%3E%3Ccircle cx='145' cy='50' r='12' fill='none' stroke='%23666' stroke-width='0.3'/%3E%3Ccircle cx='145' cy='50' r='25' fill='none' stroke='%23666' stroke-width='0.3'/%3E%3Ccircle cx='145' cy='50' r='40' fill='none' stroke='%23666' stroke-width='0.3'/%3E%3Ccircle cx='145' cy='50' r='58' fill='none' stroke='%23666' stroke-width='0.25'/%3E%3Ccircle cx='145' cy='50' r='78' fill='none' stroke='%23666' stroke-width='0.2'/%3E%3Ccircle cx='145' cy='50' r='1.5' fill='%23666'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
.theme-dark.modalita-halloween .halloween-blob::before {
    opacity: 0.18;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100'%3E%3Cline x1='145' y1='50' x2='0' y2='0' stroke='white' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='200' y2='0' stroke='white' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='0' y2='100' stroke='white' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='200' y2='100' stroke='white' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='0' y2='50' stroke='white' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='200' y2='50' stroke='white' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='145' y2='0' stroke='white' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='145' y2='100' stroke='white' stroke-width='0.4'/%3E%3Cline x1='145' y1='50' x2='70' y2='0' stroke='white' stroke-width='0.3'/%3E%3Cline x1='145' y1='50' x2='200' y2='25' stroke='white' stroke-width='0.3'/%3E%3Cline x1='145' y1='50' x2='70' y2='100' stroke='white' stroke-width='0.3'/%3E%3Cline x1='145' y1='50' x2='200' y2='75' stroke='white' stroke-width='0.3'/%3E%3Ccircle cx='145' cy='50' r='12' fill='none' stroke='white' stroke-width='0.3'/%3E%3Ccircle cx='145' cy='50' r='25' fill='none' stroke='white' stroke-width='0.3'/%3E%3Ccircle cx='145' cy='50' r='40' fill='none' stroke='white' stroke-width='0.3'/%3E%3Ccircle cx='145' cy='50' r='58' fill='none' stroke='white' stroke-width='0.25'/%3E%3Ccircle cx='145' cy='50' r='78' fill='none' stroke='white' stroke-width='0.2'/%3E%3Ccircle cx='145' cy='50' r='1.5' fill='white'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}

body.modalita-halloween .badge {
    background-color: #F97316 !important;
    color: #333 !important;
}

body.modalita-halloween #footer-bar,
body.modalita-halloween .theme-dark #footer-bar {
    background:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.15'/%3E%3C/svg%3E"),
            radial-gradient(circle at 50% -40%, rgba(255,255,255,0.12) 0, transparent 65%),
            linear-gradient(to right, #C2410C, #EA580C, #C2410C) !important;
    border-top: 1px solid rgba(255,165,0,0.25) !important;
    overflow: hidden !important;
}

body.modalita-halloween #footer-bar::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
            radial-gradient(circle at 18% 0, rgba(255,200,120,0.2) 0 10px, transparent 40px),
            radial-gradient(circle at 52% 0, rgba(255,220,150,0.15) 0 10px, transparent 40px),
            radial-gradient(circle at 82% 0, rgba(255,200,120,0.2) 0 10px, transparent 40px) !important;
    mix-blend-mode: screen !important;
    pointer-events: none !important;
}

body.modalita-halloween #footer-bar a {
    color: #fff !important;
}
body.modalita-halloween #footer-bar a i,
body.modalita-halloween #footer-bar a span {
    color: #fff !important;
}
body.modalita-halloween #footer-bar .badge {
    background-color: #1c1917 !important;
    color: #F97316 !important;
}

body.modalita-halloween .halloween-bat,
body.modalita-halloween .halloween-ghost {
    position: fixed;
    pointer-events: none;
    opacity: 0;
    z-index: 9999;
}

body.modalita-halloween .halloween-bat {
    top: -10px;
    background-size: contain;
    background-repeat: no-repeat;
    animation: hwFadeIn 0.5s ease-out forwards,
    batFly linear forwards;
}

body.modalita-halloween .halloween-ghost {
    bottom: -10px;
    background-size: contain;
    background-repeat: no-repeat;
    animation: hwFadeIn 0.5s ease-out forwards,
    ghostFloat linear forwards;
}

@keyframes hwFadeIn {
    0%   { opacity: 0; }
    100% { opacity: var(--hw-opacity); }
}

@keyframes batFly {
    0%   { transform: translateY(0) translateX(0); }
    25%  { transform: translateY(25vh) translateX(var(--hw-dx1)); }
    50%  { transform: translateY(50vh) translateX(var(--hw-dx2)); }
    75%  { transform: translateY(75vh) translateX(var(--hw-dx1)); }
    100% { transform: translateY(100vh) translateX(var(--hw-dx2)); opacity: 0; }
}

@keyframes ghostFloat {
    0%   { transform: translateY(0) translateX(0); }
    25%  { transform: translateY(-25vh) translateX(var(--hw-dx1)); }
    50%  { transform: translateY(-50vh) translateX(var(--hw-dx2)); }
    75%  { transform: translateY(-75vh) translateX(var(--hw-dx1)); }
    100% { transform: translateY(-100vh) translateX(var(--hw-dx2)); opacity: 0; }
}

@media (prefers-reduced-motion: reduce){
    body.modalita-halloween .halloween-bat,
    body.modalita-halloween .halloween-ghost {
        animation: none;
    }
}

/* Category Chevron Animation */
.cat-chevron-anim {
    display: inline-block;
    animation: chevronBounce 1.5s ease-in-out infinite;
}

@keyframes chevronBounce {
    0%, 100% {
        transform: translateX(0);
        opacity: 0.4;
    }
    50% {
        transform: translateX(4px);
        opacity: 1;
    }
}

/* Floating Cart Bar */
#floating-cart-bar {
    position: fixed;
    bottom: 81px;
    left: 26px;
    right: 26px;
    height: 54px;
    max-width: calc(700px - 52px);
    margin: 0 auto;
    z-index: 97;
    background: #222;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.25);
    transform: translateY(calc(100% + 81px));
    transition: transform 0.35s ease;
    visibility: hidden;
}

#floating-cart-bar.fcb-show {
    transform: translateY(0);
    visibility: visible;
}

#floating-cart-bar.footer-menu-hidden {
    transform: translateY(calc(100% + 81px)) !important;
    transition: transform 0.3s ease !important;
}

#floating-cart-bar a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    padding: 0 20px;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
}

#floating-cart-bar .fcb-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

#floating-cart-bar .fcb-arrow {
    font-size: 12px;
    opacity: 0.7;
}

#floating-cart-bar .fcb-cart-icon {
    margin-right: 10px;
    font-size: 18px;
}

.is-ios #floating-cart-bar {
    bottom: calc(81px + (constant(safe-area-inset-bottom))*1.1);
    bottom: calc(81px + (env(safe-area-inset-bottom))*1.1);
}

body.fcb-active .page-content {
    padding-bottom: 160px !important;
}

.theme-dark #floating-cart-bar {
    background: #21252a;
    border: solid 1px rgba(255, 255, 255, 0.05);
}

body.fcb-active #cta-bar {
    bottom: 114px;
}

body.fcb-active .page-content:has(~ footer #cta-bar) {
    padding-bottom: 190px !important;
}


/* Caratteristiche Custom - Icon Mask */
.caratteristiche-icon {
    display: inline-block;
    width: 30px;
    height: 30px;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    vertical-align: middle;
    cursor: pointer;
}