.elementor-26307 .elementor-element.elementor-element-37d84a0e{--display:flex;--min-height:55px;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--gap:5px 5px;--row-gap:5px;--column-gap:5px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-26307 .elementor-element.elementor-element-37d84a0e:not(.elementor-motion-effects-element-type-background), .elementor-26307 .elementor-element.elementor-element-37d84a0e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-primary );}.elementor-26307 .elementor-element.elementor-element-7dd406f9{--display:flex;--min-height:0vh;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:35px 35px;--row-gap:35px;--column-gap:35px;--padding-top:0px;--padding-bottom:50px;--padding-left:50px;--padding-right:50px;}.elementor-26307 .elementor-element.elementor-element-7dd406f9:not(.elementor-motion-effects-element-type-background), .elementor-26307 .elementor-element.elementor-element-7dd406f9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-primary );}.elementor-26307 .elementor-element.elementor-element-7dd406f9.e-con{--align-self:center;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );color:var( --e-global-color-primary );}.elementor-26307 .elementor-element.elementor-element-611739e1 .elementor-heading-title{font-family:"Oswald", Sans-serif;font-size:30px;font-weight:500;text-transform:uppercase;color:var( --e-global-color-text );}#elementor-popup-modal-26307 .dialog-widget-content{animation-duration:1s;background-color:#FFFFFF;box-shadow:0px 0px 35px 0px rgba(0, 0, 0, 0.15);}#elementor-popup-modal-26307{background-color:#000000CC;justify-content:center;align-items:center;pointer-events:all;}#elementor-popup-modal-26307 .dialog-message{width:760px;height:auto;}#elementor-popup-modal-26307 .dialog-close-button{display:flex;}#elementor-popup-modal-26307 .dialog-close-button i{color:#FFFFFF;}#elementor-popup-modal-26307 .dialog-close-button svg{fill:#FFFFFF;}#elementor-popup-modal-26307 .dialog-close-button:hover i{color:#3AF7BD;}@media(min-width:768px){.elementor-26307 .elementor-element.elementor-element-37d84a0e{--content-width:1140px;}}@media(max-width:1366px){.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}}@media(max-width:1024px){.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}#elementor-popup-modal-26307 .dialog-message{width:680px;}}@media(max-width:767px){.elementor-26307 .elementor-element.elementor-element-37d84a0e{--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:5%;--padding-bottom:5%;--padding-left:0%;--padding-right:0%;}.elementor-26307 .elementor-element.elementor-element-7dd406f9{--padding-top:0%;--padding-bottom:05%;--padding-left:5%;--padding-right:5%;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-26307 .elementor-element.elementor-element-611739e1{text-align:center;}.elementor-26307 .elementor-element.elementor-element-611739e1 .elementor-heading-title{font-size:25px;}#elementor-popup-modal-26307 .dialog-message{width:345px;}#elementor-popup-modal-26307 .dialog-close-button{top:10px;}body:not(.rtl) #elementor-popup-modal-26307 .dialog-close-button{right:10px;}body.rtl #elementor-popup-modal-26307 .dialog-close-button{left:10px;}}/* Start custom CSS for html, class: .elementor-element-56434c0 */<!-- =====================================================
     DINTABLE BOOKING WIDGET — RED GARTER FIRENZE
     Versione anti-duplicato (incollare UNA SOLA VOLTA)
     ===================================================== -->

<style>
/* ================================================
   DINTABLE BOOKING - Stile completo + Anti-doppione
   ================================================ */

/* SAFETY NET: nasconde qualsiasi duplicato del widget */
[id="dintable-booking"] ~ [id="dintable-booking"],
.dintable-booking-wrapper ~ .dintable-booking-wrapper {
    display: none !important;
}
#dintable-booking iframe ~ iframe {
    display: none !important;
}

/* 1) CONTAINER - SFONDO TRASPARENTE */
#dintable-booking {
    background: transparent !important;
    padding: 24px;
    border-radius: 4px;
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    box-sizing: border-box;
}

/* 2) NASCONDI TITOLO E FRASE SOPRA IL CALENDARIO */
#dintable-booking h1,
#dintable-booking h2,
#dintable-booking h3,
#dintable-booking [class*="title"],
#dintable-booking [class*="heading"],
#dintable-booking [class*="subtitle"],
#dintable-booking [class*="description"],
#dintable-booking [class*="intro"] {
    display: none !important;
}

/* 3) ALLINEAMENTO GRIGLIA CALENDARIO */
#dintable-booking [class*="weekdays"],
#dintable-booking [class*="week-header"],
#dintable-booking [class*="day-names"] {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    text-align: center;
    width: 100%;
    gap: 0;
}

#dintable-booking [class*="days-grid"],
#dintable-booking [class*="dates-grid"],
#dintable-booking [class*="calendar-grid"],
#dintable-booking [class*="month-grid"],
#dintable-booking [class*="calendar"] tbody {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    width: 100%;
    gap: 0;
}

#dintable-booking [class*="day"],
#dintable-booking [class*="date"],
#dintable-booking [class*="calendar"] td,
#dintable-booking [class*="calendar"] button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
    text-align: center;
}

#dintable-booking table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}

#dintable-booking table th,
#dintable-booking table td {
    width: calc(100% / 7) !important;
    text-align: center !important;
    padding: 0 !important;
}

