*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#111}a{color:inherit}.bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:28px;padding:14px 4vw;background:#fff;border-bottom:1px solid #ddd}.brand{width:210px;overflow:hidden}.brand img,footer img{width:100%;display:block;filter:invert(1)}nav{display:flex;gap:22px;margin-left:auto}nav a{text-decoration:none;text-transform:uppercase;font-size:13px;font-weight:800}.actions{display:flex;gap:10px;align-items:center}select{padding:9px;background:#fff}.book,.btn{background:#111;color:#fff;text-decoration:none;padding:13px 18px;text-transform:uppercase;font-size:13px;font-weight:900}.hero{position:relative;height:78vh;overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.15) 60%,transparent)}.heroText{position:absolute;z-index:2;left:6vw;top:50%;transform:translateY(-50%);max-width:720px;color:#fff}.heroText>p:first-child{font-weight:900;letter-spacing:.12em}h1{font-size:clamp(54px,8vw,120px);line-height:.86;margin:18px 0;text-transform:uppercase;letter-spacing:-.05em}.sub{max-width:560px;font-size:19px;line-height:1.45}.heroBtns{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:28px}.ghost{color:#fff;font-weight:800;text-underline-offset:5px}.statement{padding:7vw 6vw}.statement p{font-size:clamp(34px,5vw,74px);font-weight:900;line-height:1.02;max-width:1100px;margin:0;text-transform:uppercase}.mosaic{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:390px;gap:8px;padding:0 8px}.mosaic img{width:100%;height:100%;object-fit:cover}.mosaic .big{grid-row:span 2}.mosaic .wide{grid-column:span 2}.menuBlock{display:flex;justify-content:space-between;gap:40px;align-items:end;padding:8vw 6vw;background:#f2eadf}.menuBlock span,.whereText>span{font-size:13px;font-weight:900;letter-spacing:.14em}.menuBlock h2,.where h2{font-size:clamp(46px,6vw,90px);line-height:.92;margin:14px 0 0;text-transform:uppercase}.menuButtons{display:flex;flex-direction:column;gap:18px;align-items:flex-start}.instagram{font-size:18px;font-weight:900}.photoBand{display:grid;grid-template-columns:2fr 1fr;min-height:650px;background:#111;color:#fff}.photoBand img{width:100%;height:100%;object-fit:cover}.photoBand div{display:flex;align-items:center;justify-content:center;padding:40px}.photoBand p{font-size:clamp(28px,4vw,60px);font-weight:900;line-height:1.05;writing-mode:vertical-rl}.locale{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;padding:8px}.locale img{width:100%;height:620px;object-fit:cover}.where{display:grid;grid-template-columns:1.25fr 1fr;min-height:680px}.wherePhoto img{width:100%;height:100%;object-fit:cover}.whereText{padding:7vw 6vw;display:flex;flex-direction:column;justify-content:center}.whereText p{font-size:18px;line-height:1.5}.whereBtns{display:flex;gap:14px;margin-top:22px}.darkText{color:#111}.map iframe{width:100%;height:430px;border:0}.wa{position:fixed;right:24px;bottom:24px;z-index:40;background:#25D366;color:#071b0d;border-radius:999px;text-decoration:none;padding:16px 21px;font-weight:900;box-shadow:0 8px 30px rgba(0,0,0,.25)}footer{display:flex;align-items:center;justify-content:space-between;padding:32px 4vw;border-top:1px solid #ddd}footer img{width:220px}@media(max-width:900px){.brand{width:150px}nav{display:none}.hero{height:72vh}.heroText{left:5vw;right:5vw}.sub{font-size:16px}.mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:300px}.mosaic .big{grid-row:auto}.mosaic .wide{grid-column:span 2}.menuBlock{display:block}.menuButtons{margin-top:30px}.photoBand{grid-template-columns:1fr}.photoBand img{height:500px}.photoBand p{writing-mode:horizontal-tb}.locale{grid-template-columns:1fr 1fr}.locale img{height:420px}.locale img:first-child{grid-column:span 2}.where{grid-template-columns:1fr}.wherePhoto{height:430px}.wa span{display:none}.wa:after{content:"WA"}footer{display:block}}
/* Refinements requested */
.brand{width:280px}
.statement{padding:5vw 6vw}
.statement p{font-size:clamp(26px,3.2vw,48px);max-width:950px;line-height:1.08}
.menuLabel{display:block;font-size:clamp(30px,4vw,58px)!important;line-height:1;font-weight:900!important;letter-spacing:-.03em!important;margin-bottom:18px}
.menuBlock h2{margin-top:0}
footer img{width:340px}
.footerInfo{text-align:right}
.footerInfo p{margin:.35rem 0}
.footerInfo a{text-decoration:none}
@media(max-width:900px){
  .brand{width:200px}
  .statement p{font-size:clamp(24px,7vw,36px)}
  .menuLabel{font-size:40px!important}
  footer img{width:280px}
  .footerInfo{text-align:left;margin-top:20px}
}

