.gm-align-left { text-align: left !important; justify-content: flex-start !important; }
.gm-align-center { text-align: center !important; justify-content: center !important; }
.gm-align-right { text-align: right !important; justify-content: flex-end !important; }

.gestione-menu-editor,
.gestione-menu-editor * {
    box-sizing: border-box;
}

.menu-row {
    border-bottom: 2px solid #ddd;
    margin-bottom: 20px;
    padding-bottom: 20px;
    position: relative;
    padding-left: 40px;
    transition: background-color 0.2s ease;
}

.menu-row.row-type-title {
    background-color: #f0f7ff; /* Azzurro chiarissimo */
    border-left: 4px solid #2271b1;
}

.menu-row.row-type-description {
    background-color: #fffdf0; /* Giallino chiarissimo */
    border-left: 4px solid #dba617;
}

.menu-row.row-type-title .row-compact-title,
.menu-row.row-type-title .row-title {
    color: #2271b1 !important;
    font-weight: 600;
}

.menu-row.row-type-description .row-compact-title,
.menu-row.row-type-description .row-subtitle {
    color: #996b00 !important;
    font-weight: 600;
}

.menu-row.row-is-hidden {
    background: #fff2f2;
    opacity: 1;
    border-left: 4px solid #c62828;
}

.menu-row.row-is-hidden .row-compact-title,
.menu-row.row-is-hidden .row-title,
.menu-row.row-is-hidden .row-subtitle {
    color: #8b1e1e !important;
    font-weight: 700;
}

.menu-row.row-is-hidden .row-compact-price {
    color: #8b1e1e !important;
    font-weight: 600;
}

.row-sort-handle {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 30px;
    background: #eee;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: move;
    color: #999;
    font-size: 20px;
    border-radius: 4px 0 0 4px;
}

.row-sort-handle:hover {
    background: #e0e0e0;
    color: #666;
}

.row-mobile-move {
    display: inline-flex;
    position: static;
    margin: -4px 0 10px 0;
    gap: 4px;
}

.row-mobile-move .button {
    min-width: 34px;
    padding: 2px 8px;
    line-height: 1.2;
}

.row-compact {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    padding: 6px 6px;
    margin-bottom: 6px;
    cursor: pointer;
}

.row-compact-top {
    display: flex;
    align-items: center;
    gap: 8px;
}

.row-compact-controls {
    display: flex;
    align-items: center;
    gap: 6px;
}

.row-compact-flags {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 2px;
}

.row-compact-flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    font-size: 13px;
    line-height: 1;
    border-radius: 999px;
    background: #3D604E;
    transition: opacity 120ms ease, color 120ms ease, background 120ms ease;
}

.row-compact-flag.is-active {
    color: #fff;
    background: #3D604E;
}

.row-compact .row-sort-handle {
    position: static;
    width: auto;
    min-width: 20px;
    height: auto;
    padding: 2px 6px;
    background: #e8e8e8;
    border-radius: 3px;
    font-size: 14px;
    color: #666;
}

.menu-row:not(.row-collapsed) .row-compact {
    display: block !important;
    padding: 0;
    margin: 0 0 8px 0;
    background: transparent;
    border: none;
    cursor: default;
}

.menu-row:not(.row-collapsed) .row-compact-top {
    display: block !important;
}

.menu-row:not(.row-collapsed) .row-compact-controls {
    display: flex !important;
}

.menu-row:not(.row-collapsed) .row-compact-title,
.menu-row:not(.row-collapsed) .row-compact-price {
    display: none !important;
}
.menu-row:not(.row-collapsed) .row-compact-flags {
    display: none !important;
}
.row-compact-title {
    font-weight: 600;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}

.row-compact-price {
    margin-left: auto;
    font-weight: 600;
    white-space: nowrap;
    font-size: 13px;
}

.row-compact-top {
    flex-wrap: nowrap;
}

.row-compact-title {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.2;
}

.row-toggle {
    min-width: 28px;
    padding: 2px 8px;
    line-height: 1.2;
}

.row-delete-compact {
    padding: 4px 8px;
    line-height: 1.1;
    font-size: 12px;
    background: #e55353;
    border-color: #e55353;
    color: #fff;
}

.row-delete-compact-mobile,
.row-delete-compact-x {
    display: none;
}

.menu-row.row-collapsed {
    padding-left: 6px;
    padding-bottom: 6px;
    margin-bottom: 6px;
}

.menu-row.row-collapsed > * {
    display: none !important;
}

.menu-row.row-collapsed > .row-compact {
    display: flex !important;
    margin-bottom: 0;
}

.menu-row.row-collapsed > .row-compact > .row-compact-top,
.menu-row.row-collapsed > .row-compact > .row-compact-controls {
    display: flex !important;
}

.menu-row.row-collapsed .row-compact-title,
.menu-row.row-collapsed .row-compact-price {
    display: block !important;
}

.menu-row.row-collapsed .row-compact-flags {
    display: inline-flex !important;
}

.menu-row .row-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    padding: 0 3px;
    line-height: 1;
    height: 18px;
    font-size: 12px;
}

.menu-row:not(.row-collapsed) .row-sort-handle {
    display: none;
}

.menu-row.row-collapsed .row-sort-handle {
    display: inline-flex;
}

.menu-item.gm-row-type-title {
    margin: 18px 0 6px 0;
}

.menu-item.gm-row-type-description {
    margin: 6px 0 12px 0;
}

.menu-item.gm-row-type-description .menu-description,
.menu-item.gm-row-type-description .menu-description-en {
    opacity: 0.85;
}

.ui-state-highlight {
    height: 100px;
    background: #fffbcc;
    border: 2px dashed #ffeb3b;
    margin-bottom: 20px;
}

.menu-row input[type="text"], 
.menu-row textarea {
    width: 100%;
    margin-bottom: 10px;
    display: block;
    padding: 8px;
    box-sizing: border-box;
}

.menu-section-block.collapsed .section-rows {
    display: none;
}

.menu-section-block.collapsed .section-header {
    margin-bottom: 0 !important;
}

.section-header:hover {
    background: #e0e0e0 !important;
}

.menu-row textarea {
    height: 80px;
}

.row-allergens {
    margin-bottom: 15px;
    padding: 10px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.gestione-menu-editor .row-allergens .standard-allergens-list,
.gestione-menu-editor .row-allergens .dietary-options {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px 12px;
}

.gestione-menu-editor .row-allergens .standard-allergens-list > strong,
.gestione-menu-editor .row-allergens .standard-allergens-list > br {
    flex-basis: 100%;
}

.allergen-checkbox-label {
    display: inline-block;
    margin-right: 15px;
    margin-bottom: 5px;
    font-size: 13px;
    cursor: pointer;
    white-space: nowrap;
}

.allergen-checkbox-label input {
    margin-right: 5px;
    vertical-align: middle;
}

.gestione-menu-editor .allergen-checkbox-label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 6px 8px !important;
    max-width: 100%;
    border: 1px solid #d8e4e6;
    border-radius: 8px;
    background: #f7fbfb;
    white-space: normal !important;
    line-height: 1.35;
    vertical-align: top;
}

.gestione-menu-editor .allergen-checkbox-label input {
    margin: 0 !important;
    flex: 0 0 auto;
    align-self: center;
}

.gestione-menu-editor .editor-allergen-icon {
    width: 25px !important;
    height: 25px !important;
    min-width: 25px !important;
    min-height: 25px !important;
    max-width: 25px !important;
    max-height: 25px !important;
    object-fit: contain;
    flex: 0 0 25px;
}

.row-image-container {
    margin-bottom: 10px;
}

.row-image-container img {
    margin-bottom: 10px;
    border: 1px solid #ccc;
}

.gestione-menu-login {
    max-width: 300px;
    margin: 50px auto;
    text-align: center;
    padding: 20px;
    border: 1px solid #ccc;
}

#add-new-row, #save-all-rows, .upload-image-button, .remove-row {
    margin-top: 10px;
    padding: 10px 20px;
    cursor: pointer;
    background-color: #333;
    color: white;
    border: none;
    border-radius: 4px;
    font-weight: bold;
}

#add-new-row:hover, #save-all-rows:hover, .upload-image-button:hover, .remove-row:hover {
    background-color: #000;
}

.remove-row {
    padding: 5px 15px;
}

/* Public View Styles */
.gestione-menu-public .menu-filters {
    margin-bottom: 30px;
    padding: 20px;
    background: #fdfdfd;
    border: none;
    border-radius: 8px;
}

.gestione-menu-public .filter-row {
    margin-bottom: 15px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.gestione-menu-public .filter-row:last-child {
    margin-bottom: 0;
}

.gestione-menu-public .filter-label {
    font-weight: bold;
    margin-right: 10px;
    color: #333;
    min-width: 130px;
}

/* Filtri e Collapsible */
.gestione-menu-public .menu-filters,
.only-filters .menu-filters {
    margin-bottom: 30px;
    background: #fff;
}

.gestione-menu-public .menu-filters-collapsible,
.only-filters .menu-filters-collapsible {
    border: none;
    border-radius: 12px;
    overflow: hidden;
}

.gestione-menu-public .menu-filters-toggle,
.only-filters .menu-filters-toggle {
    padding: 15px 20px;
    background: #f9f9f9;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 700;
    font-size: 1.1em;
    color: #333;
    user-select: none;
}

.gestione-menu-public .menu-filters-toggle:hover,
.only-filters .menu-filters-toggle:hover {
    background: #f0f0f0;
}

.gestione-menu-public .menu-filters.is-collapsible .menu-filters-toggle,
.only-filters .menu-filters.is-collapsible .menu-filters-toggle {
    background: #ffffff;
    border: none;
    border-radius: 10px;
    padding: 12px 14px;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
    cursor: pointer;
    pointer-events: auto;
}

.gestione-menu-container .menu-filters.is-collapsible .gm-filters-toggle {
    display: flex !important;
    width: 100% !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: #ffffff !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 12px 14px !important;
    box-shadow: none !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

.gestione-menu-public .toggle-icon,
.only-filters .toggle-icon {
    display: none;
    width: 12px;
    height: 12px;
    border-right: 2px solid #333;
    border-bottom: 2px solid #333;
    transform: rotate(45deg);
    transition: transform 0.3s;
    margin-right: 5px;
    margin-bottom: 5px;
}

.gestione-menu-public .toggle-caret,
.only-filters .toggle-caret {
    display: inline-block;
    font-size: 16px;
    line-height: 1;
    color: #333;
    transform: rotate(0deg);
    transition: transform 0.3s;
}

.gestione-menu-public .menu-filters-collapsible.active .toggle-icon,
.only-filters .menu-filters-collapsible.active .toggle-icon {
    transform: rotate(-135deg);
    margin-bottom: -5px;
}

.gestione-menu-public .menu-filters-collapsible.active .toggle-caret,
.only-filters .menu-filters-collapsible.active .toggle-caret {
    transform: rotate(180deg);
}

.gestione-menu-public .menu-filters-content,
.only-filters .menu-filters-content,
.only-extra-filters .menu-filters-content {
    padding: 20px;
    display: none;
    border-top: 1px solid #ddd;
}

.menu-filters-standalone-extra.independent-extra-filters {
    margin: 20px 0;
    padding: 0;
    background: #fdfdfd;
    border: 1px solid #eee;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.independent-extra-filters .menu-filters-content {
    padding: 20px;
}

.independent-extra-filters .menu-filters-collapsible {
    display: block;
}

.independent-extra-filters .gm-extra-filters-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px;
    width: 100%;
    padding: 14px 18px;
    background: #fff;
    border: 0 !important;
    box-shadow: none !important;
    cursor: pointer !important;
    color: #1f2937 !important;
    font-weight: 700 !important;
}

.independent-extra-filters .gm-extra-filters-toggle-core {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.independent-extra-filters .gm-extra-filters-toggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    font-size: 40px;
    line-height: 1.2;
    color: #BE0303;
    margin-top: -10px;
}

.independent-extra-filters .gm-extra-filters-toggle-title {
    display: inline-flex;
    align-items: center;
    gap: 0;
    font-family: "Mohave", sans-serif;
    font-size: 25px;
    font-weight: 500;
    line-height: 1.2;
    color: #BE0303;
}

.independent-extra-filters .menu-filters-collapsible.active .menu-filters-content {
    display: block !important;
}

.independent-extra-filters .extra-filters-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 20px;
}

.independent-extra-filters .filter-section {
    flex: 1;
    min-width: 200px;
    margin-bottom: 0 !important;
}

.independent-extra-filters .label-it,
.independent-extra-filters .label-en {
    display: none;
}

.independent-extra-filters:not(.lang-en) .label-it {
    display: inline;
}

.independent-extra-filters.lang-en .label-en {
    display: inline;
}

.independent-extra-filters .filter-section-title {
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #444;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.independent-extra-filters select.filter-ef-select,
.independent-extra-filters input.filter-free-text {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ccc !important;
    border-radius: 4px;
    font-size: 15px;
    background-color: #fff;
    transition: border-color 0.2s;
    height: auto;
}

.independent-extra-filters select.filter-ef-select {
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12'%3E%3Cpath d='M1.5 1.5 9 9l7.5-7.5' fill='none' stroke='%23111111' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 18px 12px;
    padding-right: 48px;
}

.independent-extra-filters select.filter-ef-select:focus,
.independent-extra-filters input.filter-free-text:focus {
    border-color: #2271b1 !important;
    outline: none;
}

.independent-extra-filters .menu-filters-footer {
    border-top: 1px solid #eee;
    padding-top: 15px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
}

.independent-extra-filters .menu-filters-footer .free-search-filter {
    order: 1;
    flex: 2 1 480px;
    max-width: 680px;
}

.independent-extra-filters .menu-filters-footer .gm-extra-filters-summary {
    order: 2;
    flex: 1 1 240px;
    min-width: 180px;
    align-self: flex-end;
    padding: 0 4px 8px;
    color: #3D604E;
    font-size: 14px;
    line-height: 1.35;
    text-align: left;
}

.independent-extra-filters .menu-filters-footer .gm-extra-filters-summary .gm-extra-filters-summary-text {
    display: block;
    white-space: normal;
    word-break: break-word;
}

.independent-extra-filters .menu-filters-footer .free-search-filter .filter-section-title {
    margin-bottom: 8px;
}

.independent-extra-filters .menu-filters-footer .menu-filters-reset {
    order: 3;
    flex: 0 0 auto;
}

.independent-extra-filters .menu-filters-reset {
    background: #f5f5f5;
    border: 1px solid #ddd;
    color: #666;
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    transition: all 0.2s;
}

.independent-extra-filters .menu-filters-reset:hover {
    background: #eee;
    color: #333;
    border-color: #ccc;
}

@media (max-width: 768px) {
    .independent-extra-filters .extra-filters-grid {
        flex-direction: column;
        gap: 15px;
    }
    .independent-extra-filters .filter-section {
        min-width: 100%;
    }
    .independent-extra-filters .menu-filters-footer {
        flex-direction: column;
        align-items: stretch;
        gap: 15px;
    }
    .independent-extra-filters .menu-filters-footer .free-search-filter {
        flex: 0 0 auto;
        max-width: none;
    }
    .independent-extra-filters .menu-filters-footer .gm-extra-filters-summary {
        min-width: 100%;
        align-self: stretch;
        padding: 0;
        text-align: center;
    }
    .independent-extra-filters .menu-filters-footer .menu-filters-reset {
        align-self: flex-end;
    }
    .independent-extra-filters select.filter-ef-select,
    .independent-extra-filters input.filter-free-text {
        font-size: 16px;
        line-height: 1.25;
        padding: 12px 14px;
    }
    .independent-extra-filters select.filter-ef-select {
        background-position: right 14px center;
        padding-right: 42px;
    }
}

.only-extra-filters .menu-filters-content {
    display: block;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    margin: 10px 0;
}

.gestione-menu-public .menu-filters-collapsible.active .menu-filters-content,
.only-filters .menu-filters-collapsible.active .menu-filters-content {
    display: block;
}

.gestione-menu-public .filter-section,
.only-filters .filter-section {
    margin-bottom: 25px;
}

.gestione-menu-public .filter-section:last-child,
.only-filters .filter-section:last-child {
    margin-bottom: 0;
}

.gestione-menu-public .filter-section-title,
.only-filters .filter-section-title {
    text-align: center;
    font-size: 1.1em;
    font-weight: 700;
    margin: 0 0 15px 0;
    color: #333;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.gestione-menu-public .allergen-grid,
.only-filters .allergen-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}


@media (min-width: 769px) {
    .gestione-menu-public .menu-filters:not(.desktop-collapsible) .menu-filters-toggle,
    .only-filters .menu-filters:not(.desktop-collapsible) .menu-filters-toggle {
        cursor: default;
        pointer-events: none;
        background: transparent;
        padding-left: 0;
        padding-right: 0;
        border-bottom: none;
        justify-content: center;
        font-size: 1.3em;
        margin-bottom: 20px;
    }
    
    .gestione-menu-public .menu-filters:not(.desktop-collapsible) .toggle-icon,
    .only-filters .menu-filters:not(.desktop-collapsible) .toggle-icon,
    .gestione-menu-public .menu-filters:not(.desktop-collapsible) .toggle-caret,
    .only-filters .menu-filters:not(.desktop-collapsible) .toggle-caret {
        display: none;
    }
    
    .gestione-menu-public .menu-filters:not(.desktop-collapsible) .menu-filters-collapsible,
    .only-filters .menu-filters:not(.desktop-collapsible) .menu-filters-collapsible {
        border: none;
        border-radius: 0;
    }
    
    .gestione-menu-public .menu-filters:not(.desktop-collapsible) .menu-filters-content,
    .only-filters .menu-filters:not(.desktop-collapsible) .menu-filters-content {
        display: block !important;
        padding: 0;
        border-top: none;
    }
    
    .gestione-menu-public .allergen-grid,
    .only-filters .allergen-grid {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
        gap: 15px;
    }
    
    .gestione-menu-public .filter-section-title,
    .only-filters .filter-section-title {
        text-align: left;
    }
    
    .gestione-menu-public .diet-flex,
    .only-filters .diet-flex {
        justify-content: flex-start;
    }
}

.gestione-menu-public .filter-checkbox-label,
.only-filters .filter-checkbox-label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.9em;
    cursor: pointer;
    padding: 5px 10px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    transition: all 0.2s;
    justify-content: flex-start;
    text-align: left;
}

