@font-face {
    font-family: 'Gambetta';
    src: url('fonts/gambetta-variable.woff2') format('woff2');
    font-weight: 300 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Manrope';
    src: url('fonts/manrope-variable.woff2') format('woff2');
    font-weight: 200 800;
    font-style: normal;
    font-display: swap;
}

:root {
    --bg-color: #0A0A0A;
    --nav-footer-bg: #141414;
    --text-main: #F8F9FA;
    --text-nav: #F2F3F4;
    --accent: #D4B57C;
    --silver: #C7CBCE;
    --brand-deliveroo: #00CDBC;
    --font-serif: 'Gambetta', serif;
    --font-sans: 'Manrope', sans-serif;
    --body-p-size: clamp(14px, calc(12.636px + 0.341vw), 17px);
}

html {
    background-color: var(--bg-color);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-repeat: repeat;
    color: var(--text-main);
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
    overflow-x: hidden;
}

*, *:before, *:after {
    box-sizing: inherit;
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--font-sans);
    overflow-x: hidden;
    width: 100%;
    max-width: 100vw;
    position: relative;
    touch-action: pan-y;
}

body.no-scroll {
    overflow: hidden !important;
}

h2, h3 {
    font-family: var(--font-serif);
    font-weight: 500;
    letter-spacing: -0.02em;
    color: var(--text-main);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
a {
    text-decoration: none;
    color: inherit;
}

section {
    overflow-x: clip;
}

#recensioni, #mappa {
    overflow-x: visible;
}

.cta-arrow-svg {
    position: absolute; right: 20px; width: 18px; height: 18px;
    transition: transform 0.3s ease;
}

.section-container {
    width: 88%;
    max-width: 1268px;
    margin: 0 auto;
    position: relative;
}

/* senza min-width:0 il separatore da 360px impone la sua larghezza al wrapper
   flex che lo contiene, sfondando il contenitore sui telefoni piu' stretti */
.title-wrapper {
    min-width: 0;
    max-width: 100%;
}

.separator {
    width: 360px;
    max-width: 80%;
    height: 2px;
    background-color: var(--text-main);
    margin: 40px 0;
}

.wave-separator {
    width: 170px;
    max-width: 45%;
    height: auto;
    display: block;
    flex-shrink: 0;
}
.storia-title-row .wave-separator {
    opacity: 0;
    transform: translateX(-12px) scale(0.85);
    transform-origin: left center;
}

.center-text { text-align: center; }

.icon-white {

    filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(100%) hue-rotate(0deg) brightness(100%) contrast(100%);
    transition: filter 0.3s ease;
}
.icon-accent {
    filter: brightness(0) saturate(100%) invert(80%) sepia(21%) saturate(735%) hue-rotate(345deg) brightness(91%) contrast(85%);
    width: 24px;
    margin-right: 10px;
    vertical-align: middle;
}

.desktop-only { display: block; }
.mobile-only { display: none !important; }

#orientation-warning { display: none; }

#loader {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100dvh;
    background: var(--bg-color);
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
}
.loader-logo, .hero-logo {
    width: 280px;
    position: absolute;
}
.loader-circle {
    /* sotto i ~360px di viewport i 330px fissi venivano tagliati ai due lati */
    width: min(330px, calc(100vw - 30px));
    height: min(330px, calc(100vw - 30px));
    position: absolute;
}
.loader-circle svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.loader-circle circle {
    fill: none;
    stroke: var(--accent);
    stroke-width: 0.5;
    stroke-dasharray: 308;
    stroke-dashoffset: 308;
    animation: drawCircle 2s ease forwards;
}
@keyframes drawCircle { to { stroke-dashoffset: 0; } }

#navbar {
    position: fixed;
    top: 0; left: 0; width: 100%;
    padding: 50px 0;
    z-index: 1000;
    transition: padding 0.3s ease;
    clip-path: polygon(0.00% 0.00%, 100.00% 0.00%, 100.00% 92.50%, 98.75% 93.15%, 97.47% 93.73%, 96.14% 94.22%, 94.73% 94.60%, 93.23% 94.84%, 91.60% 94.93%, 89.82% 94.84%, 87.87% 94.54%, 85.71% 94.02%, 83.33% 93.25%, 78.57% 91.91%, 74.20% 91.37%, 70.13% 91.43%, 66.27% 91.91%, 62.50% 92.59%, 58.73% 93.30%, 54.87% 93.84%, 50.80% 94.02%, 46.43% 93.63%, 41.67% 92.50%, 36.90% 91.37%, 32.53% 90.98%, 28.47% 91.16%, 24.60% 91.70%, 20.83% 92.41%, 17.07% 93.09%, 13.20% 93.57%, 9.13% 93.63%, 4.77% 93.09%, 0.00% 91.75%);
    animation: heroWaveMove 11s ease-in-out infinite;
}
#navbar.scrolled {
    background: var(--nav-footer-bg);
    padding: 40px 0;
}
.nav-container {
    width: 88%;
    max-width: 1268px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}
.nav-left, .nav-right { display: flex; gap: 40px; align-items: center; }
.hamburger { display: none; }

.nav-link {
    font-size: 20px;
    color: var(--text-nav);
    position: relative;
    transition: color 0.3s ease;
}

.nav-center-logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
}
#nav-logo {
    width: 100px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
#navbar.scrolled #nav-logo {
    opacity: 1;
    pointer-events: auto;
}

.mobile-menu-overlay { display: none; }

#hero {
    width: 100%; height: 100dvh; position: relative;
    display: flex; justify-content: center; align-items: center;
    overflow: visible;
    z-index: 2;
}
.video-container {

    position: absolute; top: 0; left: 0; width: 100%; height: 116%; background: #000;
    clip-path: polygon(0% 0%, 100% 0%, 100.00% 92.50%, 98.75% 93.15%, 97.47% 93.73%, 96.14% 94.22%, 94.73% 94.60%, 93.23% 94.84%, 91.60% 94.93%, 89.82% 94.84%, 87.87% 94.54%, 85.71% 94.02%, 83.33% 93.25%, 78.57% 91.91%, 74.20% 91.37%, 70.13% 91.43%, 66.27% 91.91%, 62.50% 92.59%, 58.73% 93.30%, 54.87% 93.84%, 50.80% 94.02%, 46.43% 93.63%, 41.67% 92.50%, 36.90% 91.37%, 32.53% 90.98%, 28.47% 91.16%, 24.60% 91.70%, 20.83% 92.41%, 17.07% 93.09%, 13.20% 93.57%, 9.13% 93.63%, 4.77% 93.09%, 0.00% 91.75%);
    animation: heroWaveMove 11s ease-in-out infinite;
    z-index: 1;
}
#hero-video { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.45); }
@keyframes heroWaveMove {
    0%, 100% { clip-path: polygon(0.00% 0.00%, 100.00% 0.00%, 100.00% 92.50%, 98.75% 93.15%, 97.47% 93.73%, 96.14% 94.22%, 94.73% 94.60%, 93.23% 94.84%, 91.60% 94.93%, 89.82% 94.84%, 87.87% 94.54%, 85.71% 94.02%, 83.33% 93.25%, 78.57% 91.91%, 74.20% 91.37%, 70.13% 91.43%, 66.27% 91.91%, 62.50% 92.59%, 58.73% 93.30%, 54.87% 93.84%, 50.80% 94.02%, 46.43% 93.63%, 41.67% 92.50%, 36.90% 91.37%, 32.53% 90.98%, 28.47% 91.16%, 24.60% 91.70%, 20.83% 92.41%, 17.07% 93.09%, 13.20% 93.57%, 9.13% 93.63%, 4.77% 93.09%, 0.00% 91.75%); }
    33% { clip-path: polygon(0.00% 0.00%, 100.00% 0.00%, 100.00% 92.50%, 98.75% 93.01%, 97.47% 93.45%, 96.14% 93.79%, 94.73% 94.01%, 93.23% 94.10%, 91.60% 94.02%, 89.82% 93.77%, 87.87% 93.30%, 85.71% 92.61%, 83.33% 91.69%, 78.57% 90.16%, 74.20% 89.57%, 70.13% 89.71%, 66.27% 90.37%, 62.50% 91.32%, 58.73% 92.36%, 54.87% 93.30%, 50.80% 93.93%, 46.43% 94.03%, 41.67% 93.40%, 36.90% 92.69%, 32.53% 92.58%, 28.47% 92.92%, 24.60% 93.50%, 20.83% 94.15%, 17.07% 94.67%, 13.20% 94.90%, 9.13% 94.61%, 4.77% 93.62%, 0.00% 91.75%); }
    66% { clip-path: polygon(0.00% 0.00%, 100.00% 0.00%, 100.00% 92.50%, 98.75% 93.29%, 97.47% 94.01%, 96.14% 94.65%, 94.73% 95.19%, 93.23% 95.58%, 91.60% 95.84%, 89.82% 95.91%, 87.87% 95.78%, 85.71% 95.43%, 83.33% 94.81%, 78.57% 93.66%, 74.20% 93.17%, 70.13% 93.15%, 66.27% 93.45%, 62.50% 93.86%, 58.73% 94.24%, 54.87% 94.38%, 50.80% 94.11%, 46.43% 93.23%, 41.67% 91.60%, 36.90% 90.05%, 32.53% 89.38%, 28.47% 89.40%, 24.60% 89.90%, 20.83% 90.67%, 17.07% 91.51%, 13.20% 92.24%, 9.13% 92.65%, 4.77% 92.56%, 0.00% 91.75%); }
}

