.jm-legal-footer{width:100%!important;height:200px!important;background:#088a2d!important;color:#fff!important;position:relative!important;clear:both!important;text-align:center!important;overflow:hidden!important}.jm-legal-footer #footerInt{width:1220px!important;max-width:100%!important;margin:0 auto!important;padding:45px 8px 0!important;text-align:center!important}.jm-legal-links{display:flex!important;flex-flow:row nowrap!important;align-items:center!important;justify-content:center!important;gap:12px!important;width:100%!important;height:30px!important;margin:0!important;padding:0!important;white-space:nowrap!important}.jm-legal-links a,.jm-legal-links span{display:inline-flex!important;align-items:center!important;height:32px!important;font-size:16px!important;line-height:32px!important}.jm-legal-links a{color:#fff!important;text-decoration:none!important}.jm-footer-brand{margin:16px 0 0!important;color:#fff!important;font-size:19px!important;font-weight:700!important;text-decoration:none!important}
.venue-menu-notice{display:block!important;margin:8px 0 20px!important;padding:11px 13px!important;border:1px solid #b8b8b8!important;border-left:4px solid #858585!important;border-radius:6px!important;background:#eee!important;color:#4f4f4f!important;font-size:12px!important}.venue-contact-actions{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:4px!important;margin:7px 0 4px!important}.venue-hours-trigger,.venue-phone-trigger{display:inline-flex!important;align-items:center!important;gap:4px!important;min-height:28px!important;margin:0!important;padding:2px 0!important;border:0!important;background:transparent!important;color:#555!important;font:inherit!important;font-size:13px!important;font-weight:700!important;text-decoration:none!important}.venue-hours-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:26px!important;height:26px!important;flex:0 0 26px!important;font-size:26px!important;transform:translateY(-2px)!important}.venue-phone-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:26px!important;height:24px!important;flex:0 0 26px!important}.venue-phone-trigger>span:last-child{color:#555!important}
.venue-menu-hours-modal[hidden]{display:none!important}.venue-menu-hours-modal{position:fixed!important;z-index:100001!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:20px!important}.venue-menu-hours-backdrop{position:absolute!important;inset:0!important;background:rgba(255,255,255,.92)!important}.venue-menu-hours-dialog{position:relative!important;z-index:1!important;width:min(520px,calc(100vw - 36px))!important;max-height:calc(100vh - 40px)!important;overflow:auto!important;padding:25px!important;border:1px solid rgba(8,138,45,.4)!important;border-radius:12px!important;background:#fff!important}.venue-menu-hours-table{width:100%!important;border-collapse:collapse!important}.venue-menu-hours-table th,.venue-menu-hours-table td{padding:9px 6px!important;border-bottom:1px solid #ddd!important;text-align:left!important}
.venue-card .see-menu,.venue-card .see-menu span:last-child{font-size:20px!important}.venue-card .venue-info h2{font-size:22px!important}.venue-card .hours-button.is-unavailable,.venue-card .hours-button.is-unavailable .clock-icon,.venue-card .hours-button.is-unavailable>span:last-child{color:#777!important}.venue-card .venue-address{margin:0 0 7px!important}.venue-card .venue-map-link{display:inline-flex!important;align-items:center!important;gap:5px!important;color:#666!important;text-decoration:none!important}.venue-map-icon{width:22px!important;height:22px!important;flex:0 0 22px!important}.venue-map-icon svg{display:block!important;width:100%!important;height:100%!important}.venue-map-icon .map-base{fill:#b8d8f8!important}.venue-map-icon .map-land{fill:#15af67!important}.venue-map-icon .map-road{fill:#ffd447!important}.venue-map-icon .map-pin{fill:#ed1c24!important}.venue-map-icon .map-pin-hole{fill:#fff!important}.venue-card .venue-map-link .card-distance{display:inline-flex!important;margin-left:5px!important;color:#088a2d!important;font-size:12px!important;white-space:nowrap!important}.venue-page .venue-map-row{display:none!important}.venue-page .venue-category-address-row{margin:0 0 8px!important;min-height:28px!important}.venue-page .venue-category-address-map{display:inline-flex!important;align-items:center!important;gap:7px!important;min-height:28px!important;max-width:100%!important;color:#555!important;text-decoration:none!important;white-space:nowrap!important}.venue-page .venue-category-address-text{white-space:nowrap!important}
.card-phone,.venue-phone-icon{font-size:0!important;color:transparent!important;line-height:1!important}.card-phone::before,.venue-phone-icon::before{content:"☎️"!important;display:inline-block!important;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif!important;font-size:20px!important;line-height:1!important;color:initial!important}.venue-phone-trigger>span:last-child{font-size:13px!important;color:#555!important}.venue-phone-icon::before{transform:translateY(-3px)!important}
@media(max-width:600px){.jm-legal-links{gap:5px!important}.jm-legal-links a,.jm-legal-links span{font-size:15px!important}}
@media(max-width:760px){.venue-card .see-menu,.venue-card .see-menu span:last-child{font-size:16px!important}.venue-card .venue-info h2{font-size:20px!important}
/* Indirizzi lunghi: a capo senza allargare la pagina; icona centrata sulle righe */
.venue-page,.venue-page *{max-width:100%;box-sizing:border-box}.venue-page .venue-category-address-row{width:100%!important;min-width:0!important;overflow:visible!important}.venue-page .venue-category-address-map{display:flex!important;width:100%!important;max-width:100%!important;min-width:0!important;align-items:center!important;white-space:normal!important;overflow:visible!important}.venue-page .venue-category-address-map .venue-map-icon{
    align-self:center!important;
    width:25px!important;
    height:25px!important;
    flex:0 0 25px!important;
}.venue-page .venue-category-address-text{display:block!important;flex:1 1 auto!important;min-width:0!important;max-width:calc(100% - 32px)!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;line-height:1.35!important}}
@media(orientation:landscape) and (min-width:600px) and (max-width:760px){.venue-card .card-body{position:relative!important;grid-template-columns:88px minmax(0,1fr) 150px!important}.venue-card .see-menu{position:absolute!important;right:14px!important;top:50%!important;transform:translateY(-50%)!important;margin:0!important}}
@media(min-width:761px){.open-now-control{width:100%!important;max-width:920px!important;margin:0 auto 18px!important;padding:0!important;justify-content:flex-start!important}.site-nav ul,#menuTop_int>ul,#menuTop_int nav ul,.top-menu{display:flex!important;justify-content:center!important;width:100%!important}.site-nav li,#menuTop_int li,#menuTop_int nav ul li,.top-menu li{float:none!important}.privacy-consent{display:flex!important;align-items:flex-start!important;gap:8px!important;text-align:left!important}.privacy-consent span{display:block!important}.privacy-consent a{margin:0!important;padding:0!important}.privacy-consent input[type="checkbox"]{display:inline-block!important;flex:0 0 auto!important;width:auto!important;margin:3px 0 0!important}.contact-form input[type="checkbox"]{display:inline-block!important;flex:0 0 auto!important;width:auto!important;margin:3px 0 0!important}.search-card p{font-size:16px!important}}
/* Menu mobile: spazio tra navigazione e foto del locale */
@media(max-width:760px){
    .venue-page .venue-image{
        margin-top:10px!important;
    }
}
/* Mantiene invariata la dimensione dei testi ruotando il telefono */
html,
body{
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
}

/* Menu pubblico: font stabili tra portrait e landscape */
.venue-page .dish-row,
.venue-page .dish-row > div,
.venue-page .dish-row strong,
.venue-page .dish-row small,
.venue-page .dish-row > span{
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
}

@media(max-width:760px){
    .venue-page .dish-row{
        font-size:inherit!important;
    }

    .venue-page .dish-row strong,
    .venue-page .dish-row > div{
        font-size:inherit!important;
    }

    .venue-page .dish-row small{
        font-size:12px!important;
        line-height:1.35!important;
    }
}
/* Telefono ruotato: navigazione centrata */
@media (orientation: landscape)
       and (min-width: 600px)
       and (max-width: 900px) {

    .site-nav ul,
    #menuTop_int > ul,
    #menuTop_int nav ul,
    .top-menu {
        display: flex !important;
        justify-content: center !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    .site-nav li,
    #menuTop_int li,
    #menuTop_int nav ul li,
    .top-menu li {
        float: none !important;
        flex: 0 0 auto !important;
    }

    .site-nav .nav-inner,
    #menuTop_int {
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 auto !important;
    }
}

/* Risultati di ricerca: piatti corrispondenti sotto la card del locale */
.venue-result{width:100%;max-width:920px;margin:0 auto 18px}.venue-result .venue-card{margin-bottom:0!important}.matched-dishes{margin:8px 0 0;padding:0 18px;border:1px solid #d7d7d7;border-left:3px solid #088a2d;background:#fff;text-align:left}.matched-dish-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px dotted #ccc;color:#111!important;text-decoration:none!important}.matched-dish-row:last-child{border-bottom:0}.matched-dish-copy{display:block;min-width:0;flex:1 1 auto}.matched-dish-copy strong{display:block;font-size:inherit;font-weight:700;line-height:1.35}.matched-dish-copy small{display:block;margin-top:2px;color:#777;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.matched-dish-price{flex:0 0 auto;min-width:90px;text-align:right;font-weight:700;white-space:nowrap}.matched-dish-row:hover strong,.matched-dish-row:focus strong{color:#088a2d}
@media(max-width:760px){.venue-result{max-width:100%;margin-bottom:15px}.matched-dishes{margin-top:7px;padding:0 13px}.matched-dish-row{gap:12px;padding:9px 0}.matched-dish-price{min-width:auto}.matched-dish-copy,.matched-dish-copy strong,.matched-dish-copy small{-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important}}

/* Espansione delle portate corrispondenti: prime 3 visibili, tutte al clic */
.matched-dishes .matched-dish-row.is-extra{display:none}.matched-dishes.is-expanded .matched-dish-row.is-extra{display:flex}.matched-dishes-toggle{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:38px!important;margin:0!important;padding:5px 0!important;border:0!important;border-top:1px dotted #ccc!important;background:transparent!important;box-shadow:none!important;cursor:pointer!important}.matched-dishes-toggle span{display:inline-flex!important;align-items:center!important;justify-content:center!important;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif!important;font-size:21px!important;line-height:1!important}.matched-dishes-toggle:hover,.matched-dishes-toggle:focus{background:#f6fbf7!important;outline:0!important}

/* FIX FINALE LANDSCAPE: deve prevalere su tutte le regole mobile precedenti */
@media (orientation:landscape) and (min-width:560px) and (max-width:1024px){
  .venue-result .venue-card .card-body,
  .venue-card .card-body{
    position:relative!important;
    display:grid!important;
    grid-template-columns:88px minmax(0,1fr) 150px!important;
    padding-right:164px!important;
    align-items:center!important;
  }
  .venue-result .venue-card .see-menu,
  .venue-card .see-menu{
    position:absolute!important;
    right:14px!important;
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
    grid-column:auto!important;
    grid-row:auto!important;
    justify-self:auto!important;
    align-self:auto!important;
    margin:0!important;
  }
}
/* Ricerca: indicatore dinamico durante il caricamento */
.jm-search-loading{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:82px!important;
    margin:10px 0 28px!important;
}

/*
 * Indicatore circolare simile al GIF allegato.
 * I puntini vengono creati con un gradiente conico
 * e il centro viene rimosso tramite mask.
 */
.jm-dot-loader{
    position:relative!important;
    display:block!important;
    width:42px!important;
    height:42px!important;
    flex:0 0 42px!important;
    border-radius:50%!important;

    background:
        conic-gradient(
            from 0deg,
            #666 0deg 35deg,
            #777 35deg 75deg,
            #888 75deg 115deg,
            #999 115deg 155deg,
            #aaa 155deg 195deg,
            #bbb 195deg 235deg,
            #ccc 235deg 275deg,
            #aaa 275deg 315deg,
            #777 315deg 360deg
        )!important;

    -webkit-mask:
        radial-gradient(
            circle at center,
            transparent 0 10px,
            #000 11px 100%
        )!important;

    mask:
        radial-gradient(
            circle at center,
            transparent 0 10px,
            #000 11px 100%
        )!important;

    animation:
        jm-loader-spin .8s linear infinite!important;
}

@keyframes jm-loader-spin{
    to{
        transform:rotate(360deg);
    }
}

/* Animazione più lenta se il dispositivo richiede meno movimento */
@media(prefers-reduced-motion:reduce){
    .jm-dot-loader{
        animation-duration:1.8s!important;
    }
}

/* Testo leggibile dagli screen reader ma non mostrato a video */
.sr-only{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    margin:-1px!important;
    padding:0!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
}

/* Nessun risultato: leggero distacco dal footer */
[data-jm-results] > .empty:last-child,
.venue-list > .empty:last-child{
    margin-bottom:42px!important;
}
/* Stato vuoto della ricerca */
.jm-empty-state{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    max-width:920px!important;
    min-height:150px!important;
    margin:12px auto 46px!important;
    padding:24px 20px!important;
    box-sizing:border-box!important;

    border:1px solid #cbd8ce!important;
    border-left:4px solid #088a2d!important;
    border-radius:8px!important;

    background:#f7fbf8!important;
    color:#444!important;
    text-align:center!important;
}

.jm-empty-icon{
    display:block!important;
    margin:0 0 10px!important;
    font-family:
        "Apple Color Emoji",
        "Segoe UI Emoji",
        "Noto Color Emoji",
        sans-serif!important;
    font-size:27px!important;
    line-height:1!important;
}

.jm-empty-title{
    display:block!important;
    margin:0!important;
    color:#333!important;
    font-size:16px!important;
    font-weight:700!important;
    line-height:1.35!important;
}

.jm-empty-message{
    display:block!important;
    max-width:520px!important;
    margin:7px 0 0!important;
    color:#666!important;
    font-size:13px!important;
    font-weight:400!important;
    line-height:1.45!important;
}

/* Mobile */
@media(max-width:760px){
    .jm-empty-state{
        min-height:140px!important;
        margin-top:10px!important;
        margin-bottom:42px!important;
        padding:22px 16px!important;
    }

    .jm-empty-icon{
        font-size:25px!important;
    }

    .jm-empty-title{
        font-size:15px!important;
    }

    .jm-empty-message{
        max-width:290px!important;
        font-size:12px!important;
    }
}
/* Homepage: titolo e sottotitolo */
.search-card .search-title{
    font-size:clamp(25px, 3vw, 36px)!important;
    line-height:1.16!important;
    margin-bottom:7px!important;
    text-wrap:balance;
}

/* Titolo homepage: una riga quando entra,
   altrimenti ritorno a capo solo prima di "vicino a te" */
.search-card .search-title-main,
.search-card .search-title-location{
    display:inline-block!important;
    white-space:nowrap!important;
}

.search-card .search-subtitle{
    margin-top:6px!important;
    margin-bottom:18px!important;
    color:#555!important;
    font-size:17px!important;
    font-style:italic!important;
    font-weight:400!important;
    line-height:1.45!important;
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
}

/* Mobile */
@media(max-width:760px){
    .search-card .search-title{
        font-size:25px!important;
        line-height:1.16!important;
    }

    .search-card .search-subtitle{
        font-size:16px!important;
        line-height:1.4!important;
    }
}

/* Telefono e tablet ruotati */
@media(orientation:landscape)
       and (min-width:560px)
       and (max-width:1024px){

    .search-card .search-title{
        font-size:clamp(25px, 3vw, 34px)!important;
        line-height:1.16!important;
    }

    .search-card .search-subtitle{
        font-size:17px!important;
        line-height:1.45!important;
    }
}

/* Arrivo diretto alla portata dal risultato in homepage */
.venue-page .dish-row[id]{
    scroll-margin-top:90px!important;
}

/* Evidenzia il piatto raggiunto dalla ricerca senza alterare l'allineamento */
.venue-page .dish-row:target{
    background:#f1faf3!important;
    border-radius:6px!important;
    box-shadow:none!important;
    animation:jm-target-pulse 1.2s ease-out 1;
}

/* Il prezzo rimane ancorato a destra come nelle altre portate */
.venue-page .dish-row:target > span{
    margin-left:auto!important;
    text-align:right!important;
    flex:0 0 auto!important;
}

@keyframes jm-target-pulse{
    0%{
        background:#dff3e4;
    }

    100%{
        background:#f1faf3;
    }
}

@media(max-width:760px){
    .venue-page .dish-row[id]{
        scroll-margin-top:70px!important;
    }
}