:root{
  --nero:#1c1a17;
  --carta:#f6f1e7;
  --crosta:#c8842c;
  --pomodoro:#a4321f;
  --basilico:#3e5d3a;
  --grigio:#6f6a61;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:Georgia,'Times New Roman',serif;background:var(--carta);color:var(--nero);line-height:1.65}
h1,h2,h3,nav,.btn,.eyebrow,.luogo,.tag,.info dt{font-family:'Helvetica Neue',Arial,sans-serif}
img{display:block;max-width:100%}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:12px 28px;background:rgba(28,26,23,.92);backdrop-filter:blur(6px)}
nav .logo{display:flex;align-items:center;gap:10px;color:var(--carta);font-weight:700;font-size:19px;letter-spacing:.06em;text-decoration:none}
nav .logo img{height:22px;width:auto}
nav .logo span{color:var(--crosta)}
nav ul{display:flex;gap:24px;list-style:none}
nav a{color:var(--carta);text-decoration:none;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
nav a:hover,nav a.attiva{color:var(--crosta)}

/* HERO with photo */
header.foto{min-height:92vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative;overflow:hidden;color:var(--carta);padding:120px 24px 80px;background-size:cover;background-position:center}
header.foto::after{content:"";position:absolute;inset:0;background:inherit;background-size:cover;background-position:center;z-index:0;animation:kenburns 26s ease-in-out infinite alternate}
header.foto::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(20,18,15,.62),rgba(20,18,15,.72));z-index:1}
header.foto>*{position:relative;z-index:2}
@keyframes kenburns{0%{transform:scale(1)}100%{transform:scale(1.09)}}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.reveal.vis{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  header.foto::after,footer,footer::before{animation:none}
}
header .logo-img{width:min(187px,41vw);margin-bottom:26px;filter:drop-shadow(0 4px 18px rgba(0,0,0,.5))}
.eyebrow{letter-spacing:.35em;text-transform:uppercase;font-size:12px;color:var(--crosta);margin-bottom:18px}
header h1{font-size:clamp(38px,7.5vw,88px);font-weight:800;letter-spacing:-.01em;line-height:1.05}
header h1 .due{color:var(--crosta)}
header .claim{font-style:italic;font-size:clamp(18px,2.6vw,26px);margin-top:20px;color:#efe6d2}
header .sub{margin-top:10px;font-size:14px;color:#cfc5ad;font-family:'Helvetica Neue',Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.btn{display:inline-block;margin-top:34px;padding:14px 34px;border:2px solid var(--crosta);color:var(--crosta);text-decoration:none;text-transform:uppercase;letter-spacing:.18em;font-size:13px;font-weight:700;transition:.25s;background:rgba(20,18,15,.35)}
.btn:hover{background:var(--crosta);color:var(--nero)}
.btn.solid{background:var(--pomodoro);border-color:var(--pomodoro);color:var(--carta);margin-left:14px}
.btn.solid:hover{background:#c03d27;border-color:#c03d27}

section{padding:90px 24px;max-width:1060px;margin:0 auto}
.eyebrow.dark{color:var(--pomodoro)}
h2{font-size:clamp(28px,4.5vw,42px);font-weight:800;margin-bottom:24px;letter-spacing:-.01em}
.lead{font-size:19px;max-width:70ch}
.lead + .lead{margin-top:16px}

/* SCELTA SEDE (landing) */
.scelta{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:28px;margin-top:48px}
.sede-card{position:relative;display:block;min-height:420px;text-decoration:none;color:var(--carta);background-size:cover;background-position:center;border:1px solid #2a271f;overflow:hidden}
.sede-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,15,.15) 30%,rgba(20,18,15,.85) 100%);transition:.3s}
.sede-card:hover::before{background:linear-gradient(180deg,rgba(20,18,15,.05) 30%,rgba(164,50,31,.85) 100%)}
.sede-card .testo{position:absolute;left:0;right:0;bottom:0;padding:28px}
.sede-card h3{font-size:28px;letter-spacing:.02em}
.sede-card .luogo{text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:var(--crosta);margin-bottom:6px}
.sede-card p{font-size:15px;color:#e6dcc6;margin-top:8px}
.sede-card .vai{display:inline-block;margin-top:14px;font-family:'Helvetica Neue',Arial,sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;border-bottom:2px solid var(--crosta);padding-bottom:3px}

/* TIMELINE */
.timeline{margin-top:44px;border-left:3px solid var(--crosta);padding-left:32px;display:grid;gap:30px}
.tl-item{position:relative}
.tl-item::before{content:"";position:absolute;left:-41px;top:6px;width:13px;height:13px;border-radius:50%;background:var(--pomodoro);border:3px solid var(--carta);box-shadow:0 0 0 2px var(--pomodoro)}
.tl-item .anno{font-family:'Helvetica Neue',Arial,sans-serif;font-weight:800;color:var(--pomodoro);font-size:15px;letter-spacing:.1em}
.tl-item p{margin-top:4px;color:#3b382f}

/* METODO */
.metodo{background:var(--nero);color:var(--carta)}
.metodo-inner{max-width:1060px;margin:0 auto;padding:90px 24px}
.metodo h2{color:var(--carta)}
.metodo .lead{color:#d8cfba}
.passi{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:22px;margin-top:44px}
.passo{border:1px solid #3a362d;padding:26px 22px;background:#232019}
.passo .num{font-family:'Helvetica Neue',Arial,sans-serif;font-size:34px;font-weight:800;color:var(--crosta)}
.passo h3{font-size:16px;margin:10px 0 8px;letter-spacing:.04em;text-transform:uppercase}
.passo p{font-size:14.5px;color:#bdb49e}
.metodo .nota{margin-top:36px;font-style:italic;color:var(--crosta);font-size:18px}

/* INFO SEDE */
.info{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:26px;margin-top:40px}
.info-box{background:#fff;border:1px solid #e3dbc9;padding:26px 24px;box-shadow:0 2px 0 #e3dbc9}
.info dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--pomodoro);margin-bottom:8px;font-weight:700}
.info dd{font-size:17px}
.info dd a{color:var(--nero)}

/* MENU */
.menu-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;margin-top:44px}
.menu-blocco h3{font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--pomodoro);border-bottom:2px solid var(--crosta);padding-bottom:8px;margin-bottom:16px}
.voce{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dotted #d8cfba;font-size:16px}
.voce .prezzo{font-family:'Helvetica Neue',Arial,sans-serif;font-weight:700;white-space:nowrap}
.voce small{display:block;color:var(--grigio);font-size:13.5px;font-style:italic}
.menu-nota{margin-top:26px;font-size:14.5px;color:var(--grigio);font-style:italic}

/* GUSTI */
.gusti{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 30px;margin-top:34px;list-style:none}
.gusti li{padding:8px 0;border-bottom:1px dotted #d8cfba;font-size:15.5px}
.gusti li b{font-family:'Helvetica Neue',Arial,sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.gusti li span{display:block;color:var(--grigio);font-size:13.5px}

/* GALLERY */
.galleria{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:44px}
.galleria img{width:100%;height:290px;object-fit:cover;border:1px solid #e0d7c2}
.galleria img.alta{height:420px}

/* CARDS generiche */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:26px;margin-top:40px}
.card{background:#fff;border:1px solid #e3dbc9;padding:30px 26px;box-shadow:0 2px 0 #e3dbc9}
.card h3{font-size:20px;margin-bottom:10px;color:var(--pomodoro)}
.card.top{border-top:5px solid var(--pomodoro)}
.card p{font-size:15.5px;color:#4a463c}
.tag{display:inline-block;margin-top:14px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--basilico);border:1px solid var(--basilico);padding:4px 10px}

/* FOOTER — gradiente animato caldo */
footer{position:relative;overflow:hidden;color:#b9b09c;padding:72px 24px 40px;text-align:center;
  background:linear-gradient(160deg,#231f19,#1c1a17 40%,#2b1d12 70%,#1c1a17);
  background-size:250% 250%;animation:footerShift 18s ease-in-out infinite}
footer::before{content:"";position:absolute;inset:-40%;pointer-events:none;
  background:
    radial-gradient(600px 340px at 20% 80%, rgba(200,132,44,.16), transparent 65%),
    radial-gradient(520px 300px at 80% 20%, rgba(164,50,31,.14), transparent 65%);
  filter:blur(40px);animation:footerGlow 14s ease-in-out infinite alternate}
footer>*{position:relative}
@keyframes footerShift{0%,100%{background-position:0% 0%}50%{background-position:100% 100%}}
@keyframes footerGlow{0%{transform:translate3d(-4%,2%,0) scale(1)}100%{transform:translate3d(4%,-2%,0) scale(1.12)}}
footer .logo-img{height:72px;margin:0 auto 16px}
footer .nome{font-family:'Helvetica Neue',Arial,sans-serif;font-weight:700;font-size:24px;color:var(--carta);letter-spacing:.06em}
footer .nome span{color:var(--crosta)}
footer p{margin-top:12px;font-size:14px}
footer .sedi-riga{margin-top:22px;font-size:14px}
footer .sedi-riga a{color:var(--carta);text-decoration:none}
footer .sedi-riga a:hover{color:var(--crosta)}
footer .domini{margin-top:22px;font-family:'Helvetica Neue',Arial,sans-serif;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
footer .domini a{color:var(--crosta);text-decoration:none;margin:0 10px}
footer .fine{margin-top:30px;font-size:12px;color:#7a7263}

.sfondo-chiaro{background:#efe7d6}
.sfondo-chiaro .inner{max-width:1060px;margin:0 auto;padding:90px 24px}

@media(max-width:720px){
  nav{flex-direction:column;gap:7px;padding:10px 12px}
  nav .logo{font-size:17px}
  nav .logo img{height:20px}
  nav ul{gap:6px 16px;flex-wrap:wrap;justify-content:center;padding:0}
  nav a{font-size:11px;letter-spacing:.08em;white-space:nowrap}
  header.foto{padding-top:130px}
  header .logo-img{width:min(130px,32vw);margin-bottom:20px}
  .btn.solid{margin-left:0;margin-top:16px}
}

/* Mappa Google + social */
.mappa{width:100%;height:340px;border:0;border-radius:10px;margin-top:28px;filter:grayscale(15%)}
footer .social-riga{margin-top:14px;font-size:13px;letter-spacing:.06em}
footer .social-riga a{color:var(--crosta);text-decoration:none;text-transform:uppercase}
footer .social-riga a:hover{text-decoration:underline}

/* Hover polish */
.sede-card{transition:transform .35s ease,box-shadow .35s ease}
.sede-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(20,18,15,.35)}
.galleria img{transition:transform .4s ease,filter .4s ease}
.galleria img:hover{transform:scale(1.03);filter:brightness(1.06)}
.info-box{transition:transform .3s ease}
.info-box:hover{transform:translateY(-4px)}

/* E — grana pellicola su hero (noise SVG sopra il gradiente) */
header.foto::before{background:
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/><feComponentTransfer><feFuncA type='linear' slope='0.06'/></feComponentTransfer></filter><rect width='160' height='160' filter='url(%23n)'/></svg>") repeat,
  linear-gradient(rgba(20,18,15,.62),rgba(20,18,15,.72))}

/* A — parallax contenuto hero */
header.foto>*{transform:translateY(calc(var(--sy,0) * 0.28px));opacity:calc(1 - var(--sy,0)/700)}

/* C — contatori animati */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:22px;margin-top:44px;text-align:center}
.stat .num{font-family:'Helvetica Neue',Arial,sans-serif;font-size:clamp(38px,5vw,56px);font-weight:800;color:var(--crosta);line-height:1}
.stat .lab{margin-top:6px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#bdb49e;font-family:'Helvetica Neue',Arial,sans-serif}

/* D — marquee gusti */
.marquee{overflow:hidden;background:#efe7d6;color:#8a7a5c;padding:16px 0;white-space:nowrap;border-top:1px solid #e0d7c2;border-bottom:1px solid #e0d7c2}
.marquee-track span b{color:var(--crosta);font-weight:400}
.marquee-track{display:inline-flex;animation:marquee 36s linear infinite}
.marquee-track span{font-family:'Helvetica Neue',Arial,sans-serif;font-size:14px;letter-spacing:.28em;text-transform:uppercase;padding-right:40px}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}}

/* Dettagli */
::selection{background:var(--crosta);color:var(--nero)}
html{scrollbar-color:var(--crosta) #efe7d6}
.voce{transition:background .2s}
.voce:hover{background:rgba(200,132,44,.07)}
.voce .prezzo{font-variant-numeric:tabular-nums}
nav.giu{box-shadow:0 4px 24px rgba(20,18,15,.45)}
.chiama-fisso{display:none}
@media(max-width:720px){
  .chiama-fisso{display:flex;align-items:center;justify-content:center;position:fixed;right:16px;bottom:16px;z-index:60;
    background:var(--pomodoro);color:var(--carta);text-decoration:none;font-family:'Helvetica Neue',Arial,sans-serif;
    font-size:13px;font-weight:700;letter-spacing:.08em;padding:14px 22px;border-radius:999px;
    box-shadow:0 8px 24px rgba(164,50,31,.45)}
}
