/* ==========================================================================
   Menù — stili specifici della pagina
   ========================================================================== */

body{background:var(--ink)}

/* ---------- intestazione ---------- */
.mhero{
  position:relative;min-height:clamp(58svh,64vh,80svh);display:flex;flex-direction:column;justify-content:flex-end;
  padding:150px var(--pad) clamp(46px,6vw,86px);overflow:hidden;color:var(--cream)
}
.mhero__bg{position:absolute;inset:-12% 0;z-index:0;will-change:transform}
.mhero__bg img{width:100%;height:100%;object-fit:cover;opacity:.46}
.mhero::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,var(--ink) 4%,rgba(var(--scrim),.55) 48%,rgba(var(--scrim),.75))}
.mhero__body{position:relative;z-index:2;max-width:min(940px,88vw)}
.mhero__title{
  font-family:var(--d);font-weight:400;font-size:clamp(38px,7.4vw,108px);line-height:.98;
  letter-spacing:-.025em;margin-bottom:20px;text-wrap:balance
}
.mhero__title i{font-style:italic;color:var(--verde-lt)}
.mhero__text{margin-top:8px;max-width:50ch;font-size:clamp(15px,1.2vw,19px);color:color-mix(in srgb,var(--cream) 78%,transparent)}
.mhero__scroll{position:absolute;z-index:3;left:50%;bottom:20px;transform:translateX(-50%);width:26px;height:42px;
  border:1px solid rgba(244,237,225,.35);border-radius:20px;display:grid;justify-items:center;padding-top:8px}
.mhero__scroll span{width:2px;height:7px;background:var(--acc);border-radius:2px;animation:mdrop 1.8s var(--e-io) infinite}
@keyframes mdrop{0%{transform:translateY(0);opacity:0}30%{opacity:1}100%{transform:translateY(16px);opacity:0}}

/* ---------- barra categorie ---------- */
.cats{
  position:sticky;top:var(--hdr-h);z-index:600;background:color-mix(in srgb,var(--ink) 92%,transparent);
  backdrop-filter:blur(14px) saturate(1.3);border-block:1px solid var(--line);
}
.cats__in{
  display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:0 var(--pad);
  -webkit-overflow-scrolling:touch;scroll-behavior:smooth
}
.cats__in::-webkit-scrollbar{display:none}
.cats a{
  flex:0 0 auto;position:relative;padding:17px 16px;font-size:11.5px;letter-spacing:.16em;
  text-transform:uppercase;color:color-mix(in srgb,var(--cream) 52%,transparent);white-space:nowrap;transition:color .4s
}
.cats a::after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:1px;background:var(--acc);
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--e)}
.cats a:hover{color:var(--cream)}
.cats a.is-on{color:var(--acc)}
.cats a.is-on::after{transform:scaleX(1)}

/* ---------- corsi ---------- */
.menu{background:var(--ink);color:var(--cream)}
.crs{
  display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  gap:clamp(26px,5vw,90px);align-items:start;
  padding:clamp(56px,8vw,120px) var(--pad);
  max-width:1600px;margin:0 auto;
  border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--hdr-h) + 58px)
}
.crs__sticky{position:sticky;top:calc(var(--hdr-h) + 104px);display:grid;gap:12px}
.crs__n{font-family:var(--d);font-size:12px;letter-spacing:.3em;color:var(--acc);margin-bottom:-4px}
.crs__title{font-family:var(--d);font-weight:400;font-size:clamp(32px,4.6vw,66px);line-height:1;letter-spacing:-.02em}
.crs__kick{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:color-mix(in srgb,var(--cream) 50%,transparent)}
.crs__note{font-size:14px;line-height:1.6;color:color-mix(in srgb,var(--cream) 62%,transparent);max-width:34ch;margin-top:6px}
.crs__img{margin-top:14px;aspect-ratio:4/3;overflow:hidden;border-radius:var(--rad);max-width:340px}
.crs__img img{width:100%;height:100%;object-fit:cover}

.crs__list{display:grid;gap:2px;padding-top:6px}
.itm{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:18px;
  padding:clamp(14px,1.5vw,20px) 0;border-bottom:1px solid color-mix(in srgb,var(--cream) 8%,transparent);
  transition:opacity .9s var(--e),transform .9s var(--e)
}
.itm:last-child{border-bottom:0}
.itm__main h3{
  font-family:var(--d);font-weight:400;font-size:clamp(18px,1.6vw,24px);line-height:1.25;
  display:flex;flex-wrap:wrap;align-items:baseline;gap:9px
}
.itm__name{flex:0 1 auto}
.itm__main p{font-size:13.5px;line-height:1.5;color:color-mix(in srgb,var(--cream) 52%,transparent);margin-top:4px;max-width:52ch}
.itm__dots{flex:1 1 40px;min-width:40px;align-self:center;border-bottom:1px dotted color-mix(in srgb,var(--cream) 26%,transparent)}
.itm__p{font-family:var(--d);font-size:clamp(16px,1.4vw,21px);white-space:nowrap;color:var(--cream)}
.itm__p i{font-style:normal;font-size:.68em;opacity:.55;margin-left:3px}
.itm--has{cursor:none}
.itm--has:hover .itm__main h3{color:var(--acc)}

.tag{
  font-family:var(--s);font-weight:400;font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;
  padding:3.5px 8px;border-radius:100px;border:1px solid currentColor;line-height:1;position:relative;top:-2px
}
.tag--signature{background:var(--acc);border-color:var(--acc);color:var(--acc-on)}  /* pieno: non si confonde col verde di "veg" */
.tag--stagione{color:#9FBF7A}
.tag--novità,.tag--novita{color:#E0A4C4}
.tag--veg{color:#7FB88A}
.tag--fish{color:#7FA8C8}

/* anteprima che segue il cursore */
.pv{
  position:fixed;top:0;left:0;z-index:940;width:clamp(200px,20vw,300px);aspect-ratio:4/5;
  border-radius:var(--rad);pointer-events:none;background-size:cover;background-position:center;
  opacity:0;transform-origin:center;transition:opacity .35s var(--e);
  box-shadow:0 30px 70px rgba(0,0,0,.55);clip-path:inset(0 0 0 0)
}
.pv.is-on{opacity:1;animation:pvIn .6s var(--e)}
@keyframes pvIn{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}

@media (max-width:900px){
  .crs{grid-template-columns:1fr;gap:22px}
  .crs__sticky{position:static}
  .crs__img{display:none}
  .itm__dots{display:none}
}

/* ---------- chiusura ---------- */
.mfoot{background:var(--ink);color:var(--cream);padding:clamp(70px,9vw,140px) var(--pad) clamp(90px,10vw,150px);text-align:center}
.mfoot__inner{max-width:760px;margin:0 auto;display:grid;gap:26px;justify-items:center}
.mfoot__note{font-size:13px;line-height:1.85;color:color-mix(in srgb,var(--cream) 48%,transparent)}
.mfoot .h-display{font-size:clamp(28px,4.6vw,64px)}
.mfoot .h-display i{color:var(--verde-lt)}
.mfoot__cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:6px}