.wave-frame-both {
    clip-path: polygon(0.00% 3.71%, 4.77% 3.11%, 9.13% 2.87%, 13.20% 2.89%, 17.07% 3.11%, 20.83% 3.42%, 24.60% 3.74%, 28.47% 3.98%, 32.53% 4.06%, 36.90% 3.88%, 41.67% 3.38%, 46.43% 2.87%, 50.80% 2.69%, 54.87% 2.77%, 58.73% 3.02%, 62.50% 3.33%, 66.27% 3.64%, 70.13% 3.86%, 74.20% 3.88%, 78.57% 3.64%, 83.33% 3.04%, 85.71% 2.69%, 87.87% 2.46%, 89.82% 2.32%, 91.60% 2.28%, 93.23% 2.32%, 94.73% 2.43%, 96.14% 2.60%, 97.47% 2.82%, 98.75% 3.08%, 100.00% 3.38%, 100.00% 96.62%, 98.75% 96.92%, 97.47% 97.18%, 96.14% 97.40%, 94.73% 97.57%, 93.23% 97.68%, 91.60% 97.72%, 89.82% 97.68%, 87.87% 97.54%, 85.71% 97.31%, 83.33% 96.96%, 78.57% 96.36%, 74.20% 96.12%, 70.13% 96.14%, 66.27% 96.36%, 62.50% 96.67%, 58.73% 96.98%, 54.87% 97.23%, 50.80% 97.31%, 46.43% 97.13%, 41.67% 96.62%, 36.90% 96.12%, 32.53% 95.94%, 28.47% 96.02%, 24.60% 96.27%, 20.83% 96.58%, 17.07% 96.89%, 13.20% 97.11%, 9.13% 97.13%, 4.77% 96.89%, 0.00% 96.29%);
    animation: bothWaveMove 11s ease-in-out infinite;
}
@keyframes bothWaveMove {
    0%, 100% { clip-path: polygon(0.00% 3.71%, 4.77% 3.11%, 9.13% 2.87%, 13.20% 2.89%, 17.07% 3.11%, 20.83% 3.42%, 24.60% 3.74%, 28.47% 3.98%, 32.53% 4.06%, 36.90% 3.88%, 41.67% 3.38%, 46.43% 2.87%, 50.80% 2.69%, 54.87% 2.77%, 58.73% 3.02%, 62.50% 3.33%, 66.27% 3.64%, 70.13% 3.86%, 74.20% 3.88%, 78.57% 3.64%, 83.33% 3.04%, 85.71% 2.69%, 87.87% 2.46%, 89.82% 2.32%, 91.60% 2.28%, 93.23% 2.32%, 94.73% 2.43%, 96.14% 2.60%, 97.47% 2.82%, 98.75% 3.08%, 100.00% 3.38%, 100.00% 96.62%, 98.75% 96.92%, 97.47% 97.18%, 96.14% 97.40%, 94.73% 97.57%, 93.23% 97.68%, 91.60% 97.72%, 89.82% 97.68%, 87.87% 97.54%, 85.71% 97.31%, 83.33% 96.96%, 78.57% 96.36%, 74.20% 96.12%, 70.13% 96.14%, 66.27% 96.36%, 62.50% 96.67%, 58.73% 96.98%, 54.87% 97.23%, 50.80% 97.31%, 46.43% 97.13%, 41.67% 96.62%, 36.90% 96.12%, 32.53% 95.94%, 28.47% 96.02%, 24.60% 96.27%, 20.83% 96.58%, 17.07% 96.89%, 13.20% 97.11%, 9.13% 97.13%, 4.77% 96.89%, 0.00% 96.29%); }
    33% { clip-path: polygon(0.00% 3.71%, 4.77% 2.87%, 9.13% 2.43%, 13.20% 2.29%, 17.07% 2.40%, 20.83% 2.63%, 24.60% 2.93%, 28.47% 3.19%, 32.53% 3.34%, 36.90% 3.29%, 41.67% 2.97%, 46.43% 2.69%, 50.80% 2.73%, 54.87% 3.02%, 58.73% 3.44%, 62.50% 3.91%, 66.27% 4.33%, 70.13% 4.63%, 74.20% 4.69%, 78.57% 4.43%, 83.33% 3.74%, 85.71% 3.33%, 87.87% 3.02%, 89.82% 2.80%, 91.60% 2.69%, 93.23% 2.66%, 94.73% 2.70%, 96.14% 2.79%, 97.47% 2.95%, 98.75% 3.15%, 100.00% 3.38%, 100.00% 96.62%, 98.75% 96.85%, 97.47% 97.05%, 96.14% 97.21%, 94.73% 97.30%, 93.23% 97.34%, 91.60% 97.31%, 89.82% 97.20%, 87.87% 96.98%, 85.71% 96.67%, 83.33% 96.26%, 78.57% 95.57%, 74.20% 95.31%, 70.13% 95.37%, 66.27% 95.67%, 62.50% 96.09%, 58.73% 96.56%, 54.87% 96.98%, 50.80% 97.27%, 46.43% 97.31%, 41.67% 97.03%, 36.90% 96.71%, 32.53% 96.66%, 28.47% 96.81%, 24.60% 97.08%, 20.83% 97.37%, 17.07% 97.60%, 13.20% 97.70%, 9.13% 97.57%, 4.77% 97.13%, 0.00% 96.29%); }
    66% { clip-path: polygon(0.00% 3.71%, 4.77% 3.35%, 9.13% 3.31%, 13.20% 3.49%, 17.07% 3.82%, 20.83% 4.20%, 24.60% 4.54%, 28.47% 4.77%, 32.53% 4.78%, 36.90% 4.48%, 41.67% 3.78%, 46.43% 3.05%, 50.80% 2.65%, 54.87% 2.53%, 58.73% 2.59%, 62.50% 2.76%, 66.27% 2.95%, 70.13% 3.08%, 74.20% 3.07%, 78.57% 2.85%, 83.33% 2.34%, 85.71% 2.06%, 87.87% 1.90%, 89.82% 1.84%, 91.60% 1.87%, 93.23% 1.99%, 94.73% 2.16%, 96.14% 2.41%, 97.47% 2.70%, 98.75% 3.02%, 100.00% 3.38%, 100.00% 96.62%, 98.75% 96.98%, 97.47% 97.30%, 96.14% 97.59%, 94.73% 97.84%, 93.23% 98.01%, 91.60% 98.13%, 89.82% 98.16%, 87.87% 98.10%, 85.71% 97.94%, 83.33% 97.66%, 78.57% 97.15%, 74.20% 96.93%, 70.13% 96.92%, 66.27% 97.05%, 62.50% 97.24%, 58.73% 97.41%, 54.87% 97.47%, 50.80% 97.35%, 46.43% 96.95%, 41.67% 96.22%, 36.90% 95.52%, 32.53% 95.22%, 28.47% 95.23%, 24.60% 95.45%, 20.83% 95.80%, 17.07% 96.18%, 13.20% 96.51%, 9.13% 96.69%, 4.77% 96.65%, 0.00% 96.29%); }
}

@keyframes cardWaveMoveLight {
    0%, 100% { clip-path: polygon(0.00% 3.71%, 4.77% 3.47%, 9.13% 3.37%, 13.20% 3.38%, 17.07% 3.47%, 20.83% 3.59%, 24.60% 3.72%, 28.47% 3.82%, 32.53% 3.85%, 36.90% 3.78%, 41.67% 3.58%, 46.43% 3.37%, 50.80% 3.30%, 54.87% 3.33%, 58.73% 3.43%, 62.50% 3.56%, 66.27% 3.68%, 70.13% 3.77%, 74.20% 3.78%, 78.57% 3.68%, 83.33% 3.44%, 85.71% 3.30%, 87.87% 3.21%, 89.82% 3.15%, 91.60% 3.14%, 93.23% 3.15%, 94.73% 3.20%, 96.14% 3.27%, 97.47% 3.35%, 98.75% 3.46%, 100.00% 3.58%, 100.00% 96.42%, 98.75% 96.54%, 97.47% 96.65%, 96.14% 96.73%, 94.73% 96.80%, 93.23% 96.85%, 91.60% 96.86%, 89.82% 96.85%, 87.87% 96.79%, 85.71% 96.70%, 83.33% 96.56%, 78.57% 96.32%, 74.20% 96.22%, 70.13% 96.23%, 66.27% 96.32%, 62.50% 96.44%, 58.73% 96.57%, 54.87% 96.67%, 50.80% 96.70%, 46.43% 96.63%, 41.67% 96.42%, 36.90% 96.22%, 32.53% 96.15%, 28.47% 96.18%, 24.60% 96.28%, 20.83% 96.41%, 17.07% 96.53%, 13.20% 96.62%, 9.13% 96.63%, 4.77% 96.53%, 0.00% 96.29%); }
    33% { clip-path: polygon(0.00% 3.71%, 4.77% 3.37%, 9.13% 3.20%, 13.20% 3.14%, 17.07% 3.19%, 20.83% 3.28%, 24.60% 3.40%, 28.47% 3.50%, 32.53% 3.56%, 36.90% 3.54%, 41.67% 3.41%, 46.43% 3.30%, 50.80% 3.32%, 54.87% 3.43%, 58.73% 3.60%, 62.50% 3.79%, 66.27% 3.96%, 70.13% 4.08%, 74.20% 4.10%, 78.57% 4.00%, 83.33% 3.72%, 85.71% 3.56%, 87.87% 3.43%, 89.82% 3.35%, 91.60% 3.30%, 93.23% 3.29%, 94.73% 3.31%, 96.14% 3.34%, 97.47% 3.41%, 98.75% 3.49%, 100.00% 3.58%, 100.00% 96.42%, 98.75% 96.51%, 97.47% 96.59%, 96.14% 96.66%, 94.73% 96.69%, 93.23% 96.71%, 91.60% 96.70%, 89.82% 96.65%, 87.87% 96.57%, 85.71% 96.44%, 83.33% 96.28%, 78.57% 96.00%, 74.20% 95.90%, 70.13% 95.92%, 66.27% 96.04%, 62.50% 96.21%, 58.73% 96.40%, 54.87% 96.57%, 50.80% 96.68%, 46.43% 96.70%, 41.67% 96.59%, 36.90% 96.46%, 32.53% 96.44%, 28.47% 96.50%, 24.60% 96.61%, 20.83% 96.72%, 17.07% 96.81%, 13.20% 96.85%, 9.13% 96.80%, 4.77% 96.63%, 0.00% 96.29%); }
    66% { clip-path: polygon(0.00% 3.71%, 4.77% 3.57%, 9.13% 3.55%, 13.20% 3.62%, 17.07% 3.75%, 20.83% 3.91%, 24.60% 4.04%, 28.47% 4.13%, 32.53% 4.14%, 36.90% 4.02%, 41.67% 3.74%, 46.43% 3.45%, 50.80% 3.29%, 54.87% 3.24%, 58.73% 3.26%, 62.50% 3.33%, 66.27% 3.41%, 70.13% 3.46%, 74.20% 3.45%, 78.57% 3.37%, 83.33% 3.16%, 85.71% 3.05%, 87.87% 2.99%, 89.82% 2.96%, 91.60% 2.97%, 93.23% 3.02%, 94.73% 3.09%, 96.14% 3.19%, 97.47% 3.31%, 98.75% 3.43%, 100.00% 3.58%, 100.00% 96.42%, 98.75% 96.57%, 97.47% 96.69%, 96.14% 96.81%, 94.73% 96.91%, 93.23% 96.98%, 91.60% 97.03%, 89.82% 97.04%, 87.87% 97.01%, 85.71% 96.95%, 83.33% 96.84%, 78.57% 96.63%, 74.20% 96.55%, 70.13% 96.54%, 66.27% 96.59%, 62.50% 96.67%, 58.73% 96.74%, 54.87% 96.76%, 50.80% 96.71%, 46.43% 96.55%, 41.67% 96.26%, 36.90% 95.98%, 32.53% 95.86%, 28.47% 95.87%, 24.60% 95.95%, 20.83% 96.09%, 17.07% 96.25%, 13.20% 96.38%, 9.13% 96.45%, 4.77% 96.43%, 0.00% 96.29%); }
}