/* 4) NUMERI DEI GIORNI - STATO BASE GRIGIO */
#dintable-booking [class*="day"],
#dintable-booking [class*="date"],
#dintable-booking td[class*="calendar"],
#dintable-booking [class*="calendar"] button {
    color: #9a9a9a !important;
    background: transparent !important;
    transition: all 0.2s ease;
}

/* 5) HOVER GIORNI - ROSSO RED GARTER */
#dintable-booking [class*="day"]:hover,
#dintable-booking [class*="date"]:hover,
#dintable-booking td[class*="calendar"]:hover,
#dintable-booking [class*="calendar"] button:hover {
    background: #c41e3a !important;
    color: #ffffff !important;
    border-color: #c41e3a !important;
    cursor: pointer;
}

/* ================================================
   RESPONSIVE MOBILE
   ================================================ */
@media (max-width: 1024px) {
    #dintable-booking {
        max-width: 100%;
        padding: 20px 16px;
    }
}

@media (max-width: 768px) {
    #dintable-booking {
        padding: 16px 10px;
    }
    #dintable-booking [class*="weekdays"],
    #dintable-booking [class*="week-header"],
    #dintable-booking [class*="day-names"] {
        font-size: 11px;
        letter-spacing: 0.5px;
    }
    #dintable-booking [class*="day"],
    #dintable-booking [class*="date"],
    #dintable-booking [class*="calendar"] td,
    #dintable-booking [class*="calendar"] button {
        font-size: 14px;
        min-height: 38px;
    }
    #dintable-booking input,
    #dintable-booking select,
    #dintable-booking textarea {
        font-size: 16px !important;
        padding: 12px 14px;
    }
    #dintable-booking button,
    #dintable-booking [type="submit"] {
        width: 100%;
        padding: 14px 20px;
        font-size: 14px;
        letter-spacing: 1.5px;
    }
    #dintable-booking iframe {
        width: 100% !important;
        min-height: 520px;
    }
}

@media (max-width: 480px) {
    #dintable-booking {
        padding: 12px 6px;
    }
    #dintable-booking [class*="day"],
    #dintable-booking [class*="date"],
    #dintable-booking [class*="calendar"] td,
    #dintable-booking [class*="calendar"] button {
        font-size: 13px;
        min-height: 34px;
    }
    #dintable-booking [class*="weekdays"],
    #dintable-booking [class*="week-header"],
    #dintable-booking [class*="day-names"] {
        font-size: 10px;
    }
    #dintable-booking iframe {
        min-height: 480px;
    }
}

@media (max-width: 768px) and (orientation: landscape) {
    #dintable-booking iframe {
        min-height: 420px;
    }
}
</style>


<!-- DIV TARGET: solo se non esiste già nel DOM -->
<div id="dintable-booking"></div>


<script>
(function () {
    /* ================================================
       GUARD ANTI-DOPPIONE
       ================================================ */

    // 1) Se il widget è già stato inizializzato in questa pagina, esci
    if (window.__DINTABLE_LOADED__) {
        // Rimuovi eventuali div duplicati lasciando solo il primo
        var allDivs = document.querySelectorAll('#dintable-booking, [id="dintable-booking"]');
        for (var i = 1; i < allDivs.length; i++) {
            allDivs[i].parentNode.removeChild(allDivs[i]);
        }
        return;
    }
    window.__DINTABLE_LOADED__ = true;

    // 2) Se per qualche motivo nel DOM ci sono già più div con lo stesso id,
    //    rimuovi tutti tranne il primo PRIMA di caricare lo script
    var existing = document.querySelectorAll('[id="dintable-booking"]');
    if (existing.length > 1) {
        for (var j = 1; j < existing.length; j++) {
            existing[j].parentNode.removeChild(existing[j]);
        }
    }

    // 3) Se lo script di DinTable è già presente nel DOM, non ricaricarlo
    if (document.querySelector('script[src*="redgarter-firenze.dintable.com/embed/widget.js"]')) {
        return;
    }

    // 4) Carica lo script una sola volta
    var s = document.createElement('script');
    s.src = 'https://redgarter-firenze.dintable.com/embed/widget.js';
    s.dataset.apiKey = 'dk_wMJTbH7Rl6O9VcTZhJjTWKMaXj71JVwToATujuO3';
    s.dataset.target = '#dintable-booking';
    s.async = true;
    document.head.appendChild(s);

    // 5) Osservatore di sicurezza: se dopo il caricamento appare un secondo
    //    iframe o un secondo div, lo rimuove automaticamente
    var observer = new MutationObserver(function () {
        var divs = document.querySelectorAll('[id="dintable-booking"]');
        if (divs.length > 1) {
            for (var k = 1; k < divs.length; k++) {
                divs[k].parentNode.removeChild(divs[k]);
            }
        }
        var firstWidget = document.getElementById('dintable-booking');
        if (firstWidget) {
            var iframes = firstWidget.querySelectorAll('iframe');
            for (var m = 1; m < iframes.length; m++) {
                iframes[m].parentNode.removeChild(iframes[m]);
            }
        }
    });
    observer.observe(document.body, { childList: true, subtree: true });

    // Stop observer dopo 8 secondi (a quel punto il widget è già caricato)
    setTimeout(function () { observer.disconnect(); }, 8000);
})();
</script>/* End custom CSS */