/* Final visual refinements: larger logo + horizontal photo row */
.brand{width:340px}
footer img{width:420px}

.mosaic{
  display:flex;
  gap:8px;
  padding:0 8px 8px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.mosaic img,
.mosaic .big,
.mosaic .wide{
  flex:0 0 32vw;
  width:32vw;
  height:460px;
  object-fit:cover;
  grid-column:auto;
  grid-row:auto;
  scroll-snap-align:start;
}

@media(max-width:900px){
  .brand{width:235px}
  footer img{width:320px}
  .mosaic{gap:7px;padding:0 7px 7px}
  .mosaic img,
  .mosaic .big,
  .mosaic .wide{
    flex:0 0 78vw;
    width:78vw;
    height:420px;
  }
}


/* Final tweaks requested: bigger logo, extra phone, smaller address, centered footer */
.brand{width:400px}
footer img{width:500px}

.whereText h2{
  font-size:clamp(32px,4vw,56px);
  line-height:1.02;
  margin:12px 0 8px;
}
.whereText p{
  font-size:16px;
  line-height:1.45;
  margin:8px 0;
}

footer{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:20px;
  padding:52px 4vw;
}
.footerInfo{
  text-align:center;
  max-width:760px;
}
.footerInfo p{
  margin:.3rem 0;
  font-size:18px;
  line-height:1.5;
}

@media(max-width:900px){
  .brand{width:265px}
  footer img{width:340px}
  .whereText h2{
    font-size:clamp(28px,8vw,40px);
  }
  .whereText p{
    font-size:15px;
  }
  .footerInfo p{
    font-size:16px;
  }
}

/* CACHE-BUST FINAL OVERRIDES */
.brand{width:420px!important}
footer img{width:520px!important}
.mosaic{display:flex!important;gap:8px!important;padding:0 8px 8px!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x proximity!important}
.mosaic img,.mosaic .big,.mosaic .wide{flex:0 0 32vw!important;width:32vw!important;height:460px!important;object-fit:cover!important;grid-column:auto!important;grid-row:auto!important;scroll-snap-align:start!important}
.whereText h2{font-size:clamp(30px,3.4vw,50px)!important;line-height:1.02!important}
footer{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;gap:20px!important;padding:52px 4vw!important}
.footerInfo{text-align:center!important;max-width:760px!important}
@media(max-width:900px){.brand{width:280px!important}footer img{width:360px!important}.mosaic img,.mosaic .big,.mosaic .wide{flex:0 0 78vw!important;width:78vw!important;height:420px!important}.whereText h2{font-size:clamp(28px,8vw,40px)!important}}


/* v500 */
.bar{padding:8px 4vw;min-height:92px}
.brand{width:360px;max-width:29vw;overflow:visible}
.brand img,footer img{height:auto;width:100%}
#menu,#foto,#contatti{scroll-margin-top:112px}

.heroText{max-width:760px}
.heroText .kicker{font-size:14px;font-style:italic;letter-spacing:.12em;margin:0 0 16px}
.heroText h1{font-size:clamp(42px,5.6vw,82px);line-height:.92;letter-spacing:-.045em;margin:0 0 24px}
.heroText .sub{max-width:620px;font-size:18px;line-height:1.45}

.statement{padding:6vw 6vw;max-width:1250px}
.statement .manifestoIntro{margin:0 0 28px;max-width:1050px;font-size:clamp(24px,3vw,44px);line-height:1.12;text-transform:none;font-weight:400}
.statement .manifestoPunch{margin:0;max-width:1000px;font-size:clamp(22px,2.5vw,36px);line-height:1.15;text-transform:none;font-weight:700}

footer img{width:470px;max-width:82vw}

@media(max-width:900px){
  .bar{min-height:72px;padding:7px 4vw}
  .brand{width:235px;max-width:55vw}
  #menu,#foto,#contatti{scroll-margin-top:84px}
  .heroText h1{font-size:clamp(36px,10vw,58px);line-height:.94}
  .heroText .sub{font-size:16px}
  .statement{padding:10vw 6vw}
  .statement .manifestoIntro{font-size:clamp(23px,7vw,34px)}
  .statement .manifestoPunch{font-size:clamp(21px,6vw,30px)}
}


/* v600 — typography inspired by the logo */
body, button, select, input, textarea{
  font-family:"Roboto Slab", Rockwell, "Courier New", serif;
}

nav a,
.book,
.btn,
.menuLabel,
.whereText>span,
.heroText .kicker,
.wa{
  font-family:"Roboto Slab", Rockwell, "Courier New", serif;
}

/* Hero: smaller, more air between lines */
.heroText h1{
  font-size:clamp(36px,4.6vw,70px);
  line-height:1.08;
  letter-spacing:-.025em;
  margin:0 0 24px;
  max-width:980px;
}

.heroText .ritualLine{
  white-space:nowrap;
}

.heroText .kicker{
  font-size:13px;
  margin-bottom:18px;
}

.heroText .sub{
  font-size:17px;
  line-height:1.55;
}

@media(max-width:900px){
  .heroText h1{
    font-size:clamp(31px,8.5vw,48px);
    line-height:1.12;
  }
  .heroText .ritualLine{
    white-space:normal;
  }
}

/* v610 — manifesto punch regular weight */
.statement .manifestoPunch{
  font-weight:400;
}

/* v620 — WhatsApp icon on mobile */
.wa{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.waIcon{
  display:none;
  width:25px;
  height:25px;
}
@media(max-width:900px){
  .wa{
    width:58px;
    height:58px;
    padding:0;
    border-radius:50%;
  }
  .waText{
    display:none;
  }
  .waIcon{
    display:block;
    width:30px;
    height:30px;
  }
  .wa:after{
    content:none !important;
  }
}

/* v700 — legal footer */
.footerInfo .legal{
  margin-top:14px;
  font-size:13px;
  opacity:.65;
}


/* v710 — Analytics consent banner */
.cookieBanner{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:100;
  padding:14px;
  display:none;
}
.cookieInner{
  max-width:920px;
  margin:0 auto;
  background:#111;
  color:#fff;
  border-radius:14px;
  padding:18px 20px;
  display:flex;
  gap:22px;
  align-items:center;
  justify-content:space-between;
  box-shadow:0 12px 40px rgba(0,0,0,.28);
}
.cookieInner p{
  margin:0;
  font-size:14px;
  line-height:1.45;
}
.cookieActions{
  display:flex;
  gap:10px;
  flex-shrink:0;
}
.cookieActions button{
  border:0;
  padding:11px 16px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.cookieReject{
  background:#fff;
  color:#111;
}
.cookieAccept{
  background:#25D366;
  color:#071b0d;
}
@media(max-width:700px){
  .cookieInner{
    align-items:stretch;
    flex-direction:column;
  }
  .cookieActions{
    width:100%;
  }
  .cookieActions button{
    flex:1;
  }
}


/* v720 — privacy, cookie preferences, maps */
.policyLinks{margin-top:12px!important}
.linkButton{border:0;background:none;padding:0;font:inherit;text-decoration:underline;cursor:pointer;color:inherit}
.cookieInner a{color:#fff;text-decoration:underline}
.cookieClose{
  position:absolute;
  right:10px;
  top:7px;
  border:0;
  background:transparent;
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.cookieInner{position:relative;padding-right:44px}

.mapConsent{min-height:380px;background:#f2eadf}
.mapPlaceholder{min-height:380px;display:flex;align-items:center;justify-content:center;text-align:center;padding:40px}
.mapPlaceholder h3{font-size:clamp(28px,4vw,52px);margin:0 0 12px}
.mapPlaceholder p{font-size:17px}
.mapActions{display:flex;gap:16px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:22px}
#mapFrameWrap iframe{width:100%;height:430px;border:0}

.policyPage{background:#f8f5ef}
.policyHeader,.policyFooter{padding:22px 6vw;background:#fff;border-bottom:1px solid #ddd}
.policyFooter{border-top:1px solid #ddd;border-bottom:0}
.policyHeader a,.policyFooter a{font-weight:800;text-decoration:none}
.policyMain{max-width:900px;margin:0 auto;padding:60px 6vw 80px}
.policyMain h1{font-size:clamp(44px,7vw,78px);line-height:.95;margin:0 0 12px}
.policyMain h2{font-size:26px;margin:40px 0 10px}
.policyMain p,.policyMain li{font-size:17px;line-height:1.65}
.policyUpdated{opacity:.6}
.policyNote{margin-top:50px;padding:18px;background:#eee6db;border-radius:8px}

/* v730 — semantic brand SEO */
.seoBrandH1{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}


/* v740 — conversion + SEO refinements */
.heroBook{background:#fff;color:#111;border:2px solid #fff}
.heroBook:hover{background:transparent;color:#fff}
.heroMenu{font-size:14px;text-transform:uppercase;text-decoration-thickness:2px}

.trustBar{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:#d9d1c6;
  border-top:1px solid #d9d1c6;
  border-bottom:1px solid #d9d1c6;
}
.trustBar>div{
  background:#f8f5ef;
  padding:24px 6vw;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.trustBar strong{
  font-size:16px;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.trustBar span{font-size:13px;line-height:1.35;opacity:.72}

.menuBookLink{
  font-weight:900;
  text-transform:uppercase;
  text-underline-offset:5px;
  font-size:14px;
}

.mobileBookBar{display:none}

@media(max-width:900px){
  body{padding-bottom:76px}
  .hero{height:78vh;min-height:620px}
  .heroText{top:48%}
  .heroBtns{gap:12px;margin-top:24px}
  .heroBook{width:100%;text-align:center;padding:15px 18px}
  .heroMenu{display:inline-block;padding:8px 0}
  .trustBar{grid-template-columns:1fr}
  .trustBar>div{padding:18px 6vw}
  .menuButtons{width:100%}
  .menuButtons .btn{width:100%;text-align:center}
  .mobileBookBar{
    display:block;
    position:fixed;
    left:12px;
    right:82px;
    bottom:12px;
    z-index:60;
  }
  .mobileBookBar a{
    display:block;
    background:#111;
    color:#fff;
    text-decoration:none;
    text-align:center;
    text-transform:uppercase;
    font-weight:900;
    padding:17px 16px;
    border-radius:999px;
    box-shadow:0 8px 30px rgba(0,0,0,.25);
  }
  .wa{right:12px;bottom:12px;z-index:61}
  .cookieBanner{bottom:76px}
}


/* v750 — HTML menu page + SEO landing */
.menuPdfLink{font-weight:800;font-size:13px;text-transform:uppercase;text-underline-offset:5px}
.menuPage{background:#f8f5ef}
.menuHeader{background:#fff}
.menuHero{min-height:540px;display:flex;align-items:end;padding:80px 6vw;background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.28)),url("assets/tagliatelle.jpg") center/cover no-repeat;color:#fff}
.menuHeroText{max-width:850px}
.menuHero .kicker{font-size:13px;font-weight:900;letter-spacing:.14em;font-style:italic}
.menuHero h1{font-size:clamp(64px,11vw,150px);line-height:.82;margin:16px 0 28px;letter-spacing:-.055em}
.menuHero p:not(.kicker){max-width:700px;font-size:19px;line-height:1.5}
.menuPdfHero{font-size:14px;text-transform:uppercase;text-decoration-thickness:2px}
.menuIntro{padding:72px 6vw 56px;max-width:1180px}
.menuIntro>p:first-child{font-size:clamp(27px,3.3vw,48px);line-height:1.12;margin:0 0 20px}
.menuIntroEn{font-size:15px!important;text-transform:uppercase;letter-spacing:.08em;opacity:.62}
.menuList{padding:64px 6vw;max-width:1280px;margin:0 auto}
.menuList.alt{max-width:none;background:#efe6da;padding-left:max(6vw,calc((100vw - 1280px)/2 + 6vw));padding-right:max(6vw,calc((100vw - 1280px)/2 + 6vw))}
.menuSectionHead{display:flex;align-items:baseline;gap:20px;border-bottom:4px solid #111;padding-bottom:16px;margin-bottom:8px}
.menuSectionHead span{font-size:13px;font-weight:900;opacity:.45}
.menuSectionHead h2{font-size:clamp(42px,6vw,82px);line-height:.92;margin:0;text-transform:uppercase;letter-spacing:-.04em}
.dish{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:start;padding:24px 0;border-bottom:1px solid rgba(0,0,0,.17)}
.dish h3{font-size:clamp(18px,2vw,25px);line-height:1.25;margin:0 0 7px;text-transform:uppercase}
.dish h3 small{font-size:.58em;font-weight:600;opacity:.6;white-space:nowrap}
.dish p{margin:0;font-size:14px;line-height:1.45;opacity:.62;text-transform:uppercase;letter-spacing:.02em}
.dish>strong{font-size:22px;white-space:nowrap}
.dish.signature{border:2px solid #111;padding:24px;margin-top:20px}
.menuFeature{display:grid;grid-template-columns:1.2fr 1fr;background:#111;color:#fff;min-height:520px}
.menuFeature.reverse{grid-template-columns:1fr 1.2fr}
.menuFeature.reverse img{order:2}
.menuFeature img{width:100%;height:100%;min-height:520px;object-fit:cover}
.menuFeature div{padding:7vw 6vw;display:flex;flex-direction:column;justify-content:center}
.menuFeature span{font-size:13px;font-weight:900;letter-spacing:.14em}
.menuFeature h2{font-size:clamp(36px,5vw,70px);line-height:1.02;margin:16px 0 0;text-transform:uppercase}
.menuNotes{padding:70px 6vw 100px;max-width:1050px;margin:0 auto;text-align:center}
.menuNotes p{font-size:17px;line-height:1.6}
.menuNotes .btn{display:inline-block;margin-top:20px}
@media(max-width:1100px){.menuNav a:nth-child(n+3){display:none}}
@media(max-width:900px){
  .menuHeader .brand{width:210px!important;max-width:58vw!important}
  .menuHeader nav{display:none}
  .menuHeader .actions{margin-left:auto}
  .menuHero{min-height:520px;padding:60px 6vw 72px;background-position:center}
  .menuHero h1{font-size:clamp(62px,19vw,100px)}
  .menuHero p:not(.kicker){font-size:16px}
  .menuHero .heroBtns{display:flex;flex-direction:column;align-items:stretch}
  .menuHero .heroBook{text-align:center}
  .menuPdfHero{text-align:center;padding:10px}
  .menuIntro{padding:52px 6vw 34px}
  .menuList,.menuList.alt{padding:44px 6vw}
  .menuSectionHead{gap:12px}
  .dish{grid-template-columns:1fr auto;gap:16px;padding:20px 0}
  .dish h3{font-size:18px}
  .dish p{font-size:12px}
  .dish>strong{font-size:18px}
  .menuFeature,.menuFeature.reverse{grid-template-columns:1fr;min-height:0}
  .menuFeature.reverse img{order:0}
  .menuFeature img{min-height:0;height:360px}
  .menuFeature div{padding:50px 6vw}
}

/* v760 — informative local SEO section, retaining existing visual identity */
.localSeo{background:#fff;padding:72px 6vw 84px}
.localSeoInner{max-width:1050px;margin:0 auto}
.localSeoKicker{font-size:12px;font-weight:900;letter-spacing:.12em;margin:0 0 16px}
.localSeo h2{font-size:clamp(30px,4.4vw,60px);line-height:1.08;text-transform:uppercase;letter-spacing:-.025em;margin:0 0 18px}
.localSeoInner>p:not(.localSeoKicker){font-size:17px;line-height:1.65;max-width:850px;margin:0}
.localSeoLinks{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:26px}
.localSeoLinks>a:first-child{font-weight:900;text-underline-offset:5px}
@media(max-width:900px){.localSeo{padding:52px 6vw 60px}.localSeoInner>p:not(.localSeoKicker){font-size:16px}.localSeoLinks{align-items:stretch;flex-direction:column}.localSeoLinks .btn{text-align:center}}