@keyframes cardWaveMoveVisible {
    0%, 100% { clip-path: polygon(0.00% 3.71%, 4.77% 3.34%, 9.13% 3.19%, 13.20% 3.20%, 17.07% 3.34%, 20.83% 3.53%, 24.60% 3.73%, 28.47% 3.88%, 32.53% 3.93%, 36.90% 3.82%, 41.67% 3.51%, 46.43% 3.19%, 50.80% 3.08%, 54.87% 3.13%, 58.73% 3.28%, 62.50% 3.47%, 66.27% 3.67%, 70.13% 3.80%, 74.20% 3.82%, 78.57% 3.67%, 83.33% 3.29%, 85.71% 3.08%, 87.87% 2.94%, 89.82% 2.85%, 91.60% 2.82%, 93.23% 2.85%, 94.73% 2.92%, 96.14% 3.02%, 97.47% 3.16%, 98.75% 3.32%, 100.00% 3.51%, 100.00% 96.49%, 98.75% 96.68%, 97.47% 96.84%, 96.14% 96.98%, 94.73% 97.08%, 93.23% 97.15%, 91.60% 97.18%, 89.82% 97.15%, 87.87% 97.07%, 85.71% 96.92%, 83.33% 96.71%, 78.57% 96.33%, 74.20% 96.18%, 70.13% 96.20%, 66.27% 96.33%, 62.50% 96.53%, 58.73% 96.72%, 54.87% 96.87%, 50.80% 96.92%, 46.43% 96.81%, 41.67% 96.49%, 36.90% 96.18%, 32.53% 96.07%, 28.47% 96.12%, 24.60% 96.28%, 20.83% 96.47%, 17.07% 96.66%, 13.20% 96.80%, 9.13% 96.81%, 4.77% 96.66%, 0.00% 96.29%); }
    33% { clip-path: polygon(0.00% 3.71%, 4.77% 3.19%, 9.13% 2.92%, 13.20% 2.83%, 17.07% 2.90%, 20.83% 3.04%, 24.60% 3.23%, 28.47% 3.39%, 32.53% 3.48%, 36.90% 3.45%, 41.67% 3.25%, 46.43% 3.08%, 50.80% 3.10%, 54.87% 3.28%, 58.73% 3.54%, 62.50% 3.83%, 66.27% 4.09%, 70.13% 4.28%, 74.20% 4.32%, 78.57% 4.16%, 83.33% 3.73%, 85.71% 3.47%, 87.87% 3.28%, 89.82% 3.15%, 91.60% 3.08%, 93.23% 3.06%, 94.73% 3.08%, 96.14% 3.14%, 97.47% 3.24%, 98.75% 3.36%, 100.00% 3.51%, 100.00% 96.49%, 98.75% 96.64%, 97.47% 96.76%, 96.14% 96.86%, 94.73% 96.92%, 93.23% 96.94%, 91.60% 96.92%, 89.82% 96.85%, 87.87% 96.72%, 85.71% 96.53%, 83.33% 96.27%, 78.57% 95.84%, 74.20% 95.68%, 70.13% 95.72%, 66.27% 95.91%, 62.50% 96.17%, 58.73% 96.46%, 54.87% 96.72%, 50.80% 96.90%, 46.43% 96.92%, 41.67% 96.75%, 36.90% 96.55%, 32.53% 96.52%, 28.47% 96.61%, 24.60% 96.78%, 20.83% 96.96%, 17.07% 97.10%, 13.20% 97.16%, 9.13% 97.08%, 4.77% 96.81%, 0.00% 96.29%); }
    66% { clip-path: polygon(0.00% 3.71%, 4.77% 3.49%, 9.13% 3.46%, 13.20% 3.57%, 17.07% 3.78%, 20.83% 4.01%, 24.60% 4.22%, 28.47% 4.37%, 32.53% 4.37%, 36.90% 4.19%, 41.67% 3.75%, 46.43% 3.30%, 50.80% 3.05%, 54.87% 2.98%, 58.73% 3.02%, 62.50% 3.12%, 66.27% 3.24%, 70.13% 3.32%, 74.20% 3.31%, 78.57% 3.18%, 83.33% 2.86%, 85.71% 2.69%, 87.87% 2.59%, 89.82% 2.55%, 91.60% 2.57%, 93.23% 2.64%, 94.73% 2.75%, 96.14% 2.90%, 97.47% 3.08%, 98.75% 3.28%, 100.00% 3.51%, 100.00% 96.49%, 98.75% 96.72%, 97.47% 96.92%, 96.14% 97.10%, 94.73% 97.25%, 93.23% 97.36%, 91.60% 97.43%, 89.82% 97.45%, 87.87% 97.41%, 85.71% 97.31%, 83.33% 97.14%, 78.57% 96.82%, 74.20% 96.69%, 70.13% 96.68%, 66.27% 96.76%, 62.50% 96.88%, 58.73% 96.98%, 54.87% 97.02%, 50.80% 96.95%, 46.43% 96.70%, 41.67% 96.25%, 36.90% 95.81%, 32.53% 95.63%, 28.47% 95.63%, 24.60% 95.77%, 20.83% 95.99%, 17.07% 96.22%, 13.20% 96.43%, 9.13% 96.54%, 4.77% 96.51%, 0.00% 96.29%); }
}
.hero-overlay-layer {
    position: absolute; inset: 0; width: 100%; height: 100%;
    display: flex; justify-content: center; align-items: center;
    overflow: hidden;
    z-index: 3;
    pointer-events: none;
}
.hero-logo { z-index: 10; }
.hero-scroll-hint {
    position: absolute;
    bottom: 36px; left: 50%;
    transform: translateX(-50%);
    z-index: 8;
    display: flex; flex-direction: column; align-items: center; gap: 10px;
    pointer-events: none;
    color: var(--text-nav);
    font-family: var(--font-sans);
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: 0.75;
}
.hero-scroll-hint svg {
    width: 16px; height: 16px;
    animation: heroScrollBounce 1.8s ease-in-out infinite;
}
@keyframes heroScrollBounce {
    0%, 100% { transform: translateY(0); opacity: 0.5; }
    50% { transform: translateY(6px); opacity: 1; }
}

#storia { margin-top: 100px; }
.storia-wrapper {
    position: relative;
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 6vw;
    padding: 60px 0;
}
.storia-image-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
}
.storia-image-wrap::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(15, 15, 15, 0.55), transparent 45%);
    pointer-events: none;
}
.storia-rotate-wrap {
    position: absolute;
    width: 133.34%;
    height: 75%;
    left: -16.67%;
    top: 12.5%;
    transform: rotate(90deg);
    overflow: hidden;
}
.storia-image-wrap .storia-bg {
    width: 100%;
    height: 116%;
    object-fit: cover;
    object-position: center center;
    display: block;
    filter: brightness(0.78);
}
.storia-mobile-rect { display: none; }
.storia-content {
    position: static;
    width: auto;
    max-width: 560px;
    transform: none;
}
.storia-title-row { display: flex; align-items: center; gap: 22px; }
.storia-title { font-size: clamp(36px, calc(30.545px + 1.364vw), 48px); opacity: 0; }
.storia-subtitle {
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: clamp(15px, calc(12.727px + 0.568vw), 20px);
    color: var(--accent);
    margin-top: 22px;
    margin-bottom: 30px;
    opacity: 0;
}
.storia-paragraphs { display: flex; flex-direction: column; gap: 22px; }
.storia-paragraphs p {
    font-size: var(--body-p-size) !important;
    font-weight: 500;
    line-height: 1.7;
    opacity: 0;
    transform: translateY(30px);
}
.text-gold { color: var(--accent); font-weight: 700; }

.cards-wrapper {
    display: flex; width: 100%; gap: 2px; margin: 180px 0 130px 0; overflow: hidden;
    clip-path: polygon(0.00% 3.71%, 4.77% 3.11%, 9.13% 2.87%, 13.20% 2.89%, 17.07% 3.11%, 20.83% 3.42%, 24.60% 3.74%, 28.47% 3.98%, 32.53% 4.06%, 36.90% 3.88%, 41.67% 3.38%, 46.43% 2.87%, 50.80% 2.69%, 54.87% 2.77%, 58.73% 3.02%, 62.50% 3.33%, 66.27% 3.64%, 70.13% 3.86%, 74.20% 3.88%, 78.57% 3.64%, 83.33% 3.04%, 85.71% 2.69%, 87.87% 2.46%, 89.82% 2.32%, 91.60% 2.28%, 93.23% 2.32%, 94.73% 2.43%, 96.14% 2.60%, 97.47% 2.82%, 98.75% 3.08%, 100.00% 3.38%, 100.00% 96.62%, 98.75% 96.92%, 97.47% 97.18%, 96.14% 97.40%, 94.73% 97.57%, 93.23% 97.68%, 91.60% 97.72%, 89.82% 97.68%, 87.87% 97.54%, 85.71% 97.31%, 83.33% 96.96%, 78.57% 96.36%, 74.20% 96.12%, 70.13% 96.14%, 66.27% 96.36%, 62.50% 96.67%, 58.73% 96.98%, 54.87% 97.23%, 50.80% 97.31%, 46.43% 97.13%, 41.67% 96.62%, 36.90% 96.12%, 32.53% 95.94%, 28.47% 96.02%, 24.60% 96.27%, 20.83% 96.58%, 17.07% 96.89%, 13.20% 97.11%, 9.13% 97.13%, 4.77% 96.89%, 0.00% 96.29%);
    animation: bothWaveMove 11s ease-in-out infinite;
}
.mobile-circle-svg { display: none; }
.card {
    flex: 1; height: 399px;
    background-size: cover; background-position: center;
    display: flex; flex-direction: column;
    padding: 60px 40px;
}
.card-content {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}
.card-content h2 { font-size: clamp(28px, calc(18.909px + 2.273vw), 48px); margin-bottom: 30px; text-align: center; }
.card-content p { font-size: var(--body-p-size) !important; margin-bottom: 0; font-weight: 400; }

.cta-wrapper { width: 100%; max-width: 320px; display: flex; justify-content: center; margin-top: 40px; }
.cta-group-vertical { display: flex; flex-direction: column; gap: 15px; width: 100%; max-width: 320px; margin-top: 40px; }

.cta-btn {
    width: 100%;
    padding: 15px 30px;
    font-family: var(--font-sans); font-weight: 600; font-size: clamp(15px, calc(13.09px + 0.34vw), 17px); color: #FFFFFF;
    border-radius: 0;
    border: 1px solid rgba(255, 255, 255, 0.25);
    display: flex; align-items: center; justify-content: center; position: relative;
    letter-spacing: 0.4px;
    overflow: hidden;
    transition: border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.cta-btn::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 250%;
    aspect-ratio: 1 / 1;
    background: var(--accent);
    border-radius: 50%;
    transform: translate(-50%, -50%) scale(0);
    transition: transform 0.6s cubic-bezier(0.65, 0, 0.35, 1);
    pointer-events: none;
}
.cta-btn.glass-brand::before { background: var(--silver); }
.cta-text {
    position: relative;
    display: inline-block;
    margin: 0 auto;
}

.cta-arrow { position: absolute; right: 20px; font-family: var(--font-sans); font-size: 18px; }
.cta-icon-right { position: absolute; right: 20px; width: 24px; transition: transform 0.3s ease; }

.glass-light { background: rgba(217, 217, 217, 0.5); backdrop-filter: blur(10px); }
.glass-brand { background: rgba(0, 205, 188, 0.5); backdrop-filter: blur(10px); }
.glass-dark { background: rgba(217, 217, 217, 0.2); backdrop-filter: blur(10px); border-radius: 20px; }
.glass-accent { background: rgba(212, 181, 124, 0.5); backdrop-filter: blur(10px); }

.poke-wrapper {
    width: 100%; height: 704px;
    background: linear-gradient(rgba(15,15,15,0.7), rgba(15,15,15,0.7)), url('img/poke/bg.webp') center/cover;
    position: relative; display: flex; align-items: center; margin-bottom: 130px; overflow: hidden;
    clip-path: polygon(0.00% 3.71%, 4.77% 3.11%, 9.13% 2.87%, 13.20% 2.89%, 17.07% 3.11%, 20.83% 3.42%, 24.60% 3.74%, 28.47% 3.98%, 32.53% 4.06%, 36.90% 3.88%, 41.67% 3.38%, 46.43% 2.87%, 50.80% 2.69%, 54.87% 2.77%, 58.73% 3.02%, 62.50% 3.33%, 66.27% 3.64%, 70.13% 3.86%, 74.20% 3.88%, 78.57% 3.64%, 83.33% 3.04%, 85.71% 2.69%, 87.87% 2.46%, 89.82% 2.32%, 91.60% 2.28%, 93.23% 2.32%, 94.73% 2.43%, 96.14% 2.60%, 97.47% 2.82%, 98.75% 3.08%, 100.00% 3.38%, 100.00% 96.62%, 98.75% 96.92%, 97.47% 97.18%, 96.14% 97.40%, 94.73% 97.57%, 93.23% 97.68%, 91.60% 97.72%, 89.82% 97.68%, 87.87% 97.54%, 85.71% 97.31%, 83.33% 96.96%, 78.57% 96.36%, 74.20% 96.12%, 70.13% 96.14%, 66.27% 96.36%, 62.50% 96.67%, 58.73% 96.98%, 54.87% 97.23%, 50.80% 97.31%, 46.43% 97.13%, 41.67% 96.62%, 36.90% 96.12%, 32.53% 95.94%, 28.47% 96.02%, 24.60% 96.27%, 20.83% 96.58%, 17.07% 96.89%, 13.20% 97.11%, 9.13% 97.13%, 4.77% 96.89%, 0.00% 96.29%);
    animation: bothWaveMove 11s ease-in-out infinite;
}
.poke-mobile-rect { display: none; }
.poke-content { margin-left: 50px; width: 50%; z-index: 2; }
.poke-title-row { display: flex; align-items: center; gap: 22px; }
.poke-title { font-size: clamp(36px, calc(30.545px + 1.364vw), 48px); }
.poke-subtitle { font-family: var(--font-sans); font-weight: 700; font-size: clamp(16px, calc(14.182px + 0.455vw), 20px); max-width: 340px; margin-top: 22px; margin-bottom: 20px; }
.poke-text { font-weight: 500; font-size: var(--body-p-size) !important; max-width: 500px; margin-bottom: 40px; }
.cta-poke-margin { margin-top: 20px; justify-content: flex-start; }
.poke-image-container { position: absolute; right: -25%; height: 100%; width: 50%; display: flex; align-items: center; }
#poke-rotating-img { height: 100%; object-fit: contain; }