.gestione-menu-public .filter-allergen-icon,
.only-filters .filter-allergen-icon {
    width: 18px;
    height: 18px;
    object-fit: contain;
    flex: 0 0 auto;
}

.gestione-menu-public .menu-filters-selected-summary,
.only-filters .menu-filters-selected-summary {
    display: none;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 12px;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    font-size: 0.9em;
    text-align: left;
}

.gestione-menu-public .filters-selected-icons-wrap,
.only-filters .filters-selected-icons-wrap {
    display: none;
    margin-bottom: 6px;
}

.gestione-menu-public .menu-filters:not(.gm-filters-side-tab) .filters-selected-icons-wrap,
.only-filters .menu-filters:not(.gm-filters-side-tab) .filters-selected-icons-wrap {
    display: none !important;
}

.gestione-menu-public .menu-filters:not(.gm-filters-side-tab) .gm-side-tab-active-icons-tab,
.only-filters .menu-filters:not(.gm-filters-side-tab) .gm-side-tab-active-icons-tab {
    display: none !important;
}

.gestione-menu-public .filters-selected-icons,
.only-filters .filters-selected-icons {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.gestione-menu-public .filters-selected-icon,
.only-filters .filters-selected-icon {
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.gestione-menu-public .filters-selected-row,
.only-filters .filters-selected-row {
    margin-bottom: 4px;
    min-width: 0;
}

.gestione-menu-public .filters-selected-row:last-child,
.only-filters .filters-selected-row:last-child {
    margin-bottom: 0;
}

.gestione-menu-public .menu-filters-collapsible.has-selected-filters:not(.active) .menu-filters-selected-summary,
.only-filters .menu-filters-collapsible.has-selected-filters:not(.active) .menu-filters-selected-summary {
    display: flex;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab,
.only-filters .menu-filters.gm-filters-side-tab {
    display: flex;
    justify-content: flex-end;
    align-items: stretch;
    position: fixed;
    z-index: 9998;
    width: min(94vw, var(--gm-side-tab-width, 360px));
    margin: 0;
    background: transparent !important;
    overflow: visible;
    pointer-events: none;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-center,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-center {
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    margin-right: var(--gm-side-tab-margin-collapsed, -20px);
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-top,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-top {
    right: 0;
    top: var(--gm-side-tab-offset, 12px);
    margin-right: var(--gm-side-tab-margin-collapsed, -20px);
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-bottom,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-bottom {
    right: 0;
    bottom: var(--gm-side-tab-offset, 12px);
    margin-right: var(--gm-side-tab-margin-collapsed, -20px);
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-center,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-center {
    justify-content: flex-start;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-top,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-top {
    justify-content: flex-start;
    left: 0;
    top: var(--gm-side-tab-offset, 12px);
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-bottom,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-bottom {
    justify-content: flex-start;
    left: 0;
    bottom: var(--gm-side-tab-offset, 12px);
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible {
    --gm-tab-handle-width: 56px;
    --gm-tab-peek-width: var(--gm-tab-handle-width);
    background: #fff;
    box-shadow: 0 8px 30px rgba(17, 24, 39, 0.16);
    transform: translateX(calc(100% - var(--gm-tab-peek-width)));
    transition: transform 0.45s ease;
    max-height: none;
    overflow: visible;
    position: relative;
    border-radius: 16px 0 0 16px;
    border-right: none;
    pointer-events: none;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-center .menu-filters-collapsible,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-top .menu-filters-collapsible,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-bottom .menu-filters-collapsible,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-center .menu-filters-collapsible,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-top .menu-filters-collapsible,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-bottom .menu-filters-collapsible {
    transform: translateX(calc(-100% + var(--gm-tab-peek-width)));
    border-radius: 0 16px 16px 0;
    border-left: none;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.active,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.active {
    transform: translateX(0);
    pointer-events: auto;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-center:has(.menu-filters-collapsible.active),
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-top:has(.menu-filters-collapsible.active),
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-bottom:has(.menu-filters-collapsible.active),
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-center:has(.menu-filters-collapsible.active),
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-top:has(.menu-filters-collapsible.active),
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-bottom:has(.menu-filters-collapsible.active) {
    margin-right: var(--gm-side-tab-margin-open, 0);
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-content,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-content {
    display: block !important;
    max-height: none;
    overflow: visible;
    border-top: none;
}

@media (min-width: 769px) {
    .gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-toggle,
    .only-filters .menu-filters.gm-filters-side-tab .menu-filters-toggle {
        pointer-events: auto !important;
        cursor: pointer !important;
        background: #fff !important;
        border: none !important;
        justify-content: center !important;
        padding: 10px 6px !important;
    }
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-toggle,
.gestione-menu-public .menu-filters.gm-filters-side-tab .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab .gm-side-tab-active-icons-tab {
    pointer-events: auto;
}

@media (max-width: 768px) {
    .gestione-menu-public .menu-filters.gm-filters-side-tab,
    .only-filters .menu-filters.gm-filters-side-tab {
        width: max-content;
        max-width: 94vw;
        min-width: 0;
    }

    .gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible,
    .only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible {
        --gm-tab-handle-width: 52px;
        width: max-content;
        max-width: 94vw;
        max-height: none;
    }

    .gestione-menu-public .menu-filters.gm-filters-side-tab .allergen-grid,
    .only-filters .menu-filters.gm-filters-side-tab .allergen-grid {
        grid-template-columns: 1fr;
        gap: 8px 0;
    }

    .gestione-menu-public .menu-filters.gm-filters-side-tab .filter-checkbox-label,
    .only-filters .menu-filters.gm-filters-side-tab .filter-checkbox-label {
        white-space: normal;
        width: 100%;
        max-width: 100%;
    }

    .gestione-menu-public .menu-filters.gm-filters-side-tab .diet-filters,
    .only-filters .menu-filters.gm-filters-side-tab .diet-filters {
        margin-top: 10px;
    }
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-toggle {
    position: absolute;
    top: 0;
    transform: none;
    width: var(--gm-tab-peek-width) !important;
    min-width: var(--gm-tab-peek-width) !important;
    max-width: var(--gm-tab-peek-width) !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 4px !important;
    background: #fff !important;
    border: none !important;
    overflow: hidden;
    box-shadow: none;
    z-index: 4;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.active .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.active .menu-filters-toggle {
    box-shadow: none;
    opacity: 1;
    pointer-events: auto;
}

.gestione-menu-container .menu-filters.gm-filters-side-tab .gm-filters-toggle {
    width: var(--gm-tab-peek-width) !important;
    min-width: var(--gm-tab-peek-width) !important;
    max-width: var(--gm-tab-peek-width) !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 4px !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-center .menu-filters-toggle,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-top .menu-filters-toggle,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-bottom .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-center .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-top .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-bottom .menu-filters-toggle {
    left: 0;
    border-radius: 16px 0 0 16px;
    border-right: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-center .menu-filters-toggle,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-top .menu-filters-toggle,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-bottom .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-center .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-top .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-bottom .menu-filters-toggle {
    right: 0;
    border-radius: 0 16px 16px 0;
    border-left: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab .gm-side-tab-active-icons-tab {
    display: none;
    position: absolute;
    top: calc(100% + 10px);
    transform: none;
    width: max-content;
    max-width: none;
    min-width: var(--gm-tab-peek-width);
    min-height: 74px;
    padding: 8px 6px;
    background: #fff;
    border: 1px solid #d1d5db;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
    z-index: 3;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    gap: 8px;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-center .gm-side-tab-active-icons-tab,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-top .gm-side-tab-active-icons-tab,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-right-bottom .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-center .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-top .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-right-bottom .gm-side-tab-active-icons-tab {
    left: auto;
    right: calc(100% - var(--gm-tab-peek-width));
    border-radius: 12px;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-center .gm-side-tab-active-icons-tab,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-top .gm-side-tab-active-icons-tab,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-bottom .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-center .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-top .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-bottom .gm-side-tab-active-icons-tab {
    right: auto;
    left: calc(100% - var(--gm-tab-peek-width));
    border-radius: 12px;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .gm-side-tab-active-icons,
.only-filters .menu-filters.gm-filters-side-tab .gm-side-tab-active-icons {
    display: none;
    width: max-content;
    max-width: 100%;
    align-items: center;
    justify-content: flex-start;
    flex-direction: row;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 6px;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .gm-side-tab-active-icons + .gm-side-tab-active-icons,
.only-filters .menu-filters.gm-filters-side-tab .gm-side-tab-active-icons + .gm-side-tab-active-icons {
    border-top: 1px solid #e5e7eb;
    padding-top: 6px;
    width: 100%;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible:not(.gm-has-active-diets) .gm-side-tab-active-icons-diets,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible:not(.gm-has-active-diets) .gm-side-tab-active-icons-diets {
    display: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible:not(.gm-has-active-diets) .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible:not(.gm-has-active-diets) .gm-side-tab-active-icons-tab {
    min-height: 0;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible:not(.gm-has-active-diets) .gm-side-tab-active-icons-allergens + .gm-side-tab-active-icons,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible:not(.gm-has-active-diets) .gm-side-tab-active-icons-allergens + .gm-side-tab-active-icons {
    border-top: 0;
    padding-top: 0;
    width: auto;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .gm-side-tab-active-icons-tab .filters-selected-icon,
.only-filters .menu-filters.gm-filters-side-tab .gm-side-tab-active-icons-tab .filters-selected-icon {
    width: 24px;
    height: 24px;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.has-selected-filters.gm-has-active-icons:not(.active) .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.has-selected-filters.gm-has-active-icons:not(.active) .gm-side-tab-active-icons-tab {
    display: flex;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .gm-side-tab-toggle-core,
.only-filters .menu-filters.gm-filters-side-tab .gm-side-tab-toggle-core {
    position: static;
    transform: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    height: 100%;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .gm-side-tab-main-icon,
.only-filters .menu-filters.gm-filters-side-tab .gm-side-tab-main-icon {
    object-fit: contain;
    flex: 0 0 auto;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .gm-side-tab-title,
.only-filters .menu-filters.gm-filters-side-tab .gm-side-tab-title {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
    font-weight: 800;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    color: #111827;
    line-height: 1;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-title,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-title {
    display: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible:not(.gm-tab-minimized) .gm-side-tab-title,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible:not(.gm-tab-minimized) .gm-side-tab-title {
    display: inline-flex !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active),
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) {
    --gm-tab-handle-width: 40px;
    --gm-tab-peek-width: var(--gm-tab-handle-width);
    --gm-tab-handle-height: 48px;
    height: var(--gm-tab-handle-height);
    min-height: var(--gm-tab-handle-height);
    max-height: var(--gm-tab-handle-height);
    background: #fff;
    border: 0;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
    border-radius: 12px;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active),
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active),
.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) .menu-filters-content,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) .menu-filters-content,
.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) .gm-side-tab-active-icons-tab {
    pointer-events: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) .menu-filters-toggle,
.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) .gm-side-tab-toggle-core,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) .gm-side-tab-toggle-core,
.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) .gm-side-tab-main-icon,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized:not(.active) .gm-side-tab-main-icon {
    pointer-events: auto !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .menu-filters-toggle,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .menu-filters-toggle {
    padding: 6px 2px !important;
    border: none !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    background: transparent !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-toggle-core,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-toggle-core {
    gap: 10px;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .menu-filters-content,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .menu-filters-content {
    display: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-active-icons-tab {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized.has-selected-filters.gm-has-active-icons:not(.active) .gm-side-tab-active-icons-tab,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized.has-selected-filters.gm-has-active-icons:not(.active) .gm-side-tab-active-icons-tab {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: max-content !important;
    height: auto !important;
    overflow: visible !important;
    pointer-events: auto !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-title,
.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-title .label-it,
.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-title .label-en,
.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .filters-selected-icons-wrap,
.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .menu-filters-selected-summary,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-title,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-title .label-it,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-title .label-en,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .filters-selected-icons-wrap,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .menu-filters-selected-summary {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-title[hidden],
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.gm-tab-minimized .gm-side-tab-title[hidden] {
    display: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .toggle-caret,
.only-filters .menu-filters.gm-filters-side-tab .toggle-caret {
    display: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .toggle-icon,
.only-filters .menu-filters.gm-filters-side-tab .toggle-icon {
    display: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .filters-selected-icons-wrap,
.only-filters .menu-filters.gm-filters-side-tab .filters-selected-icons-wrap {
    display: none;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .filters-selected-icons,
.only-filters .menu-filters.gm-filters-side-tab .filters-selected-icons {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-content,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-content {
    padding: 14px 16px 14px calc(var(--gm-tab-peek-width) + 14px);
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-center .menu-filters-content,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-top .menu-filters-content,
.gestione-menu-public .menu-filters.gm-filters-side-tab.gm-side-pos-left-bottom .menu-filters-content,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-center .menu-filters-content,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-top .menu-filters-content,
.only-filters .menu-filters.gm-filters-side-tab.gm-side-pos-left-bottom .menu-filters-content {
    padding: 14px calc(var(--gm-tab-peek-width) + 14px) 14px 16px;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .filter-section-title,
.only-filters .menu-filters.gm-filters-side-tab .filter-section-title {
    display: none;
}

/* Shield forte contro CSS tema: applicato solo ai container plugin marcati */
.gestione-menu-container.gm-css-shield .menu-filters.gm-filters-side-tab .menu-filters-content,
.gestione-menu-container.gm-css-shield .menu-filters.gm-filters-side-tab .menu-filters-content * {
    box-sizing: border-box !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    text-shadow: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .allergen-grid,
.only-filters .menu-filters.gm-filters-side-tab .allergen-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 18px;
    align-items: start;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .diet-flex,
.only-filters .menu-filters.gm-filters-side-tab .diet-flex {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 18px;
    justify-content: stretch;
    align-items: start;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-content *,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-content * {
    box-sizing: border-box !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .diet-filters,
.only-filters .menu-filters.gm-filters-side-tab .diet-filters {
    border-top: 1px solid #e5e7eb;
    padding-top: 10px;
    margin-top: 8px;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .filter-checkbox-label,
.only-filters .menu-filters.gm-filters-side-tab .filter-checkbox-label {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 2px 0;
    gap: 10px !important;
    font-weight: 700;
    color: #1f2937;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    min-height: 32px;
    line-height: 1.25 !important;
    position: relative !important;
    white-space: normal !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    text-shadow: none !important;
    isolation: isolate;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .filter-checkbox-label:hover,
.only-filters .menu-filters.gm-filters-side-tab .filter-checkbox-label:hover {
    background: transparent;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .filter-checkbox-label input,
.only-filters .menu-filters.gm-filters-side-tab .filter-checkbox-label input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 1px;
    height: 1px;
    margin: 0;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .filter-allergen-icon,
.only-filters .menu-filters.gm-filters-side-tab .filter-allergen-icon {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    min-height: 28px !important;
    max-width: 28px !important;
    max-height: 28px !important;
    flex: 0 0 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    float: none !important;
    clear: none !important;
    display: block !important;
    object-fit: contain !important;
    z-index: 1 !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .filter-checkbox-label .allergen-name-it,
.gestione-menu-public .menu-filters.gm-filters-side-tab .filter-checkbox-label .allergen-name-en,
.gestione-menu-public .menu-filters.gm-filters-side-tab .filter-checkbox-label .label-it,
.gestione-menu-public .menu-filters.gm-filters-side-tab .filter-checkbox-label .label-en,
.only-filters .menu-filters.gm-filters-side-tab .filter-checkbox-label .allergen-name-it,
.only-filters .menu-filters.gm-filters-side-tab .filter-checkbox-label .allergen-name-en,
.only-filters .menu-filters.gm-filters-side-tab .filter-checkbox-label .label-it,
.only-filters .menu-filters.gm-filters-side-tab .filter-checkbox-label .label-en {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    float: none !important;
    clear: none !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    line-height: 1.25 !important;
    text-align: left !important;
    box-sizing: border-box !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    text-decoration: none !important;
    text-shadow: none !important;
    z-index: 2 !important;
}

.gestione-menu-container.gm-css-shield .menu-filters.gm-filters-side-tab .filter-checkbox-label .allergen-name-it,
.gestione-menu-container.gm-css-shield .menu-filters.gm-filters-side-tab .filter-checkbox-label .allergen-name-en,
.gestione-menu-container.gm-css-shield .menu-filters.gm-filters-side-tab .filter-checkbox-label .label-it,
.gestione-menu-container.gm-css-shield .menu-filters.gm-filters-side-tab .filter-checkbox-label .label-en {
    font-family: inherit !important;
    font-size: 16px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    opacity: 1 !important;
}

/* Regole lingua specifiche side-tab: devono vincere anche contro hardening display */
.gestione-menu-public .menu-filters.gm-filters-side-tab.lang-en .filter-checkbox-label .allergen-name-it,
.gestione-menu-public .menu-filters.gm-filters-side-tab.lang-en .filter-checkbox-label .label-it,
.only-filters .menu-filters.gm-filters-side-tab.lang-en .filter-checkbox-label .allergen-name-it,
.only-filters .menu-filters.gm-filters-side-tab.lang-en .filter-checkbox-label .label-it {
    display: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab.lang-en .filter-checkbox-label .allergen-name-en,
.gestione-menu-public .menu-filters.gm-filters-side-tab.lang-en .filter-checkbox-label .label-en,
.only-filters .menu-filters.gm-filters-side-tab.lang-en .filter-checkbox-label .allergen-name-en,
.only-filters .menu-filters.gm-filters-side-tab.lang-en .filter-checkbox-label .label-en {
    display: block !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab:not(.lang-en) .filter-checkbox-label .allergen-name-en,
.gestione-menu-public .menu-filters.gm-filters-side-tab:not(.lang-en) .filter-checkbox-label .label-en,
.only-filters .menu-filters.gm-filters-side-tab:not(.lang-en) .filter-checkbox-label .allergen-name-en,
.only-filters .menu-filters.gm-filters-side-tab:not(.lang-en) .filter-checkbox-label .label-en {
    display: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab:not(.lang-en) .filter-checkbox-label .allergen-name-it,
.gestione-menu-public .menu-filters.gm-filters-side-tab:not(.lang-en) .filter-checkbox-label .label-it,
.only-filters .menu-filters.gm-filters-side-tab:not(.lang-en) .filter-checkbox-label .allergen-name-it,
.only-filters .menu-filters.gm-filters-side-tab:not(.lang-en) .filter-checkbox-label .label-it {
    display: block !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.has-selected-filters:not(.active) .filters-selected-icons-wrap,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.has-selected-filters:not(.active) .filters-selected-icons-wrap {
    display: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible.has-selected-filters:not(.active) .filters-selected-row-diets,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible.has-selected-filters:not(.active) .filters-selected-row-diets {
    display: none !important;
}

.gestione-menu-public .menu-filters.gm-filters-side-tab .menu-filters-collapsible:not(.active) .menu-filters-selected-summary,
.only-filters .menu-filters.gm-filters-side-tab .menu-filters-collapsible:not(.active) .menu-filters-selected-summary {
    display: none !important;
}

.gestione-menu-public .filters-selected-heading,
.only-filters .filters-selected-heading {
    font-weight: 700;
    margin-right: 6px;
}

.gestione-menu-public .menu-filters-actions,
.only-filters .menu-filters-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 0;
    margin-left: auto;
    flex: 0 0 auto;
}

.gestione-menu-public .menu-filters-reset,
.only-filters .menu-filters-reset {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: none;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    font-size: 0.85em;
}

.gestione-menu-public .menu-filters-reset .reset-icon,
.only-filters .menu-filters-reset .reset-icon {
    font-size: 2em;
    font-weight: 700;
    line-height: 1;
}

.gestione-menu-public .filter-checkbox-label:hover,
.only-filters .filter-checkbox-label:hover {
    background: #f0f0f0;
}

.gestione-menu-public .filter-checkbox-label input,
.only-filters .filter-checkbox-label input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 1px;
    height: 1px;
    margin: 0;
}

.gestione-menu-public .filter-checkbox-label,
.only-filters .filter-checkbox-label {
    position: relative;
}

.gestione-menu-public .filter-checkbox-label.is-selected,
.only-filters .filter-checkbox-label.is-selected {
    background: var(--gm-filter-selected-bg, #eef1f4) !important;
    border-radius: 8px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
}

.gestione-menu-public .menu-item {
    display: flex;
    flex-direction: column;
    padding: 10px 0;
    margin-bottom: 10px;
    gap: 5px;
    align-items: stretch;
}

.gestione-menu-public .menu-items-container {
    gap: 0 !important;
}

.gestione-menu-public .menu-section {
    margin: 0 0 10px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.gestione-menu-public .menu-section-title {
    display: block !important;
    margin-bottom: 10px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.gestione-menu-public .menu-item.gm-row-type-title,
.gestione-menu-public .menu-item.gm-row-type-description {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.gestione-menu-public .menu-section-dettagli {
    margin-top: -4px !important;
    margin-bottom: 10px !important;
}

.gestione-menu-public .menu-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    width: 100%;
}

.gestione-menu-container .gm-menu-header {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    width: 100% !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
}

.gestione-menu-public .menu-dots {
    flex-grow: 1;
    border-bottom: 2px dotted #cccccc5e;
    margin: 0 10px;
    height: 1px;
    margin-bottom: 4px;
}

.gestione-menu-public .menu-title {
    margin: 0;
    font-size: 1.4em;
    color: #333;
    font-weight: 700;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.gestione-menu-container .gm-menu-title {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
}

.gestione-menu-container.gm-macro-hide-prices .gm-menu-header {
    justify-content: center !important;
    align-items: center !important;
}

.gestione-menu-container.gm-macro-hide-prices .gm-menu-title {
    flex: 0 1 auto !important;
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
}

/* Sezione senza prezzi: centra anche l'header e il titolo della riga su mobile e desktop */
.gestione-menu-container .gm-section-hide-prices .gm-menu-header {
    justify-content: center !important;
    align-items: center !important;
}

.gestione-menu-container .gm-section-hide-prices .gm-menu-title {
    flex: 0 1 auto !important;
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
}

/* Se l'immagine è a lato, assicura l'allineamento centrale del corpo riga nelle sezioni senza prezzi */
.gestione-menu-container .gm-section-hide-prices .menu-body-with-image {
    align-items: center !important;
}

.gestione-menu-container.gm-macro-hide-prices .menu-content,
.gestione-menu-container .gm-section-hide-prices .menu-content {
    align-items: center !important;
    text-align: center !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

.gestione-menu-container.gm-macro-hide-prices .menu-description,
.gestione-menu-container.gm-macro-hide-prices .menu-description-en,
.gestione-menu-container.gm-macro-hide-prices .menu-extra-field,
.gestione-menu-container.gm-macro-hide-prices .menu-cantina,
.gestione-menu-container .gm-section-hide-prices .menu-description,
.gestione-menu-container .gm-section-hide-prices .menu-description-en,
.gestione-menu-container .gm-section-hide-prices .menu-extra-field,
.gestione-menu-container .gm-section-hide-prices .menu-cantina {
    text-align: center !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.gestione-menu-container .gm-hide-prices-section-allergens,
.gestione-menu-public .gm-hide-prices-section-allergens {
    text-align: center !important;
    justify-content: center !important;
    align-items: center !important;
}

.gestione-menu-container .gm-section-hide-prices .gm-row-type-title,
.gestione-menu-container .gm-section-hide-prices .gm-row-type-description,
.gestione-menu-container.gm-macro-hide-prices .gm-row-type-title,
.gestione-menu-container.gm-macro-hide-prices .gm-row-type-description {
    text-align: center !important;
    justify-content: center !important;
}

.gestione-menu-container .gm-section-hide-prices .gm-row-type-title h3,
.gestione-menu-container .gm-section-hide-prices .gm-row-type-title .menu-section-title,
.gestione-menu-container .gm-section-hide-prices .gm-row-type-description .menu-description,
.gestione-menu-container .gm-section-hide-prices .gm-row-type-description .menu-description-en,
.gestione-menu-container.gm-macro-hide-prices .gm-row-type-title h3,
.gestione-menu-container.gm-macro-hide-prices .gm-row-type-title .menu-section-title,
.gestione-menu-container.gm-macro-hide-prices .gm-row-type-description .menu-description,
.gestione-menu-container.gm-macro-hide-prices .gm-row-type-description .menu-description-en {
    text-align: center !important;
    justify-content: center !important;
    display: block !important;
}

@media (min-width: 769px) {
    .gestione-menu-container .gm-menu-header {
        align-items: flex-end !important;
    }

    .gestione-menu-container .gm-menu-title {
        flex: 0 1 auto !important;
    }

    .gestione-menu-container .gm-menu-dots,
    .gestione-menu-container .gestione-menu-public .menu-dots {
        flex: 1 1 auto !important;
        margin: 0 10px !important;
        height: 0 !important;
        border-bottom: 1px dotted rgba(120, 120, 120, 0.45) !important;
        align-self: flex-end !important;
        margin-bottom: 8px !important;
    }
}

.gestione-menu-public .menu-item-novita {
    background-color: #d93025;
    color: #ffffff;
    padding: 2px 8px;
    font-size: 0.6em;
    font-weight: 600;
    text-transform: uppercase;
    border-radius: 3px;
    display: inline-flex;
    align-items: center;
    line-height: 1.2;
}

.gestione-menu-public .menu-item-last-bottle {
    gap: 6px;
}

.gestione-menu-public .menu-item-last-bottle .menu-item-last-bottle-icon {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

.gestione-menu-public .menu-item-last-bottle .menu-item-last-bottle-icon i {
    font-size: 0.95em;
}

.row-compact-flag-last-bottle i {
    font-size: 0.95em;
    line-height: 1;
}

.row-last-bottle-wrap .row-last-bottle-icon {
    font-size: 0.95em;
    line-height: 1;
    color: currentColor;
}

.gestione-menu-public .menu-item-gluten-free-icon {
    display: inline-flex;
    align-items: flex-start;
    margin-left: 2px;
}

.gestione-menu-public .menu-item-gluten-free-icon img {
    object-fit: contain;
    vertical-align: top;
}

.gestione-menu-public .menu-content {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}

.gestione-menu-public .menu-description {
    margin: 0;
    font-size: 0.95em;
    color: #666;
    font-style: italic;
}

.gestione-menu-public .menu-extra-fields {
    width: 100%;
    margin: 0 0 6px 0;
}

.gestione-menu-public .menu-extra-field {
    margin: 0;
    font-size: 0.95em;
    color: #444;
    text-align: left;
}

.gestione-menu-public .menu-extra-label {
    margin-right: 4px;
    font-weight: normal;
    text-transform: uppercase;
}

.gestione-menu-public .menu-cantina {
    font-size: 0.9em;
    color: #666;
    font-weight: normal;
    margin-top: -2px;
    margin-bottom: 5px;
}


.gestione-menu-public .menu-description-en {
    margin: 0;
    font-size: 0.95em;
    color: #666;
    font-style: italic;
}

.gestione-menu-public .menu-allergens, .gestione-menu-public .menu-dietary {
    color: #999;
}

.gestione-menu-public .menu-allergens-footer {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 8px;
    margin-top: 5px;
    width: 100%;
}

.gestione-menu-public .menu-allergens small, .gestione-menu-public .menu-dietary small {
    font-style: italic;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
}

.gestione-menu-public .menu-dietary {
    margin-left: 0;
}

.gestione-menu-public .allergen-item {
    display: flex;
    align-items: center;
    gap: 4px;
}

.gestione-menu-public .allergen-icon {
    vertical-align: middle;
}

/* Responsive allergen names - Nascondi nomi su desktop */
@media (min-width: 769px) {
    .gestione-menu-container .menu-allergens .allergen-name-it, 
    .gestione-menu-container .menu-allergens .allergen-name-en,
    .gestione-menu-container .menu-allergens .allergen-sep,
    .gestione-menu-container .menu-allergens .allergen-sep-it,
    .gestione-menu-container .menu-allergens .allergen-sep-en,
    .gestione-menu-container .menu-dietary .allergen-name-it, 
    .gestione-menu-container .menu-dietary .allergen-name-en,
    .gestione-menu-container .dietary-item .allergen-name-it,
    .gestione-menu-container .dietary-item .allergen-name-en {
        display: none !important;
    }
}

.gestione-menu-public .menu-image {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
}

.gestione-menu-public .menu-item.has-image.image-pos-top .menu-image {
    margin-top: 10px;
}

.gestione-menu-public .menu-item.has-image.image-pos-bottom .menu-image {
    margin-top: 12px;
}

.gestione-menu-public .menu-body-with-image {
    display: flex;
    width: 100%;
    gap: 14px;
    align-items: flex-start;
}

.gestione-menu-public .menu-body-with-image .menu-content {
    flex: 1 1 auto;
}

.gestione-menu-public .menu-body-with-image .menu-image {
    flex: 0 0 auto;
    width: auto;
}

.gestione-menu-public .menu-image img {
    max-width: 100%;
    max-height: 500px;
    height: auto;
    width: auto;
    display: block;
    object-fit: contain;
}


.gestione-menu-public .menu-price {
    font-size: 1.2em;
    font-weight: bold;
    color: #333;
    margin-left: auto;
    white-space: nowrap;
    flex: 0 0 auto;
    align-self: flex-start;
}

.gestione-menu-public .menu-legend {
    margin-top: 18px;
    padding-top: 10px;
    border-top: 1px solid #e5e7eb;
}

.gm-macro-buttons-container {
    display: inline;
    max-width: 100%;
}

.gm-macro-buttons-container .gm-macro-button {
    display: inline;
    text-decoration: inherit;
    color: inherit;
}

.gm-macro-buttons-container .gm-macro-button + .gm-macro-button::before {
    content: " ";
}

.gm-macro-buttons-container .gm-macro-button .label-en {
    display: none;
}

.gm-macro-buttons-dropdown-wrap.gm-mobile-dropdown-is-fixed {
    display: block !important;
    position: fixed !important;
    left: 0;
    right: 0;
    width: 100%;
    margin: 0;
    z-index: 90 !important;
    background: var(--gm-mobile-dropdown-sticky-bg, transparent);
    pointer-events: auto;
}

.gm-macro-buttons-dropdown-wrap.gm-mobile-bottom-active {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    visibility: visible !important;
}

.gm-macro-buttons-dropdown-wrap.gm-mobile-dropdown-is-fixed .gm-macro-buttons-dropdown {
    display: block !important;
    width: 100%;
    max-width: 100%;
    position: relative;
    z-index: 91 !important;
    pointer-events: auto;
    background: var(--gm-mobile-dropdown-sticky-bg, transparent);
    -webkit-appearance: menulist;
    appearance: auto;
}

.gm-macro-buttons-dropdown-wrap.gm-mobile-dropdown-is-fixed .gm-macro-buttons-classic-panel {
    z-index: 91 !important;
}

.gm-macro-buttons-dropdown-wrap.gm-mobile-dropdown-is-fixed .gm-macro-buttons-ticker-wrap,
.gm-macro-buttons-dropdown-wrap.gm-mobile-dropdown-is-fixed.gm-macro-buttons-ticker-wrap {
    z-index: 91 !important;
}

.gm-macro-buttons-dropdown-wrap-classic {
    position: relative;
    margin-top: 0;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-wrap,
.gm-macro-buttons-ticker-wrap {
    display: block !important;
    width: 100% !important;
    min-height: var(--gm-ticker-wrap-height-desktop, 50px) !important;
    padding: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    background: var(--gm-ticker-bg, transparent) !important;
    color: var(--gm-ticker-link-color, #3D604E) !important;
    border-top: 0 !important;
    box-shadow: none;
    overflow: hidden !important;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static,
.gm-macro-buttons-ticker-wrap.gm-ticker-static {
    justify-content: center;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-wrap > *,
.gm-macro-buttons-ticker-wrap > * {
    min-width: 0;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-nav,
.gm-macro-buttons-ticker-nav {
    position: relative;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    place-self: center !important;
    flex: 0 0 var(--gm-ticker-nav-size, 34px) !important;
    width: var(--gm-ticker-nav-size, 34px) !important;
    max-width: var(--gm-ticker-nav-size, 34px) !important;
    min-width: var(--gm-ticker-nav-size, 34px) !important;
    min-height: var(--gm-ticker-nav-size, 34px) !important;
    height: var(--gm-ticker-nav-size, 34px) !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--gm-ticker-nav-color, #3D604E) !important;
    cursor: pointer !important;
    margin: 0 !important;
    line-height: 1 !important;
    font-size: 0 !important;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-nav,
.gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-group-clone,
.gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-nav,
.gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-group-clone {
    display: none !important;
}

.gm-macro-buttons-ticker-nav span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--gm-ticker-nav-arrow-size, 10px);
    height: var(--gm-ticker-nav-arrow-size, 10px);
    border-right: var(--gm-ticker-nav-arrow-stroke, 1.5px) solid currentColor;
    border-bottom: var(--gm-ticker-nav-arrow-stroke, 1.5px) solid currentColor;
    transform-origin: center;
}

.gm-macro-buttons-ticker-nav-prev span {
    transform: translate(-35%, -50%) rotate(135deg);
}

.gm-macro-buttons-ticker-nav-next span {
    transform: translate(-65%, -50%) rotate(-45deg);
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-viewport,
.gm-macro-buttons-ticker-viewport {
    display: block !important;
    position: relative !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-align: left !important;
    touch-action: pan-x !important;
    mask-image: linear-gradient(to right, transparent 0, black 24px, black calc(100% - 24px), transparent 100%) !important;
    -webkit-mask-image: linear-gradient(to right, transparent 0, black 24px, black calc(100% - 24px), transparent 100%) !important;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-viewport,
.gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-viewport {
    width: 100% !important;
    overflow: visible !important;
    text-align: center !important;
    mask-image: none !important;
    -webkit-mask-image: none !important;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-track,
.gm-macro-buttons-ticker-track {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    white-space: nowrap !important;
    will-change: transform !important;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-track,
.gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-track {
    display: inline-flex !important;
    width: auto !important;
    max-width: 100% !important;
    justify-content: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: translate3d(0,0,0) !important;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-group,
.gm-macro-buttons-ticker-group {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    white-space: nowrap !important;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-group,
.gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-group {
    width: auto !important;
    flex: 0 1 auto !important;
}

.gm-macro-buttons-container .gm-macro-buttons-ticker-link,
.gm-macro-buttons-ticker-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--gm-ticker-link-height-desktop, 50px) !important;
    padding: var(--gm-ticker-padding-desktop, 0 18px) !important;
    color: var(--gm-ticker-link-color, #3D604E) !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    font-family: var(--gm-ticker-font-family, "montecatini", serif) !important;
    font-size: var(--gm-ticker-font-size-desktop, 1.6em) !important;
    font-weight: var(--gm-ticker-font-weight, 400) !important;
    line-height: var(--gm-ticker-line-height-desktop, 1.2) !important;
    letter-spacing: var(--gm-ticker-letter-spacing, 0) !important;
    text-transform: var(--gm-ticker-text-transform, none) !important;
    text-decoration: var(--gm-ticker-text-decoration, none) !important;
}

.gm-macro-buttons-ticker-wrap[data-current-lang="it"] .label-en {
    display: none !important;
}

.gm-macro-buttons-ticker-wrap[data-current-lang="it"] .label-it {
    display: inline !important;
}

.gm-macro-buttons-ticker-wrap[data-current-lang]:not([data-current-lang="it"]) .label-it {
    display: none !important;
}

.gm-macro-buttons-ticker-wrap[data-current-lang]:not([data-current-lang="it"]) .label-en {
    display: inline !important;
}

.gm-macro-buttons-ticker-link:hover,
.gm-macro-buttons-ticker-link:focus-visible {
    color: var(--gm-ticker-link-hover-color, var(--gm-ticker-link-color, #3D604E)) !important;
    text-decoration: var(--gm-ticker-text-decoration, none) !important;
}

@media (min-width: 801px) {
    .gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static,
    .gm-macro-buttons-ticker-wrap.gm-ticker-static {
        justify-content: center;
    }
    .gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-viewport,
    .gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-track,
    .gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-group,
    .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-viewport,
    .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-track,
    .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-group {
        justify-content: center;
    }
    .gm-macro-buttons-container .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-link,
    .gm-macro-buttons-ticker-wrap.gm-ticker-static .gm-macro-buttons-ticker-link {
        text-align: center !important;
    }
    .gm-macro-buttons-ticker-wrap.gm-mobile-dropdown-is-fixed .gm-macro-buttons-ticker-link {
        min-height: var(--gm-ticker-link-height-desktop, 50px) !important;
        font-size: var(--gm-ticker-sticky-font-size-desktop, var(--gm-ticker-font-size-desktop, 1.6em)) !important;
        line-height: var(--gm-ticker-sticky-line-height-desktop, var(--gm-ticker-line-height-desktop, 1.2)) !important;
    }
    .gm-macro-buttons-ticker-wrap.gm-mobile-dropdown-is-fixed {
        min-height: var(--gm-ticker-wrap-height-desktop, 50px) !important;
    }
}

@media (max-width: 800px) {
    .gm-macro-buttons-ticker-wrap.gm-mobile-dropdown-is-fixed .gm-macro-buttons-ticker-link {
        min-height: var(--gm-ticker-link-height-mobile, 38px) !important;
        padding: var(--gm-ticker-padding-mobile, 0 14px) !important;
        font-size: var(--gm-ticker-sticky-font-size-mobile, var(--gm-ticker-font-size-mobile, 1.1em)) !important;
        line-height: var(--gm-ticker-sticky-line-height-mobile, var(--gm-ticker-line-height-mobile, 1.2)) !important;
    }
    .gm-macro-buttons-ticker-wrap.gm-mobile-dropdown-is-fixed {
        min-height: var(--gm-ticker-wrap-height-mobile, 38px) !important;
    }
}

.gm-macro-buttons-container.gm-mobile-dropdown-sticky-enabled .gm-macro-buttons-dropdown-wrap-classic {
    position: relative;
}

.gm-macro-buttons-classic-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 50px;
    padding: 14px 16px;
    border: 1px solid rgba(61, 96, 78, 0.28);
    border-radius: 0;
    background: #ffffff;
    color: #3D604E;
    font: inherit;
    text-align: left;
    box-shadow: 0 10px 24px rgba(61, 96, 78, 0.08);
    cursor: pointer;
}

.gm-macro-buttons-classic-trigger-text {
    display: block;
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.gm-macro-buttons-classic-chevron {
    position: relative;
    flex: 0 0 12px;
    width: 12px;
    height: 12px;
}

.gm-macro-buttons-classic-chevron::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 1px;
    width: 8px;
    height: 8px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.18s ease;
}

.gm-macro-buttons-dropdown-wrap-classic.is-open .gm-macro-buttons-classic-chevron::before {
    transform: rotate(225deg);
    top: 5px;
}

.gm-macro-buttons-dropdown-wrap-classic.gm-sticky-position-bottom .gm-macro-buttons-classic-chevron::before {
    transform: rotate(225deg);
    top: 5px;
}

.gm-macro-buttons-dropdown-wrap-classic.gm-sticky-position-bottom.is-open .gm-macro-buttons-classic-chevron::before {
    transform: rotate(45deg);
    top: 2px;
}

.gm-macro-buttons-classic-panel {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    padding: 6px 0;
    border: 1px solid rgba(61, 96, 78, 0.22);
    border-radius: 0;
    background: #ffffff;
    box-shadow: 0 18px 34px rgba(33, 53, 41, 0.16);
    overflow: hidden;
    max-height: min(50vh, 320px);
    overflow-y: auto;
}

.gm-macro-buttons-dropdown-wrap-classic.is-open .gm-macro-buttons-classic-panel {
    display: block;
}

.gm-macro-buttons-dropdown-wrap-classic.gm-sticky-position-bottom .gm-macro-buttons-classic-panel {
    top: auto;
    bottom: calc(100% + 8px);
}

.gm-macro-buttons-classic-option {
    display: block;
    width: 100%;
    padding: 13px 16px;
    border: 0;
    border-top: 1px solid rgba(61, 96, 78, 0.1);
    background: transparent;
    color: #3D604E;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.gm-macro-buttons-classic-option:first-child {
    border-top: 0;
}

.gm-macro-buttons-classic-option.is-selected {
    background: rgba(61, 96, 78, 0.08);
    color: #3D604E;
    font-weight: 600;
}

.gm-macro-buttons-dropdown-wrap-classic.has-selection .gm-macro-buttons-classic-trigger {
    border-color: rgba(61, 96, 78, 0.42);
}

.gm-mobile-dropdown-stop-marker {
    display: block;
    width: 100%;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.gm-mobile-dropdown-sticky-placeholder {
    display: none;
    width: 100%;
    height: 0;
}

.gm-mobile-dropdown-sticky-marker {
    display: block;
    width: 100%;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.gm-macro-buttons-container.lang-en .gm-macro-button .label-it {
    display: none;
}

.gm-macro-buttons-container.lang-en .gm-macro-button .label-en {
    display: inline;
}

.gm-macro-buttons-container.gm-inline-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--gm-buttons-gap, 50px);
    width: 100%;
    max-width: 100%;
}

.gm-macro-buttons-container.gm-inline-links .gm-macro-button {
    display: inline-flex;
    flex: 0 0 auto;
    min-width: 0;
    white-space: nowrap;
}

.gm-macro-buttons-container.gm-inline-links .gm-macro-button + .gm-macro-button::before {
    content: none;
}

.gm-macro-buttons-container.gm-inline-links .gm-macro-buttons-dropdown-wrap {
    display: none;
}

.gm-macro-buttons-container.gm-ticker-only > .gm-macro-button {
    display: none !important;
}

.gm-macro-buttons-container.gm-ticker-only .gm-macro-buttons-dropdown-wrap.gm-macro-buttons-ticker-wrap {
    display: block !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

.gm-macro-buttons-container.gm-inline-links.gm-desktop-dropdown-enabled,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-desktop-dropdown-enabled,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-desktop-dropdown-enabled.gm-css-shield,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-desktop-dropdown-enabled.gm-breakout {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    align-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    position: relative;
}

.gm-macro-buttons-container.gm-inline-links.gm-desktop-dropdown-enabled .gm-macro-buttons-dropdown-wrap,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-desktop-dropdown-enabled .gm-macro-buttons-dropdown-wrap {
    display: block !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 0 !important;
}

.gm-macro-buttons-container.gm-inline-links.gm-desktop-dropdown-enabled.gm-desktop-dropdown-ticker .gm-macro-buttons-dropdown-wrap.gm-macro-buttons-ticker-wrap,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-desktop-dropdown-enabled.gm-desktop-dropdown-ticker .gm-macro-buttons-dropdown-wrap.gm-macro-buttons-ticker-wrap {
    display: block !important;
}

.gm-macro-buttons-container.gm-inline-links.gm-desktop-dropdown-enabled .gm-mobile-dropdown-sticky-marker,
.gm-macro-buttons-container.gm-inline-links.gm-desktop-dropdown-enabled .gm-mobile-dropdown-sticky-placeholder,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-desktop-dropdown-enabled .gm-mobile-dropdown-sticky-marker,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-desktop-dropdown-enabled .gm-mobile-dropdown-sticky-placeholder {
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    flex: 0 0 0 !important;
}

.gm-macro-buttons-container.gm-inline-links.gm-css-shield {
    width: 100% !important;
    max-width: 100% !important;
}

.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-css-shield,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-breakout {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
}

.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive > .gm-macro-button {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
}

.gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    align-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
}

.gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons > .gm-macro-button,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons > .gm-macro-button {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
}

.gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons .gm-macro-buttons-dropdown-wrap,
.gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons .gm-macro-buttons-dropdown-wrap {
    display: block !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 0 !important;
}

@media (max-width: 800px) {
    .gm-macro-buttons-container.gm-inline-links {
        display: block;
    }
    .gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons.gm-desktop-dropdown-enabled.gm-desktop-dropdown-ticker,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons.gm-desktop-dropdown-enabled.gm-desktop-dropdown-ticker {
        width: 100% !important;
        max-width: 100% !important;
    }
    .gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        align-items: flex-start !important;
        align-content: flex-start !important;
        gap: 22px 14px !important;
        width: min(100%, 340px) !important;
        max-width: 340px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding: 10px 0 16px 0 !important;
    }
    .gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons > .gm-macro-button,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons > .gm-macro-button {
        display: inline-flex !important;
        flex: 0 1 calc(50% - 14px) !important;
        width: calc(50% - 14px) !important;
        max-width: calc(50% - 14px) !important;
        min-width: 130px !important;
        justify-content: center !important;
        align-items: center !important;
        text-align: center !important;
        margin: 0 !important;
        white-space: normal !important;
        line-height: 1.5 !important;
        font-size: 1.1em !important;
    }
    .gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons > .gm-macro-button .label-it,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons > .gm-macro-button .label-it,
    .gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons > .gm-macro-button .label-en,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons > .gm-macro-button .label-en {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        white-space: normal !important;
    }
    .gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons[data-current-lang="it"] > .gm-macro-button .label-en,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons[data-current-lang="it"] > .gm-macro-button .label-en {
        display: none !important;
    }
    .gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons[data-current-lang="it"] > .gm-macro-button .label-it,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons[data-current-lang="it"] > .gm-macro-button .label-it {
        display: block !important;
    }
    .gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons[data-current-lang="en"] > .gm-macro-button .label-it,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons[data-current-lang="en"] > .gm-macro-button .label-it {
        display: none !important;
    }
    .gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons[data-current-lang="en"] > .gm-macro-button .label-en,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons[data-current-lang="en"] > .gm-macro-button .label-en {
        display: block !important;
    }
    .gm-macro-buttons-container.gm-inline-links.gm-mobile-keep-buttons .gm-macro-buttons-dropdown-wrap,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive.gm-mobile-keep-buttons .gm-macro-buttons-dropdown-wrap {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
        margin-top: 14px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .gm-macro-buttons-container.gm-inline-links .gm-macro-buttons-ticker-wrap,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive .gm-macro-buttons-ticker-wrap {
        display: block !important;
    }
    .gm-macro-buttons-container.gm-inline-links .gm-macro-buttons-dropdown-wrap.gm-macro-buttons-ticker-wrap,
    .gm-macro-buttons-container.gm-inline-links.gm-macro-buttons-responsive .gm-macro-buttons-dropdown-wrap.gm-macro-buttons-ticker-wrap {
        display: block !important;
    }
    .gm-macro-buttons-container .gm-macro-buttons-ticker-wrap,
    .gm-macro-buttons-ticker-wrap {
        min-height: var(--gm-ticker-wrap-height-mobile, 38px) !important;
        padding: 0 !important;
        margin-bottom: 0 !important;
    }
    .gm-macro-buttons-container .gm-macro-buttons-ticker-nav,
    .gm-macro-buttons-ticker-nav {
        display: none !important;
    }
    .gm-macro-buttons-container .gm-macro-buttons-ticker-link,
    .gm-macro-buttons-ticker-link {
        min-height: var(--gm-ticker-link-height-mobile, 38px) !important;
        padding: var(--gm-ticker-padding-mobile, 0 14px) !important;
        font-family: var(--gm-ticker-font-family, "montecatini", serif) !important;
        font-size: var(--gm-ticker-font-size-mobile, 1.1em) !important;
        font-weight: var(--gm-ticker-font-weight, 400) !important;
        line-height: var(--gm-ticker-line-height-mobile, 1.2) !important;
        letter-spacing: var(--gm-ticker-letter-spacing, 0) !important;
        text-transform: var(--gm-ticker-text-transform, none) !important;
        text-decoration: var(--gm-ticker-text-decoration, none) !important;
    }
    .gm-macro-buttons-container .gm-macro-buttons-ticker-viewport,
    .gm-macro-buttons-ticker-viewport {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
        mask-image: none !important;
        -webkit-mask-image: none !important;
    }
    .gm-macro-buttons-ticker-wrap.gm-mobile-dropdown-is-fixed {
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }
}

.gestione-menu-public .menu-legend-title {
    margin: 0 0 8px 0;
    font-size: 1em;
}

.gestione-menu-public .menu-legend-list {
    margin: 0;
    padding-left: 0;
    list-style: none;
}

.gestione-menu-public .menu-legend-item {
    margin: 0 0 4px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.gestione-menu-public .menu-legend-icon {
    object-fit: contain;
    display: block;
}

.menu-legend .label-en { display: none; }
.menu-legend.lang-en .label-it { display: none; }
.menu-legend.lang-en .label-en { display: inline; }

.gestione-menu-container .gestione-menu-public .menu-price,
.gestione-menu-container.only-filters .menu-price {
    margin-left: auto !important;
    white-space: nowrap !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    text-align: right !important;
}

.gestione-menu-container .gm-menu-price {
    margin-left: auto !important;
    text-align: right !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    white-space: nowrap !important;
    width: auto !important;
    display: inline-flex !important;
}

.gestione-menu-public .inquiry-button {
    background-color: #333;
    color: #fff;
    border: none;
    padding: 8px 15px;
    margin-top: auto;
    cursor: pointer;
    font-size: 14px;
    transition: background 0.3s;
    align-self: flex-start;
}

.gestione-menu-public .inquiry-button:hover {
    background-color: #000;
}

.gestione-menu-public .inquiry-form {
    margin-top: 15px;
    background: #f1f1f1;
    padding: 15px;
    border-radius: 4px;
}

.gestione-menu-public .inquiry-email {
    width: 100%;
    padding: 8px;
    margin-bottom: 10px;
    border: 1px solid #ccc;
    box-sizing: border-box;
}

.gestione-menu-public .send-inquiry {
    background-color: #333;
    color: white;
    border: none;
    padding: 8px 20px;
    cursor: pointer;
}

.gestione-menu-public .inquiry-message {
    margin-top: 10px;
    font-size: 13px;
}

/* Lightbox Styles */
.menu-lightbox-overlay {
    position: fixed;
    z-index: 99999;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.8);
    display: flex;
    align-items: center;
    justify-content: center;
}

.menu-lightbox-img {
    max-width: 90%;
    max-height: 800px;
    height: auto;
    width: auto;
    box-shadow: 0 0 20px rgba(0,0,0,0.5);
    border: 3px solid white;
}

.menu-lightbox-close {
    position: absolute;
    top: 20px;
    right: 30px;
    color: white;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
}

.gestione-menu-login h3 {
    margin-top: 0;
    margin-bottom: 20px;
}

.gestione-menu-login input[type="password"] {
    width: 100%;
    padding: 10px;
    margin-bottom: 15px;
    border: 1px solid #ccc;
    box-sizing: border-box;
}

.gestione-menu-login input[type="submit"] {
    background-color: #333;
    color: white;
    border: none;
    padding: 10px 20px;
    cursor: pointer;
    width: 100%;
}

.gestione-menu-login input[type="submit"]:hover {
    background-color: #000;
}

.new-menu-password,
#new-menu-password {
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    flex: 1;
    max-width: 300px;
}

.change-password-button,
#change-password-button {
    padding: 10px 20px;
    background-color: #333;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.change-password-button:hover,
#change-password-button:hover {
    background-color: #000;
}

.password-change-message,
#password-change-message {
    margin-top: 10px;
    font-size: 14px;
    font-weight: bold;
}

.logout-link {
    color: #333;
    text-decoration: none;
    font-weight: bold;
}

.logout-link:hover {
    text-decoration: underline;
}

.gestione-menu-editor-all .gm-editor-switcher {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0 0 12px 0;
    position: sticky;
    top: 10px;
    z-index: 1200;
    background: #f9f9f9;
    padding: 10px;
    border: 1px solid #ddd;
}

.gestione-menu-editor-all .gm-editor-switch-button.is-active {
    background: #2271b1;
    color: #fff;
    border-color: #2271b1;
}

.gestione-menu-editor-all .gm-editor-panel {
    display: none;
}

.gestione-menu-editor-all .gm-editor-panel.is-active {
    display: block;
}

.gestione-menu-editor-all .gm-editor-switch-select {
    display: none;
    flex-grow: 1;
}

@media (max-width: 768px) {
    .gestione-menu-editor-all .gm-editor-switch-buttons {
        display: none !important;
    }
    .gestione-menu-editor-all .gm-editor-switch-select {
        display: block !important;
    }
}

/* Fix per evitare che il popup dei media scompagini la pagina */
body.modal-open {
    overflow: hidden;
}

/* Regole drastiche per nascondere riferimenti alla Media Library quando il popup è aperto */
body.menu-media-restricted .media-menu,
body.menu-media-restricted .media-router,
body.menu-media-restricted .media-toolbar-secondary,
body.menu-media-restricted .attachments-browser .media-toolbar,
body.menu-media-restricted .media-sidebar {
    display: none !important;
}

/* Nasconde tutti gli item del menu */
body.menu-media-restricted .media-menu-item {
    display: none !important;
}

/* Mostra solo quelli che servono (gestito via JS ma rinforzato qui se possibile) */
body.menu-media-restricted .media-menu-item.active {
    display: block !important;
}

/* Assicura che l'area di upload occupi tutto lo spazio */
body.menu-media-restricted .media-frame-content {
    left: 0 !important;
    right: 0 !important;
}

/* Assicura che il selettore media sia sopra altri elementi del tema */
.media-modal {
    z-index: 999999 !important;
}

.media-modal-backdrop {
    z-index: 999998 !important;
}

@media (max-width: 768px) {
    .gestione-menu-editor .row-extra-field-label,
    .gestione-menu-editor-all .row-extra-field-label {
        font-size: 0 !important;
        line-height: 0 !important;
        margin-bottom: 0 !important;
    }
    .gestione-menu-editor .row-extra-field-label br,
    .gestione-menu-editor .row-extra-field-label-text,
    .gestione-menu-editor-all .row-extra-field-label br,
    .gestione-menu-editor-all .row-extra-field-label-text {
        display: none !important;
    }
    .gestione-menu-editor .row-extra-field-label input,
    .gestione-menu-editor .row-extra-field-label select,
    .gestione-menu-editor-all .row-extra-field-label input,
    .gestione-menu-editor-all .row-extra-field-label select {
        font-size: 16px !important;
        line-height: 1.35 !important;
    }
    .menu-row {
        padding-left: 10px;
        padding-right: 10px;
    }

    .row-sort-handle {
        display: none;
    }

    .gestione-menu-editor .sections-nav-buttons {
        display: none !important;
    }

    .gestione-menu-editor .sections-nav-select {
        display: block !important;
    }
    .gestione-menu-editor[data-has-configured-sections="no"] .sections-nav-select {
        display: none !important;
    }

    .gestione-menu-editor .sections-nav {
        padding: 8px !important;
        gap: 6px !important;
    }

    .gestione-menu-editor .section-jump-select,
    .gestione-menu-editor-all .gm-editor-switch-dropdown {
        font-size: 14px;
        padding: 6px 8px;
    }

    .toggle-section-btn.button {
        padding: 4px 8px !important;
        min-width: 36px;
        font-size: 12px;
        line-height: 1.1;
    }

    .sections-nav .button,
    .save-all-rows-trigger.button {
        padding: 6px 10px !important;
        font-size: 13px !important;
    }

    .row-compact {
        gap: 6px;
    }

    .row-compact-title,
    .row-compact-price {
        font-size: 12px;
    }

    .row-compact-controls .button,
    .row-compact-controls .row-sort-handle {
        min-width: 34px;
        height: 28px;
    }

    .row-delete-compact-mobile {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: auto;
        height: auto;
        padding: 0 6px;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.1;
    }

    .row-compact-controls .row-move-up,
    .row-compact-controls .row-move-down {
        display: inline-flex !important;
    }

    .row-compact-controls .button {
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        padding: 0 6px !important;
        min-width: auto;
        height: auto;
        line-height: 1.1;
        color: #2271b1 !important;
        font-weight: 700;
    }

    .row-compact-controls .row-sort-handle {
        background: transparent !important;
        border: 0 !important;
        padding: 0 6px !important;
        min-width: auto;
        height: auto;
        color: #2271b1 !important;
        font-weight: 700;
    }

    .gestione-menu-container .gm-filters-toggle {
        display: flex !important;
        width: 100% !important;
        align-items: center !important;
        justify-content: space-between !important;
        background: #ffffff !important;
        border: none !important;
        border-radius: 10px !important;
        padding: 12px 14px !important;
        box-shadow: none !important;
        pointer-events: auto !important;
        cursor: pointer !important;
        font-size: 1rem !important;
        font-weight: 700 !important;
        color: #1f2937 !important;
    }

    .gestione-menu-container .gestione-menu-public .menu-filters.is-collapsible .menu-filters-toggle,
    .gestione-menu-container.only-filters .menu-filters.is-collapsible .menu-filters-toggle,
    .gestione-menu-public .menu-filters-toggle,
    .only-filters .menu-filters-toggle {
        background: #ffffff;
        border: none !important;
        border-radius: 10px !important;
        padding: 12px 14px !important;
        box-shadow: none !important;
        pointer-events: auto !important;
        cursor: pointer !important;
        font-size: 1rem !important;
        font-weight: 700 !important;
        color: #1f2937 !important;
    }

    .gestione-menu-public .menu-filters-toggle:active,
    .only-filters .menu-filters-toggle:active {
        transform: translateY(1px);
    }

    .gestione-menu-public .toggle-caret,
    .only-filters .toggle-caret {
        font-size: 18px;
        font-weight: 700;
    }

    .gestione-menu-public .menu-allergens-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }

    .gestione-menu-public .menu-dietary {
        margin-left: 0;
    }

    .gestione-menu-container .gestione-menu-public .menu-item,
    .gestione-menu-container.only-filters .menu-item,
    .gestione-menu-public .menu-item {
        flex-direction: column;
        gap: 5px;
    }
    
    .gestione-menu-container .gestione-menu-public .menu-header,
    .gestione-menu-container.only-filters .menu-header,
    .gestione-menu-container .gm-menu-header,
    .gestione-menu-public .menu-header {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: flex-start !important;
        gap: 8px !important;
        flex-wrap: nowrap !important;
        width: 100% !important;
    }

    .gestione-menu-container .gestione-menu-public .menu-title,
    .gestione-menu-container.only-filters .menu-title,
    .gestione-menu-container .gm-menu-title,
    .gestione-menu-public .menu-title {
        min-width: 0;
        flex: 1 1 auto !important;
        width: auto !important;
        margin-right: 0 !important;
    }

    .gestione-menu-container .gestione-menu-public .menu-dots,
    .gestione-menu-container.only-filters .menu-dots,
    .gestione-menu-container .gm-menu-dots,
    .gestione-menu-public .menu-dots {
        display: block !important;
        flex: 1 1 auto !important;
        min-width: 18px !important;
        height: 0 !important;
        margin: 0 8px 6px !important;
        border-bottom: 1px dotted rgba(120, 120, 120, 0.45) !important;
        align-self: center !important;
    }

    .gestione-menu-container .gestione-menu-public .menu-price,
    .gestione-menu-container.only-filters .menu-price,
    .gestione-menu-container .gm-menu-price,
    .gestione-menu-public .menu-price {
        margin-left: auto !important;
        text-align: right !important;
        flex: 0 0 auto !important;
        align-self: flex-start !important;
        white-space: nowrap !important;
        display: inline-flex !important;
    }

    .gestione-menu-public .menu-content,
    .gestione-menu-public .menu-image {
        flex: 0 0 100%;
        max-width: 100%;
        width: 100%;
    }

    .gestione-menu-public .menu-body-with-image {
        display: block;
    }

    .gestione-menu-public .menu-description {
        text-align: left;
    }
}

/* Lingua: mostra italiano di default, inglese a richiesta */
.gestione-menu-public .menu-description-en { display: none !important; }
.gestione-menu-public .label-en, 
.gestione-menu-public .allergen-name-en, 
.gestione-menu-public .allergen-icon-en, 
.gestione-menu-public .allergen-sep-en,
.gm-macro-buttons-dropdown-wrap-classic .label-en,
.menu-filters .label-en, 
.menu-filters .allergen-name-en, 
.menu-item-novita .label-en,
.menu-item-giorno .label-en { display: none !important; }

.gestione-menu-public.lang-en .menu-description { display: none !important; }
.gestione-menu-public.lang-en .menu-description-en { display: block !important; }

.gestione-menu-public.lang-en .label-it, 
.gestione-menu-public.lang-en .allergen-name-it, 
.gestione-menu-public.lang-en .allergen-icon-it, 
.gestione-menu-public.lang-en .allergen-sep-it,
.gm-macro-buttons-dropdown-wrap-classic.lang-en .label-it,
.gestione-menu-public.lang-en .menu-item-novita .label-it,
.gestione-menu-public.lang-en .menu-item-giorno .label-it,
.menu-filters.lang-en .label-it, 
.menu-filters.lang-en .allergen-name-it { display: none !important; }

.gestione-menu-public.lang-en .label-en, 
.gestione-menu-public.lang-en .allergen-name-en, 
.gestione-menu-public.lang-en .allergen-icon-en, 
.gestione-menu-public.lang-en .allergen-sep-en,
.gm-macro-buttons-dropdown-wrap-classic.lang-en .label-en,
.gestione-menu-public.lang-en .menu-item-novita .label-en,
.gestione-menu-public.lang-en .menu-item-giorno .label-en,
.menu-filters.lang-en .label-en, 
.menu-filters.lang-en .allergen-name-en { display: inline !important; }

/* Lingua robusta: usa sempre lo stato corrente del container, senza dipendere dagli inline style JS */
.gestione-menu-public[data-current-lang="it"] .label-en,
.gestione-menu-public[data-current-lang="it"] .allergen-name-en,
.gestione-menu-public[data-current-lang="it"] .allergen-icon-en,
.gestione-menu-public[data-current-lang="it"] .allergen-sep-en,
.gm-macro-buttons-dropdown-wrap-classic[data-current-lang="it"] .label-en,
.gestione-menu-container[data-current-lang="it"] .label-en,
.gestione-menu-container[data-current-lang="it"] .allergen-name-en,
.gestione-menu-container[data-current-lang="it"] .allergen-icon-en,
.gestione-menu-container[data-current-lang="it"] .allergen-sep-en,
.gm-macro-buttons-container[data-current-lang="it"] .label-en,
.independent-extra-filters[data-current-lang="it"] .label-en,
.menu-filters[data-current-lang="it"] .label-en,
.menu-filters[data-current-lang="it"] .allergen-name-en {
    display: none !important;
}

.gestione-menu-public[data-current-lang="it"] .label-it,
.gestione-menu-public[data-current-lang="it"] .allergen-name-it,
.gestione-menu-public[data-current-lang="it"] .allergen-icon-it,
.gestione-menu-public[data-current-lang="it"] .allergen-sep-it,
.gm-macro-buttons-dropdown-wrap-classic[data-current-lang="it"] .label-it,
.gestione-menu-container[data-current-lang="it"] .label-it,
.gestione-menu-container[data-current-lang="it"] .allergen-name-it,
.gestione-menu-container[data-current-lang="it"] .allergen-icon-it,
.gestione-menu-container[data-current-lang="it"] .allergen-sep-it,
.gm-macro-buttons-container[data-current-lang="it"] .label-it,
.independent-extra-filters[data-current-lang="it"] .label-it,
.menu-filters[data-current-lang="it"] .label-it,
.menu-filters[data-current-lang="it"] .allergen-name-it {
    display: inline !important;
}

.gestione-menu-public[data-current-lang="it"] .menu-description {
    display: block !important;
}

.gestione-menu-container[data-current-lang="it"] .menu-description {
    display: block !important;
}

.gestione-menu-public[data-current-lang="it"] .menu-description-en {
    display: none !important;
}

.gestione-menu-container[data-current-lang="it"] .menu-description-en {
    display: none !important;
}

.menu-legend[data-current-lang="it"] .label-en,
.menu-legend[data-current-lang="it"] .allergen-name-en,
.menu-legend[data-current-lang="it"] .allergen-icon-en,
.menu-legend[data-current-lang="it"] .allergen-sep-en {
    display: none !important;
}

.menu-legend[data-current-lang="it"] .label-it,
.menu-legend[data-current-lang="it"] .allergen-name-it,
.menu-legend[data-current-lang="it"] .allergen-icon-it,
.menu-legend[data-current-lang="it"] .allergen-sep-it {
    display: inline !important;
}

.gestione-menu-public[data-current-lang="en"] .label-it,
.gestione-menu-public[data-current-lang="en"] .allergen-name-it,
.gestione-menu-public[data-current-lang="en"] .allergen-icon-it,
.gestione-menu-public[data-current-lang="en"] .allergen-sep-it,
.gm-macro-buttons-dropdown-wrap-classic[data-current-lang="en"] .label-it,
.gestione-menu-container[data-current-lang="en"] .label-it,
.gestione-menu-container[data-current-lang="en"] .allergen-name-it,
.gestione-menu-container[data-current-lang="en"] .allergen-icon-it,
.gestione-menu-container[data-current-lang="en"] .allergen-sep-it,
.gm-macro-buttons-container[data-current-lang="en"] .label-it,
.independent-extra-filters[data-current-lang="en"] .label-it,
.menu-filters[data-current-lang="en"] .label-it,
.menu-filters[data-current-lang="en"] .allergen-name-it {
    display: none !important;
}

.gestione-menu-public[data-current-lang="en"] .label-en,
.gestione-menu-public[data-current-lang="en"] .allergen-name-en,
.gestione-menu-public[data-current-lang="en"] .allergen-icon-en,
.gestione-menu-public[data-current-lang="en"] .allergen-sep-en,
.gm-macro-buttons-dropdown-wrap-classic[data-current-lang="en"] .label-en,
.gestione-menu-container[data-current-lang="en"] .label-en,
.gestione-menu-container[data-current-lang="en"] .allergen-name-en,
.gestione-menu-container[data-current-lang="en"] .allergen-icon-en,
.gestione-menu-container[data-current-lang="en"] .allergen-sep-en,
.gm-macro-buttons-container[data-current-lang="en"] .label-en,
.independent-extra-filters[data-current-lang="en"] .label-en,
.menu-filters[data-current-lang="en"] .label-en,
.menu-filters[data-current-lang="en"] .allergen-name-en {
    display: inline !important;
}

.gestione-menu-public[data-current-lang="en"] .menu-description {
    display: none !important;
}

.gestione-menu-container[data-current-lang="en"] .menu-description {
    display: none !important;
}

.gestione-menu-public[data-current-lang="en"] .menu-description-en {
    display: block !important;
}

.gestione-menu-container[data-current-lang="en"] .menu-description-en {
    display: block !important;
}

.menu-legend[data-current-lang="en"] .label-it,
.menu-legend[data-current-lang="en"] .allergen-name-it,
.menu-legend[data-current-lang="en"] .allergen-icon-it,
.menu-legend[data-current-lang="en"] .allergen-sep-it {
    display: none !important;
}

.menu-legend[data-current-lang="en"] .label-en,
.menu-legend[data-current-lang="en"] .allergen-name-en,
.menu-legend[data-current-lang="en"] .allergen-icon-en,
.menu-legend[data-current-lang="en"] .allergen-sep-en {
    display: inline !important;
}

/* Desktop: mostra solo icone allergeni (nomi solo su mobile) */
@media (min-width: 769px) {
    .gestione-menu-container .gestione-menu-public .menu-allergens .allergen-name-it,
    .gestione-menu-container .gestione-menu-public .menu-allergens .allergen-name-en,
    .gestione-menu-container .gestione-menu-public .menu-allergens .allergen-sep-it,
    .gestione-menu-container .gestione-menu-public .menu-allergens .allergen-sep-en,
    .gestione-menu-container .gestione-menu-public .menu-dietary .allergen-name-it,
    .gestione-menu-container .gestione-menu-public .menu-dietary .allergen-name-en {
        display: none !important;
    }
}

/* Toggle lingua UI */
.gestione-menu-lang-container {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 0 10px;
}

.gestione-menu-lang-container .menu-lang-toggle,
.gestione-menu-public .menu-lang-toggle,
.only-filters .menu-lang-toggle {
    display: flex;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 10px;
}

/* Base width guards (indipendenti da tema/page builder) */
.gestione-menu-container,
.gestione-menu-lang-container,
.gm-macro-buttons-container {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* Guard contro override esterni che forzano fit-content o shrink */
.gestione-menu-container .gestione-menu-public,
.gestione-menu-container .gestione-menu-public .menu-items-container,
.gestione-menu-container .gestione-menu-public .menu-section,
.gestione-menu-container .gestione-menu-public .menu-item,
.gestione-menu-container .gestione-menu-public .menu-header,
.gestione-menu-container .gestione-menu-public .menu-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.gestione-menu-container,
.gestione-menu-public,
.gestione-menu-public .menu-items-container,
.gestione-menu-public .menu-section,
.gestione-menu-public .menu-item,
.gestione-menu-public .menu-header,
.gestione-menu-public .menu-title,
.gestione-menu-public .menu-content,
.gestione-menu-public .menu-extra-fields,
.gestione-menu-public .menu-extra-field,
.gestione-menu-public .menu-description,
.gestione-menu-public .menu-description-en,
.gestione-menu-public .menu-cantina {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.gestione-menu-public .menu-title,
.gestione-menu-public .menu-description,
.gestione-menu-public .menu-description-en,
.gestione-menu-public .menu-extra-field,
.gestione-menu-public .menu-cantina,
.gestione-menu-public .menu-section-title {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* Shield frontend: base tipografica e reset locale per isolare il plugin dal tema */
.gestione-menu-container.gm-css-shield,
.gestione-menu-lang-container.gm-css-shield,
.gm-macro-buttons-container.gm-css-shield {
    --gm-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --gm-text-color: #1f2937;
    font-family: var(--gm-font-family) !important;
    font-size: 16px;
    line-height: 1.45;
    color: var(--gm-text-color) !important;
    text-transform: none;
    letter-spacing: normal;
    text-shadow: none;
    isolation: isolate;
}

/* Stacking order: side-tab allergeni e switch lingua devono stare sopra
   ai contenitori generati da altri shortcode menu_* che usano gm-css-shield. */
.gestione-menu-container.gm-css-shield:has(.menu-filters.gm-filters-side-tab),
.gestione-menu-lang-container.gm-css-shield {
    position: relative;
    z-index: 40;
}

.gestione-menu-container.gm-css-shield:has(.menu-filters.gm-filters-side-tab) .menu-filters.gm-filters-side-tab {
    z-index: 99990 !important;
}

.gestione-menu-lang-container.gm-css-shield .menu-lang-toggle,
.gestione-menu-lang-container.gm-css-shield .menu-lang-toggle-dropdown,
.gestione-menu-lang-container.gm-css-shield .language-dropdown-menu {
    z-index: 99991 !important;
}

.gm-css-shield.gm-breakout {
    --gm-breakout-vw: 100vw;
    width: var(--gm-breakout-vw) !important;
    max-width: var(--gm-breakout-vw) !important;
    min-width: 0 !important;
    margin-left: calc(50% - (var(--gm-breakout-vw) / 2)) !important;
    margin-right: calc(50% - (var(--gm-breakout-vw) / 2)) !important;
}

@supports (width: 100dvw) {
    .gm-css-shield.gm-breakout {
        --gm-breakout-vw: 100dvw;
    }
}

.gestione-menu-container.gm-css-shield *,
.gestione-menu-lang-container.gm-css-shield *,
.gm-macro-buttons-container.gm-css-shield * {
    box-sizing: border-box !important;
}

.gestione-menu-container.gm-css-shield :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure) {
    margin: 0;
    padding: 0;
    font-family: inherit;
    color: inherit;
}

.gestione-menu-container.gm-css-shield :where(a, button, input, select, textarea),
.gestione-menu-lang-container.gm-css-shield :where(a, button, input, select, textarea),
.gm-macro-buttons-container.gm-css-shield :where(a, button, input, select, textarea) {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    letter-spacing: normal;
    text-transform: none;
}

@media (max-width: 768px) {
    /* Shortcode widget + HTML / Text editor (nessun .elementor-shortcode) + container generico */
    .elementor-widget-shortcode:has(> .elementor-shortcode > .gestione-menu-container.gm-css-shield),
    .elementor-widget-shortcode:has(> .elementor-shortcode > .gestione-menu-lang-container.gm-css-shield),
    .elementor-widget-shortcode:has(> .elementor-shortcode > .gm-macro-buttons-container.gm-css-shield),
    .elementor-widget-shortcode:has(.gestione-menu-container.gm-css-shield),
    .elementor-widget-shortcode:has(.gestione-menu-lang-container.gm-css-shield),
    .elementor-widget-shortcode:has(.gm-macro-buttons-container.gm-css-shield),
    .elementor-widget-html:has(.gestione-menu-container.gm-css-shield),
    .elementor-widget-html:has(.gestione-menu-lang-container.gm-css-shield),
    .elementor-widget-html:has(.gm-macro-buttons-container.gm-css-shield),
    .elementor-widget-text-editor:has(.gestione-menu-container.gm-css-shield),
    .elementor-widget-text-editor:has(.gestione-menu-lang-container.gm-css-shield),
    .elementor-widget-text-editor:has(.gm-macro-buttons-container.gm-css-shield),
    .elementor-widget-container:has(> .elementor-shortcode > .gestione-menu-container.gm-css-shield),
    .elementor-widget-container:has(> .elementor-shortcode > .gestione-menu-lang-container.gm-css-shield),
    .elementor-widget-container:has(> .elementor-shortcode > .gm-macro-buttons-container.gm-css-shield),
    .elementor-widget-container:has(> .gestione-menu-container.gm-css-shield),
    .elementor-widget-container:has(> .gestione-menu-lang-container.gm-css-shield),
    .elementor-widget-container:has(> .gm-macro-buttons-container.gm-css-shield),
    .elementor-widget-container:has(.gestione-menu-container.gm-css-shield),
    .elementor-widget-container:has(.gestione-menu-lang-container.gm-css-shield),
    .elementor-widget-container:has(.gm-macro-buttons-container.gm-css-shield),
    .elementor-shortcode:has(> .gestione-menu-container.gm-css-shield),
    .elementor-shortcode:has(> .gestione-menu-lang-container.gm-css-shield),
    .elementor-shortcode:has(> .gm-macro-buttons-container.gm-css-shield) {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex-basis: 100% !important;
        flex-grow: 1 !important;
        flex-shrink: 1 !important;
        align-self: stretch !important;
        box-sizing: border-box !important;
    }

    /* Flex / colonne Elementor: no display:block. Variabili boxed + larghezza per ogni sezione (no imbuto sui blocchi successivi) */
    .e-con:has(.gestione-menu-container.gm-css-shield),
    .e-con:has(.gestione-menu-lang-container.gm-css-shield),
    .e-con:has(.gm-macro-buttons-container.gm-css-shield),
    .e-con.e-con-boxed:has(.gestione-menu-container.gm-css-shield),
    .e-con.e-con-boxed:has(.gestione-menu-lang-container.gm-css-shield),
    .e-con.e-con-boxed:has(.gm-macro-buttons-container.gm-css-shield),
    .e-con-inner:has(.gestione-menu-container.gm-css-shield),
    .e-con-inner:has(.gestione-menu-lang-container.gm-css-shield),
    .e-con-inner:has(.gm-macro-buttons-container.gm-css-shield),
    .elementor-column:has(.gestione-menu-container.gm-css-shield),
    .elementor-column:has(.gestione-menu-lang-container.gm-css-shield),
    .elementor-column:has(.gm-macro-buttons-container.gm-css-shield),
    .elementor-top-section:has(.gestione-menu-container.gm-css-shield),
    .elementor-top-section:has(.gestione-menu-lang-container.gm-css-shield),
    .elementor-top-section:has(.gm-macro-buttons-container.gm-css-shield),
    .elementor-section:has(.gestione-menu-container.gm-css-shield),
    .elementor-section:has(.gestione-menu-lang-container.gm-css-shield),
    .elementor-section:has(.gm-macro-buttons-container.gm-css-shield),
    .elementor-inner-section:has(.gestione-menu-container.gm-css-shield),
    .elementor-inner-section:has(.gestione-menu-lang-container.gm-css-shield),
    .elementor-inner-section:has(.gm-macro-buttons-container.gm-css-shield),
    .elementor-row:has(.gestione-menu-container.gm-css-shield),
    .elementor-row:has(.gestione-menu-lang-container.gm-css-shield),
    .elementor-row:has(.gm-macro-buttons-container.gm-css-shield),
    .elementor-element:has(.gestione-menu-container.gm-css-shield),
    .elementor-element:has(.gestione-menu-lang-container.gm-css-shield),
    .elementor-element:has(.gm-macro-buttons-container.gm-css-shield) {
        --container-max-width: 100% !important;
        --width: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        --align-items: stretch !important;
        align-items: stretch !important;
    }

    /* Widget shortcode/HTML come flex item a tutta larghezza della riga (evita colonna stretta) */
    .e-con-inner:has(.gestione-menu-container.gm-css-shield) > .elementor-element.elementor-widget-shortcode,
    .e-con-inner:has(.gestione-menu-container.gm-css-shield) > .elementor-element.elementor-widget-html,
    .e-con-inner:has(.gestione-menu-lang-container.gm-css-shield) > .elementor-element.elementor-widget-shortcode,
    .e-con-inner:has(.gestione-menu-lang-container.gm-css-shield) > .elementor-element.elementor-widget-html,
    .e-con-inner:has(.gm-macro-buttons-container.gm-css-shield) > .elementor-element.elementor-widget-shortcode,
    .e-con-inner:has(.gm-macro-buttons-container.gm-css-shield) > .elementor-element.elementor-widget-html {
        flex: 1 1 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        align-self: stretch !important;
    }

    /* display:block sui container flex Elementor (e-con / e-con-inner) rompe il layout e restringe i figli */
    .gm-host-stretch {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex-basis: 100% !important;
        flex-grow: 1 !important;
        flex-shrink: 1 !important;
        align-self: stretch !important;
        box-sizing: border-box !important;
    }

    .gm-host-stretch:not(.e-con):not(.e-con-inner):not(.e-flex) {
        display: block !important;
    }

    .gm-host-stretch.e-con,
    .gm-host-stretch.e-con-inner,
    .gm-host-stretch.elementor-element {
        align-items: stretch !important;
        --align-items: stretch !important;
    }

    .gestione-menu-container.gm-css-shield,
    .gestione-menu-lang-container.gm-css-shield,
    .gm-macro-buttons-container.gm-css-shield {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex-basis: 100% !important;
        align-self: stretch !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .elementor-widget-shortcode .elementor-shortcode > .gestione-menu-container.gm-css-shield,
    .elementor-widget-shortcode .elementor-shortcode > .gestione-menu-lang-container.gm-css-shield,
    .elementor-widget-shortcode .elementor-shortcode > .gm-macro-buttons-container.gm-css-shield,
    .elementor-widget-container > .gestione-menu-container.gm-css-shield,
    .elementor-widget-container > .gestione-menu-lang-container.gm-css-shield,
    .elementor-widget-container > .gm-macro-buttons-container.gm-css-shield {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .elementor-widget-shortcode .elementor-shortcode > .gestione-menu-container.gm-css-shield.gestione-menu-public,
    .elementor-widget-container > .gestione-menu-container.gm-css-shield.gestione-menu-public {
        padding-top: 0 !important;
        padding-bottom: 12px !important;
    }

    .gestione-menu-container .gestione-menu-public,
    .gestione-menu-container .gestione-menu-public .menu-items-container,
    .gestione-menu-container .gestione-menu-public .menu-section,
    .gestione-menu-container .gestione-menu-public .menu-item,
    .gestione-menu-container .gestione-menu-public .menu-header,
    .gestione-menu-container .gestione-menu-public .gm-menu-header,
    .gestione-menu-container .gestione-menu-public .menu-title,
    .gestione-menu-container .gestione-menu-public .gm-menu-title,
    .gestione-menu-container .gestione-menu-public .menu-content,
    .gestione-menu-container .gestione-menu-public .menu-extra-fields,
    .gestione-menu-container .gestione-menu-public .menu-extra-field,
    .gestione-menu-container .gestione-menu-public .menu-description,
    .gestione-menu-container .gestione-menu-public .menu-description-en,
    .gestione-menu-container .gestione-menu-public .menu-cantina,
    .gestione-menu-container .gestione-menu-public .menu-body-with-image,
    .gestione-menu-public,
    .gestione-menu-public .menu-items-container,
    .gestione-menu-public .menu-section,
    .gestione-menu-public .menu-item,
    .gestione-menu-public .menu-header,
    .gestione-menu-public .gm-menu-header,
    .gestione-menu-public .menu-title,
    .gestione-menu-public .gm-menu-title,
    .gestione-menu-public .menu-content,
    .gestione-menu-public .menu-extra-fields,
    .gestione-menu-public .menu-extra-field,
    .gestione-menu-public .menu-description,
    .gestione-menu-public .menu-description-en,
    .gestione-menu-public .menu-cantina,
    .gestione-menu-public .menu-body-with-image {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    .gestione-menu-container .gestione-menu-public .menu-title,
    .gestione-menu-container .gestione-menu-public .gm-menu-title,
    .gestione-menu-public .menu-title,
    .gestione-menu-public .gm-menu-title {
        display: block !important;
        flex: 1 1 100% !important;
        align-self: stretch !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .gestione-menu-container .gestione-menu-public .menu-content,
    .gestione-menu-public .menu-content {
        align-items: stretch !important;
    }

    .gestione-menu-container .gestione-menu-public .menu-description,
    .gestione-menu-container .gestione-menu-public .menu-description-en,
    .gestione-menu-container .gestione-menu-public .menu-extra-field,
    .gestione-menu-container .gestione-menu-public .menu-cantina,
    .gestione-menu-public .menu-description,
    .gestione-menu-public .menu-description-en,
    .gestione-menu-public .menu-extra-field,
    .gestione-menu-public .menu-cantina {
        display: block !important;
        text-align: left !important;
    }
}

.gestione-menu-lang-container .language-toggle-button,
.gestione-menu-public .language-toggle-button,
.only-filters .language-toggle-button,
.gestione-menu-lang-container .language-dropdown-toggle,
.gestione-menu-public .language-dropdown-toggle,
.only-filters .language-dropdown-toggle {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 6px 12px;
    cursor: pointer;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.gestione-menu-lang-container .language-toggle-button:hover,
.gestione-menu-public .language-toggle-button:hover,
.only-filters .language-toggle-button:hover,
.gestione-menu-lang-container .language-dropdown-toggle:hover,
.gestione-menu-public .language-dropdown-toggle:hover,
.only-filters .language-dropdown-toggle:hover,
.gestione-menu-lang-container .language-dropdown-option:hover,
.gestione-menu-public .language-dropdown-option:hover,
.only-filters .language-dropdown-option:hover { background: #f7f7f7; }

.language-toggle-button .language-flag,
.language-dropdown-toggle .language-flag,
.language-dropdown-option .language-flag {
    font-size: 20px;
    line-height: 1;
}

.language-toggle-button .language-flag-image,
.language-dropdown-toggle .language-flag-image,
.language-dropdown-option .language-flag-image {
    width: 20px;
    height: 20px;
    object-fit: cover;
    display: inline-block;
    border-radius: 999px;
}

.menu-lang-toggle {
    position: relative;
    z-index: 20;
}

.menu-lang-toggle-dropdown {
    position: relative;
    flex-direction: column;
    align-items: center;
    isolation: isolate;
    z-index: 21;
}

.language-dropdown-toggle {
    all: unset;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    font-family: inherit !important;
    font-size: 14px !important;
    font-style: normal !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    text-transform: inherit !important;
    text-decoration: none !important;
    color: inherit !important;
    text-shadow: none !important;
    justify-content: center;
    vertical-align: middle;
    background: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    padding: 6px 12px !important;
    margin: 0 !important;
    min-width: 0;
    cursor: pointer;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    white-space: nowrap;
}

.language-dropdown-toggle::before,
.language-dropdown-toggle::after,
.language-dropdown-option::before,
.language-dropdown-option::after {
    content: none !important;
}

.language-dropdown-toggle:hover,
.language-dropdown-toggle:focus,
.language-dropdown-toggle:active {
    color: inherit !important;
    text-decoration: none !important;
    outline: none !important;
}

.language-dropdown-toggle:focus-visible {
    outline: 2px solid #2271b1 !important;
    outline-offset: 2px !important;
}

.language-dropdown-toggle .language-label,
.language-dropdown-option .language-label,
.language-dropdown-toggle .language-dropdown-caret {
    font: inherit !important;
    letter-spacing: normal !important;
    text-transform: inherit !important;
    color: inherit !important;
    text-decoration: none !important;
}

.language-dropdown-toggle {
    justify-content: center;
}

.language-dropdown-caret {
    font-size: 12px;
    line-height: 1;
}

.language-dropdown-menu {
    all: initial;
    box-sizing: border-box;
    font-family: inherit;
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    min-width: 100%;
    width: max-content;
    min-height: 0;
    background: #fff;
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12) !important;
    padding: 6px !important;
    margin: 0 !important;
    display: none !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    gap: 4px !important;
    white-space: normal !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 22 !important;
}

.menu-lang-toggle.is-open .language-dropdown-menu {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

.language-dropdown-option {
    all: unset;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    width: 100% !important;
    min-width: 140px;
    background: #fff !important;
    border: 0 !important;
    border-radius: 6px !important;
    padding: 6px 10px !important;
    cursor: pointer;
    font-family: inherit !important;
    font-size: 14px !important;
    font-style: normal !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    text-transform: inherit !important;
    text-decoration: none !important;
    color: inherit !important;
    box-shadow: none !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    white-space: nowrap !important;
    vertical-align: middle;
    float: none !important;
    clear: both !important;
    position: relative !important;
}

.language-dropdown-option.is-active {
    background: #f1f5f9 !important;
}

.language-dropdown-option:hover,
.language-dropdown-option:focus,
.language-dropdown-option:active {
    background: #f7f7f7 !important;
    color: inherit !important;
    text-decoration: none !important;
    outline: none !important;
}

.language-dropdown-option:focus-visible {
    outline: 2px solid #2271b1 !important;
    outline-offset: 2px !important;
}

.gestione-menu-public .diet-flex,
.only-filters .diet-flex {
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

/* Override finale desktop: nei piatti mostra solo icone allergeni/dieta, in ogni lingua */
@media (min-width: 769px) {
    .gestione-menu-public .menu-allergens .allergen-name-it,
    .gestione-menu-public .menu-allergens .allergen-name-en,
    .gestione-menu-public .menu-allergens .allergen-sep,
    .gestione-menu-public .menu-allergens .allergen-sep-it,
    .gestione-menu-public .menu-allergens .allergen-sep-en,
    .gestione-menu-public .menu-dietary .allergen-name-it,
    .gestione-menu-public .menu-dietary .allergen-name-en,
    .gestione-menu-public .menu-dietary .allergen-sep,
    .gestione-menu-public .menu-dietary .allergen-sep-it,
    .gestione-menu-public .menu-dietary .allergen-sep-en {
        display: none !important;
    }
}

/* Hard hide sezioni vuote filtrate: evita override tema/page builder */
.gestione-menu-public .menu-section.gm-hidden-by-filter {
    display: none !important;
}

.gestione-menu-public .menu-section.gm-hidden-by-filter .menu-section-title {
    display: none !important;
}

.gestione-menu-public .menu-legend.gm-hidden-by-filter,
.gestione-menu-public .gm-back-to-top-link.gm-hidden-by-filter {
    display: none !important;
}

.gestione-menu-public.gm-results-only-by-filter .menu-section,
.gestione-menu-public.gm-results-only-by-filter .gm-back-to-top-link,
.gm-macro-buttons-container.gm-results-only-by-filter {
    display: none !important;
}

.gestione-menu-public .gm-results-only-host {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

.gestione-menu-public.gm-results-source-hidden > .menu-macro-title,
.gestione-menu-public.gm-results-source-hidden > .menu-items-container {
    display: none !important;
}

.gestione-menu-public.gm-results-source-hidden-full {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.gm-global-results-host {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

.gestione-menu-public .gm-results-only-host .menu-section {
    display: block !important;
}

.gestione-menu-public .gm-results-only-host .gm-back-to-top-link {
    display: none !important;
}

.gestione-menu-public .gm-no-results-message {
    width: 100%;
    margin: 0;
    padding: 18px 0;
    text-align: left;
}

/* Se la macro e' vuota dopo i filtri attivi, nascondi anche il titolo macro */
.gestione-menu-public.gm-empty-by-filter > .menu-macro-title {
    display: none !important;
}

/* Fallback senza JS nuovo: se nessuna riga e' visibile, nasconde il titolo macro */
.gestione-menu-public.gm-hide-empty-enabled:not(:has(.menu-item:not([style*="display: none"]))) > .menu-macro-title {
    display: none !important;
}

/* ===== Fix centratura desktop e mobile quando i prezzi sono nascosti ===== */
.gestione-menu-container .gm-hide-prices-center,
.gestione-menu-public .gm-hide-prices-center {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.gestione-menu-container .gm-hide-prices-stack,
.gestione-menu-public .gm-hide-prices-stack {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.gestione-menu-container .gm-hide-prices-inline-center,
.gestione-menu-public .gm-hide-prices-inline-center {
    display: inline-flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.gestione-menu-public .gm-section-hide-prices,
.gestione-menu-public.gm-macro-hide-prices,
.gestione-menu-container .gm-section-hide-prices,
.gestione-menu-container.gm-macro-hide-prices,
.gestione-menu-public .gm-hide-prices-item,
.gestione-menu-container .gm-hide-prices-item {
    text-align: center !important;
}

.gestione-menu-public .gm-hide-prices-item,
.gestione-menu-container .gm-hide-prices-item {
    align-items: center !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

.gestione-menu-public .gm-hide-prices-item > .gm-menu-header,
.gestione-menu-container .gm-hide-prices-item > .gm-menu-header {
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
}

.gestione-menu-public .gm-hide-prices-item .gm-menu-title,
.gestione-menu-container .gm-hide-prices-item .gm-menu-title {
    flex: 0 1 auto !important;
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.gestione-menu-public .gm-hide-prices-item .menu-body-with-image,
.gestione-menu-container .gm-hide-prices-item .menu-body-with-image {
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
}

.gestione-menu-public .gm-hide-prices-item .menu-content,
.gestione-menu-container .gm-hide-prices-item .menu-content,
.gestione-menu-container.gm-macro-hide-prices .menu-content,
.gestione-menu-container .gm-section-hide-prices .menu-content {
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.gestione-menu-public .gm-hide-prices-item .menu-image,
.gestione-menu-container .gm-hide-prices-item .menu-image,
.gestione-menu-container.gm-macro-hide-prices .menu-image,
.gestione-menu-container .gm-section-hide-prices .menu-image {
    display: block !important;
    flex: 0 0 auto !important;
    align-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.gestione-menu-public .gm-hide-prices-item .menu-image img,
.gestione-menu-container .gm-hide-prices-item .menu-image img,
.gestione-menu-container.gm-macro-hide-prices .menu-image img,
.gestione-menu-container .gm-section-hide-prices .menu-image img {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.gestione-menu-public .gm-hide-prices-item .menu-body-with-image.image-pos-left,
.gestione-menu-public .gm-hide-prices-item .menu-body-with-image.image-pos-right,
.gestione-menu-container .gm-hide-prices-item .menu-body-with-image.image-pos-left,
.gestione-menu-container .gm-hide-prices-item .menu-body-with-image.image-pos-right {
    flex-direction: column !important;
    gap: 12px !important;
}

.gestione-menu-public .gm-hide-prices-item .menu-allergens-container,
.gestione-menu-container .gm-hide-prices-item .menu-allergens-container,
.gestione-menu-container.gm-macro-hide-prices .menu-allergens-container,
.gestione-menu-container .gm-section-hide-prices .menu-allergens-container {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
}

.gestione-menu-public .gm-hide-prices-item .menu-allergens-footer,
.gestione-menu-container .gm-hide-prices-item .menu-allergens-footer,
.gestione-menu-container.gm-macro-hide-prices .menu-allergens-footer,
.gestione-menu-container .gm-section-hide-prices .menu-allergens-footer,
.gestione-menu-public .gm-hide-prices-item .menu-dietary,
.gestione-menu-container .gm-hide-prices-item .menu-dietary {
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.gestione-menu-public .gm-hide-prices-section-allergens.menu-allergens,
.gestione-menu-public .gm-hide-prices-section-allergens.menu-dietary,
.gestione-menu-container .gm-hide-prices-section-allergens.menu-allergens,
.gestione-menu-container .gm-hide-prices-section-allergens.menu-dietary {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
}
/* ===== Fine fix centratura ===== */

/* ===== Shield editor frontend (indipendente dal tema) ===== */
.gestione-menu-editor,
.gestione-menu-editor-all {
    --gm-accent: #639ea6;
    --gm-accent-soft: #eaf3f4;
    --gm-text: #1f2d33;
    --gm-border: #d8e4e6;
    --gm-bg: #f7fbfb;
    color: var(--gm-text) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

.gestione-menu-editor * ,
.gestione-menu-editor-all * {
    font-family: inherit !important;
    color: inherit;
}

.gestione-menu-editor {
    background: var(--gm-bg) !important;
    border: 1px solid var(--gm-border) !important;
    border-radius: 12px !important;
    padding: 14px !important;
}

.gestione-menu-editor h3,
.gestione-menu-editor h4,
.gestione-menu-editor label,
.gestione-menu-editor p,
.gestione-menu-editor small {
    color: var(--gm-text) !important;
}

.gestione-menu-editor .sections-nav,
.gestione-menu-editor .menu-section-block,
.gestione-menu-editor .menu-row {
    background: #fff !important;
    border-color: var(--gm-border) !important;
}

.gestione-menu-editor .section-header {
    background: var(--gm-accent-soft) !important;
    border: 1px solid var(--gm-border) !important;
}

.gestione-menu-editor input[type="text"],
.gestione-menu-editor input[type="number"],
.gestione-menu-editor input[type="password"],
.gestione-menu-editor select,
.gestione-menu-editor textarea {
    background: #fff !important;
    border: 1px solid var(--gm-border) !important;
    color: var(--gm-text) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}

.gestione-menu-editor input:focus,
.gestione-menu-editor select:focus,
.gestione-menu-editor textarea:focus {
    border-color: var(--gm-accent) !important;
    outline: 2px solid rgba(99, 158, 166, 0.22) !important;
    outline-offset: 0 !important;
}

.gestione-menu-editor .button,
.gestione-menu-editor button,
.gestione-menu-editor input[type="submit"],
.gestione-menu-editor input[type="button"],
.gestione-menu-editor input[type="reset"],
.gestione-menu-editor-all .button,
.gestione-menu-editor-all button,
.gestione-menu-editor-all input[type="submit"],
.gestione-menu-editor-all input[type="button"],
.gestione-menu-editor-all input[type="reset"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    background: #fff !important;
    background-image: none !important;
    border: 1px solid var(--gm-border) !important;
    color: var(--gm-text) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    text-shadow: none !important;
    text-transform: none !important;
    font-weight: 500 !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    padding: 6px 12px !important;
    min-height: 30px !important;
    cursor: pointer !important;
    transition: all .15s ease !important;
}

.gestione-menu-editor .button:hover,
.gestione-menu-editor button:hover,
.gestione-menu-editor input[type="submit"]:hover,
.gestione-menu-editor input[type="button"]:hover,
.gestione-menu-editor input[type="reset"]:hover,
.gestione-menu-editor-all .button:hover,
.gestione-menu-editor-all button:hover,
.gestione-menu-editor-all input[type="submit"]:hover,
.gestione-menu-editor-all input[type="button"]:hover,
.gestione-menu-editor-all input[type="reset"]:hover {
    border-color: var(--gm-accent) !important;
    color: var(--gm-accent) !important;
    background: #fff !important;
    background-image: none !important;
}

.gestione-menu-editor .button.button-primary,
.gestione-menu-editor .save-all-rows-trigger.button,
.gestione-menu-editor .toggle-section-btn.button,
.gestione-menu-editor-all .button.button-primary,
.gestione-menu-editor-all .save-all-rows-trigger.button,
.gestione-menu-editor-all .toggle-section-btn.button {
    background: var(--gm-accent) !important;
    background-image: none !important;
    border-color: var(--gm-accent) !important;
    color: #fff !important;
}

.gestione-menu-editor .button.button-primary:hover,
.gestione-menu-editor .save-all-rows-trigger.button:hover,
.gestione-menu-editor .toggle-section-btn.button:hover,
.gestione-menu-editor-all .button.button-primary:hover,
.gestione-menu-editor-all .save-all-rows-trigger.button:hover,
.gestione-menu-editor-all .toggle-section-btn.button:hover {
    filter: brightness(0.95) !important;
    color: #fff !important;
}

.gestione-menu-editor .row-compact-controls .button,
.gestione-menu-editor .row-compact-controls .row-sort-handle,
.gestione-menu-editor-all .row-compact-controls .button,
.gestione-menu-editor-all .row-compact-controls .row-sort-handle {
    color: var(--gm-accent) !important;
}

.gestione-menu-editor .row-sort-handle,
.gestione-menu-editor-all .row-sort-handle {
    background: #f1f7f8 !important;
    color: var(--gm-accent) !important;
}

.gestione-menu-editor a,
.gestione-menu-editor-all a {
    color: var(--gm-accent) !important;
}
/* ===== Fine shield editor ===== */

/*
 * Rinforzo visibilità lingua: specificità alta su temi/regole mobile che forzano display (!important).
 * Copre anche FR/DE/ES (stessa logica di EN: colonna .label-en + descrizione .menu-description-en).
 */
.gestione-menu-container.gm-css-shield.gestione-menu-public[data-current-lang="it"] .label-en,
.gestione-menu-container.gm-css-shield.only-filters[data-current-lang="it"] .label-en,
.gestione-menu-container.gm-css-shield.only-extra-filters[data-current-lang="it"] .label-en,
.gestione-menu-container.gm-css-shield[data-current-lang="it"] .allergen-name-en,
.gestione-menu-container.gm-css-shield[data-current-lang="it"] .allergen-icon-en,
.gestione-menu-container.gm-css-shield[data-current-lang="it"] .allergen-sep-en,
.gm-macro-buttons-container.gm-css-shield[data-current-lang="it"] .label-en,
.independent-extra-filters[data-current-lang="it"] .label-en,
.menu-filters[data-current-lang="it"] .label-en,
.menu-filters[data-current-lang="it"] .allergen-name-en,
.menu-legend[data-current-lang="it"] .label-en,
.menu-legend[data-current-lang="it"] .allergen-name-en,
.menu-legend[data-current-lang="it"] .allergen-icon-en,
.menu-legend[data-current-lang="it"] .allergen-sep-en,
.gestione-menu-container.gm-css-shield[data-current-lang="it"] .menu-item-novita .label-en,
.gestione-menu-container.gm-css-shield[data-current-lang="it"] .menu-item-giorno .label-en {
    display: none !important;
}

.gestione-menu-container.gm-css-shield.gestione-menu-public[data-current-lang="it"] .label-it,
.gestione-menu-container.gm-css-shield.only-filters[data-current-lang="it"] .label-it,
.gestione-menu-container.gm-css-shield.only-extra-filters[data-current-lang="it"] .label-it,
.gestione-menu-container.gm-css-shield[data-current-lang="it"] .allergen-name-it,
.gestione-menu-container.gm-css-shield[data-current-lang="it"] .allergen-icon-it,
.gestione-menu-container.gm-css-shield[data-current-lang="it"] .allergen-sep-it,
.gm-macro-buttons-container.gm-css-shield[data-current-lang="it"] .label-it,
.independent-extra-filters[data-current-lang="it"] .label-it,
.menu-filters[data-current-lang="it"] .label-it,
.menu-filters[data-current-lang="it"] .allergen-name-it,
.menu-legend[data-current-lang="it"] .label-it,
.menu-legend[data-current-lang="it"] .allergen-name-it,
.menu-legend[data-current-lang="it"] .allergen-icon-it,
.menu-legend[data-current-lang="it"] .allergen-sep-it,
.gestione-menu-container.gm-css-shield[data-current-lang="it"] .menu-item-novita .label-it,
.gestione-menu-container.gm-css-shield[data-current-lang="it"] .menu-item-giorno .label-it {
    display: inline !important;
}

.gestione-menu-container.gm-css-shield.gestione-menu-public[data-current-lang="it"] .menu-description-en,
.gestione-menu-container.gm-css-shield.only-filters[data-current-lang="it"] .menu-description-en,
.gestione-menu-container.gm-css-shield.only-extra-filters[data-current-lang="it"] .menu-description-en {
    display: none !important;
}

.gestione-menu-container.gm-css-shield.gestione-menu-public[data-current-lang="it"] .menu-description,
.gestione-menu-container.gm-css-shield.only-filters[data-current-lang="it"] .menu-description,
.gestione-menu-container.gm-css-shield.only-extra-filters[data-current-lang="it"] .menu-description {
    display: block !important;
}

.gestione-menu-container.gm-css-shield.gestione-menu-public[data-current-lang]:not([data-current-lang="it"]) .label-it,
.gestione-menu-container.gm-css-shield.only-filters[data-current-lang]:not([data-current-lang="it"]) .label-it,
.gestione-menu-container.gm-css-shield.only-extra-filters[data-current-lang]:not([data-current-lang="it"]) .label-it,
.gestione-menu-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .allergen-name-it,
.gestione-menu-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .allergen-icon-it,
.gestione-menu-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .allergen-sep-it,
.gm-macro-buttons-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .label-it,
.independent-extra-filters[data-current-lang]:not([data-current-lang="it"]) .label-it,
.menu-filters[data-current-lang]:not([data-current-lang="it"]) .label-it,
.menu-filters[data-current-lang]:not([data-current-lang="it"]) .allergen-name-it,
.menu-legend[data-current-lang]:not([data-current-lang="it"]) .label-it,
.menu-legend[data-current-lang]:not([data-current-lang="it"]) .allergen-name-it,
.menu-legend[data-current-lang]:not([data-current-lang="it"]) .allergen-icon-it,
.menu-legend[data-current-lang]:not([data-current-lang="it"]) .allergen-sep-it,
.gestione-menu-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .menu-item-novita .label-it,
.gestione-menu-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .menu-item-giorno .label-it {
    display: none !important;
}

.gestione-menu-container.gm-css-shield.gestione-menu-public[data-current-lang]:not([data-current-lang="it"]) .label-en,
.gestione-menu-container.gm-css-shield.only-filters[data-current-lang]:not([data-current-lang="it"]) .label-en,
.gestione-menu-container.gm-css-shield.only-extra-filters[data-current-lang]:not([data-current-lang="it"]) .label-en,
.gestione-menu-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .allergen-name-en,
.gestione-menu-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .allergen-icon-en,
.gestione-menu-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .allergen-sep-en,
.gm-macro-buttons-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .label-en,
.independent-extra-filters[data-current-lang]:not([data-current-lang="it"]) .label-en,
.menu-filters[data-current-lang]:not([data-current-lang="it"]) .label-en,
.menu-filters[data-current-lang]:not([data-current-lang="it"]) .allergen-name-en,
.menu-legend[data-current-lang]:not([data-current-lang="it"]) .label-en,
.menu-legend[data-current-lang]:not([data-current-lang="it"]) .allergen-name-en,
.menu-legend[data-current-lang]:not([data-current-lang="it"]) .allergen-icon-en,
.menu-legend[data-current-lang]:not([data-current-lang="it"]) .allergen-sep-en,
.gestione-menu-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .menu-item-novita .label-en,
.gestione-menu-container.gm-css-shield[data-current-lang]:not([data-current-lang="it"]) .menu-item-giorno .label-en {
    display: inline !important;
}

.gestione-menu-container.gm-css-shield.gestione-menu-public[data-current-lang]:not([data-current-lang="it"]) .menu-description,
.gestione-menu-container.gm-css-shield.only-filters[data-current-lang]:not([data-current-lang="it"]) .menu-description,
.gestione-menu-container.gm-css-shield.only-extra-filters[data-current-lang]:not([data-current-lang="it"]) .menu-description {
    display: none !important;
}

.gestione-menu-container.gm-css-shield.gestione-menu-public[data-current-lang]:not([data-current-lang="it"]) .menu-description-en,
.gestione-menu-container.gm-css-shield.only-filters[data-current-lang]:not([data-current-lang="it"]) .menu-description-en,
.gestione-menu-container.gm-css-shield.only-extra-filters[data-current-lang]:not([data-current-lang="it"]) .menu-description-en {
    display: block !important;
}

/* === Ricerca libera: risultati live a tendina (desktop + mobile, stile Ajax Search Lite) === */
.free-search-filter {
    position: relative;
}
.gm-free-search-results {
    margin-top: 8px;
    max-height: 320px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
}
.gm-free-search-results[hidden] {
    display: none !important;
}
.gm-free-search-result {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 13px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.gm-free-search-result:last-child {
    border-bottom: 0;
}
.gm-free-search-result:hover,
.gm-free-search-result:active,
.gm-free-search-result:focus {
    background: rgba(0, 0, 0, 0.04);
}
.gm-free-search-result .gm-fsr-title {
    flex: 1 1 auto;
    font-weight: 600;
    line-height: 1.25;
}
.gm-free-search-result .gm-fsr-price {
    flex: 0 0 auto;
    white-space: nowrap;
    opacity: 0.85;
    font-variant-numeric: tabular-nums;
}
.gm-free-search-noresult {
    padding: 13px;
    text-align: center;
    opacity: 0.7;
}
.menu-item.gm-search-highlight {
    animation: gmSearchHighlight 2.2s ease-out;
}
@keyframes gmSearchHighlight {
    0%, 28% { background-color: rgba(255, 214, 102, 0.55); }
    100% { background-color: transparent; }
}

/* === Editor: barra "modifiche non salvate" + toast di salvataggio === */
.gm-unsaved-bar {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    z-index: 100000;
    display: none;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 14px;
    padding: 10px 16px;
    background: #b54708;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}
.gm-unsaved-bar.is-visible {
    display: flex;
}
.gm-unsaved-bar .gm-unsaved-bar-save {
    background: #fff;
    color: #b54708;
    border: 0;
    border-radius: 6px;
    padding: 6px 16px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}
.gm-unsaved-bar .gm-unsaved-bar-save:hover {
    background: #ffe9d5;
}
/* Non coprire la admin bar di WordPress */
body.admin-bar .gm-unsaved-bar {
    top: 32px;
}
@media screen and (max-width: 782px) {
    body.admin-bar .gm-unsaved-bar {
        top: 46px;
    }
}

/* Pulsante Salva evidenziato quando ci sono modifiche non salvate */
.save-all-rows-trigger.gm-has-unsaved {
    background-color: #b54708 !important;
    border-color: #b54708 !important;
    color: #fff !important;
    box-shadow: 0 0 0 3px rgba(181, 71, 8, 0.25);
    animation: gmUnsavedPulse 1.6s ease-in-out infinite;
}
@keyframes gmUnsavedPulse {
    0%, 100% { box-shadow: 0 0 0 3px rgba(181, 71, 8, 0.22); }
    50% { box-shadow: 0 0 0 7px rgba(181, 71, 8, 0.04); }
}

.gm-save-toast {
    position: fixed;
    left: 50%;
    bottom: 28px;
    transform: translateX(-50%);
    z-index: 100001;
    display: none;
    align-items: center;
    gap: 14px;
    max-width: min(92vw, 560px);
    padding: 14px 16px 14px 22px;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    text-align: left;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}
.gm-save-toast .gm-save-toast-text {
    flex: 1 1 auto;
}
.gm-save-toast .gm-save-toast-close {
    flex: 0 0 auto;
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    border: 0;
    border-radius: 6px;
    width: 30px;
    height: 30px;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}
.gm-save-toast .gm-save-toast-close:hover {
    background: rgba(255, 255, 255, 0.35);
}
.gm-save-toast-success {
    background: #1f9d55;
}
.gm-save-toast-error {
    background: #c0392b;
}
