/* CSS Landing Pubblica Milonga - Updated 8 Dec 2025 */
body.landing-body { 
    margin:0; 
    font-family:'Poppins',sans-serif; 
    background: linear-gradient(135deg, #0a0e14 0%, #1a1e27 50%, #0f1319 100%);
    background-size: 200% 200%;
    animation: gradientShift 15s ease infinite;
    color:#e9ecef; 
    line-height:1.5; 
    overflow-x:hidden; 
    overflow-y:scroll; 
}

/* Nascondi l'URL del link al passaggio del mouse */
a {
    cursor: pointer;
    position: relative;
}

a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

a:active,
a:visited,
a:link {
    cursor: pointer;
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
:root {
    --accent:#ff7a18;
    --accent2:#af002d;
    --grad:linear-gradient(90deg,#ff7a18,#af002d 70%);
    --nav-pill-bg:rgba(255,255,255,0.08);
    --nav-pill-hover:rgba(255,255,255,0.16);
    --nav-pill-border:rgba(255,255,255,0.18);
    --nav-pill-active:linear-gradient(120deg,#6a9bff,#b266ff);
}

/* Navbar */
.landing-nav { position:fixed; top:0; left:0; right:0; height:70px; backdrop-filter:blur(16px);
    background: linear-gradient(160deg, rgba(5,6,10,0.92) 0%, rgba(7,8,12,0.86) 55%, rgba(9,10,14,0.92) 100%);
    border-bottom: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 18px 38px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.04);
    z-index:1100; transition:background .35s ease, box-shadow .25s ease; }
.landing-nav .nav-inner { max-width:1200px; margin:0 auto; height:100%; display:flex; align-items:center; justify-content:space-between; padding:0 24px; }
.nav-logo { display:flex; align-items:center; gap:.65rem; font-weight:700; font-size:1.05rem; letter-spacing:.5px; height:100%; position:relative; }
.nav-logo .logo-icon { font-size:1.4rem; }

/* Effetti animati sul logo */
.nav-logo::before,
.nav-logo::after {
    content: '✨';
    position: absolute;
    font-size: 2rem;
    animation: sparkle 2s ease-in-out infinite;
    pointer-events: none;
    z-index: 10;
}

.nav-logo::before {
    top: -15px;
    right: -15px;
    animation-delay: 0s;
}

.nav-logo::after {
    bottom: -15px;
    left: -15px;
    animation-delay: 1s;
}

@keyframes sparkle {
    0%, 100% {
        opacity: 0;
        transform: scale(0) rotate(0deg);
    }
    50% {
        opacity: 1;
        transform: scale(1.8) rotate(180deg);
    }
}

.nav-logo img.logo-img { 
    display:block; 
    height:calc(100% - 10px); 
    max-height:60px;
    width:auto; 
    max-width:200px;
    object-fit:contain; 
    filter: drop-shadow(0 0 15px rgba(255, 122, 24, 0.6)) drop-shadow(0 8px 20px rgba(0, 0, 0, 0.4));
    margin:5px 0;
    animation: logoFloat 3s ease-in-out infinite, logoShine 4s linear infinite;
    transition: all 0.3s ease;
    transform-style: preserve-3d;
}

.nav-logo img.logo-img:hover {
    transform: scale(1.15) rotateY(15deg);
    filter: drop-shadow(0 0 30px rgba(255, 122, 24, 1)) drop-shadow(0 15px 35px rgba(0, 0, 0, 0.6));
}

@keyframes logoFloat {
    0%, 100% { transform: translateY(0) rotateZ(0deg); }
    25% { transform: translateY(-10px) rotateZ(3deg); }
    50% { transform: translateY(0) rotateZ(0deg); }
    75% { transform: translateY(-6px) rotateZ(-3deg); }
}

@keyframes logoShine {
    0% {
        filter: drop-shadow(0 0 15px rgba(255, 122, 24, 0.6)) drop-shadow(0 8px 20px rgba(0, 0, 0, 0.4)) brightness(1);
    }
    50% {
        filter: drop-shadow(0 0 35px rgba(255, 200, 50, 1)) drop-shadow(0 10px 30px rgba(255, 122, 24, 0.8)) brightness(1.4);
    }
    100% {
        filter: drop-shadow(0 0 15px rgba(255, 122, 24, 0.6)) drop-shadow(0 8px 20px rgba(0, 0, 0, 0.4)) brightness(1);
    }
}
}
.nav-links { list-style:none; display:flex; flex-direction:row !important; gap:2rem; margin:0; padding:0; align-items:center; }
.nav-links > li { margin:0 0.5rem !important; }
.nav-links > li { display:flex; align-items:center; }
.nav-links > li > a { text-shadow: 0 1px 0 rgba(0,0,0,0.45); }
.nav-links > li > a,
.nav-dropdown-toggle {
    color:#f1f3f5;
    text-decoration:none;
    font-weight:600;
    font-size:.92rem;
    position:relative;
    padding:.42rem 1.05rem;
    border-radius:999px;
    background:linear-gradient(135deg, rgba(67,160,71,0.25) 0%, rgba(67,160,71,0.1) 100%) !important;
    border:1px solid rgba(67,160,71,0.5) !important;
    box-shadow:0 6px 14px rgba(0,0,0,0.35), 0 0 20px rgba(67,160,71,0.2) !important;
    transition:all .3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    transform:translateY(0) !important;
}

/* Colori specifici per ogni pulsante - molto più intensi */
.nav-links > li:nth-child(1) > a {
    background:linear-gradient(135deg, rgba(33,150,243,0.4) 0%, rgba(33,150,243,0.2) 100%) !important;
    border-color:rgba(33,150,243,0.8) !important;
    box-shadow:0 6px 14px rgba(0,0,0,0.35), 0 0 25px rgba(33,150,243,0.4) !important;
}

.nav-links > li:nth-child(2) > .nav-dropdown-toggle {
    background:linear-gradient(135deg, rgba(67,160,71,0.4) 0%, rgba(67,160,71,0.2) 100%) !important;
    border-color:rgba(67,160,71,0.8) !important;
    box-shadow:0 6px 14px rgba(0,0,0,0.35), 0 0 25px rgba(67,160,71,0.4) !important;
}

.nav-links > li:nth-child(3) > .nav-dropdown-toggle {
    background:linear-gradient(135deg, rgba(0,188,212,0.4) 0%, rgba(0,188,212,0.2) 100%) !important;
    border-color:rgba(0,188,212,0.8) !important;
    box-shadow:0 6px 14px rgba(0,0,0,0.35), 0 0 25px rgba(0,188,212,0.4) !important;
}

.nav-links > li:nth-child(4) > a {
    background:linear-gradient(135deg, rgba(156,39,176,0.4) 0%, rgba(156,39,176,0.2) 100%) !important;
    border-color:rgba(156,39,176,0.8) !important;
    box-shadow:0 6px 14px rgba(0,0,0,0.35), 0 0 25px rgba(156,39,176,0.4) !important;
}

.nav-links .area-riservata {
    background:linear-gradient(135deg, rgba(255,152,0,0.8) 0%, rgba(255,122,24,0.9) 100%) !important;
    border-color:rgba(255,152,0,0.5) !important;
    color:#fff !important;
    box-shadow:0 6px 14px rgba(0,0,0,0.35), 0 0 25px rgba(255,152,0,0.3) !important;
}
.nav-links > li > a:hover,
.nav-dropdown-toggle:hover {
    transform:translateY(-3px) scale(1.05);
    box-shadow:0 12px 25px rgba(0,0,0,0.4), 0 0 30px currentColor;
    filter:brightness(1.2);
}

.nav-links > li:nth-child(1) > a:hover {
    box-shadow:0 12px 25px rgba(0,0,0,0.4), 0 0 30px rgba(33,150,243,0.4);
}

.nav-links > li:nth-child(2) > .nav-dropdown-toggle:hover {
    box-shadow:0 12px 25px rgba(0,0,0,0.4), 0 0 30px rgba(67,160,71,0.4);
}

.nav-links > li:nth-child(3) > .nav-dropdown-toggle:hover {
    box-shadow:0 12px 25px rgba(0,0,0,0.4), 0 0 30px rgba(0,188,212,0.4);
}

.nav-links > li:nth-child(4) > a:hover {
    box-shadow:0 12px 25px rgba(0,0,0,0.4), 0 0 30px rgba(156,39,176,0.4);
}

.nav-links .area-riservata:hover {
    transform:translateY(-3px) scale(1.05) !important;
    box-shadow:0 12px 25px rgba(0,0,0,0.4), 0 0 35px rgba(255,152,0,0.5) !important;
    filter:brightness(1.1) !important;
}
.nav-links > li > a.active {
    transform:scale(1.02);
    filter:brightness(1.3);
    box-shadow:0 8px 20px rgba(0,0,0,0.4), 0 0 25px currentColor;
}
.nav-links .area-riservata { background:linear-gradient(135deg,#f59f00,#f76707); border-color:transparent; color:#050505; }
.nav-links .area-riservata:hover { filter:brightness(1.05); }
.nav-dropdown-toggle { display:inline-flex; align-items:center; gap:.35rem; background:var(--nav-pill-bg); border:1px solid var(--nav-pill-border); cursor:pointer; text-shadow:0 1px 0 rgba(0,0,0,0.45); font-family:inherit; }
.nav-dropdown { position:relative; }
.nav-dropdown-toggle:focus { outline:2px solid #3d84ff; outline-offset:3px; border-radius:6px; }
.nav-dropdown.has-active > .nav-dropdown-toggle { background:var(--nav-pill-active); color:#fff; border-color:transparent; box-shadow:0 10px 24px rgba(111,132,255,0.35); }
.dropdown-icon { font-size:.75rem; transition:transform .25s ease; }
.nav-dropdown.open > .nav-dropdown-toggle .dropdown-icon { transform:rotate(180deg); }
.dropdown-menu { 
    position:absolute; 
    top:calc(100% + 14px); 
    left:0; 
    min-width:215px; 
    background:linear-gradient(180deg, #252a33 0%, #1a1e24 100%); 
    border:1px solid rgba(255,255,255,0.12); 
    border-left:3px solid #ff7a18; 
    border-radius:14px; 
    padding:10px 0; 
    box-shadow:0 26px 60px rgba(0,0,0,0.6), inset 0 4px 12px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.05); 
    display:none; 
    backdrop-filter:blur(12px);
    opacity:0;
    transform:translateY(-10px);
    transition:all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.dropdown-menu::before { content:''; position:absolute; top:-14px; left:0; right:0; height:14px; }
.nav-dropdown:hover > .dropdown-menu, .nav-dropdown.open > .dropdown-menu { 
    display:block;
    opacity:1;
    transform:translateY(0);
    animation:dropdownSlideDesktop 0.35s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes dropdownSlideDesktop {
    0% {
        opacity:0;
        transform:translateY(-8px) scale(0.95);
    }
    100% {
        opacity:1;
        transform:translateY(0) scale(1);
    }
}
.dropdown-menu:hover { display:block; }
.dropdown-menu a { 
    display:flex;
    align-items:center;
    gap:0.6rem;
    padding:.55rem 1rem; 
    color:#f1f3f5; 
    font-size:.9rem; 
    text-decoration:none; 
    text-shadow:none;
    transition:all 0.3s ease;
    border-radius:8px;
    margin:0 8px;
    opacity:0;
    transform:translateX(-10px);
    animation:fadeInDesktop 0.4s ease forwards;
}

/* Animazione cascata per i link */
.nav-dropdown:hover .dropdown-menu a:nth-child(1),
.nav-dropdown.open .dropdown-menu a:nth-child(1) { animation-delay:0.05s; }
.nav-dropdown:hover .dropdown-menu a:nth-child(2),
.nav-dropdown.open .dropdown-menu a:nth-child(2) { animation-delay:0.1s; }
.nav-dropdown:hover .dropdown-menu a:nth-child(3),
.nav-dropdown.open .dropdown-menu a:nth-child(3) { animation-delay:0.15s; }
.nav-dropdown:hover .dropdown-menu a:nth-child(4),
.nav-dropdown.open .dropdown-menu a:nth-child(4) { animation-delay:0.2s; }

@keyframes fadeInDesktop {
    0% {
        opacity:0;
        transform:translateX(-10px);
    }
    100% {
        opacity:1;
        transform:translateX(0);
    }
}
.dropdown-menu a:hover { 
    transform:translateX(4px);
    filter:brightness(1.2);
    box-shadow:0 4px 12px rgba(0,0,0,0.3);
}
.dropdown-menu a::after { display:none; }

/* Colori specifici per dropdown Eventi */
.nav-dropdown:nth-child(2) .dropdown-menu {
    border-left-color:#43a047;
    box-shadow:0 26px 60px rgba(0,0,0,0.6), inset 0 4px 12px rgba(0,0,0,0.5), 0 0 20px rgba(67,160,71,0.1);
}

.nav-dropdown:nth-child(2) .dropdown-menu a:nth-child(1) {
    background:linear-gradient(135deg, rgba(67,160,71,0.5) 0%, rgba(67,160,71,0.2) 100%) !important;
    border-left:4px solid #43a047 !important;
    border-radius:8px !important;
    margin:2px 8px !important;
}

.nav-dropdown:nth-child(2) .dropdown-menu a:nth-child(2) {
    background:linear-gradient(135deg, rgba(156,39,176,0.5) 0%, rgba(156,39,176,0.2) 100%) !important;
    border-left:4px solid #9c27b0 !important;
    border-radius:8px !important;
    margin:2px 8px !important;
}

.nav-dropdown:nth-child(2) .dropdown-menu a:hover {
    transform:translateX(4px) !important;
    filter:brightness(1.2) !important;
}

/* Colori specifici per dropdown Prenotazioni */
.nav-dropdown:nth-child(3) .dropdown-menu {
    border-left-color:#00bcd4;
    box-shadow:0 26px 60px rgba(0,0,0,0.6), inset 0 4px 12px rgba(0,0,0,0.5), 0 0 20px rgba(0,188,212,0.1);
}

.nav-dropdown:nth-child(3) .dropdown-menu a:nth-child(1) {
    background:linear-gradient(135deg, rgba(0,188,212,0.5) 0%, rgba(0,188,212,0.2) 100%) !important;
    border-left:4px solid #00bcd4 !important;
    border-radius:8px !important;
    margin:2px 8px !important;
}

.nav-dropdown:nth-child(3) .dropdown-menu a:nth-child(2) {
    background:linear-gradient(135deg, rgba(233,30,99,0.5) 0%, rgba(233,30,99,0.2) 100%) !important;
    border-left:4px solid #e91e63 !important;
    border-radius:8px !important;
    margin:2px 8px !important;
}

.nav-dropdown:nth-child(3) .dropdown-menu a:nth-child(3) {
    background:linear-gradient(135deg, rgba(255,152,0,0.5) 0%, rgba(255,152,0,0.2) 100%) !important;
    border-left:4px solid #ff9800 !important;
    border-radius:8px !important;
    margin:2px 8px !important;
}

.nav-dropdown:nth-child(3) .dropdown-menu a:nth-child(4) {
    background:linear-gradient(135deg, rgba(33,150,243,0.5) 0%, rgba(33,150,243,0.2) 100%) !important;
    border-left:4px solid #2196f3 !important;
    border-radius:8px !important;
    margin:2px 8px !important;
}

.nav-dropdown:nth-child(3) .dropdown-menu a:hover {
    transform:translateX(4px) !important;
    filter:brightness(1.2) !important;
}
.nav-toggle { 
    display:none; 
    background:none !important; 
    border:none !important; 
    color:#fff; 
    font-size:1.6rem; 
    width: 30px; 
    height: 30px; 
    padding: 0 !important; 
    flex-direction: column; 
    justify-content: space-around; 
    align-items: center; 
    cursor: pointer;
    box-shadow: none !important;
}
.landing-nav::before { content:''; position:absolute; inset:0; pointer-events:none; border-radius:0 0 8px 8px; box-shadow: inset 0 -36px 60px rgba(0,0,0,0.55); }
.landing-nav::after { content:''; position:absolute; top:0; left:0; right:0; height:8px; pointer-events:none; background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01)); border-bottom-left-radius:6px; border-bottom-right-radius:6px; }
.hamburger-line { 
    width: 20px; 
    height: 2px; 
    background-color: white; 
    border-radius: 2px; 
    transition: all 0.3s ease;
}

/* Assicura menu orizzontale su desktop */
@media (min-width:861px) {
    .nav-links {
        display: flex !important;
        flex-direction: row !important;
        position: static !important;
        background: transparent !important;
        box-shadow: none !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

@media (max-width:860px){
    /* Usa tutta la larghezza su mobile, evitando il limite di 1200px del desktop */
    .landing-nav .nav-inner { max-width:100% !important; padding:0 12px !important; }

    .nav-logo img.logo-img { max-height:50px; max-width:150px; }
    .nav-toggle{ display:flex; }
    
    /* Reset desktop styles for mobile */
    .nav-links{ 
        position:fixed; 
        top:70px; 
        left:0; 
        right:0; 
        width:100% !important;
        background:#0f1217; 
        flex-direction:column; 
        padding:0; 
        margin:0; 
        gap:0;
        display:none; 
        border-bottom-left-radius:0; 
        border-bottom-right-radius:0; 
        box-shadow:0 12px 40px rgba(0,0,0,0.6); 
        max-height:calc(100vh - 70px); 
        overflow-y:scroll; 
        z-index:999;
        box-sizing:border-box !important;
    }
    .nav-links.open{ display:block; }
    
    /* Animazione slide-in per i menu items */
    .nav-links.open > li {
        animation: slideInFromLeft 0.6s ease-out forwards;
    }
    
    .nav-links.open > li:nth-child(1) { animation-delay: 0.1s; }
    .nav-links.open > li:nth-child(2) { animation-delay: 0.2s; }
    .nav-links.open > li:nth-child(3) { animation-delay: 0.3s; }
    .nav-links.open > li:nth-child(4) { animation-delay: 0.4s; }
    .nav-links.open > li:nth-child(5) { animation-delay: 0.5s; }
    
    @keyframes slideInFromLeft {
        from {
            opacity: 0;
            transform: translateX(-80px);
        }
        to {
            opacity: 1;
            transform: translateX(0);
        }
    }
    
    .nav-links > li { 
        width:100%; 
        display:block; 
        margin:0; 
        padding:0; 
    }
    
    /* Reset all desktop button styles */
    .nav-links > li > a,
    .nav-links > li > .nav-dropdown-toggle {
        width:100% !important;
        padding:1rem 1.2rem !important;
        margin:0 !important;
        border-radius:0 !important;
        border:none !important;
        border-bottom:1px solid rgba(255,255,255,0.05) !important;
        display:flex !important;
        align-items:center !important;
        justify-content:flex-start !important;
        gap:0.8rem !important;
        font-size:0.95rem !important;
        font-weight:600 !important;
        color:#fff !important;
        text-decoration:none !important;
        box-shadow:none !important;
        text-shadow:none !important;
        background:transparent !important;
        text-align:left !important;
        cursor:pointer !important;
        transition:background 0.2s ease !important;
        transform:none !important;
        min-height:60px !important;
        height:auto !important;
    }
    
    .nav-links > li > a:hover,
    .nav-links > li > .nav-dropdown-toggle:hover {
        background:rgba(255,255,255,0.08) !important;
        transform:translateX(8px) scale(1.03) !important;
    }
    
    /* Remove desktop active/gradient styles */
    .nav-links > li > a.active,
    .nav-links .area-riservata {
        background:transparent !important;
        border:none !important;
        border-bottom:1px solid rgba(255,255,255,0.05) !important;
        box-shadow:none !important;
        color:#fff !important;
        filter:none !important;
    }
    
    .nav-links .area-riservata:hover {
        background:rgba(255,255,255,0.08) !important;
        filter:none !important;
    }
    
    .nav-dropdown.has-active > .nav-dropdown-toggle {
        background:transparent !important;
        border:none !important;
        border-bottom:1px solid rgba(255,255,255,0.05) !important;
        box-shadow:none !important;
        color:#fff !important;
    }
    
    .nav-icon { 
        font-size:1.5rem !important; 
        display:flex !important; 
        align-items:center !important; 
        justify-content:center !important; 
        flex-shrink:0 !important; 
        width:36px !important; 
        height:36px !important; 
        animation: iconPulse 3s ease-in-out infinite !important;
    }
    
    @keyframes iconPulse {
        0%, 100% { transform: scale(1); }
        50% { transform: scale(1.15); }
    }
    
    .nav-label { 
        flex:1 !important; 
        text-align:left !important; 
        line-height:1.4 !important; 
    }
    
    .nav-dropdown{ 
        width:100% !important; 
        display:block !important; 
        margin:0 !important; 
        padding:0 !important; 
        position:static !important;
        left:auto !important;
        right:auto !important;
    }
    
    .dropdown-menu{ 
        position:static !important;
        left:auto !important;
        right:auto !important;
        top:auto !important;
        width:calc(100% - 24px) !important;
        min-width:unset !important;
        max-width:calc(100% - 24px) !important;
        box-sizing:border-box !important;
        display:none !important;
        overflow:hidden !important;
        background:linear-gradient(180deg, #252a33 0%, #1a1e24 100%) !important; 
        padding:8px !important; 
        margin:0 12px 8px 12px !important; 
        border:1px solid rgba(255,255,255,0.1) !important; 
        border-left:3px solid #ff7a18 !important;
        border-radius:12px !important;
        box-shadow:0 8px 24px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.05) !important; 
        list-style:none !important;
        transform:none !important;
    }
    
    .dropdown-menu::before {
        display:none !important;
    }
    
    /* Mobile dropdown behavior - chiusura automatica */
    .nav-dropdown.active > .dropdown-menu {
        display:block !important;
        animation:slideInFromLeft 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards !important;
    }
    
    .nav-dropdown:not(.active) > .dropdown-menu {
        display:none !important;
    }
    
    @keyframes dropdownSlide {
        0% {
            opacity:0;
            max-height:0;
            transform:translateY(-8px);
        }
        100% {
            opacity:1;
            max-height:500px;
            transform:translateY(0);
        }
    }
    
    .dropdown-menu li {
        opacity:0;
        animation:fadeInUp 0.3s ease forwards;
    }
    
    .nav-dropdown.active .dropdown-menu li:nth-child(1) { animation-delay:0.05s; }
    .nav-dropdown.active .dropdown-menu li:nth-child(2) { animation-delay:0.1s; }
    .nav-dropdown.active .dropdown-menu li:nth-child(3) { animation-delay:0.15s; }
    .nav-dropdown.active .dropdown-menu li:nth-child(4) { animation-delay:0.2s; }
    .nav-dropdown.active .dropdown-menu li:nth-child(5) { animation-delay:0.25s; }
    .nav-dropdown.active .dropdown-menu li:nth-child(6) { animation-delay:0.3s; }
    
    @keyframes fadeInUp {
        0% {
            opacity:0;
            transform:translateX(-10px);
        }
        100% {
            opacity:1;
            transform:translateX(0);
        }
    }
    
    .dropdown-menu li { 
        width:100%; 
        list-style:none; 
        margin:2px 0; 
        padding:0; 
        display:block; 
    }
    
    .dropdown-menu li a {
        border-radius:8px !important;
        margin:2px 4px !important;
        padding:12px 16px !important;
        display:block !important;
    }
    
    /* Colori diversi per ogni voce del dropdown Eventi */
    .dropdown-eventi .dropdown-menu li:nth-child(1) a {
        background:linear-gradient(135deg, rgba(67,160,71,0.4) 0%, rgba(67,160,71,0.15) 100%) !important;
        border-left:4px solid #43a047 !important;
        border-radius:8px !important;
        margin:2px 4px !important;
    }
    .dropdown-eventi .dropdown-menu li:nth-child(2) a {
        background:linear-gradient(135deg, rgba(156,39,176,0.4) 0%, rgba(156,39,176,0.15) 100%) !important;
        border-left:4px solid #9c27b0 !important;
        border-radius:8px !important;
        margin:2px 4px !important;
    }
    
    /* Colori diversi per ogni voce del dropdown Prenotazioni */
    .dropdown-prenotazioni .dropdown-menu li:nth-child(1) a {
        background:linear-gradient(135deg, rgba(0,188,212,0.4) 0%, rgba(0,188,212,0.15) 100%) !important;
        border-left:4px solid #00bcd4 !important;
        border-radius:8px !important;
        margin:2px 4px !important;
    }
    .dropdown-prenotazioni .dropdown-menu li:nth-child(2) a {
        background:linear-gradient(135deg, rgba(233,30,99,0.4) 0%, rgba(233,30,99,0.15) 100%) !important;
        border-left:4px solid #e91e63 !important;
        border-radius:8px !important;
        margin:2px 4px !important;
    }
    .dropdown-prenotazioni .dropdown-menu li:nth-child(3) a {
        background:linear-gradient(135deg, rgba(255,152,0,0.4) 0%, rgba(255,152,0,0.15) 100%) !important;
        border-left:4px solid #ff9800 !important;
        border-radius:8px !important;
        margin:2px 4px !important;
    }
    .dropdown-prenotazioni .dropdown-menu li:nth-child(4) a {
        background:linear-gradient(135deg, rgba(33,150,243,0.4) 0%, rgba(33,150,243,0.15) 100%) !important;
        border-left:4px solid #2196f3 !important;
        border-radius:8px !important;
        margin:2px 4px !important;
    }

    .dropdown-menu a { 
        width:100% !important; 
        padding:1rem 1.2rem !important; 
        margin:0 !important; 
        display:flex !important; 
        align-items:center !important; 
        justify-content:flex-start !important; 
        gap:0.8rem !important; 
        border:none !important; 
        border-bottom:1px solid rgba(255,255,255,0.04) !important;
        color:#fff !important; 
        text-decoration:none !important; 
        font-weight:600 !important; 
        font-size:1rem !important; 
        transition:background 0.2s ease !important; 
        box-sizing:border-box !important;
        background:transparent !important;
        text-shadow:none !important;
        min-height:56px !important;
        height:auto !important;
    }
    
    .dropdown-menu a:hover { 
        background:linear-gradient(90deg, rgba(255,122,24,0.15) 0%, rgba(255,122,24,0.05) 100%) !important;
        transform:translateX(4px) !important;
        border-left:2px solid #ff7a18 !important;
        margin-left:-2px !important;
    }
    
    .dropdown-menu a .nav-icon { 
        font-size:1.1rem !important; 
        flex-shrink:0 !important; 
        width:28px !important; 
        height:28px !important; 
        display:flex !important; 
        align-items:center !important; 
        justify-content:center !important; 
    }
    
    .dropdown-menu a .nav-label { 
        flex:1 !important; 
        text-align:left !important; 
        line-height:1.4 !important; 
    }
    
    .dropdown-menu a::after {
        display:none !important;
    }
    
    .dropdown-icon { 
        margin-left:auto; 
        flex-shrink:0; 
        font-size:1rem; 
        transition:transform 0.3s ease; 
    }
    
    .nav-dropdown.open > .nav-dropdown-toggle .dropdown-icon { 
        transform:rotate(180deg); 
    }
    
    .nav-dropdown-toggle {
        display:flex !important;
        align-items:center !important;
        justify-content:space-between !important;
        width:100% !important;
        padding:1rem 1.2rem !important;
        margin:0 !important;
        border:none !important;
        background:transparent !important;
        color:#fff !important;
        font-weight:600 !important;
        font-size:1rem !important;
        min-height:60px !important;
        height:auto !important;
        box-sizing:border-box !important;
    }
}

/* Hamburger -> X transform when active */
.nav-toggle { --hamburger-gap:6px; }
.nav-toggle .hamburger-line { display:block; }
.nav-toggle.active .hamburger-line:nth-child(1) { transform: translateY(calc(var(--hamburger-gap))) rotate(45deg); }
.nav-toggle.active .hamburger-line:nth-child(2) { opacity:0; transform:scaleX(0.2); }
.nav-toggle.active .hamburger-line:nth-child(3) { transform: translateY(calc(-1 * var(--hamburger-gap))) rotate(-45deg); }

/* Slightly increase hit area on mobile for accessibility */
.nav-toggle { padding:6px; border-radius:8px; }

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .nav-links, .nav-toggle .hamburger-line { transition: none !important; }
}

@media (min-width:1200px){
	/* Logo più grande su schermi grandi */
	.nav-logo img.logo-img { 
		max-height:65px; 
		max-width:250px; 
	}
}

/* Hero */
.hero { position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center;
	background:var(--hero-bg, url('assets/img/hero_bg.jpg')) center/cover no-repeat #05060a;
	padding:140px 20px 80px; overflow:hidden; }
.hero::after { content:''; position:absolute; inset:0;
    background:linear-gradient(120deg,rgba(5,6,10,.62),rgba(5,6,10,.12) 45%,rgba(5,6,10,.68));
    z-index:1; }
.hero-overlay { display:none; }

/* Immagine overlay posizionabile liberamente */
.hero-overlay-image {
    position: absolute;
    top: var(--overlay-pos-y, 30vh);
    left: var(--overlay-pos-x, 50vw);
    transform: translateX(-50%) translateY(-50%);
    width: var(--overlay-width, 25vw);
    height: auto;
    z-index: 3;
    max-width: 90vw;
    max-height: 50vh;
    border-radius: 20px;
    overflow: visible;
    transition: all 0.3s ease;
}

.hero-overlay-image:hover {
    transform: translateX(-50%) translateY(-50%) scale(1.05);
    box-shadow: 0 0 30px rgba(255, 215, 61, 0.6), 0 0 60px rgba(255, 107, 107, 0.4), 0 0 90px rgba(199, 0, 57, 0.3);
    animation: imageSparkle 0.6s ease-in-out;
}

@keyframes imageSparkle {
    0%, 100% { filter: brightness(1); }
    25% { filter: brightness(1.2); }
    50% { filter: brightness(1); }
    75% { filter: brightness(1.15); }
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .hero-overlay-image {
        width: calc(var(--overlay-width, 50vw) * 1.2) !important;
        height: calc(var(--overlay-height, 30vh) * 1.2) !important;
        border-radius: 20px;
        overflow: hidden;
    }
    
    .hero-overlay-img {
        border-radius: 20px;
    }
}

@media (max-width: 480px) {
    .hero-overlay-image {
        width: calc(var(--overlay-width, 50vw) * 2.0) !important;
        height: calc(var(--overlay-height, 30vh) * 2.0) !important;
        border-radius: 20px;
        overflow: hidden;
    }
    
    .hero-overlay-img {
        border-radius: 20px;
    }
}

.hero-overlay-img {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
    filter: none;
    border: none;
    outline: none;
    box-shadow: none;
    -webkit-focus-ring-color: transparent;
    border-radius: 20px;
}

.hero-overlay-img:focus,
.hero-overlay-img:focus-visible {
    outline: none;
    box-shadow: none;
}

.hero-overlay-link {
    display: block;
    width: 100%;
    height: 100%;
    cursor: pointer;
    border: none;
    outline: none;
    box-shadow: none;
}

.hero-overlay-link:hover {
    border: none;
    outline: none;
    box-shadow: none;
}

.hero-overlay-link:focus,
.hero-overlay-link:focus-visible {
    outline: none !important;
    box-shadow: none !important;
    border: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

.hero-overlay-image:focus,
.hero-overlay-image:focus-visible {
    outline: none !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

.hero-overlay-image:hover {
    border: none;
    outline: none;
    box-shadow: none;
}

.hero-overlay-link .hero-overlay-img {
    cursor: pointer;
}

.hero-content { position:relative; max-width:820px; z-index:10; padding:0 12px; margin-top:200px; }

.hero-title { 
    font-size:clamp(2.2rem,6vw,3.8rem); 
    margin:0 0 1rem; 
    background:linear-gradient(90deg, #ff6b6b 0%, #ffd93d 15%, #fff 30%, #ffd93d 45%, #ff6b6b 60%, #c70039 75%, #900c3f 90%, #ff6b6b 100%); 
    background-size: 200% auto;
    -webkit-background-clip:text; 
    background-clip:text; 
    color:transparent; 
    letter-spacing:3px; 
    font-weight:900;
    text-transform:uppercase;
    position:relative;
    animation: tangoShimmer 3s ease-in-out infinite, borderCycle 4s linear infinite;
    filter: drop-shadow(0 0 25px rgba(255, 215, 61, 0.9)) drop-shadow(0 2px 10px rgba(199, 0, 57, 0.7));
    -webkit-text-stroke: 2px transparent;
    text-stroke: 2px transparent;
    paint-order: stroke fill;
}

/* Effetto scintillio continuo */
@keyframes tangoShimmer {
    0%, 100% { 
        background-position: 0% center;
        filter: drop-shadow(0 0 25px rgba(255, 215, 61, 0.9)) drop-shadow(0 2px 10px rgba(199, 0, 57, 0.7));
    }
    50% { 
        background-position: 200% center;
        filter: drop-shadow(0 0 40px rgba(255, 255, 255, 1)) drop-shadow(0 5px 20px rgba(255, 107, 107, 1));
    }
}

/* Bordo con colori ciclanti */
@keyframes borderCycle {
    0% { 
        -webkit-text-stroke: 2px rgba(255, 107, 107, 0.8);
        text-stroke: 2px rgba(255, 107, 107, 0.8);
    }
    25% { 
        -webkit-text-stroke: 2px rgba(255, 215, 61, 0.9);
        text-stroke: 2px rgba(255, 215, 61, 0.9);
    }
    50% { 
        -webkit-text-stroke: 2px rgba(199, 0, 57, 0.8);
        text-stroke: 2px rgba(199, 0, 57, 0.8);
    }
    75% { 
        -webkit-text-stroke: 2px rgba(144, 12, 63, 0.9);
        text-stroke: 2px rgba(144, 12, 63, 0.9);
    }
    100% { 
        -webkit-text-stroke: 2px rgba(255, 107, 107, 0.8);
        text-stroke: 2px rgba(255, 107, 107, 0.8);
    }
}
.hero-subtitle { font-size:clamp(1rem,2.6vw,1.3rem); font-weight:300; margin:0 0 2.2rem; opacity:.85; }
.hero-actions { display:flex; gap:1.2rem; justify-content:center; flex-wrap:wrap; }
.btn-cta { 
    background:var(--grad); 
    padding:.95rem 1.6rem; 
    border-radius:14px; 
    font-weight:700; 
    letter-spacing:.5px; 
    text-decoration:none; 
    color:#fff; 
    box-shadow:0 14px 42px -10px rgba(175,0,45,.6), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); 
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    transform-style: preserve-3d;
    perspective: 1000px;
    animation: btnGlow 3s ease-in-out infinite alternate;
}

@keyframes btnGlow {
    0% { box-shadow: 0 14px 42px -10px rgba(175,0,45,.6), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
    100% { box-shadow: 0 14px 42px -10px rgba(175,0,45,.6), 0 0 20px rgba(255,122,24,0.5), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
}

.btn-cta::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transform: rotate(45deg) translateX(-100%);
    transition: transform 0.6s ease;
}

.btn-cta:hover::before {
    transform: rotate(45deg) translateX(100%);
}

.btn-cta:hover {
    transform: scale(1.08) translateY(-5px) rotateX(5deg);
    box-shadow: 0 0 25px rgba(255, 215, 61, 0.7), 0 0 50px rgba(255, 107, 107, 0.5), 0 18px 50px -10px rgba(175,0,45,.8), inset 0 3px 0 rgba(255,255,255,0.4), inset 0 -3px 0 rgba(0,0,0,0.4);
    filter: brightness(1.15);
    animation: none; /* Disabilita l'animazione durante hover */
}
.btn-cta { text-shadow:0 2px 6px rgba(0,0,0,.45); }

/* Green gradient for "Prenota un tavolo" */
.btn-cta-green { 
    background: linear-gradient(90deg, #34d399, #059669 75%);
    box-shadow: 0 14px 42px -10px rgba(5,150,105,.45), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3);
    color: #000 !important;
    font-weight: 700;
    text-shadow: none !important;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    transform-style: preserve-3d;
    perspective: 1000px;
    animation: btnGlowGreen 3s ease-in-out infinite alternate;
}

@keyframes btnGlowGreen {
    0% { box-shadow: 0 14px 42px -10px rgba(5,150,105,.45), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
    100% { box-shadow: 0 14px 42px -10px rgba(5,150,105,.45), 0 0 20px rgba(52,211,153,0.5), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
}

.btn-cta-green::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    transform: rotate(45deg) translateX(-100%);
    transition: transform 0.6s ease;
}

.btn-cta-green:hover::before {
    transform: rotate(45deg) translateX(100%);
}

.btn-cta-green:hover { 
    transform: scale(1.08) translateY(-5px) rotateX(5deg);
    box-shadow: 0 0 25px rgba(52, 211, 153, 0.7), 0 0 50px rgba(5, 150, 105, 0.5), 0 18px 50px -10px rgba(5,150,105,.7), inset 0 3px 0 rgba(255,255,255,0.4), inset 0 -3px 0 rgba(0,0,0,0.4);
    filter: brightness(1.15);
    animation: none;
}

/* Pink gradient for "Prenota posto auto" */
.btn-cta-pink { 
    background: linear-gradient(90deg, #ff85c0, #ff4081 75%);
    box-shadow: 0 14px 42px -10px rgba(255,64,129,.4), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3);
    color: #000 !important;
    font-weight: 700;
    text-shadow: none !important;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    transform-style: preserve-3d;
    perspective: 1000px;
    animation: btnGlowPink 3s ease-in-out infinite alternate;
}

@keyframes btnGlowPink {
    0% { box-shadow: 0 14px 42px -10px rgba(255,64,129,.4), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
    100% { box-shadow: 0 14px 42px -10px rgba(255,64,129,.4), 0 0 20px rgba(255,133,192,0.5), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
}

.btn-cta-pink::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    transform: rotate(45deg) translateX(-100%);
    transition: transform 0.6s ease;
}

.btn-cta-pink:hover::before {
    transform: rotate(45deg) translateX(100%);
}

.btn-cta-pink:hover { 
    transform: scale(1.08) translateY(-5px) rotateX(5deg);
    box-shadow: 0 0 25px rgba(255, 133, 192, 0.7), 0 0 50px rgba(255, 64, 129, 0.5), 0 18px 50px -10px rgba(255,64,129,.7), inset 0 3px 0 rgba(255,255,255,0.4), inset 0 -3px 0 rgba(0,0,0,0.4);
    filter: brightness(1.15);
    animation: none;
}

/* Blue gradient for "Cerca Partner" */
.btn-cta-blue { 
    background: linear-gradient(90deg, #3b82f6, #1d4ed8 75%);
    box-shadow: 0 14px 42px -10px rgba(29,78,216,.45), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3);
    color: #fff !important;
    font-weight: 700;
    text-shadow: 0 2px 6px rgba(0,0,0,.45);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    transform-style: preserve-3d;
    perspective: 1000px;
    animation: btnGlowBlue 3s ease-in-out infinite alternate;
}

@keyframes btnGlowBlue {
    0% { box-shadow: 0 14px 42px -10px rgba(29,78,216,.45), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
    100% { box-shadow: 0 14px 42px -10px rgba(29,78,216,.45), 0 0 20px rgba(59,130,246,0.5), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
}

.btn-cta-blue::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    transform: rotate(45deg) translateX(-100%);
    transition: transform 0.6s ease;
}

.btn-cta-blue:hover::before {
    transform: rotate(45deg) translateX(100%);
}

.btn-cta-blue:hover { 
    transform: scale(1.08) translateY(-5px) rotateX(5deg);
    box-shadow: 0 0 25px rgba(59, 130, 246, 0.7), 0 0 50px rgba(29, 78, 216, 0.5), 0 18px 50px -10px rgba(29,78,216,.7), inset 0 3px 0 rgba(255,255,255,0.4), inset 0 -3px 0 rgba(0,0,0,0.4);
    filter: brightness(1.15);
    animation: none;
}

/* Purple gradient for "Bacheca Partner" */
.btn-cta-purple { 
    background: linear-gradient(90deg, #8b5cf6, #7c3aed 75%);
    box-shadow: 0 14px 42px -10px rgba(124,58,237,.45), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3);
    color: #fff !important;
    font-weight: 700;
    text-shadow: 0 2px 6px rgba(0,0,0,.45);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    transform-style: preserve-3d;
    perspective: 1000px;
    animation: btnGlowPurple 3s ease-in-out infinite alternate;
}

@keyframes btnGlowPurple {
    0% { box-shadow: 0 14px 42px -10px rgba(124,58,237,.45), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
    100% { box-shadow: 0 14px 42px -10px rgba(124,58,237,.45), 0 0 20px rgba(139,92,246,0.5), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
}

.btn-cta-purple::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    transform: rotate(45deg) translateX(-100%);
    transition: transform 0.6s ease;
}

.btn-cta-purple:hover::before {
    transform: rotate(45deg) translateX(100%);
}

.btn-cta-purple:hover { 
    transform: scale(1.08) translateY(-5px) rotateX(5deg);
    box-shadow: 0 0 25px rgba(139, 92, 246, 0.7), 0 0 50px rgba(124, 58, 237, 0.5), 0 18px 50px -10px rgba(124,58,237,.7), inset 0 3px 0 rgba(255,255,255,0.4), inset 0 -3px 0 rgba(0,0,0,0.4);
    filter: brightness(1.15);
    animation: none;
}

/* Effetto scintillio rosso sulle icone - Dissolvenza graduale */
.btn-cta::after {
    content: '✨';
    position: absolute;
    top: 2px;
    right: 6px;
    font-size: 1.1em;
    color: #ff3333;
    animation: iconFadeGlow 2.5s ease-in-out infinite;
    pointer-events: none;
    filter: drop-shadow(0 0 4px rgba(255, 51, 51, 0.8));
}

@keyframes iconFadeGlow {
    0%, 100% {
        opacity: 0;
        transform: scale(0.5);
    }
    50% {
        opacity: 1;
        transform: scale(1.2);
        filter: drop-shadow(0 0 8px rgba(255, 51, 51, 0.9)) drop-shadow(0 0 15px rgba(255, 51, 51, 0.6));
    }
}

.btn-cta-green::after {
    content: '✨';
    animation: iconFadeGlow 2.5s ease-in-out infinite 0.2s;
}

.btn-cta-pink::after {
    content: '✨';
    animation: iconFadeGlow 2.5s ease-in-out infinite 0.4s;
}

.btn-cta-blue::after {
    content: '✨';
    animation: iconFadeGlow 2.5s ease-in-out infinite 0.6s;
}

.btn-cta-purple::after {
    content: '✨';
    animation: iconFadeGlow 2.5s ease-in-out infinite 0.8s;
}

/* WhatsApp button gradient for "Unisciti al Gruppo WhatsApp" */
.btn-cta-whatsapp { 
    background: linear-gradient(90deg, #25D366, #128C7E 75%);
    box-shadow: 0 14px 42px -10px rgba(18,140,126,.45), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3);
    color: #fff !important;
    font-weight: 700;
    text-shadow: 0 2px 6px rgba(0,0,0,.45);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    transform-style: preserve-3d;
    perspective: 1000px;
    animation: btnGlowWhatsApp 3s ease-in-out infinite alternate;
}

@keyframes btnGlowWhatsApp {
    0% { box-shadow: 0 14px 42px -10px rgba(18,140,126,.45), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
    100% { box-shadow: 0 14px 42px -10px rgba(18,140,126,.45), 0 0 20px rgba(37,211,102,0.5), inset 0 2px 0 rgba(255,255,255,0.3), inset 0 -2px 0 rgba(0,0,0,0.3); }
}

.btn-cta-whatsapp::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    transform: rotate(45deg) translateX(-100%);
    transition: transform 0.6s ease;
}

.btn-cta-whatsapp:hover::before {
    transform: rotate(45deg) translateX(100%);
}

.btn-cta-whatsapp:hover { 
    transform: scale(1.08) translateY(-5px) rotateX(5deg);
    box-shadow: 0 0 25px rgba(37, 211, 102, 0.7), 0 0 50px rgba(18, 140, 126, 0.5), 0 18px 50px -10px rgba(18,140,126,.7), inset 0 3px 0 rgba(255,255,255,0.4), inset 0 -3px 0 rgba(0,0,0,0.4);
    filter: brightness(1.15);
    animation: none;
}

.btn-cta-whatsapp::after {
    content: '✨';
    animation: iconFadeGlow 2.5s ease-in-out infinite 1s;
}

/* Icons for new buttons */
.btn-cta-blue::before {
    content: '🔍'; /* Icona lente per "Cerca Partner" */
    margin-right: 8px;
}

.btn-cta-purple::before {
    content: '📋'; /* Icona clipboard per "Bacheca Partner" */
    margin-right: 8px;
}

/* Differenziazione delle icone per i pulsanti CTA */
.btn-cta::before {
    content: '\1F4C5'; /* Calendario per "Guarda gli eventi" */
}

.btn-cta-green::before {
    content: '\1F37D'; /* Tavolo per "Prenota un tavolo" */
}

.btn-cta-pink::before {
    content: '\1F697'; /* Auto per "Prenota posto auto (donne)" */
}

/* Rafforzamento della specificità per le icone dei pulsanti CTA */
.hero-actions .btn-cta::before {
    content: '\1F4C5'; /* Calendario per "Guarda gli eventi" */
}

.hero-actions .btn-cta-green::before {
    content: '\1F483'; /* Icona ballerina per "Prenota un tavolo" */
}

.hero-actions .btn-cta-pink::before {
    content: '\1F697'; /* Auto per "Prenota posto auto (donne)" */
}

.hero-actions .btn-cta-blue::before {
    content: '🔍'; /* Lente per "Cerca Partner" */
}

.hero-actions .btn-cta-purple::before {
    content: '📋'; /* Clipboard per "Bacheca Partner" */
}

/* Stile per il contatore delle richieste attive */
.counter {
    background: rgba(255, 255, 255, 0.2);
    padding: 2px 6px;
    border-radius: 10px;
    font-size: 0.8em;
    font-weight: bold;
    margin-left: 5px;
    display: inline-block;
    vertical-align: middle;
}

/* Ensure outline buttons keep readable text for other cases */
.btn-outline { color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.45); }

/* Accessibility: ensure high contrast for button text on dark hero background */
.btn-cta, .btn-cta-green, .btn-cta-pink { color: #000 !important; }
.btn-outline { padding:.95rem 1.6rem; border-radius:14px; font-weight:600; letter-spacing:.5px; text-decoration:none; color:#fff; border:2px solid rgba(255,255,255,.35); backdrop-filter:blur(4px); }
.btn-outline:hover { background:rgba(255,255,255,.08); }

@media (max-width:1024px){
	.hero { padding:120px 24px 70px; min-height:85vh; }
	.hero-content { margin-top:20px; }
	.hero-title { 
		font-size:clamp(2rem,8vw,3.2rem); 
	}
}
@media (max-width:600px){
	.landing-nav { height:64px; }
	.hero { padding:100px 16px 60px; text-align:center; align-items:flex-start; }
	.hero-overlay-image {
		position: relative;
		order: 2;
		width: 80vw;
		height: auto;
		max-height: 25vh;
		margin-top: 1rem;
		margin-bottom: 1.5rem;
		top: 0;
		left: 0;
		transform: none;
	}
	.hero-content { 
		order: 1;
		margin-top: 15px;
		width: 100%;
	}
	.hero-title { 
		font-size:clamp(1.7rem, 8vw, 2.4rem); 
		text-align:center; 
		letter-spacing:1px;
	}
	
	.hero-subtitle { font-size:clamp(0.9rem, 4vw, 1.1rem); }
	.hero-subtitle { font-size:0.95rem; }
	.hero-actions { flex-direction:column; align-items:stretch; order: 3; width: 100%; }
	.btn-cta, .btn-outline { width:100%; text-align:center; }
}
@media (max-width:420px){
	.nav-logo .logo-text { font-size:.95rem; }
	.hero { padding:100px 14px 40px; }
	.hero-subtitle { margin-bottom:1.4rem; }
}

/* Sections base */
section { padding:80px 20px; position:relative; }
.section-header { max-width:900px; margin:0 auto 40px; text-align:center; }
.section-header h2 { font-size:2.2rem; margin:0 0 .6rem; background:linear-gradient(90deg,#fff,#d0d6dc); -webkit-background-clip:text; background-clip:text; color:transparent; }
.section-header p { margin:0; opacity:.7; }

/* Page banner (usato nelle pagine Eventi/Contatti/Prenotazioni) */
.page-banner { background-color:#0f1217; background-position:center; background-size:cover; background-repeat:no-repeat; height:540px; border-radius:14px; margin:16px 0; box-shadow:0 18px 50px rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.06); position:relative; overflow:hidden; }
.page-banner::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,6,10,.15),rgba(5,6,10,.55)); }
@media (max-width:680px){ .page-banner{ height:180px; } }

/* Gallery */
.gallery { background:#0f1217; }
.gallery-carousel { position:relative; max-width:1200px; margin:0 auto; }
.carousel-viewport { overflow:hidden; border-radius:14px; position:relative; }
.carousel-viewport::-webkit-scrollbar { display:none; }
.carousel-track { display:flex; gap:14px; padding:6px; will-change:transform; transition:transform .03s linear; }
.carousel-item { flex:0 0 300px; height:200px; border-radius:12px; overflow:hidden; background:#181d23; position:relative; cursor:grab; }
.carousel-item img { width:100%; height:100%; object-fit:cover; display:block; transition:.5s; cursor:pointer; user-select:none; -webkit-user-drag:none; }
.carousel-track.dragging { cursor:grabbing; }
.carousel-item:hover img { transform:scale(1.06); filter:brightness(1.06); }
.carousel-controls { display:flex; justify-content:space-between; align-items:center; margin-top:12px; }
.carousel-btn { background:#232a33; color:#fff; border:none; padding:.6rem .9rem; border-radius:10px; cursor:pointer; font-weight:600; }
.carousel-btn:hover { filter:brightness(1.06); }
@media (max-width:640px){ .carousel-item{ flex-basis:240px; height:160px; } .carousel-track{ gap:10px; } }

/* Effetto pellicola fotografica: fori (sprockets) sopra e sotto */
.carousel-viewport::before,
.carousel-viewport::after { content:''; position:absolute; left:0; right:0; height:16px; z-index:2; pointer-events:none; }
.carousel-viewport::before { top:0; background:
	repeating-linear-gradient(90deg,
		transparent 0 20px,
		rgba(0,0,0,.7) 20px 24px,
		transparent 24px 60px),
	linear-gradient(#0b0e12,#0b0e12);
	box-shadow: inset 0 -1px 0 rgba(255,255,255,.06);
}
.carousel-viewport::after { bottom:0; background:
	repeating-linear-gradient(90deg,
		transparent 0 20px,
		rgba(0,0,0,.7) 20px 24px,
		transparent 24px 60px),
	linear-gradient(#0b0e12,#0b0e12);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}

/* Eventi (Facebook embed) */
.eventi { background:#101418; }
.fb-wrapper { max-width:900px; margin:0 auto; }
.fb-embed { width:100%; position:relative; padding-top:120%; /* aspect ratio responsive */ }
.fb-embed iframe { position:absolute; inset:0; width:100%; height:100%; }

/* Prenotazioni */
.prenotazioni { background:#0f1217; }
.form { max-width:1000px; margin:0 auto; }
.form-row { display:grid; gap:18px; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
.form-field { display:flex; flex-direction:column; }
.form-field.wide { grid-column:1/-1; }
.form-field label { font-weight:600; margin-bottom:.4rem; font-size:.8rem; letter-spacing:.5px; text-transform:uppercase; opacity:.75; }
.form-field input, .form-field textarea { background:#101317; border:1px solid #2c323b; padding:.75rem .85rem; border-radius:10px; color:#fff; font-size:.95rem; font-family:inherit; }
.form-field input:focus, .form-field textarea:focus { outline:none; border-color:#3d84ff; box-shadow:0 0 0 3px rgba(61,132,255,.25); }
.form-actions { margin-top:24px; display:flex; gap:1rem; flex-wrap:wrap; }
.btn-submit { background:var(--grad); border:none; padding:.95rem 1.4rem; font-weight:700; border-radius:12px; cursor:pointer; color:#fff; font-size:1rem; letter-spacing:.5px; box-shadow:0 8px 24px -6px rgba(175,0,45,.55); }
.btn-submit:hover { filter:brightness(1.08); }
.form-hint { font-size:.75rem; margin-top:10px; opacity:.6; }

/* Contatti */
.contatti { background:#101418; }
.contacts-wrapper { max-width:1000px; margin:0 auto; }
.btn-whatsapp { background:#1fa955; padding:.95rem 1.2rem; border-radius:12px; font-weight:700; color:#fff; text-decoration:none; box-shadow:0 10px 30px -8px rgba(31,169,85,.55); }
.btn-whatsapp:hover { filter:brightness(1.08); }

/* Flash messages */
.flash { max-width:1100px; margin:20px auto -40px; padding:.9rem 1.2rem; border-radius:12px; font-weight:600; font-size:.9rem; }
.flash-success { background:#123522; border:1px solid #1e6b3e; color:#7bdca4; }
.flash-error { background:#3a0d12; border:1px solid #7a1f29; color:#ffb3bd; }

/* Footer */
.landing-footer { background:#0a0d10; padding:50px 20px; margin-top:0px; border-top:1px solid rgba(255,255,255,.06); }
.footer-inner { max-width:1100px; margin:0 auto; text-align:center; font-size:.85rem; opacity:.65; }
.footer-inner a { color:#fff; text-decoration:none; font-weight:600; }
.footer-inner a:hover { text-decoration:underline; }

/* Floating WhatsApp */
.whatsapp-floating { position:fixed; bottom:22px; right:22px; width:60px; height:60px; background:#1fa955; display:flex; align-items:center; justify-content:center; text-decoration:none; font-size:1.6rem; border-radius:50%; box-shadow:0 14px 36px -10px rgba(31,169,85,.6), 0 4px 12px rgba(0,0,0,.4); color:#fff; z-index:1000; }
.whatsapp-floating:hover { filter:brightness(1.08); }

/* Lightbox per galleria landing */
.lb-overlay { position:fixed; inset:0; background:rgba(0,0,0,.8); display:none; align-items:center; justify-content:center; z-index:2000; }
.lb-overlay.active { display:flex; }
.lb-stage { max-width:90vw; display:flex; flex-direction:column; align-items:center; }
.lb-image-wrap { position:relative; width:90vw; max-width:90vw; height:72vh; max-height:72vh; }
.lb-img { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); max-width:90vw; max-height:72vh; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.6); opacity:0; transition:opacity 1s ease; }
.lb-img.active { opacity:1; }
.lb-controls { position:static; margin-top:8px; display:flex; gap:.5rem; }
.lb-controls .btn { background:#232a33; color:#fff; border:none; padding:.45rem .7rem; border-radius:9px; cursor:pointer; font-size:.9rem; }
.lb-counter { position:absolute; top:10px; right:10px; background:#232a33; color:#fff; padding:.25rem .55rem; border-radius:8px; font-size:.78rem; }

/* Accessibility small improvements */
.nav-links > li > a:focus, .nav-dropdown-toggle:focus, .btn-cta:focus, .btn-outline:focus, .btn-submit:focus, .btn-whatsapp:focus, .area-riservata:focus { outline:2px solid #3d84ff; outline-offset:3px; }

/* Correzione definitiva colore testo e aggiunta icona tavolo */
.btn-cta {
    color: #ffffff !important; /* Forza testo nero per tutti i pulsanti */
    text-shadow: none !important; /* Rimuove ombre */
}

.btn-cta-green::before {
    content: '\1F483'; /* Icona ballerina per "Prenota un tavolo" */
    margin-right: 8px;
}

.btn-cta-pink::before {
    content: '\1F697'; /* Icona auto per "Prenota posto auto" */
    margin-right: 8px;
}

.btn-cta::before {
    content: '\1F4C5'; /* Icona calendario per "Guarda gli eventi" */
    margin-right: 8px;
}

/* GDPR / Privacy modal fragment styling */
.privacy-fragment {
    max-width: 880px;
    margin: 0 auto;
    padding: 8px 6px;
    color: #e6eef5;
    font-size: 16px;
    line-height: 1.6;
}
.privacy-fragment .privacy-header {
    display:flex; flex-direction:column; align-items:center; gap:.12rem; margin-bottom:.25rem;
    position: relative; padding-top: 2px; box-sizing: border-box;
}
.privacy-fragment h1, .privacy-fragment h2 { font-size:1.45rem; margin:0.25rem 0 0.6rem; text-align:center; color:#fff; }
.privacy-fragment .privacy-meta { color:#9fb3c6; font-size:.92rem; margin-bottom:6px; text-align:center; }
.privacy-fragment .privacy-logo { max-width:360px; width:auto; display:block; margin:4px auto 6px; filter: drop-shadow(0 6px 18px rgba(0,0,0,.45)); }
.privacy-fragment .privacy-content { background:transparent; padding:6px 4px; color:#dfeaf3; font-size:15.5px; line-height:1.72; text-align:left; hyphens:auto; }
.privacy-fragment .privacy-content p { margin-bottom: 0.9rem; }
.privacy-fragment .privacy-content p { margin-bottom:1.1rem; }

/* Modal container and sizing — keep overlay above cookies/banner */
#privacyModal { position: fixed; inset: 0; z-index: 1000000 !important; display:flex; align-items:center; justify-content:center; overflow: hidden; }
/* Slightly tighter card and a subtler accent border */
/* Keep only the inner modal body scrollable — prevent double scrollbars */
/* stronger, vivid orange border that reads well on dark backgrounds */
#privacyModalCard {
    padding:10px; max-width:880px; width:calc(100% - 40px);
    max-height: calc(86vh - var(--cookie-banner-height, 0px));
    overflow: visible; /* card should not create its own scroll — body will */
    border-radius:12px; border:2px solid rgba(255,159,57,0.08);
    box-shadow: 0 28px 72px rgba(2,6,23,0.7), inset 0 0 0 2px rgba(255,122,24,0.03);
}
/* modal card: enforce box-sizing and make sure scrollbars stay inside the rounded card */
#privacyModalCard {
    box-sizing: border-box;
    padding:10px; max-width:880px; width:calc(100% - 40px);
    max-height: calc(86vh - var(--cookie-banner-height, 0px));
    overflow: hidden; /* card should not create its own scroll — body will */
    border-radius:12px; border:5px solid #ff9f39; /* vivid, full orange */
    /* subtle outer glow to emphasize the accent without becoming garish */
    box-shadow: 0 30px 80px rgba(2,6,23,0.7), 0 0 18px rgba(255,159,57,0.08), inset 0 0 0 2px rgba(255,122,24,0.03);
    background-clip: padding-box; /* keep border inside rounded corners */
    box-shadow: 0 28px 72px rgba(2,6,23,0.7), inset 0 0 0 2px rgba(255,122,24,0.03);
}

/* modal body: single scroll inside card, keep scrollbar inside border */
#privacyModalBody {
    padding: 18px 32px 18px 18px; /* add more right padding so scrollbar sits comfortably inside card and doesn't reach close button */
    max-height: calc(78vh - var(--cookie-banner-height, 0px) - 40px); /* reserve space for header/close */
    overflow:auto; /* single scrollbar only */
    -webkit-overflow-scrolling: touch;
}

/* Internal scrollbars — specific to the modal body */
/* subtle, dark internal scrollbar tucked to the right of the modal card */
#privacyModal #privacyModalCard #privacyModalBody::-webkit-scrollbar { width: 10px; }
#privacyModal #privacyModalCard #privacyModalBody::-webkit-scrollbar-track {
    background: rgba(14,14,14,0.78);
    border-radius: 12px;
    margin:6px 0; /* keep track visually inset */
}
#privacyModal #privacyModalCard #privacyModalBody::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg,#222427,#0f1112);
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.03);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.02), inset 0 -4px 10px rgba(0,0,0,0.6);
}
#privacyModal #privacyModalCard #privacyModalBody::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg,#2b2e2f,#151617);
}
#privacyModal #privacyModalCard #privacyModalBody { scrollbar-color: #222427 rgba(14,14,14,0.78); scrollbar-width: thin; }

/* When modal is open ensure page scrollbars disappear on most browsers */
html.mm-modal-open, body.mm-modal-open { overflow: hidden !important; height:100% !important; width:100% !important; scrollbar-width: none !important; -ms-overflow-style: none !important; }
html.mm-modal-open::-webkit-scrollbar, body.mm-modal-open::-webkit-scrollbar { display: none !important; }

/* Modern close button styling */
.privacy-close-btn {
    position:absolute; top:12px; right:22px; z-index:1000020;
    min-width:62px; height:44px; border-radius:10px; display:inline-flex;
    padding:0 10px; align-items:center; justify-content:center;
    background:transparent; border:1px solid rgba(255,255,255,0.06);
    color: #fff; box-shadow: 0 6px 18px rgba(0,0,0,0.45);
    transition: transform .12s ease, background .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.privacy-close-btn:hover { transform: translateY(-2px) scale(1.03); background: rgba(255,255,255,0.03); border-color: rgba(255,255,255,0.14); box-shadow: 0 10px 26px rgba(0,0,0,0.6); }
.privacy-close-btn:focus-visible { outline: 3px solid rgba(255,255,255,0.12); outline-offset: 2px; }
/* Draw a thin, elegant cross using pseudo elements (more subtle than a heavy X SVG) */
.privacy-close-label { font-size:16px; color:#ffffff; font-weight:800; letter-spacing:0.25px; padding:6px 12px; opacity:0.98; text-transform:none; }
.privacy-close-btn .privacy-close-label { display:inline-block; }
.privacy-close-btn .privacy-close-label { display:inline-block; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
.privacy-close-btn::before, .privacy-close-btn::after { display:none; }

/* Utility to hide things visually but keep them available to screen readers */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* 3D-like text effect for the close label (no colored pill) */
/* Slightly stronger 3D text effect for the close label (no colored pill) */
.privacy-close-label {
    text-shadow:
        0 1px 0 rgba(0,0,0,0.75),
        0 3px 12px rgba(0,0,0,0.55),
        0 -1px 0 rgba(255,255,255,0.02);
    transform: translateZ(0);
}

/* force transparent background (remove any blue/purple behind from older styles) */
.privacy-close-btn { background: transparent !important; border-color: rgba(255,255,255,0.06) !important; box-shadow: none !important; }
.privacy-close-btn:hover { background: rgba(255,255,255,0.02) !important; }


/* no override here - keep the modern close button style above */

/* Responsive: smaller screens get scaled logo and font-size for readability */
@media (max-width: 640px){
    .privacy-fragment { font-size:15px; padding:8px; }
    .privacy-fragment .privacy-logo { max-width:160px; width:40%; }
    #privacyModalCard { width: calc(100% - 24px); }
}

/* Full-page privacy view - center content, smaller logo and tighter spacing */
.privacy-page { max-width:980px; margin: 40px auto; padding: 26px; background: rgba(8,10,14,0.45); border-radius:10px; }
.privacy-page .privacy-header { gap: .08rem; margin-bottom: .35rem; }
.privacy-page .privacy-header h1 { font-size:2rem; margin-bottom:8px; }
.privacy-page .privacy-logo { max-width:200px; margin:8px auto 6px; }
.privacy-page .privacy-content { font-size:15px; line-height:1.6; max-width:820px; margin: 6px auto 0; }
.privacy-page .public-pages-menu a { color:#ffd08a; opacity:0.95; padding:6px 8px; border-radius:6px; background:transparent; }
.privacy-page .public-pages-menu a:hover { background: rgba(255,159,57,0.06); text-decoration:underline; }

/* When modal is open we add a class to hide page scrollbar forcibly */
/* (kept the stronger mm-modal-open rules earlier) */

/* modal body scroll handled above using more specific selectors */

/* Ensure navigation bar is hidden */
html.mm-modal-open .navbar {
    display: none;
}

/* Stili per menu colorati come pulsanti */
.nav-dropdown-toggle.menu-eventi {
    background: var(--grad) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 14px 42px -10px rgba(175,0,45,.6) !important;
}
.nav-dropdown-toggle.menu-eventi:hover {
    filter: brightness(1.08);
}

.nav-dropdown-toggle.menu-prenotazioni {
    background: linear-gradient(90deg, #34d399, #059669 75%) !important;
    color: #000 !important;
    border-color: transparent !important;
    box-shadow: 0 14px 42px -10px rgba(5,150,105,.45) !important;
    text-shadow: none !important;
}
.nav-dropdown-toggle.menu-prenotazioni:hover {
    filter: brightness(1.08);
}