.reviews-wrapper {
    position: relative;
    display: flex; flex-direction: column; justify-content: center; align-items: center;
    padding: 70px 0 90px 0;
    margin-bottom: 130px;
}
.reviews-frame-wave {
    position: absolute;
    top: -20px; bottom: 20px; left: -5%; right: -5%;
    pointer-events: none;
    z-index: 3;
}
.reviews-frame-wave svg { width: 100%; height: 100%; display: block; overflow: visible; }
.reviews-frame-wave path {
    fill: none;
    stroke: var(--accent);
    stroke-width: 1.25px;
    opacity: 0.5;
    d: path("M 0.00,3.71 L 4.77,3.11 L 9.13,2.87 L 13.20,2.89 L 17.07,3.11 L 20.83,3.42 L 24.60,3.74 L 28.47,3.98 L 32.53,4.06 L 36.90,3.88 L 41.67,3.38 L 46.43,2.87 L 50.80,2.69 L 54.87,2.77 L 58.73,3.02 L 62.50,3.33 L 66.27,3.64 L 70.13,3.86 L 74.20,3.88 L 78.57,3.64 L 83.33,3.04 L 85.71,2.69 L 87.87,2.46 L 89.82,2.32 L 91.60,2.28 L 93.23,2.32 L 94.73,2.43 L 96.14,2.60 L 97.47,2.82 L 98.75,3.08 L 100.00,3.38 L 100.00,96.62 L 98.75,96.92 L 97.47,97.18 L 96.14,97.40 L 94.73,97.57 L 93.23,97.68 L 91.60,97.72 L 89.82,97.68 L 87.87,97.54 L 85.71,97.31 L 83.33,96.96 L 78.57,96.36 L 74.20,96.12 L 70.13,96.14 L 66.27,96.36 L 62.50,96.67 L 58.73,96.98 L 54.87,97.23 L 50.80,97.31 L 46.43,97.13 L 41.67,96.62 L 36.90,96.12 L 32.53,95.94 L 28.47,96.02 L 24.60,96.27 L 20.83,96.58 L 17.07,96.89 L 13.20,97.11 L 9.13,97.13 L 4.77,96.89 L 0.00,96.29 Z");
    animation: reviewsFrameMove 11s ease-in-out infinite;
}
@keyframes reviewsFrameMove {
    0%, 100% { d: path("M 0.00,3.71 L 4.77,3.11 L 9.13,2.87 L 13.20,2.89 L 17.07,3.11 L 20.83,3.42 L 24.60,3.74 L 28.47,3.98 L 32.53,4.06 L 36.90,3.88 L 41.67,3.38 L 46.43,2.87 L 50.80,2.69 L 54.87,2.77 L 58.73,3.02 L 62.50,3.33 L 66.27,3.64 L 70.13,3.86 L 74.20,3.88 L 78.57,3.64 L 83.33,3.04 L 85.71,2.69 L 87.87,2.46 L 89.82,2.32 L 91.60,2.28 L 93.23,2.32 L 94.73,2.43 L 96.14,2.60 L 97.47,2.82 L 98.75,3.08 L 100.00,3.38 L 100.00,96.62 L 98.75,96.92 L 97.47,97.18 L 96.14,97.40 L 94.73,97.57 L 93.23,97.68 L 91.60,97.72 L 89.82,97.68 L 87.87,97.54 L 85.71,97.31 L 83.33,96.96 L 78.57,96.36 L 74.20,96.12 L 70.13,96.14 L 66.27,96.36 L 62.50,96.67 L 58.73,96.98 L 54.87,97.23 L 50.80,97.31 L 46.43,97.13 L 41.67,96.62 L 36.90,96.12 L 32.53,95.94 L 28.47,96.02 L 24.60,96.27 L 20.83,96.58 L 17.07,96.89 L 13.20,97.11 L 9.13,97.13 L 4.77,96.89 L 0.00,96.29 Z"); }
    33% { d: path("M 0.00,3.71 L 4.77,2.87 L 9.13,2.43 L 13.20,2.29 L 17.07,2.40 L 20.83,2.63 L 24.60,2.93 L 28.47,3.19 L 32.53,3.34 L 36.90,3.29 L 41.67,2.97 L 46.43,2.69 L 50.80,2.73 L 54.87,3.02 L 58.73,3.44 L 62.50,3.91 L 66.27,4.33 L 70.13,4.63 L 74.20,4.69 L 78.57,4.43 L 83.33,3.74 L 85.71,3.33 L 87.87,3.02 L 89.82,2.80 L 91.60,2.69 L 93.23,2.66 L 94.73,2.70 L 96.14,2.79 L 97.47,2.95 L 98.75,3.15 L 100.00,3.38 L 100.00,96.62 L 98.75,96.85 L 97.47,97.05 L 96.14,97.21 L 94.73,97.30 L 93.23,97.34 L 91.60,97.31 L 89.82,97.20 L 87.87,96.98 L 85.71,96.67 L 83.33,96.26 L 78.57,95.57 L 74.20,95.31 L 70.13,95.37 L 66.27,95.67 L 62.50,96.09 L 58.73,96.56 L 54.87,96.98 L 50.80,97.27 L 46.43,97.31 L 41.67,97.03 L 36.90,96.71 L 32.53,96.66 L 28.47,96.81 L 24.60,97.08 L 20.83,97.37 L 17.07,97.60 L 13.20,97.70 L 9.13,97.57 L 4.77,97.13 L 0.00,96.29 Z"); }
    66% { d: path("M 0.00,3.71 L 4.77,3.35 L 9.13,3.31 L 13.20,3.49 L 17.07,3.82 L 20.83,4.20 L 24.60,4.54 L 28.47,4.77 L 32.53,4.78 L 36.90,4.48 L 41.67,3.78 L 46.43,3.05 L 50.80,2.65 L 54.87,2.53 L 58.73,2.59 L 62.50,2.76 L 66.27,2.95 L 70.13,3.08 L 74.20,3.07 L 78.57,2.85 L 83.33,2.34 L 85.71,2.06 L 87.87,1.90 L 89.82,1.84 L 91.60,1.87 L 93.23,1.99 L 94.73,2.16 L 96.14,2.41 L 97.47,2.70 L 98.75,3.02 L 100.00,3.38 L 100.00,96.62 L 98.75,96.98 L 97.47,97.30 L 96.14,97.59 L 94.73,97.84 L 93.23,98.01 L 91.60,98.13 L 89.82,98.16 L 87.87,98.10 L 85.71,97.94 L 83.33,97.66 L 78.57,97.15 L 74.20,96.93 L 70.13,96.92 L 66.27,97.05 L 62.50,97.24 L 58.73,97.41 L 54.87,97.47 L 50.80,97.35 L 46.43,96.95 L 41.67,96.22 L 36.90,95.52 L 32.53,95.22 L 28.47,95.23 L 24.60,95.45 L 20.83,95.80 L 17.07,96.18 L 13.20,96.51 L 9.13,96.69 L 4.77,96.65 L 0.00,96.29 Z"); }
}
.reviews-header-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 95px;
    z-index: 2;
}
.reviews-header {
    position: relative;
    background: none;
    padding: 0; margin-bottom: 0;
    font-size: clamp(24px, calc(13.091px + 2.727vw), 48px);
    text-align: center;
    z-index: 1;
}
.reviews-wave-bg {
    position: absolute;
    top: 50%; left: 50%;
    width: 560px;
    max-width: 170%;
    opacity: 0.16;
    pointer-events: none;
    z-index: 0;
    animation: reviewsWaveDrift 13s ease-in-out infinite;
}
@keyframes reviewsWaveDrift {
    0%, 100% { transform: translate(-50%, -50%) scale(1) rotate(0deg); }
    50% { transform: translate(-50%, -50%) scale(1.06) rotate(2deg); }
}
.reviews-grid { display: flex; gap: 40px; width: 90%; perspective: 1200px; position: relative; }
.review-card {
    flex: 1; padding: 50px 30px; position: relative;
    min-height: 420px; display: flex; flex-direction: column; justify-content: flex-start;
    border-radius: 0;
    z-index: 1;
    transform-style: preserve-3d;
    transition: transform 0.15s ease-out, background 0.4s ease, box-shadow 0.4s ease;
}
.review-card::before, .review-card::after {
    content: '';
    position: absolute;
    width: 22px; height: 22px;
    border: 1px solid var(--accent);
    opacity: 0;
    transition: opacity 0.35s ease, width 0.35s ease, height 0.35s ease;
    pointer-events: none;
}
.review-card::before { top: -1px; left: -1px; border-right: none; border-bottom: none; }
.review-card::after { bottom: -1px; right: -1px; border-left: none; border-top: none; }
.quote-mark {
    font-family: var(--font-serif);
    font-size: 46px;
    line-height: 1;
    color: var(--accent);
    opacity: 0.6;
    pointer-events: none;
    user-select: none;
}
.review-card-header {
    display: flex; justify-content: space-between; align-items: center; width: 100%;
    /* se nome e stelle non stanno affiancati le stelle scendono sotto:
       il nome non deve mai spezzarsi ("Corrado / L." a 992px) */
    flex-wrap: wrap; row-gap: 6px;
}
.review-name-group {
    display: flex; align-items: center; gap: 8px;
}
.review-name-group h3 { white-space: nowrap; }
.review-card h3 { font-size: clamp(18px, calc(15.273px + 0.682vw), 24px); margin: 0; }
.review-card p { font-size: var(--body-p-size) !important; }
.stars { color: var(--accent); letter-spacing: 2px; transition: letter-spacing 0.3s ease; display: inline-block; }
.separator-small { width: 100%; height: 1px; background: #fff; margin: 20px auto; }
.reviews-footer {
    position: static;
    background: none;
    padding: 0;
    width: 100%;
    max-width: 300px;
    margin-top: 100px;
    z-index: 2;
}

.contact-links a, .hours-text p {
    display: block; font-weight: 500; text-align: center; margin-bottom: 15px; transition: color 0.3s ease;
}
.contact-links a { font-size: 20px; }
.hours-text p { font-size: var(--body-p-size) !important; }

.mappa-bg-illustration {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 680px;
    object-fit: cover;
    opacity: 0.14;
    pointer-events: none;
    z-index: 0;
    clip-path: polygon(0.00% 3.71%, 4.77% 3.11%, 9.13% 2.87%, 13.20% 2.89%, 17.07% 3.11%, 20.83% 3.42%, 24.60% 3.74%, 28.47% 3.98%, 32.53% 4.06%, 36.90% 3.88%, 41.67% 3.38%, 46.43% 2.87%, 50.80% 2.69%, 54.87% 2.77%, 58.73% 3.02%, 62.50% 3.33%, 66.27% 3.64%, 70.13% 3.86%, 74.20% 3.88%, 78.57% 3.64%, 83.33% 3.04%, 85.71% 2.69%, 87.87% 2.46%, 89.82% 2.32%, 91.60% 2.28%, 93.23% 2.32%, 94.73% 2.43%, 96.14% 2.60%, 97.47% 2.82%, 98.75% 3.08%, 100.00% 3.38%, 100.00% 96.62%, 98.75% 96.92%, 97.47% 97.18%, 96.14% 97.40%, 94.73% 97.57%, 93.23% 97.68%, 91.60% 97.72%, 89.82% 97.68%, 87.87% 97.54%, 85.71% 97.31%, 83.33% 96.96%, 78.57% 96.36%, 74.20% 96.12%, 70.13% 96.14%, 66.27% 96.36%, 62.50% 96.67%, 58.73% 96.98%, 54.87% 97.23%, 50.80% 97.31%, 46.43% 97.13%, 41.67% 96.62%, 36.90% 96.12%, 32.53% 95.94%, 28.47% 96.02%, 24.60% 96.27%, 20.83% 96.58%, 17.07% 96.89%, 13.20% 97.11%, 9.13% 97.13%, 4.77% 96.89%, 0.00% 96.29%);
    animation: bothWaveMove 11s ease-in-out infinite;
    filter: brightness(0) saturate(100%) invert(80%) sepia(21%) saturate(735%) hue-rotate(345deg) brightness(91%) contrast(85%);
    mask-image: radial-gradient(ellipse at center, black 10%, transparent 65%);
    -webkit-mask-image: radial-gradient(ellipse at center, black 10%, transparent 65%);
}
.mappa-layout {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
    align-items: center;
    gap: 6vw;
    padding: 100px 0 80px 0;
}
.map-header-container {
    display: flex; flex-direction: column; align-items: flex-start; position: relative;
}
.map-title-row { display: flex; align-items: center; gap: 22px; }
.map-title { font-size: clamp(24px, calc(13.091px + 2.727vw), 48px); text-align: left; }
.map-address { margin-top: 20px; font-size: clamp(13px, calc(9.818px + 0.795vw), 20px) !important; display: flex; align-items: center; text-align: left; justify-content: flex-start; transition: color 0.3s ease; }

.mappa-dark {
    width: 100%; overflow: hidden; border: 1px solid rgba(212, 181, 124, 0.5);
    filter: invert(93%) hue-rotate(180deg) brightness(100%) contrast(85%) saturate(0.6);
}
.mappa-dark iframe { width: 100%; height: 450px; display: block; border: none; }

.gm-style-moc {
    background-color: rgba(255, 255, 255, 0.59);
    color: #FFFFFF;
}

#footer {
    background: var(--nav-footer-bg); padding: 40px 0; margin-top: 163px;
    clip-path: polygon(0.00% 100.00%, 100.00% 100.00%, 100.00% 7.50%, 98.75% 6.85%, 97.47% 6.27%, 96.14% 5.78%, 94.73% 5.40%, 93.23% 5.16%, 91.60% 5.07%, 89.82% 5.16%, 87.87% 5.46%, 85.71% 5.98%, 83.33% 6.75%, 78.57% 8.09%, 74.20% 8.63%, 70.13% 8.57%, 66.27% 8.09%, 62.50% 7.41%, 58.73% 6.70%, 54.87% 6.16%, 50.80% 5.98%, 46.43% 6.37%, 41.67% 7.50%, 36.90% 8.63%, 32.53% 9.02%, 28.47% 8.84%, 24.60% 8.30%, 20.83% 7.59%, 17.07% 6.91%, 13.20% 6.43%, 9.13% 6.37%, 4.77% 6.91%, 0.00% 8.25%);
    animation: footerWaveMove 11s ease-in-out infinite;
}
@keyframes footerWaveMove {
    0%, 100% { clip-path: polygon(0.00% 100.00%, 100.00% 100.00%, 100.00% 7.50%, 98.75% 6.85%, 97.47% 6.27%, 96.14% 5.78%, 94.73% 5.40%, 93.23% 5.16%, 91.60% 5.07%, 89.82% 5.16%, 87.87% 5.46%, 85.71% 5.98%, 83.33% 6.75%, 78.57% 8.09%, 74.20% 8.63%, 70.13% 8.57%, 66.27% 8.09%, 62.50% 7.41%, 58.73% 6.70%, 54.87% 6.16%, 50.80% 5.98%, 46.43% 6.37%, 41.67% 7.50%, 36.90% 8.63%, 32.53% 9.02%, 28.47% 8.84%, 24.60% 8.30%, 20.83% 7.59%, 17.07% 6.91%, 13.20% 6.43%, 9.13% 6.37%, 4.77% 6.91%, 0.00% 8.25%); }
    33% { clip-path: polygon(0.00% 100.00%, 100.00% 100.00%, 100.00% 7.50%, 98.75% 6.99%, 97.47% 6.55%, 96.14% 6.21%, 94.73% 5.99%, 93.23% 5.90%, 91.60% 5.98%, 89.82% 6.23%, 87.87% 6.70%, 85.71% 7.39%, 83.33% 8.31%, 78.57% 9.84%, 74.20% 10.43%, 70.13% 10.29%, 66.27% 9.63%, 62.50% 8.68%, 58.73% 7.64%, 54.87% 6.70%, 50.80% 6.07%, 46.43% 5.97%, 41.67% 6.60%, 36.90% 7.31%, 32.53% 7.42%, 28.47% 7.08%, 24.60% 6.50%, 20.83% 5.85%, 17.07% 5.33%, 13.20% 5.10%, 9.13% 5.39%, 4.77% 6.38%, 0.00% 8.25%); }
    66% { clip-path: polygon(0.00% 100.00%, 100.00% 100.00%, 100.00% 7.50%, 98.75% 6.71%, 97.47% 5.99%, 96.14% 5.35%, 94.73% 4.81%, 93.23% 4.42%, 91.60% 4.16%, 89.82% 4.09%, 87.87% 4.22%, 85.71% 4.57%, 83.33% 5.19%, 78.57% 6.34%, 74.20% 6.83%, 70.13% 6.85%, 66.27% 6.55%, 62.50% 6.14%, 58.73% 5.76%, 54.87% 5.62%, 50.80% 5.89%, 46.43% 6.77%, 41.67% 8.40%, 36.90% 9.95%, 32.53% 10.62%, 28.47% 10.60%, 24.60% 10.10%, 20.83% 9.33%, 17.07% 8.49%, 13.20% 7.76%, 9.13% 7.35%, 4.77% 7.44%, 0.00% 8.25%); }
}
.footer-container {
    width: 88%; max-width: 1268px; margin: 0 auto;
    display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 25px;
}
.footer-left { display: flex; align-items: center; order: 2; }
.footer-right { display: flex; flex-direction: column; gap: 20px; align-items: center; order: 1; }
.footer-legal { display: flex; flex-direction: column; align-items: center; gap: 5px; text-align: center; }
.footer-logo { width: 110px; transition: filter 0.3s ease; }
.privacy-link { font-size: 16px; font-weight: 500; border-bottom: 1px dashed var(--text-main); transition: color 0.3s ease, border-color 0.3s ease; }
#footer .privacy-link { margin-top: 16px; display: inline-block; }
.p-iva { font-size: 16px; opacity: 0.7; margin-right: 2px; transition: color 0.3s ease; }
.social-icons { display: flex; gap: 20px; }
.social-icons img { width: 24px; }

#footer .footer-logo,
#footer .privacy-link,
#footer .p-iva,
#footer .icon-white {
    transition-duration: 0.6s;
}

#btt {
    position: fixed; bottom: 20px; right: 20px; display: flex; flex-direction: column; align-items: center; gap: 8px;
    opacity: 0; pointer-events: none; transition: opacity 0.3s ease; z-index: 999; cursor: pointer;
}
#btt.visible { opacity: 1; pointer-events: auto; }
#btt img { filter: brightness(0) invert(95%) sepia(5%) hue-rotate(180deg) brightness(105%) contrast(90%); transition: filter 0.3s ease; }
.btt-desktop { display: none; }
.btt-mobile { display: block; width: 35px; }
#btt span { display: none; font-family: var(--font-sans); font-size: 12px; color: var(--text-nav); font-weight: 500; letter-spacing: 1px; transition: color 0.3s ease; }

@media (hover: hover) and (pointer: fine) {
    .nav-link:hover { color: var(--accent); }
    .cta-btn:hover { border-color: var(--accent); transform: translateY(-3px); box-shadow: 0 12px 24px rgba(0, 0, 0, 0.3); }
    .cta-btn:hover .cta-arrow-svg,
    .cta-btn:hover .cta-icon-right { transform: translateX(5px); }
    .cta-btn:hover::before { transform: translate(-50%, -50%) scale(1); }
    .review-card:hover {
        background: rgba(217, 217, 217, 0.26);
        box-shadow: 0 10px 22px rgba(0, 0, 0, 0.2);
    }
    .review-card:hover::before, .review-card:hover::after { opacity: 1; width: 30px; height: 30px; }
    .review-card:hover .stars { letter-spacing: 5px; }
    .contact-links a:hover { color: var(--accent); }
    .map-address:hover { color: var(--accent); }
    #footer a:hover { color: var(--accent); }
    #footer .privacy-link:hover { border-bottom-color: var(--accent); }
    #footer a:hover .icon-white { filter: brightness(0) saturate(100%) invert(80%) sepia(21%) saturate(735%) hue-rotate(345deg) brightness(91%) contrast(85%); }
    #footer .p-iva:hover { color: var(--accent); }
    #btt:hover img { filter: brightness(0) saturate(100%) invert(80%) sepia(21%) saturate(735%) hue-rotate(345deg) brightness(91%) contrast(85%); }
    #btt:hover span { color: var(--accent); }
}

@media (max-width: 991px) {
    html {
        scroll-behavior: smooth;
    }
    body {
        overscroll-behavior-y: none;
    }

    p { font-size: 16px !important; }

    .desktop-only { display: none !important; }
    .mobile-only { display: block !important; }

    .video-container { animation: heroWaveMoveLight 11s ease-in-out infinite; }
    @keyframes heroWaveMoveLight {
        0%, 100% { clip-path: polygon(0.00% 0.00%, 100.00% 0.00%, 100.00% 96.62%, 98.75% 96.92%, 97.47% 97.18%, 96.14% 97.40%, 94.73% 97.57%, 93.23% 97.68%, 91.60% 97.72%, 89.82% 97.68%, 87.87% 97.54%, 85.71% 97.31%, 83.33% 96.96%, 78.57% 96.36%, 74.20% 96.12%, 70.13% 96.14%, 66.27% 96.36%, 62.50% 96.67%, 58.73% 96.98%, 54.87% 97.23%, 50.80% 97.31%, 46.43% 97.13%, 41.67% 96.62%, 36.90% 96.12%, 32.53% 95.94%, 28.47% 96.02%, 24.60% 96.27%, 20.83% 96.58%, 17.07% 96.89%, 13.20% 97.11%, 9.13% 97.13%, 4.77% 96.89%, 0.00% 96.29%); }
        33% { clip-path: polygon(0.00% 0.00%, 100.00% 0.00%, 100.00% 96.62%, 98.75% 96.85%, 97.47% 97.05%, 96.14% 97.21%, 94.73% 97.30%, 93.23% 97.34%, 91.60% 97.31%, 89.82% 97.20%, 87.87% 96.98%, 85.71% 96.67%, 83.33% 96.26%, 78.57% 95.57%, 74.20% 95.31%, 70.13% 95.37%, 66.27% 95.67%, 62.50% 96.09%, 58.73% 96.56%, 54.87% 96.98%, 50.80% 97.27%, 46.43% 97.31%, 41.67% 97.03%, 36.90% 96.71%, 32.53% 96.66%, 28.47% 96.81%, 24.60% 97.08%, 20.83% 97.37%, 17.07% 97.60%, 13.20% 97.70%, 9.13% 97.57%, 4.77% 97.13%, 0.00% 96.29%); }
        66% { clip-path: polygon(0.00% 0.00%, 100.00% 0.00%, 100.00% 96.62%, 98.75% 96.98%, 97.47% 97.30%, 96.14% 97.59%, 94.73% 97.84%, 93.23% 98.01%, 91.60% 98.13%, 89.82% 98.16%, 87.87% 98.10%, 85.71% 97.94%, 83.33% 97.66%, 78.57% 97.15%, 74.20% 96.93%, 70.13% 96.92%, 66.27% 97.05%, 62.50% 97.24%, 58.73% 97.41%, 54.87% 97.47%, 50.80% 97.35%, 46.43% 96.95%, 41.67% 96.22%, 36.90% 95.52%, 32.53% 95.22%, 28.47% 95.23%, 24.60% 95.45%, 20.83% 95.80%, 17.07% 96.18%, 13.20% 96.51%, 9.13% 96.69%, 4.77% 96.65%, 0.00% 96.29%); }
    }

    @media (orientation: landscape) {
        #orientation-warning {
            display: flex; position: fixed; top: 0; left: 0; width: 100%; height: 100vh;
            background: var(--bg-color); z-index: 999999; flex-direction: column;
            justify-content: center; align-items: center; text-align: center; padding: 20px;
        }
        #orientation-warning img { width: 120px; margin-bottom: 20px; }
        #orientation-warning p { font-family: var(--font-sans); font-size: 16px; color: var(--text-main); font-weight: 500; }
        body:not(.menu-page) { overflow: hidden !important; }
        body:not(.menu-page) :is(nav, section, footer, #btt, .mobile-menu-overlay, #loader) { display: none !important; }
    }

    #navbar {
        padding: 0 !important; background: transparent !important; box-shadow: none !important;
        height: 84px; display: flex; align-items: center;
        clip-path: polygon(0.00% 0.00%, 100.00% 0.00%, 100.00% 96.62%, 98.75% 96.92%, 97.47% 97.18%, 96.14% 97.40%, 94.73% 97.57%, 93.23% 97.68%, 91.60% 97.72%, 89.82% 97.68%, 87.87% 97.54%, 85.71% 97.31%, 83.33% 96.96%, 78.57% 96.36%, 74.20% 96.12%, 70.13% 96.14%, 66.27% 96.36%, 62.50% 96.67%, 58.73% 96.98%, 54.87% 97.23%, 50.80% 97.31%, 46.43% 97.13%, 41.67% 96.62%, 36.90% 96.12%, 32.53% 95.94%, 28.47% 96.02%, 24.60% 96.27%, 20.83% 96.58%, 17.07% 96.89%, 13.20% 97.11%, 9.13% 97.13%, 4.77% 96.89%, 0.00% 96.29%);
        animation: heroWaveMoveLight 11s ease-in-out infinite;
    }
    #navbar.scrolled {
        background: var(--nav-footer-bg) !important;
    }
    .nav-left, .nav-right { display: none; }
    #nav-logo { opacity: 0; pointer-events: none; width: 90px; transition: opacity 0.3s; }
    #navbar.scrolled #nav-logo { opacity: 1; pointer-events: auto; }

    .hamburger {
        display: flex; flex-direction: column; justify-content: space-between;
        width: 30px; height: 20px; cursor: pointer; z-index: 1002; position: absolute; right: 6%;
    }
    .hamburger span { width: 100%; height: 2px; background: var(--text-nav); transition: 0.3s; }
    .hamburger.active span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
    .hamburger.active span:nth-child(2) { opacity: 0; }
    .hamburger.active span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

    .mobile-menu-overlay {
        display: flex; flex-direction: column; position: fixed; top: 0; left: 0; width: 100%; height: 100dvh;
        background: var(--nav-footer-bg); z-index: 1001; padding: 20px 6%; transform: translateX(100%); transition: transform 0.4s ease;
    }
    .mobile-menu-overlay.active { transform: translateX(0); }
    .mobile-menu-header { display: flex; justify-content: center; position: relative; height: 60px; align-items: center; }
    .mobile-menu-logo { width: 90px; }

    .close-menu {
        position: absolute; right: 0; width: 30px; height: 30px; cursor: pointer;
        display: flex; justify-content: center; align-items: center; z-index: 1005;
    }
    .close-menu::before, .close-menu::after { content: ''; position: absolute; width: 100%; height: 2px; background: #ffffff; }
    .close-menu::before { transform: rotate(45deg); }
    .close-menu::after { transform: rotate(-45deg); }

    .mobile-menu-links { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 40px; }
    .mobile-nav-link { font-family: var(--font-sans) !important; font-size: 20px !important; color: var(--text-main); font-weight: 500; text-align: center; }
    .mobile-menu-footer { display: flex; flex-direction: column; align-items: center; gap: 20px; padding-bottom: 20px; }
    .mobile-footer-logo { width: 120px; }

    #storia { margin-top: 55px; min-height: 100dvh; height: auto; overflow: visible; width: 100%; max-width: 100%; padding: 70px 0; display: flex; align-items: center; justify-content: center; }
    .storia-wrapper { position: relative; display: flex; flex-direction: column; padding: 0; height: auto; justify-content: center; align-items: center; }
    .storia-bg.mobile-only { display: none !important; }

    .storia-mobile-rect {
        display: block; position: absolute; top: -32px; bottom: -32px; left: 50%; transform: translateX(-50%);
        width: 94%; z-index: 0; pointer-events: none;
        background: linear-gradient(rgba(15,15,15,0.4), rgba(15,15,15,0.4)), url('img/about-mobile.webp') center/cover;
        clip-path: polygon(0.00% 3.71%, 4.77% 3.11%, 9.13% 2.87%, 13.20% 2.89%, 17.07% 3.11%, 20.83% 3.42%, 24.60% 3.74%, 28.47% 3.98%, 32.53% 4.06%, 36.90% 3.88%, 41.67% 3.38%, 46.43% 2.87%, 50.80% 2.69%, 54.87% 2.77%, 58.73% 3.02%, 62.50% 3.33%, 66.27% 3.64%, 70.13% 3.86%, 74.20% 3.88%, 78.57% 3.64%, 83.33% 3.04%, 85.71% 2.69%, 87.87% 2.46%, 89.82% 2.32%, 91.60% 2.28%, 93.23% 2.32%, 94.73% 2.43%, 96.14% 2.60%, 97.47% 2.82%, 98.75% 3.08%, 100.00% 3.38%, 100.00% 96.62%, 98.75% 96.92%, 97.47% 97.18%, 96.14% 97.40%, 94.73% 97.57%, 93.23% 97.68%, 91.60% 97.72%, 89.82% 97.68%, 87.87% 97.54%, 85.71% 97.31%, 83.33% 96.96%, 78.57% 96.36%, 74.20% 96.12%, 70.13% 96.14%, 66.27% 96.36%, 62.50% 96.67%, 58.73% 96.98%, 54.87% 97.23%, 50.80% 97.31%, 46.43% 97.13%, 41.67% 96.62%, 36.90% 96.12%, 32.53% 95.94%, 28.47% 96.02%, 24.60% 96.27%, 20.83% 96.58%, 17.07% 96.89%, 13.20% 97.11%, 9.13% 97.13%, 4.77% 96.89%, 0.00% 96.29%);
        animation: bothWaveMove 11s ease-in-out infinite;
        mask-image: linear-gradient(to bottom, transparent, black 28px, black calc(100% - 28px), transparent);
        -webkit-mask-image: linear-gradient(to bottom, transparent, black 28px, black calc(100% - 28px), transparent);
    }
    .storia-paragraphs p, .storia-title, .storia-subtitle { text-shadow: 0 1px 6px rgba(0,0,0,0.6); }
    .storia-content {
        position: relative; top: auto; left: auto; transform: none; width: 88%; max-width: 88%;
        height: auto; display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 3; text-align: center; margin: auto;
        padding: 30px 0;
    }
    .storia-subtitle { margin-bottom: 15px; text-align: center; }
    .storia-paragraphs { flex-direction: column; gap: 20px; align-items: center; }
    .storia-paragraphs p { opacity: 0; transform: translateY(0); line-height: 1.5; }

    .separator { margin: 10px auto; }
    .storia-title-row, .poke-title-row { justify-content: center; }
    .wave-separator { display: none; }

    .full-height { height: 100dvh; display: flex; align-items: center; justify-content: center; margin: 0 auto; width: 100%; max-width: 100%; }
    #menu, #contatti { height: auto; min-height: 0; padding: 40px 0; }

    .cards-wrapper { flex-direction: column; gap: 30px; margin: 0; width: 88%; position: relative; z-index: 2; clip-path: none; animation: none; }
    .menu-cards { justify-content: center; align-items: center; }
    .cards-wrapper .card {
        position: relative; overflow: hidden;
        clip-path: polygon(0.00% 3.71%, 4.77% 3.47%, 9.13% 3.37%, 13.20% 3.38%, 17.07% 3.47%, 20.83% 3.59%, 24.60% 3.72%, 28.47% 3.82%, 32.53% 3.85%, 36.90% 3.78%, 41.67% 3.58%, 46.43% 3.37%, 50.80% 3.30%, 54.87% 3.33%, 58.73% 3.43%, 62.50% 3.56%, 66.27% 3.68%, 70.13% 3.77%, 74.20% 3.78%, 78.57% 3.68%, 83.33% 3.44%, 85.71% 3.30%, 87.87% 3.21%, 89.82% 3.15%, 91.60% 3.14%, 93.23% 3.15%, 94.73% 3.20%, 96.14% 3.27%, 97.47% 3.35%, 98.75% 3.46%, 100.00% 3.58%, 100.00% 96.42%, 98.75% 96.54%, 97.47% 96.65%, 96.14% 96.73%, 94.73% 96.80%, 93.23% 96.85%, 91.60% 96.86%, 89.82% 96.85%, 87.87% 96.79%, 85.71% 96.70%, 83.33% 96.56%, 78.57% 96.32%, 74.20% 96.22%, 70.13% 96.23%, 66.27% 96.32%, 62.50% 96.44%, 58.73% 96.57%, 54.87% 96.67%, 50.80% 96.70%, 46.43% 96.63%, 41.67% 96.42%, 36.90% 96.22%, 32.53% 96.15%, 28.47% 96.18%, 24.60% 96.28%, 20.83% 96.41%, 17.07% 96.53%, 13.20% 96.62%, 9.13% 96.63%, 4.77% 96.53%, 0.00% 96.29%);
        animation: cardWaveMoveVisible 7s ease-in-out infinite;
    }

    .mobile-circle-svg { display: none; }
    .mobile-circle-svg circle {
        fill: none; stroke: rgba(212, 181, 124, 0.2); stroke-width: 1px !important;
        stroke-dasharray: 500; stroke-dashoffset: 500;
    }

    .card { height: 280px; min-height: 280px; padding: 30px 20px; z-index: 1; width: 100%; flex: none; }
    .card-content h2 { margin-bottom: 20px; }
    .cta-wrapper, .cta-group-vertical { margin-top: 20px; }
    .cta-btn { padding: 10px 15px; }
    .cta-icon-right { width: 20px; }

    #poke { overflow: hidden; }
    .poke-wrapper { height: 100%; margin: 0; flex-direction: column; align-items: center; justify-content: center; background: none !important; clip-path: none; animation: none; }

    .poke-mobile-rect {
        display: block; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
        width: 82%; height: 84%; z-index: 0;
        background: linear-gradient(rgba(15,15,15,0.35), rgba(15,15,15,0.35)), url('img/poke/bg.webp') center/cover;
        clip-path: polygon(0.00% 3.71%, 4.77% 3.47%, 9.13% 3.37%, 13.20% 3.38%, 17.07% 3.47%, 20.83% 3.59%, 24.60% 3.72%, 28.47% 3.82%, 32.53% 3.85%, 36.90% 3.78%, 41.67% 3.58%, 46.43% 3.37%, 50.80% 3.30%, 54.87% 3.33%, 58.73% 3.43%, 62.50% 3.56%, 66.27% 3.68%, 70.13% 3.77%, 74.20% 3.78%, 78.57% 3.68%, 83.33% 3.44%, 85.71% 3.30%, 87.87% 3.21%, 89.82% 3.15%, 91.60% 3.14%, 93.23% 3.15%, 94.73% 3.20%, 96.14% 3.27%, 97.47% 3.35%, 98.75% 3.46%, 100.00% 3.58%, 100.00% 96.42%, 98.75% 96.54%, 97.47% 96.65%, 96.14% 96.73%, 94.73% 96.80%, 93.23% 96.85%, 91.60% 96.86%, 89.82% 96.85%, 87.87% 96.79%, 85.71% 96.70%, 83.33% 96.56%, 78.57% 96.32%, 74.20% 96.22%, 70.13% 96.23%, 66.27% 96.32%, 62.50% 96.44%, 58.73% 96.57%, 54.87% 96.67%, 50.80% 96.70%, 46.43% 96.63%, 41.67% 96.42%, 36.90% 96.22%, 32.53% 96.15%, 28.47% 96.18%, 24.60% 96.28%, 20.83% 96.41%, 17.07% 96.53%, 13.20% 96.62%, 9.13% 96.63%, 4.77% 96.53%, 0.00% 96.29%);
        animation: cardWaveMoveLight 11s ease-in-out infinite;
    }

    .poke-half-img-wrapper {
        position: absolute; bottom: 0; left: 50%; transform: translate(-50%, 50%);
        width: 80%; z-index: 1; display: block;
    }
    .poke-half-img { width: 100%; display: block; }

    .poke-content {
        position: absolute; top: 40%; left: 50%; transform: translate(-50%, -50%);
        width: 82%; padding: 0 5% !important; z-index: 4;
        text-align: center; display: flex; flex-direction: column; align-items: center; box-sizing: border-box;
        margin-left: 0; margin-right: 0;
    }
    .poke-subtitle { text-align: center; }

    .reviews-wrapper { margin: 0; padding: 50px 0; width: 100%; }
    .reviews-header-wrap { max-width: 90%; margin-bottom: 40px; }
    .reviews-wave-bg { width: 300px; }

    .reviews-grid {
        width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 15vw;
        -ms-overflow-style: none; scrollbar-width: none; gap: 20px; z-index: 1;
        touch-action: pan-x pan-y;
    }
    .reviews-frame-wave { display: none; }
    .reviews-grid::-webkit-scrollbar { display: none; }

    .review-card { min-width: 70vw; scroll-snap-align: center; height: 340px; min-height: 340px; padding: 25px 20px; justify-content: flex-start; overflow: hidden; }
    .review-card h3 { margin-bottom: 0; }
    .review-card p { margin-bottom: 0; }
    .quote-mark { font-size: 34px; }
    .reviews-footer { margin-top: 50px; }
    .stars { font-size: 26px !important; letter-spacing: 2px; }

    .contatti-cards .card { height: 280px; min-height: 280px; }

    .hours-text p { margin-bottom: 8px; }

    .contact-links a {
        font-size: 20px !important;
        margin-bottom: 24px !important;
        font-weight: 700;
        letter-spacing: 1px;
    }
    .mappa-layout { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 40px 0 0 0; justify-items: center; }
    .map-header-container { align-items: center; text-align: center; padding: 0 20px 20px 20px; }
    .map-title-row, .map-address { position: relative; z-index: 1; }
    .map-title-row { justify-content: center; }
    .map-title { text-align: center; }
    .map-address { white-space: normal; justify-content: center; text-align: center; }

    .mappa-bg-illustration {
        display: block;
        top: -24px; height: 640px;
        left: 50%; transform: translateX(-50%);
        width: 100%;
        opacity: 0.2;
        mask-image: none;
        -webkit-mask-image: none;
        animation: cardWaveMoveLight 11s ease-in-out infinite;
    }

    #footer {
        padding: 40px 0; margin-top: 60px;
        clip-path: polygon(0.00% 100.00%, 100.00% 100.00%, 100.00% 3.38%, 98.75% 3.08%, 97.47% 2.82%, 96.14% 2.60%, 94.73% 2.43%, 93.23% 2.32%, 91.60% 2.28%, 89.82% 2.32%, 87.87% 2.46%, 85.71% 2.69%, 83.33% 3.04%, 78.57% 3.64%, 74.20% 3.88%, 70.13% 3.86%, 66.27% 3.64%, 62.50% 3.33%, 58.73% 3.02%, 54.87% 2.77%, 50.80% 2.69%, 46.43% 2.87%, 41.67% 3.38%, 36.90% 3.88%, 32.53% 4.06%, 28.47% 3.98%, 24.60% 3.74%, 20.83% 3.42%, 17.07% 3.11%, 13.20% 2.89%, 9.13% 2.87%, 4.77% 3.11%, 0.00% 3.71%);
        animation: footerWaveMoveLight 11s ease-in-out infinite;
    }
    @keyframes footerWaveMoveLight {
        0%, 100% { clip-path: polygon(0.00% 100.00%, 100.00% 100.00%, 100.00% 3.38%, 98.75% 3.08%, 97.47% 2.82%, 96.14% 2.60%, 94.73% 2.43%, 93.23% 2.32%, 91.60% 2.28%, 89.82% 2.32%, 87.87% 2.46%, 85.71% 2.69%, 83.33% 3.04%, 78.57% 3.64%, 74.20% 3.88%, 70.13% 3.86%, 66.27% 3.64%, 62.50% 3.33%, 58.73% 3.02%, 54.87% 2.77%, 50.80% 2.69%, 46.43% 2.87%, 41.67% 3.38%, 36.90% 3.88%, 32.53% 4.06%, 28.47% 3.98%, 24.60% 3.74%, 20.83% 3.42%, 17.07% 3.11%, 13.20% 2.89%, 9.13% 2.87%, 4.77% 3.11%, 0.00% 3.71%); }
        33% { clip-path: polygon(0.00% 100.00%, 100.00% 100.00%, 100.00% 3.38%, 98.75% 3.15%, 97.47% 2.95%, 96.14% 2.79%, 94.73% 2.70%, 93.23% 2.66%, 91.60% 2.69%, 89.82% 2.80%, 87.87% 3.02%, 85.71% 3.33%, 83.33% 3.74%, 78.57% 4.43%, 74.20% 4.69%, 70.13% 4.63%, 66.27% 4.33%, 62.50% 3.91%, 58.73% 3.44%, 54.87% 3.02%, 50.80% 2.73%, 46.43% 2.69%, 41.67% 2.97%, 36.90% 3.29%, 32.53% 3.34%, 28.47% 3.19%, 24.60% 2.93%, 20.83% 2.63%, 17.07% 2.40%, 13.20% 2.29%, 9.13% 2.43%, 4.77% 2.87%, 0.00% 3.71%); }
        66% { clip-path: polygon(0.00% 100.00%, 100.00% 100.00%, 100.00% 3.38%, 98.75% 3.02%, 97.47% 2.70%, 96.14% 2.41%, 94.73% 2.16%, 93.23% 1.99%, 91.60% 1.87%, 89.82% 1.84%, 87.87% 1.90%, 85.71% 2.06%, 83.33% 2.34%, 78.57% 2.85%, 74.20% 3.07%, 70.13% 3.08%, 66.27% 2.95%, 62.50% 2.76%, 58.73% 2.59%, 54.87% 2.53%, 50.80% 2.65%, 46.43% 3.05%, 41.67% 3.78%, 36.90% 4.48%, 32.53% 4.78%, 28.47% 4.77%, 24.60% 4.54%, 20.83% 4.20%, 17.07% 3.82%, 13.20% 3.49%, 9.13% 3.31%, 4.77% 3.35%, 0.00% 3.71%); }
    }
    .footer-container { gap: 20px; }
    .privacy-link { font-size: 12px !important; }
    .p-iva { margin: 0; font-size: 12px !important; }

}

.poke-page {
    padding-top: 180px;
}

#navbar-minimal {
    position: fixed;
    top: 0; left: 0; width: 100%;
    padding: 0px 6%;
    background: var(--nav-footer-bg);
    z-index: 1000;
    box-shadow: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.back-link {
    display: flex; align-items: center; justify-content: center;
    color: var(--text-nav); transition: color 0.3s ease;
}

.back-icon { width: 30px; height: 30px; }

.nav-minimal-logo {
    width: 90px;
}

.poke-form-container {
    max-width: 800px;
    margin: 0 auto;
}

.poke-header {
    position: relative;
    width: 100%;
    height: 340px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
    margin-bottom: 60px;
    padding: 40px 50px;
}
.poke-header-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: brightness(0.5);
    z-index: 0;
}
.poke-header-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    max-width: 480px;
}
.poke-title-row .poke-main-title { white-space: nowrap; }
.poke-header-subtitle {
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: clamp(15px, calc(13.364px + 0.682vw), 20px);
    margin-top: 18px;
}
.poke-header-image-wrap {
    position: absolute;
    right: -25%;
    top: 0;
    z-index: 1;
    height: 100%;
    width: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
#poke-form-rotating-img { height: 100%; object-fit: contain; }

.poke-main-title {
    font-family: var(--font-serif);
    font-weight: 500;
    letter-spacing: -0.02em;
    color: var(--text-main);
    font-size: clamp(32px, calc(24.727px + 1.818vw), 48px);
    margin-bottom: 0;
}

.poke-subheader {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 30px;
}
.subheader-separator {
    width: 100%;
    margin: 15px 0 0 0;
    background-color: var(--accent);
}

.poke-cta {
    cursor: pointer !important;
}
.form-section {
    margin-bottom: 50px;
    opacity: 1;
    transition: opacity 0.3s ease;
}

.form-section.locked {
    opacity: 0.5;
    pointer-events: none;
}

.category-title {
    font-size: clamp(24px, calc(22.182px + 0.455vw), 28px);
    margin-bottom: 20px;
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
}

.extra-info {
    font-family: var(--font-sans);
    font-size: 14px !important;
    font-weight: 400;
    opacity: 0.7;
}

.counter {
    font-family: var(--font-sans);
    font-size: 16px;
    color: var(--text-main);
    opacity: 0.8;
    margin-left: auto;
}

.poke-input, .poke-textarea {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    color: var(--text-main);
    font-family: var(--font-sans);
    font-size: 18px;
    padding: 15px 0;
    margin-bottom: 20px;
    outline: none;
    transition: border-color 0.3s ease;
}

.poke-input:focus, .poke-textarea:focus {
    border-bottom-color: var(--accent);
}

/* Safari disegna i select con lo stile di sistema (riquadro chiaro): con il
   testo chiaro del sito la scelta diventava illeggibile. Aspetto nativo
   spento e freccia disegnata, uguale su tutti i browser. */
select.poke-input {
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
    padding-right: 28px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F8F9FA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 2px center;
    background-size: 16px 16px;
    cursor: pointer;
}
select.poke-input:disabled { cursor: not-allowed; }

select.poke-input option, select.poke-input optgroup {
    background-color: var(--nav-footer-bg);
    color: var(--text-main);
}

select.poke-input:disabled {
    opacity: 0.4;
}

.poke-textarea {
    resize: vertical;
    min-height: 100px;
}

.options-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
}

.options-grid.auto-fit {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

.chip {
    display: flex;
    align-items: center;
    padding: 15px 20px;
    background: rgba(217, 217, 217, 0.05);
    border: 1px solid rgba(212, 181, 124, 0.2);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    gap: 15px;
    position: relative;
    user-select: none;
}

.chip input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.custom-radio, .custom-checkbox {
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255, 255, 255, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.custom-radio { border-radius: 50%; }
.custom-checkbox { border-radius: 4px; }

.custom-radio::after, .custom-checkbox::after {
    content: "";
    display: none;
}

.custom-radio::after {
    width: 10px; height: 10px;
    background: var(--bg-color);
    border-radius: 50%;
}

.custom-checkbox::after {
    width: 5px; height: 10px;
    border: solid var(--bg-color);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    margin-bottom: 2px;
}

.chip input:checked ~ .custom-radio,
.chip input:checked ~ .custom-checkbox {
    background-color: var(--accent);
    border-color: var(--accent);
}

.chip input:checked ~ .custom-radio::after,
.chip input:checked ~ .custom-checkbox::after {
    display: block;
}

.chip:has(input:checked) {
    background: rgba(212, 181, 124, 0.15);
    border-color: var(--accent);
}

/* l'input vero e' nascosto: da tastiera il focus si vede sulla chip */
.chip:has(input:focus-visible) {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.chip-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.chip-text strong {
    font-weight: 500;
    font-size: 18px;
}

.chip-text small {
    font-size: 12px;
    opacity: 0.7;
    line-height: 1.4;
}

.price {
    margin-left: auto;
    font-size: 14px;
    color: var(--accent);
}

.form-submit-wrapper {
    max-width: 320px;
    margin: 60px auto 0;
}

.form-submit-wrapper button {
    border: none;
    cursor: pointer;
}

.summary-box {
    padding: 40px;
    border-radius: 20px;
}

.glass-whatsapp {
    background: rgba(37, 211, 102, 0.4);
    backdrop-filter: blur(10px);
}

@media (hover: hover) and (pointer: fine) {

    .back-link:hover {
        color: var(--accent);
    }

}

@media (max-width: 991px) {
    .options-grid.auto-fit { grid-template-columns: 1fr; }
    .poke-page { padding-top: 140px; }
    .summary-box { padding: 25px 20px; }

    .poke-header { min-height: 260px; padding: 30px 20px; margin-bottom: 40px; justify-content: center; }
    .poke-header-content { align-items: center; text-align: center; max-width: 100%; }
}

#privacy-banner {
    position: fixed;
    top: 0; left: 0;
    width: 100%;
    height: 100dvh;
    background: rgba(15, 15, 15, 0.6);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    z-index: 9998;
    display: none;
    justify-content: center;
    align-items: center;
}
.privacy-modal {
    padding: 40px; border-radius: 20px;
    width: 90%; max-width: 500px;
    text-align: center;
}

.menu-modal-overlay {
    display: none;
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100dvh;
    background: rgba(15, 15, 15, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 9998;
    justify-content: center;
    align-items: center;
    padding: 40px 20px;
}
.menu-modal-overlay.active { display: flex; }
.menu-modal {
    width: 100%;
    max-width: 760px;
    max-height: 85dvh;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.menu-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    padding: 30px 40px;
    border-bottom: 1px solid rgba(212, 181, 124, 0.25);
}
.menu-modal-header h2 {
    font-size: clamp(22px, calc(18px + 1.5vw), 32px);
    margin: 0;
}
.menu-modal-close {
    position: relative;
    width: 26px; height: 26px;
    flex-shrink: 0;
    cursor: pointer;
}
.menu-modal-close::before, .menu-modal-close::after {
    content: ''; position: absolute; top: 50%; left: 0;
    width: 100%; height: 2px;
    background: var(--text-main);
    transition: background 0.3s ease;
}
.menu-modal-close::before { transform: rotate(45deg); }
.menu-modal-close::after { transform: rotate(-45deg); }
.menu-modal-body {
    overflow-y: auto;
    padding: 10px 40px 45px 40px;
}
.menu-category { margin-top: 35px; }
.menu-category:first-child { margin-top: 25px; }
.menu-category-title {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 12px;
    font-size: clamp(19px, calc(17px + 0.6vw), 24px);
    color: var(--accent);
    margin-bottom: 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(212, 181, 124, 0.25);
}
.menu-category-meta {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-main);
    opacity: 0.5;
}

/* Miniatura tonda a destra del titolo (solo menu.html). Nome e "8pz" stanno
   in .menu-category-label, che eredita l'allineamento sulla linea di base del
   titolo normale; il titolo invece centra il gruppo rispetto al cerchio. */
.menu-category-title.has-img {
    align-items: center;
    flex-wrap: nowrap;
    gap: 14px;
}
.menu-category-label {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 12px;
    min-width: 0;
}
.menu-category-img {
    flex: 0 0 auto;
    align-self: center;
    width: 64px;
    height: 64px;
    margin-left: auto;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(212, 181, 124, 0.55);
    background: var(--nav-footer-bg);
}

.menu-category-note {
    font-family: var(--font-sans);
    font-size: max(12px, calc(var(--body-p-size) - 2px));
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--accent);
    opacity: 0.85;
    margin: -6px 0 14px;
}

.menu-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.menu-item {
    font-family: var(--font-sans);
    break-inside: avoid;
}
.menu-row {
    display: flex;
    align-items: flex-end;
    gap: 10px;
}
.menu-item-name {
    flex: 0 1 auto;
    min-width: 0;
    font-size: var(--body-p-size);
    font-weight: 700;
    line-height: 1.4;
    color: var(--text-main);
    overflow-wrap: anywhere;
}
.menu-dots {
    flex: 1 1 auto;
    min-width: 16px;
    margin-bottom: 0.38em;
    border-bottom: 1px dotted rgba(212, 181, 124, 0.35);
}
.menu-price {
    flex: 0 0 auto;
    font-size: var(--body-p-size);
    font-weight: 600;
    line-height: 1.4;
    color: var(--accent);
    white-space: nowrap;
}
.menu-item-desc {
    font-size: max(13px, calc(var(--body-p-size) - 1px));
    font-weight: 400;
    line-height: 1.5;
    opacity: 0.68;
    margin-top: 4px;
    max-width: 52ch;
}
.menu-tiers {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 8px;
    padding-left: 16px;
}
.menu-tier-label {
    flex: 0 1 auto;
    min-width: 0;
    font-size: max(13px, calc(var(--body-p-size) - 1px));
    line-height: 1.4;
    opacity: 0.68;
}
.menu-tiers .menu-price { font-weight: 500; }

.menu-section-divider {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 55px;
}
.menu-section-divider::before,
.menu-section-divider::after {
    content: '';
    flex: 1 1 auto;
    height: 1px;
    background: rgba(212, 181, 124, 0.35);
}
.menu-section-title {
    flex: 0 0 auto;
    font-family: var(--font-serif);
    font-weight: 500;
    letter-spacing: -0.02em;
    font-size: clamp(21px, calc(19px + 0.7vw), 27px);
    color: var(--accent);
    text-align: center;
}
.menu-section-divider + .menu-category { margin-top: 22px; }

@media (hover: hover) and (pointer: fine) {
    .menu-modal-close:hover::before, .menu-modal-close:hover::after { background: var(--accent); }
}

@media (max-width: 991px) {
    .menu-modal-overlay { padding: 0; }
    .menu-modal { max-width: 100%; max-height: 100dvh; height: 100dvh; border-radius: 0; }
    .menu-modal-header { padding: 25px 25px; }
    .menu-modal-body { padding: 10px 25px 40px 25px; }
}

.privacy-container {
    padding-top: 180px;
    padding-bottom: 100px;
    min-height: 80vh;
}
/* privacy.html riusa .poke-header solo per il titolo: senza l'immagine di
   sfondo i 340px fissi lasciavano ~200px vuoti prima del testo */
.privacy-container .poke-header {
    height: auto;
    min-height: 0;
    padding: 0;
    margin-bottom: 20px;
    overflow: visible;
}
@media (max-width: 991px) {
    /* stesso respiro sotto la barra della pagina Poke */
    .privacy-container { padding-top: 140px; }
}
.privacy-content h3 { font-size: clamp(20px, calc(18.182px + 0.455vw), 24px); margin-bottom: 15px; margin-top: 40px; }
.privacy-content p { font-size: var(--body-p-size) !important; line-height: 1.6; opacity: 0.9; }

@media (min-width: 576px) and (max-width: 991px) {
    .card {
        max-width: 500px;
        margin: 0 auto;
    }
    .reviews-grid { padding: 0 5%; }
    .review-card { min-width: 50vw; }
}

/* tra 992 e 1199px le tre card affiancate sono troppo strette per nome e
   stelle sulla stessa riga: stelle sotto al nome in tutte, cosi' i separatori
   restano allineati */
@media (min-width: 992px) and (max-width: 1199px) {
    .review-card-header { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* a 320-360px le stelle da 26px finivano sotto il nome: piu' piccole restano sulla stessa riga */
@media (max-width: 400px) {
    .stars { font-size: 18px !important; letter-spacing: 1px; }
}
/* ==========================================================================
   Pagina Menu dedicata (menu.html) — vista QR per i tavoli
   ========================================================================== */

.menu-page {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    /* `clip` non crea un contenitore di scroll: senza questo override la regola
       globale `body { overflow-x: hidden }` romperebbe la barra sticky.
       I browser che non supportano `clip` ricadono su `hidden`. */
    overflow-x: hidden;
    overflow-x: clip;
    /* la regola globale `touch-action: pan-y` bloccherebbe il pinch-to-zoom,
       che su un menu da tavolo serve. */
    touch-action: auto;
}

.menu-hero {
    padding: clamp(34px, 7vw, 64px) 6% clamp(20px, 3.5vw, 30px);
}

/* Il logo e' un div con background invece di un <img> di proposito: senza
   dimensione intrinseca puo' allungarsi (align-self: stretch) oltre l'altezza
   del blocco di testo accanto. La larghezza la calcola menu-page.js. */
.menu-hero-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(12px, 2.5vw, 30px);
}

.menu-hero-logo {
    flex: 0 0 auto;
    align-self: center;
    width: var(--hero-logo-w, 32vw);
    max-width: 300px;
    /* quadrato come il file sorgente: cosi' il disegno riempie il riquadro
       invece di lasciare spazio vuoto ai lati */
    aspect-ratio: 1 / 1;
    background: url('img/logo.png') center / contain no-repeat;
}

.menu-hero-text {
    flex: 0 0 auto;
    min-width: 0;
    width: min(300px, 46vw);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}

.menu-hero-title {
    font-family: var(--font-serif);
    font-weight: 500;
    letter-spacing: -0.02em;
    font-size: clamp(36px, 10.5vw, 64px);
    line-height: 1.05;
}

.menu-hero-wave {
    width: 190px;
    max-width: 88%;
    height: auto;
    display: block;
    margin: 12px 0 0;
}

.menu-hero-sub {
    font-family: var(--font-sans);
    font-size: max(12px, calc(var(--body-p-size) - 1px));
    font-weight: 400;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.5;
    opacity: 0.6;
    margin-top: 14px;
}

.menu-sticky-nav {
    position: sticky;
    top: 0;
    z-index: 50;
    /* quanto dura la sfumatura sul bordo destro del velo; la rilegge anche
       menu-page.js per allargare di altrettanto la fascia */
    --menu-veil-fade: 24px;
    /* opaca di proposito: e' il fondo su cui poggiano macrovoci e mascherina,
       entrambe quasi dello stesso colore, cosi' non si vedono giunzioni */
    background: #0A0A0A;
    border-top: 1px solid rgba(212, 181, 124, 0.18);
    border-bottom: 1px solid rgba(212, 181, 124, 0.18);
}

/* Velo scuro sulla zona occupata dalle macrovoci agganciate: sta sopra le
   categorie (z-index auto) e sotto le macrovoci (z-index 2). Non e' nero
   pieno, cosi' le categorie che ci scorrono sotto restano appena percepibili.
   La larghezza la aggiorna menu-page.js mano a mano che le voci si agganciano. */
/* Fascia piena che copre la zona occupata dalle macrovoci agganciate: sta
   sopra le categorie (z-index auto) e sotto le macrovoci (z-index 2), cosi'
   niente spunta nei gap o negli angoli delle pillole. La larghezza la aggiorna
   menu-page.js mano a mano che le voci si agganciano. */
.menu-sticky-nav::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: var(--menu-pinned-w, calc(max(6%, 16px) + var(--menu-veil-fade)));
    /* pieno fin quasi in fondo e poi in dissolvenza: un bordo netto si vedeva
       come una linea verticale in mezzo alla barra */
    background: linear-gradient(to right,
        rgba(10, 10, 10, 0.9) 0,
        rgba(10, 10, 10, 0.9) calc(100% - var(--menu-veil-fade)),
        rgba(10, 10, 10, 0) 100%);
    z-index: 1;
    pointer-events: none;
}

.menu-nav-scroller {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding: 11px max(6%, 16px);
}
.menu-nav-scroller::-webkit-scrollbar { display: none; }

.menu-nav-chip {
    flex: 0 0 auto;
    padding: 7px 14px;
    border: 1px solid rgba(212, 181, 124, 0.25);
    border-radius: 999px;
    background: rgba(217, 217, 217, 0.05);
    color: var(--text-main);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.03em;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

/* Le macrovoci restano agganciate a sinistra una volta superate: ognuna ha il
   proprio offset `left`, calcolato in JS sulla larghezza di quelle che la
   precedono, cosi' si affiancano invece di sovrapporsi (sui telefoni invece
   si impilano, vedi menu-page.js). Sfondo pieno perche' le categorie, e le
   macrovoci impilate, ci scorrono sotto. */
.menu-nav-chip.is-section {
    position: relative;
    position: sticky;
    left: 0;
    z-index: 2;
    padding: 7px 12px;
    font-family: var(--font-serif);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: -0.01em;
    text-align: center;
    color: var(--accent);
    background: #0A0A0A;
    border-color: rgba(212, 181, 124, 0.5);
}
.menu-nav-chip.is-section.active {
    background: #0A0A0A;
    color: var(--accent);
    border-color: var(--accent);
}

.menu-nav-chip.active {
    background: var(--accent);
    border-color: transparent;
    color: #0A0A0A;
    font-weight: 700;
}

.menu-page-body {
    flex: 1 0 auto;
    width: 88%;
    max-width: 760px;
    margin: 0 auto;
    padding-bottom: 40px;
}

.menu-page-body .menu-category,
.menu-page-body .menu-section-divider {
    scroll-margin-top: calc(var(--menu-nav-h, 92px) + 14px);
}
.menu-page-body .menu-category:first-child,
.menu-page-body .menu-section-divider:first-child { margin-top: 34px; }

.menu-noscript {
    width: 88%;
    max-width: 760px;
    margin: 34px auto 0;
    padding: 22px 26px;
    border: 1px solid rgba(212, 181, 124, 0.2);
    border-radius: 16px;
    background: rgba(217, 217, 217, 0.04);
    font-family: var(--font-sans);
    font-size: 13px;
    line-height: 1.65;
    opacity: 0.75;
}

.menu-page-footer {
    margin-top: 60px;
    padding: 34px 6% calc(30px + env(safe-area-inset-bottom, 0px));
    background: var(--nav-footer-bg);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}
.menu-page-footer .footer-logo { width: 100px; }

@media (hover: hover) and (pointer: fine) {
    .menu-nav-chip:hover {
        border-color: rgba(212, 181, 124, 0.6);
        background: rgba(212, 181, 124, 0.12);
    }
    .menu-nav-chip.active:hover {
        background: var(--accent);
        color: #0A0A0A;
    }
    .menu-nav-section:hover { color: var(--accent); opacity: 1; }
}

@media (max-width: 991px) {
    .menu-hero-wave { display: none; }
}

@media (max-width: 480px) {
    .menu-page-body,
    .menu-noscript { width: 90%; }
    .menu-category-img { width: 52px; height: 52px; }
    .menu-noscript { padding: 18px 20px; }
    /* nella colonna stretta accanto al logo il sottotitolo andava su tre righe */
    .menu-hero-sub {
        font-size: 11px;
        letter-spacing: 0.05em;
        margin-top: 12px;
    }
}

@media print {
    .menu-sticky-nav, #btt { display: none !important; }
    .menu-page-body { max-width: 100%; width: 100%; }
}
