
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:#FFF9E8;color:#172a30;font-family:Arial,Helvetica,sans-serif}
a{color:inherit}.site-head{position:fixed;z-index:50;top:0;left:0;right:0;height:68px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,249,232,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.08)}
.brand{text-decoration:none;font-weight:900;font-size:12px;letter-spacing:.12em}.site-head nav{display:flex;gap:20px;align-items:center}.site-head nav a{text-decoration:none;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.menu-book{border:1px solid currentColor;border-radius:100px;padding:9px 14px}
.hero{height:100vh;min-height:650px;position:relative;overflow:hidden}.hero img{width:100%;height:100%;object-fit:cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.62))}
.hero-copy{position:absolute;z-index:2;left:6vw;bottom:8vh;color:#FFF9E8;max-width:1100px}.eyebrow{font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 20px}.hero h1,.big-title,.book-title,.home-title{font-family:Georgia,serif;font-weight:400;letter-spacing:-.045em;margin:0;line-height:.9}.hero h1{font-size:clamp(46px,6.6vw,108px)}.hero .sub{font-family:Georgia,serif;font-size:20px;max-width:560px;line-height:1.45;margin:28px 0 0}.hero-link{display:inline-block;margin-top:30px;font-size:11px;letter-spacing:.15em;text-decoration:none;border-bottom:1px solid;padding-bottom:7px}
.intro{padding:9vw 7vw;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.intro .big-title{font-size:clamp(40px,4.9vw,76px)}.intro p.body{font-family:Georgia,serif;font-size:22px;line-height:1.5;margin:30px 0 0}.intro-img{aspect-ratio:4/5;overflow:hidden}.intro-img img{width:100%;height:100%;object-fit:cover}
.food-band{display:grid;grid-template-columns:1fr 1fr;background:var(--accent);color:#FFF9E8}.food-band .copy{padding:8vw 7vw;display:flex;flex-direction:column;justify-content:center}.food-band h2{font-family:Georgia,serif;font-size:clamp(38px,4.2vw,68px);font-weight:400;letter-spacing:-.04em;line-height:.94;margin:0}.food-band p{font-family:Georgia,serif;font-size:19px;line-height:1.55;max-width:540px}.food-band figure{margin:0;min-height:650px}.food-band img{width:100%;height:100%;object-fit:cover}
.gallery{padding:8vw 4vw}.gallery-head{padding:0 3vw 4vw;display:flex;justify-content:space-between;align-items:end}.gallery h2{font-family:Georgia,serif;font-size:clamp(38px,4.4vw,68px);font-weight:400;margin:0;letter-spacing:-.04em}.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;grid-auto-rows:300px;gap:14px}.gallery-grid figure{margin:0;overflow:hidden}.gallery-grid figure:nth-child(1){grid-row:span 2}.gallery-grid figure:nth-child(4){grid-column:span 2}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.gallery-grid figure:hover img{transform:scale(1.025)}
.booking{display:grid;grid-template-columns:.75fr 1.25fr;min-height:790px;background:var(--accent);color:#FFF9E8}.booking-info{padding:7vw 5vw;border-right:1px solid rgba(255,255,255,.23)}.book-title{font-size:clamp(44px,5vw,78px)}.booking-info p{font-family:Georgia,serif;font-size:19px;line-height:1.5}.booking-panel{padding:7vw 6vw;display:flex;flex-direction:column;justify-content:center}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}.form-row.three{grid-template-columns:1.15fr 1fr .8fr}.booking-form{display:flex;flex-direction:column;gap:25px}.booking-form label{display:flex;flex-direction:column;gap:8px;font-size:10px;letter-spacing:.14em;text-transform:uppercase}.booking-form input,.booking-form select,.booking-form textarea{border:0;border-bottom:1px solid rgba(255,255,255,.55);background:transparent;color:#fff;font:inherit;font-size:16px;padding:10px 0 12px;outline:none;border-radius:0}.booking-form input::placeholder,.booking-form textarea::placeholder{color:rgba(255,255,255,.45)}.booking-form option{color:#222}.privacy{display:grid!important;grid-template-columns:20px 1fr;align-items:start;letter-spacing:0!important;text-transform:none!important;font-size:11px!important;line-height:1.5}.submit{border:0;border-radius:100px;background:#D9A928;color:#172a30;font-weight:900;letter-spacing:.12em;padding:18px 22px;cursor:pointer;display:flex;justify-content:space-between}.fallback{font-size:11px;opacity:.75;line-height:1.5}.fallback a{font-weight:700}.success{font-family:Georgia,serif;font-size:28px;line-height:1.4}.footer{padding:35px 5vw;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.1em}
.home-hero{height:100vh;min-height:650px;background:#172a30;color:#FFF9E8;position:relative;overflow:hidden}.home-hero img{width:100%;height:100%;object-fit:cover;opacity:.58}.home-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.42),rgba(0,0,0,.1))}.home-content{position:absolute;z-index:2;left:6vw;bottom:8vh}.home-title{font-size:clamp(52px,7.2vw,116px)}.restaurant-index{padding:9vw 5vw}.restaurant-index>h2{font-family:Georgia,serif;font-size:clamp(42px,5.1vw,78px);font-weight:400;letter-spacing:-.04em;margin:0 0 5vw}
.r-card{display:block;text-decoration:none;border-top:1px solid rgba(0,0,0,.18);padding:38px 0 42px}.r-card:last-child{border-bottom:1px solid rgba(0,0,0,.18)}
.r-head{display:grid;grid-template-columns:1fr auto;gap:25px;align-items:end;margin-bottom:18px}.r-head h3{font-family:Georgia,serif;font-size:clamp(30px,3.8vw,56px);font-weight:400;margin:0;letter-spacing:-.035em}.r-address{margin:8px 0 0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.72}.r-arrow{font-size:28px}
.r-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;background:var(--card-accent);padding:9px}.r-thumb{aspect-ratio:16/10;overflow:hidden;background:#ddd}.r-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.r-card:hover .r-thumb img{transform:scale(1.025)}
.group-story{padding:9vw 7vw;background:#C9C0AE}.group-story .big-title{font-size:clamp(44px,5.6vw,88px)}.group-story p{font-family:Georgia,serif;font-size:22px;line-height:1.5;max-width:700px}
@media(max-width:850px){.site-head{padding:0 14px}.site-head nav a:not(.menu-book){display:none}.hero-copy{left:20px;bottom:50px}.intro,.food-band,.booking{grid-template-columns:1fr}.intro{padding:80px 20px}.food-band figure{min-height:440px}.gallery{padding:70px 14px}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:220px}.gallery-grid figure:nth-child(1){grid-row:span 1}.gallery-grid figure:nth-child(4){grid-column:span 1}.booking-info,.booking-panel{padding:65px 22px}.form-row,.form-row.three{grid-template-columns:1fr}.restaurant-index{padding:80px 20px}.r-head{grid-template-columns:1fr 30px}.r-strip{grid-template-columns:1fr 1fr}.group-story{padding:80px 20px}.footer{gap:20px;flex-direction:column}}


.belsiana-title{display:flex;flex-direction:column;gap:.08em}
.belsiana-title .pretitle{font-size:.42em;letter-spacing:.015em;line-height:1.05}
.belsiana-title .main-title{font-size:1em;line-height:.88}


/* Belsiana usability refinements */
.intro-img{position:relative}
.intro-img img,
.gallery-grid img,
.r-thumb img{object-position:center center}
.gallery-jump{
  position:absolute;left:22px;bottom:22px;z-index:3;
  display:inline-flex;align-items:center;gap:10px;
  text-decoration:none;background:rgba(255,249,232,.94);
  color:#172a30;border-radius:999px;padding:12px 16px;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  box-shadow:0 8px 24px rgba(0,0,0,.15)
}
.gallery-jump:hover{transform:translateY(-1px)}

/* Full photo galleries */
.gallery-grid.full-gallery{
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:250px;
  gap:12px;
}
.gallery-grid.full-gallery figure{
  grid-column:auto!important;
  grid-row:auto!important;
  aspect-ratio:auto;
}
.gallery-grid.full-gallery figure:nth-child(7n+1){
  grid-column:span 2!important;
  grid-row:span 2!important;
}
.gallery-grid.full-gallery figure:nth-child(7n+4){
  grid-column:span 2!important;
}
.gallery-grid.full-gallery img,
.r-thumb img,
.intro-img img{
  object-position:50% 50%!important;
}
.gallery-count{
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  opacity:.62;
}
@media(max-width:850px){
  .gallery-grid.full-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:210px}
  .gallery-grid.full-gallery figure:nth-child(7n+1),
  .gallery-grid.full-gallery figure:nth-child(7n+4){
    grid-column:span 1!important;
    grid-row:span 1!important;
  }
}

/* VIB / image centering */
.gallery-grid img,
.r-thumb img,
.intro-img img,
.hero img{
  object-position:50% 50%!important;
}

/* Pollarolo hero hierarchy */
.pollarolo-title{display:flex;flex-direction:column;gap:.06em}
.pollarolo-title .main-title{font-size:1em;line-height:.9}
.pollarolo-title .since-title{font-size:.42em;letter-spacing:.02em;line-height:1.05}
.gallery-grid img,
.r-thumb img,
.intro-img img,
.hero img{object-position:50% 50%!important;}

/* HOME: center all restaurant preview images */
.r-thumb{
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.r-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 50%!important;
  display:block;
}

/* Restaurant galleries: horizontal scrolling carousel */
.gallery-head{
  gap:20px;
}
.gallery-controls{
  display:flex;
  gap:8px;
  align-items:center;
}
.gallery-arrow{
  width:42px;
  height:42px;
  border:1px solid rgba(23,42,48,.35);
  background:#FFF9E8;
  color:#172a30;
  border-radius:999px;
  cursor:pointer;
  font-size:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.gallery-arrow:hover{
  background:#172a30;
  color:#FFF9E8;
}
.gallery-grid.full-gallery{
  display:flex!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  gap:14px!important;
  padding:0 3vw 14px!important;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:thin;
}
.gallery-grid.full-gallery figure,
.gallery-grid.full-gallery figure:nth-child(n){
  flex:0 0 clamp(280px,34vw,520px)!important;
  height:420px!important;
  margin:0!important;
  overflow:hidden!important;
  scroll-snap-align:start;
  grid-column:auto!important;
  grid-row:auto!important;
}
.gallery-grid.full-gallery img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  display:block!important;
}
.gallery-grid.full-gallery::-webkit-scrollbar{
  height:8px;
}
.gallery-grid.full-gallery::-webkit-scrollbar-thumb{
  background:rgba(23,42,48,.35);
  border-radius:20px;
}
@media(max-width:850px){
  .gallery-grid.full-gallery{padding:0 14px 12px!important}
  .gallery-grid.full-gallery figure,
  .gallery-grid.full-gallery figure:nth-child(n){
    flex-basis:82vw!important;
    height:360px!important;
  }
  .gallery-arrow{width:38px;height:38px}
}

/* HOME restaurant grid: 2x2 desktop, 1 column mobile */
.restaurant-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
}
.restaurant-grid .r-card{
  border:1px solid rgba(23,42,48,.16);
  padding:24px;
  background:rgba(255,255,255,.18);
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.restaurant-grid .r-card:last-child{
  border-bottom:1px solid rgba(23,42,48,.16);
}
.restaurant-grid .r-card:hover{
  padding-left:24px;
  transform:translateY(-3px);
  background:rgba(255,255,255,.34);
  box-shadow:0 16px 36px rgba(23,42,48,.08);
}
.restaurant-grid .r-head{
  margin-bottom:16px;
}
.restaurant-grid .r-strip{
  grid-template-columns:repeat(2,1fr);
}
.restaurant-grid .r-thumb{
  aspect-ratio:4/3;
}
.restaurant-grid .r-head h3{
  font-size:clamp(26px,2.8vw,46px);
}
@media(max-width:850px){
  .restaurant-grid{
    grid-template-columns:1fr;
    gap:20px;
  }
  .restaurant-grid .r-card{
    padding:18px;
  }
  .restaurant-grid .r-card:hover{
    padding-left:18px;
  }
  .restaurant-grid .r-strip{
    grid-template-columns:repeat(2,1fr);
  }
}

/* Belsiana gallery: 15 photos packed evenly, no empty cells */
.belsiana-gallery .gallery-grid.full-gallery{
  display:grid!important;
  grid-template-rows:repeat(3,220px)!important;
  grid-auto-flow:column!important;
  grid-auto-columns:minmax(280px,31vw)!important;
  grid-template-columns:none!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  gap:12px!important;
  padding:0 3vw 14px!important;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
}
.belsiana-gallery .gallery-grid.full-gallery figure,
.belsiana-gallery .gallery-grid.full-gallery figure:nth-child(n){
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  margin:0!important;
  grid-column:auto!important;
  grid-row:auto!important;
  flex:none!important;
  scroll-snap-align:start;
  overflow:hidden!important;
}
.belsiana-gallery .gallery-grid.full-gallery img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  display:block!important;
}
@media(max-width:850px){
  .belsiana-gallery .gallery-grid.full-gallery{
    display:flex!important;
    overflow-x:auto!important;
    gap:12px!important;
    padding:0 14px 12px!important;
  }
  .belsiana-gallery .gallery-grid.full-gallery figure,
  .belsiana-gallery .gallery-grid.full-gallery figure:nth-child(n){
    flex:0 0 82vw!important;
    height:360px!important;
  }
}

/* Footer navigation between restaurants */
.restaurant-footer-nav{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.restaurant-footer-nav .or-visit{
  opacity:.55;
  margin-left:8px;
}
.restaurant-footer-nav a.restaurant-switch{
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:2px;
}
.restaurant-footer-nav a.restaurant-switch:hover{
  opacity:.65;
}
@media(max-width:850px){
  .restaurant-footer-nav{
    line-height:1.8;
  }
}

/* Header restaurant dropdown */
.restaurants-menu{
  position:relative;
}
.restaurants-trigger{
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
  padding:12px 0;
  display:flex;
  align-items:center;
  gap:6px;
}
.restaurants-trigger span{
  font-size:12px;
  transition:transform .2s ease;
}
.restaurants-menu.open .restaurants-trigger span{
  transform:rotate(180deg);
}
.restaurants-dropdown{
  position:absolute;
  top:calc(100% + 8px);
  left:-16px;
  min-width:210px;
  padding:10px;
  background:#FFF9E8;
  border:1px solid rgba(23,42,48,.15);
  box-shadow:0 16px 36px rgba(23,42,48,.12);
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.restaurants-menu.open .restaurants-dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.restaurants-dropdown a{
  display:block;
  padding:11px 10px;
  text-decoration:none;
  font-size:11px!important;
  letter-spacing:.1em!important;
  border-bottom:1px solid rgba(23,42,48,.08);
}
.restaurants-dropdown a:last-child{
  border-bottom:0;
}
.restaurants-dropdown a:hover{
  background:rgba(23,42,48,.055);
}
.r-type{
  margin:7px 0 0;
  font-family:Georgia,serif;
  font-size:15px;
  font-style:italic;
  opacity:.72;
}
@media(max-width:850px){
  .restaurants-menu{display:block}
  .restaurants-dropdown{
    left:auto;
    right:0;
    min-width:220px;
  }
}

/* VIB gallery: continuous horizontal carousel, no empty cells */
.vib-gallery .gallery-grid.full-gallery{
  display:flex!important;
  flex-wrap:nowrap!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  gap:12px!important;
  padding:0 3vw 14px!important;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
}
.vib-gallery .gallery-grid.full-gallery figure,
.vib-gallery .gallery-grid.full-gallery figure:nth-child(n){
  flex:0 0 clamp(300px,32vw,500px)!important;
  width:auto!important;
  height:410px!important;
  margin:0!important;
  grid-column:auto!important;
  grid-row:auto!important;
  scroll-snap-align:start;
  overflow:hidden!important;
}
.vib-gallery .gallery-grid.full-gallery img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  display:block!important;
}
@media(max-width:850px){
  .vib-gallery .gallery-grid.full-gallery{
    padding:0 14px 12px!important;
  }
  .vib-gallery .gallery-grid.full-gallery figure,
  .vib-gallery .gallery-grid.full-gallery figure:nth-child(n){
    flex-basis:82vw!important;
    height:360px!important;
  }
}

/* OCA gallery: continuous horizontal strip without empty cells */
.oca-gallery{
  scroll-margin-top:84px;
}
.oca-gallery .gallery-grid.full-gallery{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  gap:12px!important;
  padding:0 3vw 14px!important;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
}
.oca-gallery .gallery-grid.full-gallery figure,
.oca-gallery .gallery-grid.full-gallery figure:nth-child(n){
  flex:0 0 clamp(300px,32vw,500px)!important;
  width:auto!important;
  height:410px!important;
  margin:0!important;
  grid-column:auto!important;
  grid-row:auto!important;
  scroll-snap-align:start;
  overflow:hidden!important;
}
.oca-gallery .gallery-grid.full-gallery img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  display:block!important;
}
@media(max-width:850px){
  .oca-gallery .gallery-grid.full-gallery{
    padding:0 14px 12px!important;
  }
  .oca-gallery .gallery-grid.full-gallery figure,
  .oca-gallery .gallery-grid.full-gallery figure:nth-child(n){
    flex:0 0 82vw!important;
    height:360px!important;
  }
}

/* Pollarolo gallery: continuous horizontal strip, no visual gaps */
.pollarolo-gallery{
  scroll-margin-top:84px;
}
.pollarolo-gallery .gallery-grid.full-gallery{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  gap:12px!important;
  padding:0 3vw 14px!important;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
}
.pollarolo-gallery .gallery-grid.full-gallery figure,
.pollarolo-gallery .gallery-grid.full-gallery figure:nth-child(n){
  flex:0 0 clamp(300px,32vw,500px)!important;
  width:auto!important;
  height:410px!important;
  margin:0!important;
  grid-column:auto!important;
  grid-row:auto!important;
  scroll-snap-align:start;
  overflow:hidden!important;
}
.pollarolo-gallery .gallery-grid.full-gallery img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  display:block!important;
}
@media(max-width:850px){
  .pollarolo-gallery .gallery-grid.full-gallery{
    padding:0 14px 12px!important;
  }
  .pollarolo-gallery .gallery-grid.full-gallery figure,
  .pollarolo-gallery .gallery-grid.full-gallery figure:nth-child(n){
    flex:0 0 82vw!important;
    height:360px!important;
  }
}

/* Booking form visibility + readability */
.booking{
  background:var(--accent)!important;
  color:#FFF9E8!important;
}
.booking-panel{
  background:rgba(0,0,0,.055);
}
.booking-form label{
  color:#FFF9E8!important;
}
.booking-form input,
.booking-form select,
.booking-form textarea{
  color:#FFF9E8!important;
  border-bottom-color:rgba(255,249,232,.62)!important;
}
.booking-form input::placeholder,
.booking-form textarea::placeholder{
  color:rgba(255,249,232,.55)!important;
}
.booking-form .privacy{
  color:#FFF9E8!important;
}

/* HOME hero carousel */
.home-hero{
  position:relative;
  overflow:hidden;
  background:#172a30;
}
.home-slides{
  position:absolute;
  inset:0;
  z-index:0;
}
.home-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 50%;
  opacity:0;
  transform:scale(1.025);
  transition:opacity 1.1s ease, transform 5.8s ease;
}
.home-slide.active{
  opacity:.62;
  transform:scale(1);
}
.home-hero:after{
  z-index:1;
  pointer-events:none;
}
.home-content{
  z-index:2;
}
.home-dots{
  position:absolute;
  right:32px;
  bottom:30px;
  z-index:3;
  display:flex;
  gap:8px;
}
.home-dot{
  width:9px;
  height:9px;
  border-radius:999px;
  border:1px solid rgba(255,249,232,.8);
  background:transparent;
  padding:0;
  cursor:pointer;
}
.home-dot.active{
  background:#FFF9E8;
}

/* Footer map + restaurant links */
.footer-with-map{
  align-items:center;
}
.footer-map-wrap{
  display:flex;
  align-items:center;
  gap:14px;
}
.footer-map-thumb{
  width:112px;
  height:72px;
  object-fit:cover;
  object-position:50% 50%;
  border:1px solid rgba(23,42,48,.16);
  flex:0 0 auto;
}
.footer-restaurant-list{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}
.footer-restaurant-list .footer-label{
  opacity:.55;
  margin-right:4px;
}
.footer-restaurant-list a{
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:2px;
}
.restaurant-footer-nav{
  max-width:760px;
}
@media(max-width:850px){
  .home-dots{
    right:18px;
    bottom:18px;
  }
  .footer-map-wrap{
    align-items:flex-start;
  }
  .footer-map-thumb{
    width:88px;
    height:58px;
  }
  .footer-restaurant-list{
    gap:7px;
  }
}

/* HOME HERO v24 — one image at a time, sliding horizontally, 3:2 ratio */
.home-hero{
  position:relative!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:3 / 2!important;
  overflow:hidden!important;
  background:#172a30!important;
}
.home-slides{
  position:absolute!important;
  inset:0!important;
  display:flex!important;
  width:100%!important;
  height:100%!important;
  transform:translateX(0);
  transition:transform .9s cubic-bezier(.22,.61,.36,1);
  z-index:0!important;
}
.home-slide,
.home-slide.active{
  position:relative!important;
  inset:auto!important;
  flex:0 0 100%!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  opacity:1!important;
  transform:none!important;
  transition:none!important;
  display:block!important;
}
.home-hero:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.42),rgba(0,0,0,.08));
  z-index:1!important;
  pointer-events:none;
}
.home-content{
  position:absolute!important;
  left:6vw!important;
  bottom:7vh!important;
  z-index:2!important;
  color:#FFF9E8!important;
}
.home-dots{
  z-index:3!important;
}
@media(max-width:850px){
  .home-hero{
    aspect-ratio:3 / 2!important;
  }
  .home-content{
    left:20px!important;
    bottom:38px!important;
    right:20px!important;
  }
}

/* HOME group story with side map */
.group-story-map{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr)!important;
  gap:5vw!important;
  align-items:center!important;
  background:#C9C0AE!important;
  padding:8vw 7vw!important;
}
.group-story-copy{
  min-width:0;
}
.group-story-map .big-title{
  font-size:clamp(42px,5.2vw,82px)!important;
}
.group-story-map .group-story-copy > p:last-child{
  font-family:Georgia,serif;
  font-size:22px;
  line-height:1.5;
  max-width:760px;
}
.group-story-map-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
}
.group-story-map-wrap img{
  width:100%;
  max-width:760px;
  height:auto;
  display:block;
  object-fit:contain;
  border:1px solid rgba(23,42,48,.12);
  box-shadow:0 18px 45px rgba(23,42,48,.12);
}
@media(max-width:900px){
  .group-story-map{
    grid-template-columns:1fr!important;
    gap:38px!important;
    padding:76px 20px!important;
  }
  .group-story-map-wrap{
    justify-content:flex-start;
  }
  .group-story-map-wrap img{
    max-width:100%;
  }
}

/* ALL RESTAURANT GALLERIES — 2 rows + horizontal scrolling */
.two-row-gallery{
  scroll-margin-top:84px;
}
.two-row-gallery .gallery-grid.full-gallery{
  display:grid!important;
  grid-template-rows:repeat(2, 255px)!important;
  grid-auto-flow:column!important;
  grid-auto-columns:clamp(285px, 31vw, 470px)!important;
  grid-template-columns:none!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  gap:12px!important;
  padding:0 3vw 14px!important;
  scroll-snap-type:x proximity;
  scroll-behavior:smooth;
  align-items:stretch!important;
}
.two-row-gallery .gallery-grid.full-gallery figure,
.two-row-gallery .gallery-grid.full-gallery figure:nth-child(n){
  margin:0!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  grid-column:auto!important;
  grid-row:auto!important;
  flex:none!important;
  overflow:hidden!important;
  scroll-snap-align:start;
}
.two-row-gallery .gallery-grid.full-gallery img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  display:block!important;
}

/* Odd number of photos: use the first image as a vertical feature image,
   so the two-row grid finishes without a blank cell. */
.belsiana-gallery.two-row-gallery .gallery-grid.full-gallery figure:first-child,
.pollarolo-gallery.two-row-gallery .gallery-grid.full-gallery figure:first-child{
  grid-row:1 / span 2!important;
}

/* Cancel old gallery-specific row layouts so every venue is consistent */
.belsiana-gallery .gallery-grid.full-gallery,
.vib-gallery .gallery-grid.full-gallery,
.oca-gallery .gallery-grid.full-gallery,
.pollarolo-gallery .gallery-grid.full-gallery{
  display:grid!important;
  grid-template-rows:repeat(2, 255px)!important;
  grid-auto-flow:column!important;
  grid-auto-columns:clamp(285px, 31vw, 470px)!important;
}

/* Mobile: still two rows, but smaller cards and horizontal swipe */
@media(max-width:850px){
  .two-row-gallery .gallery-grid.full-gallery,
  .belsiana-gallery .gallery-grid.full-gallery,
  .vib-gallery .gallery-grid.full-gallery,
  .oca-gallery .gallery-grid.full-gallery,
  .pollarolo-gallery .gallery-grid.full-gallery{
    display:grid!important;
    grid-template-rows:repeat(2, 190px)!important;
    grid-auto-flow:column!important;
    grid-auto-columns:78vw!important;
    gap:10px!important;
    padding:0 14px 12px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }
  .two-row-gallery .gallery-grid.full-gallery figure,
  .two-row-gallery .gallery-grid.full-gallery figure:nth-child(n){
    height:auto!important;
    width:auto!important;
    flex:none!important;
  }
}

/* Booking copy refinement */
.booking-info .book-title{
  line-height:.92!important;
}

/* Privacy link inside booking forms */
.privacy-link{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
  font-weight:700;
}
.privacy-link:hover{
  opacity:.78;
}

/* Legal / Privacy page */
.legal-page{
  padding-top:68px;
}
.legal-hero{
  padding:10vw 7vw 6vw;
  background:#C9C0AE;
}
.legal-hero h1{
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(52px,7vw,112px);
  letter-spacing:-.045em;
  line-height:.9;
  margin:0;
}
.legal-hero > p:last-child{
  max-width:760px;
  font-family:Georgia,serif;
  font-size:22px;
  line-height:1.5;
  margin-top:30px;
}
.legal-content{
  padding:7vw;
  max-width:980px;
}
.legal-content h2{
  font-family:Georgia,serif;
  font-weight:400;
  font-size:38px;
  margin:0 0 24px;
}
.legal-content p{
  font-family:Georgia,serif;
  font-size:19px;
  line-height:1.65;
}
.legal-back{
  display:inline-block;
  margin-top:34px;
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}
@media(max-width:850px){
  .legal-hero{padding:90px 20px 50px}
  .legal-content{padding:60px 20px}
}

/* Footer legal links */
.footer a{color:inherit}
.footer a:hover{opacity:.72}

/* Dedicated booking hub */
.booking-hub{padding-top:68px;background:#FFF9E8}
.booking-hub-hero{padding:8vw 7vw 5vw;background:#C9C0AE}
.booking-hub-hero h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(54px,7vw,108px);line-height:.88;letter-spacing:-.045em;margin:0}
.booking-hub-hero>p:last-child{font-family:Georgia,serif;font-size:22px;line-height:1.5;max-width:760px;margin-top:28px}
.booking-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:18px}
.booking-hub-card{background:var(--card-accent);color:#FFF9E8;padding:34px;display:flex;flex-direction:column;gap:24px;min-width:0}
.booking-hub-card h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(46px,4.6vw,76px);line-height:.9;margin:0}
.booking-hub-top{display:flex;justify-content:space-between;gap:22px;align-items:flex-start}
.booking-hub-copy{font-family:Georgia,serif;font-size:18px;line-height:1.45;max-width:580px}
.booking-hub-venue{color:inherit;text-decoration:none;border-bottom:1px solid currentColor;white-space:nowrap;padding-bottom:3px}
.booking-spacer{visibility:hidden}
.booking-hub-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.booking-hub-thumb{aspect-ratio:1/1;overflow:hidden}
.booking-hub-thumb img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.booking-hub-form{margin-top:auto;border-top:1px solid rgba(255,249,232,.28);padding-top:22px}
.booking-hub-form .booking-form{display:flex;flex-direction:column;gap:14px}
.booking-hub-form .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.booking-hub-form .form-row:has(label:nth-child(3)){grid-template-columns:1fr 1fr .8fr}
.booking-hub-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.booking-hub-form input,.booking-hub-form textarea{width:100%;box-sizing:border-box;background:transparent;color:#FFF9E8;border:0;border-bottom:1px solid rgba(255,249,232,.65);padding:9px 0;font:inherit;outline:none}
.booking-hub-form textarea{resize:vertical}
.booking-hub-form .privacy{display:flex;flex-direction:row;align-items:flex-start;text-transform:none;letter-spacing:0;font-size:12px;line-height:1.35}
.booking-hub-form .privacy input{width:auto;margin-top:2px}
.booking-hub-form .submit{align-self:flex-start;margin-top:4px}
.gform-fallback{font-size:12px;margin:10px 0 0;opacity:.8}
.gform-fallback a{color:inherit}
@media(max-width:980px){
  .booking-hub-grid{grid-template-columns:1fr}
}
@media(max-width:650px){
  .booking-hub-hero{padding:90px 20px 50px}
  .booking-hub-grid{padding:10px;gap:10px}
  .booking-hub-card{padding:22px}
  .booking-hub-top{display:block}
  .booking-hub-venue{display:inline-block;margin-top:18px}
  .booking-hub-strip{grid-template-columns:repeat(2,1fr)}
  .booking-hub-form .form-row,.booking-hub-form .form-row:has(label:nth-child(3)){grid-template-columns:1fr}
}

/* v33 — Home restaurant cards aligned in one row */
.restaurant-index{
  padding-left:3vw!important;
  padding-right:3vw!important;
}
.restaurant-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}
.r-card{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  height:100%!important;
}
.r-head{
  min-height:156px!important;
  align-items:flex-start!important;
}
.r-head > div{
  min-width:0!important;
}
.r-card h3{
  font-size:clamp(23px,1.8vw,32px)!important;
  line-height:.98!important;
  min-height:2.95em!important;
  margin-bottom:8px!important;
}
.r-type{
  min-height:1.35em!important;
  margin:0 0 5px!important;
}
.r-type-spacer{
  visibility:hidden!important;
}
.r-address{
  margin-top:0!important;
}
.r-strip{
  margin-top:auto!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
  height:128px!important;
}
.r-thumb{
  width:100%!important;
  height:128px!important;
  overflow:hidden!important;
}
.r-thumb img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  display:block!important;
}

/* v33 — Booking page mirrors the four-column restaurant layout */
.booking-hub-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}
.booking-hub-card{
  padding:24px!important;
  min-width:0!important;
  height:auto!important;
}
.booking-hub-top{
  display:block!important;
  min-height:290px!important;
}
.booking-hub-card h2{
  font-size:clamp(38px,3.2vw,58px)!important;
  min-height:1em!important;
}
.booking-hub-card .r-type{
  min-height:1.4em!important;
}
.booking-hub-copy{
  min-height:7.2em!important;
  font-size:16px!important;
  line-height:1.45!important;
}
.booking-hub-venue{
  display:inline-block!important;
  margin-top:14px!important;
  font-size:11px!important;
}
.booking-hub-strip{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
  height:112px!important;
}
.booking-hub-thumb{
  aspect-ratio:auto!important;
  height:112px!important;
}
.booking-hub-thumb img{
  height:100%!important;
}
.booking-hub-form{
  margin-top:0!important;
}
.booking-hub-form .form-row{
  grid-template-columns:1fr!important;
  gap:10px!important;
}
.booking-hub-form .form-row:has(label:nth-child(3)){
  grid-template-columns:1fr!important;
}
.booking-hub-form .booking-form{
  gap:10px!important;
}
.booking-hub-form label{
  font-size:11px!important;
}
.booking-hub-form .submit{
  width:100%!important;
}

/* Responsive: four across on large desktop, two across on tablet, one on mobile */
@media(max-width:1180px){
  .restaurant-grid,
  .booking-hub-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .r-head{
    min-height:138px!important;
  }
  .booking-hub-top{
    min-height:245px!important;
  }
  .booking-hub-copy{
    min-height:5.8em!important;
  }
}
@media(max-width:650px){
  .restaurant-grid,
  .booking-hub-grid{
    grid-template-columns:1fr!important;
  }
  .r-head,
  .booking-hub-top{
    min-height:0!important;
  }
  .r-card h3,
  .booking-hub-copy{
    min-height:0!important;
  }
  .r-strip{
    height:116px!important;
  }
  .r-thumb{
    height:116px!important;
  }
  .booking-hub-strip,
  .booking-hub-thumb{
    height:104px!important;
  }
}

/* v35 — Prenotazioni hero con mappa a destra */
.booking-hub-hero-map{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr)!important;
  gap:5vw!important;
  align-items:center!important;
  padding:7vw!important;
}
.booking-hub-hero-map .booking-hub-hero-copy{
  min-width:0;
}
.booking-hub-hero-map h1{
  font-size:clamp(48px,5.8vw,92px)!important;
  line-height:.88!important;
  margin:0!important;
}
.booking-hub-hero-map-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
}
.booking-hub-hero-map-wrap img{
  width:100%;
  max-width:760px;
  height:auto;
  display:block;
  object-fit:contain;
  box-shadow:0 18px 45px rgba(23,42,48,.12);
  border:1px solid rgba(23,42,48,.12);
}

/* Contatti diretti nella colonna sinistra dei form */
.booking-info{
  align-self:stretch;
}
.booking-contact{
  margin-top:34px;
  padding-top:20px;
  border-top:1px solid rgba(255,249,232,.35);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
}
.booking-contact-label{
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  opacity:.7;
  margin-bottom:4px;
}
.booking-contact a{
  color:inherit;
  text-decoration:none;
  font-family:Georgia,serif;
  font-size:17px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.booking-contact a:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}

@media(max-width:900px){
  .booking-hub-hero-map{
    grid-template-columns:1fr!important;
    gap:34px!important;
    padding:88px 20px 54px!important;
  }
  .booking-hub-hero-map-wrap{
    justify-content:flex-start;
  }
  .booking-hub-hero-map-wrap img{
    max-width:100%;
  }
}

/* v37 — Home cards without subtitle row, galleries still aligned */
#ristoranti .r-head{
  min-height:142px!important;
}
#ristoranti .r-card h3{
  min-height:2.95em!important;
  margin-bottom:10px!important;
}
#ristoranti .r-address{
  min-height:1.35em!important;
  margin-top:0!important;
}
#ristoranti .r-strip{
  margin-top:auto!important;
}
@media(max-width:1180px){
  #ristoranti .r-head{
    min-height:128px!important;
  }
}
@media(max-width:650px){
  #ristoranti .r-head{
    min-height:0!important;
  }
  #ristoranti .r-card h3,
  #ristoranti .r-address{
    min-height:0!important;
  }
}
.spa-page{min-height:100vh}
/* v40 — Booking hub: direct CTA to each restaurant booking section */
.booking-hub-book-wrap{
  margin-top:0;
  border-top:1px solid rgba(255,249,232,.28);
  padding-top:20px;
}
.booking-hub-book{
  display:inline-block;
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:5px;
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
}
.booking-hub-book:hover{opacity:.72}
.booking{scroll-margin-top:68px}
@media(max-width:650px){
  .booking-hub-book-wrap{padding-top:18px}
  .booking-hub-book{font-size:11px}
}

/* v41 — booking CTA refresh + more dynamic navigation */
@keyframes pageFadeUp{from{opacity:0}to{opacity:1}}
.spa-page.page-enter{animation:pageFadeUp .34s ease both}
.site-head nav a,
.restaurants-dropdown a,
.footer a,
.r-card,
.booking-hub-primary,
.booking-hub-discover,
.gallery-controls button,
.restaurant-switch,
.legal-back{transition:opacity .24s ease, transform .24s ease, background .24s ease, box-shadow .24s ease, color .24s ease}
.site-head nav a:hover,
.restaurants-dropdown a:hover,
.footer a:hover,
.restaurant-switch:hover,
.legal-back:hover{opacity:.78}
[data-page].is-current,
[data-home-anchor].is-current,
.brand.is-current{font-weight:700;opacity:1}
.booking-hub-top{display:flex!important;flex-direction:column!important;justify-content:space-between!important;gap:18px!important;min-height:290px!important}
.booking-hub-top>div:first-child{display:block}
.booking-hub-top-actions{margin-top:4px}
.booking-hub-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  color:#FFF9E8;text-decoration:none;text-transform:uppercase;
  letter-spacing:.12em;font-size:12px;font-weight:700;
  padding:12px 18px;border-radius:999px;
  border:1px solid rgba(255,249,232,.42);
  background:rgba(255,249,232,.12);
  box-shadow:0 10px 24px rgba(0,0,0,.12);
  backdrop-filter:blur(4px)
}
.booking-hub-primary:hover{opacity:1!important;transform:translateY(-1px);background:rgba(255,249,232,.18);box-shadow:0 14px 30px rgba(0,0,0,.16)}
.booking-hub-strip{overflow:hidden}
.booking-hub-thumb img{object-position:50% 50%!important;transition:transform .45s ease, object-position .28s ease}
.booking-hub-card:hover .booking-hub-thumb img{transform:scale(1.035)}
.booking-hub-card.pollarolo-card .booking-hub-thumb:first-child img{object-position:50% 62%!important}
.booking-hub-bottom{
  margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,249,232,.28);
  display:flex;align-items:center;justify-content:flex-start;gap:12px
}
.booking-hub-discover{
  display:inline-block;color:inherit;text-decoration:none;border-bottom:1px solid currentColor;
  padding-bottom:5px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700
}
.booking-hub-discover:hover{opacity:1!important;transform:translateX(2px)}
@media(max-width:650px){
  .booking-hub-primary{font-size:11px;padding:11px 16px}
  .booking-hub-bottom{margin-top:16px;padding-top:16px}
}



/* v43 — Mobile-first client review polish */
:root{--paper:#FFF9E8;--ink:#172a30;--gold:#D9A928}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.site-head{height:64px;padding-inline:clamp(14px,3vw,30px)}
.brand{white-space:nowrap}.menu-book{background:#172a30;color:#FFF9E8;border-color:#172a30;font-weight:700}
.home-content>p:not(.eyebrow){max-width:580px;line-height:1.45;margin-bottom:0}
.home-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:26px}
.home-primary,.home-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:13px 18px;border-radius:999px;text-decoration:none;font-size:10px;letter-spacing:.14em;font-weight:800;text-transform:uppercase}
.home-primary{background:#FFF9E8;color:#172a30;border:1px solid #FFF9E8}
.home-secondary{color:#FFF9E8;border:1px solid rgba(255,249,232,.65);background:rgba(0,0,0,.12);backdrop-filter:blur(5px)}
.restaurant-grid .r-card{position:relative;overflow:hidden}
.restaurant-grid .r-card::after{content:'SCOPRI  ↗';margin-top:16px;font-size:10px;letter-spacing:.14em;font-weight:800;text-transform:uppercase;opacity:.75}
.hero:after{background:linear-gradient(180deg,rgba(0,0,0,.08) 20%,rgba(0,0,0,.68) 100%)}
.hero-link{min-height:44px;display:inline-flex;align-items:center;padding:11px 16px;border:1px solid rgba(255,249,232,.65);border-radius:999px;background:rgba(0,0,0,.12);backdrop-filter:blur(5px);font-weight:700;border-bottom:1px solid rgba(255,249,232,.65)}
.intro p.body{max-width:680px}
.gallery-arrow{touch-action:manipulation}
.submit{min-height:52px;font-size:11px}
.booking-form input,.booking-form select,.booking-form textarea{min-height:46px}
.booking-contact a{padding-block:3px}
.fallback{margin-top:8px;opacity:.78}
.footer{line-height:1.6}
.mobile-sticky-book{display:none}
.booking-hub-primary{min-height:46px}
.booking-hub-card{box-shadow:0 10px 30px rgba(23,42,48,.06)}

@media(max-width:850px){
  body{padding-bottom:0}
  .site-head{height:60px;padding:0 12px;gap:8px}
  .site-head nav{gap:9px;min-width:0}
  .brand{font-size:10px;letter-spacing:.08em;max-width:92px;overflow:hidden;text-overflow:ellipsis}
  .restaurants-trigger{font-size:9px;letter-spacing:.08em;padding:11px 0}
  .menu-book{font-size:9px!important;letter-spacing:.1em!important;padding:9px 12px;min-height:38px;display:inline-flex;align-items:center}
  .restaurants-dropdown{top:calc(100% + 5px);right:-72px;min-width:220px;border-radius:12px;padding:8px}
  .restaurants-dropdown a{font-size:10px!important;padding:12px 10px}

  /* More immersive, legible home on phone */
  .home-hero{height:76svh!important;min-height:560px!important;max-height:720px!important;aspect-ratio:auto!important}
  .home-content{left:20px!important;right:20px!important;bottom:58px!important}
  .home-content .eyebrow{margin-bottom:14px}
  .home-title{font-size:clamp(48px,14vw,66px)!important;line-height:.86!important;letter-spacing:-.055em!important}
  .home-content>p:not(.eyebrow){font-size:17px!important;line-height:1.4!important;max-width:330px;margin-top:18px}
  .home-actions{margin-top:20px;gap:8px}
  .home-primary,.home-secondary{min-height:43px;padding:11px 14px;font-size:9px}
  .home-dots{bottom:18px!important;right:18px!important}

  /* Home restaurant choice becomes easier to scan */
  .restaurant-index{padding:64px 14px!important}
  .restaurant-index>h2{font-size:clamp(38px,11vw,50px)!important;line-height:.95;margin-bottom:34px}
  .restaurant-grid{gap:14px!important}
  .restaurant-grid .r-card{padding:18px!important;background:rgba(255,255,255,.3)!important;border-color:rgba(23,42,48,.13)!important;box-shadow:0 10px 28px rgba(23,42,48,.045)}
  .restaurant-grid .r-head{margin-bottom:14px!important}
  .restaurant-grid .r-card h3{font-size:29px!important;line-height:.94!important}
  .restaurant-grid .r-address{font-size:10px!important}
  .restaurant-grid .r-strip{height:108px!important;gap:5px!important;padding:5px!important}
  .restaurant-grid .r-thumb{height:108px!important}

  .group-story-map{padding:64px 20px!important;gap:28px!important}
  .group-story-map .big-title{font-size:clamp(40px,11vw,52px)!important;line-height:.94!important}
  .group-story-map .group-story-copy>p:last-child{font-size:19px!important;line-height:1.48!important}
  .group-story-map-wrap img{box-shadow:0 12px 30px rgba(23,42,48,.1)}

  /* Restaurant pages */
  .hero{height:88svh!important;min-height:620px!important;max-height:780px!important}
  .hero-copy{left:20px!important;right:20px!important;bottom:62px!important}
  .hero h1{font-size:clamp(46px,13vw,64px)!important;line-height:.88!important}
  .hero .sub{font-size:18px!important;line-height:1.42!important;margin-top:20px!important;max-width:340px}
  .hero-link{margin-top:22px!important;font-size:9px!important;letter-spacing:.12em!important}
  .intro{padding:64px 20px!important;gap:38px!important}
  .intro .big-title{font-size:clamp(40px,11vw,52px)!important;line-height:.94!important}
  .intro p.body{font-size:19px!important;line-height:1.5!important;margin-top:22px!important}
  .intro-img{aspect-ratio:4/5!important;max-height:620px}
  .gallery{padding:60px 0 66px!important}
  .gallery-head{padding:0 20px 24px!important;align-items:center!important}
  .gallery h2{font-size:clamp(38px,10vw,48px)!important;line-height:.94!important}
  .gallery-controls{gap:6px}.gallery-arrow{width:40px;height:40px}
  .gallery-grid.full-gallery,.belsiana-gallery .gallery-grid.full-gallery,.vib-gallery .gallery-grid.full-gallery,.oca-gallery .gallery-grid.full-gallery,.pollarolo-gallery .gallery-grid.full-gallery{padding-left:20px!important;padding-right:20px!important}
  .gallery-grid.full-gallery figure,.gallery-grid.full-gallery figure:nth-child(n),.belsiana-gallery .gallery-grid.full-gallery figure,.belsiana-gallery .gallery-grid.full-gallery figure:nth-child(n),.vib-gallery .gallery-grid.full-gallery figure,.vib-gallery .gallery-grid.full-gallery figure:nth-child(n),.oca-gallery .gallery-grid.full-gallery figure,.oca-gallery .gallery-grid.full-gallery figure:nth-child(n),.pollarolo-gallery .gallery-grid.full-gallery figure,.pollarolo-gallery .gallery-grid.full-gallery figure:nth-child(n){flex-basis:84vw!important;height:350px!important;border-radius:2px}

  .booking{min-height:0!important}
  .booking-info,.booking-panel{padding:52px 20px!important}
  .booking-info{border-right:0!important;border-bottom:1px solid rgba(255,255,255,.23)}
  .book-title{font-size:clamp(46px,13vw,62px)!important}
  .booking-info p{font-size:18px!important}
  .booking-contact{margin-top:26px}
  .booking-panel{padding-bottom:82px!important}
  .booking-form{gap:18px!important}
  .submit{width:100%;align-items:center}

  /* Conversion aid: one-tap booking remains visible on restaurant pages */
  .mobile-sticky-book{display:flex;position:fixed;z-index:80;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));min-height:50px;align-items:center;justify-content:center;text-decoration:none;border-radius:999px;background:#D9A928;color:#172a30;font-size:10px;letter-spacing:.13em;font-weight:900;box-shadow:0 10px 28px rgba(0,0,0,.2);text-transform:uppercase}
  #page-belsiana[style*='display: block']~*,#page-vib[style*='display: block']~*,#page-oca[style*='display: block']~*,#page-pollarolo[style*='display: block']~*{ }

  /* Booking hub */
  .booking-hub{padding-top:60px}
  .booking-hub-hero-map{padding:52px 20px 38px!important;gap:24px!important}
  .booking-hub-hero-map h1{font-size:clamp(42px,11.5vw,54px)!important;line-height:.91!important}
  .booking-hub-hero-map-wrap img{box-shadow:0 10px 28px rgba(23,42,48,.1)}
  .booking-hub-grid{padding:10px!important;gap:10px!important}
  .booking-hub-card{padding:20px!important;gap:18px!important}
  .booking-hub-top{min-height:0!important;gap:16px!important}
  .booking-hub-card h2{font-size:42px!important;line-height:.93!important}
  .booking-hub-copy{min-height:0!important;font-size:17px!important;margin-bottom:0}
  .booking-hub-top-actions{margin-top:18px!important}
  .booking-hub-primary{width:100%;font-size:10px!important;min-height:48px}
  .booking-hub-strip,.booking-hub-thumb{height:96px!important}
  .booking-hub-bottom{margin-top:0!important}

  .footer{padding:26px 20px 88px!important;font-size:9px!important;gap:14px!important}
  #page-index .footer,#page-prenotazioni .footer,#page-privacy .footer,#page-cookie-policy .footer{padding-bottom:28px!important}
}
@media(max-width:380px){
  .brand{max-width:76px}.site-head nav{gap:6px}.menu-book{padding:8px 10px}.restaurants-trigger{font-size:8px}
  .home-title{font-size:46px!important}.hero h1{font-size:44px!important}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.home-slides{transition:none!important}}




/* v44 — Luxury / premium visual system + robust mobile navigation */
:root{
  --paper:#FFF9E8;
  --ink:#172a30;
  --gold:#D9A928;
  --hairline:rgba(23,42,48,.16);
  --serif:"Iowan Old Style","Baskerville","Times New Roman",Georgia,serif;
  --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}
html{background:var(--paper)}
body{font-family:var(--sans);background:var(--paper);color:var(--ink)}
body.menu-open{overflow:hidden}
.hero h1,.big-title,.book-title,.home-title,.restaurant-index>h2,.r-head h3,.gallery h2,.food-band h2,.group-story p,.intro p.body,.booking-info p,.success{font-family:var(--serif)}

/* Header: minimal, editorial, transparent over photography */
.site-head{
  height:76px;
  padding-inline:clamp(22px,4vw,64px);
  background:rgba(255,249,232,.88);
  border-bottom:1px solid rgba(23,42,48,.09);
  backdrop-filter:blur(18px) saturate(115%);
  -webkit-backdrop-filter:blur(18px) saturate(115%);
  transition:height .35s var(--ease),background .4s ease,color .4s ease,border-color .4s ease,box-shadow .4s ease;
}
.site-head.hero-mode{
  color:#FFF9E8;
  background:linear-gradient(180deg,rgba(12,18,20,.42),rgba(12,18,20,.05));
  border-bottom-color:rgba(255,255,255,.12);
  box-shadow:none;
  backdrop-filter:none;
}
.site-head:not(.hero-mode){box-shadow:0 12px 34px rgba(23,42,48,.045)}
.brand{font-size:10px;letter-spacing:.19em;font-weight:700}
.site-head nav{gap:clamp(16px,2.2vw,34px)}
.site-head nav>a,.restaurants-trigger{font-size:9px;letter-spacing:.18em;font-weight:650}
.menu-book{
  padding:11px 18px;
  border-radius:999px;
  background:var(--ink);
  color:var(--paper);
  border:1px solid var(--ink);
  transition:transform .25s var(--ease),background .25s ease,color .25s ease,border-color .25s ease!important;
}
.hero-mode .menu-book{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.55);backdrop-filter:blur(7px)}
.menu-book:hover{opacity:1!important;transform:translateY(-1px)}

/* Desktop restaurant menu */
.restaurants-dropdown{
  top:calc(100% + 14px);
  left:-22px;
  min-width:250px;
  padding:7px;
  background:rgba(255,249,232,.97);
  border:1px solid rgba(23,42,48,.11);
  box-shadow:0 28px 70px rgba(14,27,31,.17);
  border-radius:2px;
  transform:translateY(-10px) scale(.985);
  transform-origin:top left;
  transition:opacity .25s ease,transform .32s var(--ease),visibility .25s ease;
}
.restaurants-menu.open .restaurants-dropdown{transform:translateY(0) scale(1)}
.restaurants-dropdown a{
  color:var(--ink)!important;
  display:block!important;
  padding:14px 15px;
  font-family:var(--serif);
  font-size:15px!important;
  letter-spacing:.015em!important;
  text-transform:none;
  border-bottom:1px solid rgba(23,42,48,.08);
  transition:background .2s ease,padding-left .25s var(--ease)!important;
}
.restaurants-dropdown a:hover{opacity:1!important;background:rgba(23,42,48,.045);padding-left:20px}

/* Hero: cinematic rather than template-like */
.home-hero,.hero{background:#111a1d}
.home-hero{height:100svh!important;min-height:680px!important;max-height:none!important;aspect-ratio:auto!important}
.home-slides{transform:none!important;display:block!important}
.home-slide,.home-slide.active{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  opacity:0!important;transform:scale(1.035)!important;
  transition:opacity 1.2s ease,transform 7s ease!important;
  will-change:opacity,transform;
}
.home-slide.active{opacity:.68!important;transform:scale(1)!important;z-index:1}
.home-hero:after{background:linear-gradient(90deg,rgba(6,12,14,.62) 0%,rgba(6,12,14,.26) 50%,rgba(6,12,14,.18) 100%)!important;z-index:2!important}
.home-content{z-index:3!important;left:clamp(28px,6.5vw,110px)!important;bottom:clamp(62px,9vh,120px)!important;max-width:1050px}
.home-content .eyebrow,.hero-copy .eyebrow{letter-spacing:.26em;font-weight:650;opacity:.9}
.home-title{font-size:clamp(66px,8vw,132px)!important;line-height:.82!important;letter-spacing:-.052em!important;max-width:920px}
.home-content>p:not(.eyebrow){font-family:var(--serif);font-size:clamp(19px,1.5vw,25px)!important;line-height:1.48!important;max-width:610px!important;margin-top:30px!important;color:rgba(255,249,232,.92)}
.home-actions{margin-top:34px;gap:12px}
.home-primary,.home-secondary{min-height:50px;padding:14px 22px;font-size:9px;letter-spacing:.18em;transition:transform .28s var(--ease),background .28s ease,color .28s ease!important}
.home-primary:hover,.home-secondary:hover{transform:translateY(-2px);opacity:1!important}
.home-dots{z-index:4!important;right:clamp(24px,4vw,64px)!important;bottom:clamp(24px,4vw,55px)!important;gap:10px}
.home-dot{width:28px;height:2px;border:0;border-radius:0;background:rgba(255,255,255,.35);transition:width .3s var(--ease),background .3s ease}
.home-dot.active{width:48px;background:#fff}

.hero{height:100svh;min-height:720px}
.hero img{transform:scale(1.015);transition:transform 7s var(--ease)}
.spa-page.page-enter .hero img{transform:scale(1)}
.hero:after{background:linear-gradient(180deg,rgba(0,0,0,.08) 15%,rgba(5,10,12,.74) 100%)!important}
.hero-copy{left:clamp(28px,6.5vw,110px);bottom:clamp(62px,9vh,115px);max-width:920px}
.hero h1{font-size:clamp(62px,7.4vw,122px);line-height:.82;letter-spacing:-.055em}
.hero .sub{font-family:var(--serif);font-size:clamp(19px,1.45vw,24px);max-width:610px;color:rgba(255,249,232,.92)}
.hero-link{border-radius:0;border:0;border-bottom:1px solid rgba(255,255,255,.65);padding:9px 0;background:transparent;backdrop-filter:none;letter-spacing:.18em;transition:padding-left .25s var(--ease),opacity .25s ease!important}
.hero-link:hover{padding-left:8px;opacity:.8}

/* Editorial spacing */
.restaurant-index{padding:clamp(90px,10vw,170px) clamp(24px,6vw,100px)}
.restaurant-index>.eyebrow{margin-bottom:22px}
.restaurant-index>h2{font-size:clamp(54px,5.8vw,92px);max-width:920px;line-height:.92;margin-bottom:clamp(50px,6vw,90px)}
.restaurant-grid{gap:clamp(20px,2.6vw,42px)}
.restaurant-grid .r-card{
  padding:0!important;
  border:0!important;
  border-top:1px solid var(--hairline)!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible;
}
.restaurant-grid .r-card:hover{transform:none;background:transparent;box-shadow:none}
.restaurant-grid .r-head{padding:28px 2px 22px;margin:0!important;min-height:154px!important}
.restaurant-grid .r-head h3{font-size:clamp(36px,3.4vw,56px);line-height:.92}
.restaurant-grid .r-address{letter-spacing:.13em;font-size:9px}
.restaurant-grid .r-strip{
  margin:0!important;padding:0!important;height:clamp(310px,30vw,460px)!important;
  display:grid!important;grid-template-columns:1.42fr .78fr!important;grid-template-rows:1fr 1fr!important;gap:7px!important;background:transparent!important;
}
.restaurant-grid .r-thumb{height:auto!important;aspect-ratio:auto!important;overflow:hidden}
.restaurant-grid .r-thumb:first-child{grid-row:1 / span 2}
.restaurant-grid .r-thumb:nth-child(4){display:none}
.restaurant-grid .r-thumb img{transition:transform .9s var(--ease),filter .5s ease!important}
.restaurant-grid .r-card:hover .r-thumb img{transform:scale(1.025)}
.restaurant-grid .r-card::after{display:inline-block;margin:22px 0 8px;padding-bottom:5px;border-bottom:1px solid currentColor;opacity:.8;transition:transform .28s var(--ease)}
.restaurant-grid .r-card:hover::after{transform:translateX(6px)}

.group-story-map{padding:clamp(90px,9vw,150px) clamp(26px,7vw,110px)!important;gap:clamp(50px,7vw,120px)!important;background:#C9C0AE!important}
.group-story-map .big-title{font-size:clamp(54px,5.5vw,88px)!important;line-height:.9}
.group-story-map .group-story-copy>p:last-child{font-family:var(--serif);font-size:clamp(20px,1.6vw,25px);line-height:1.6;max-width:680px}
.group-story-map-wrap{overflow:hidden}
.group-story-map-wrap img{box-shadow:none!important;transition:transform 1.4s var(--ease)}
.group-story-map:hover .group-story-map-wrap img{transform:scale(1.015)}

.intro{padding:clamp(95px,10vw,170px) clamp(28px,7vw,120px);gap:clamp(50px,8vw,130px)}
.intro .big-title{font-size:clamp(54px,5.3vw,88px);line-height:.9}
.intro p.body{font-family:var(--serif);font-size:clamp(20px,1.55vw,25px);line-height:1.62}
.intro-img{box-shadow:0 32px 80px rgba(20,34,39,.12)}
.intro-img img{transition:transform 1.2s var(--ease)}
.intro-img:hover img{transform:scale(1.018)}
.food-band .copy{padding:clamp(80px,8vw,140px) clamp(30px,7vw,110px)}
.food-band h2{font-size:clamp(52px,5vw,82px);line-height:.9}
.food-band p{font-family:var(--serif);font-size:clamp(19px,1.4vw,23px);line-height:1.62}
.food-band figure{min-height:760px;overflow:hidden}
.food-band img{transition:transform 1.2s var(--ease)}
.food-band:hover img{transform:scale(1.018)}

.gallery{padding:clamp(90px,9vw,150px) 0}
.gallery-head{padding:0 clamp(24px,6vw,95px) 42px}
.gallery h2{font-size:clamp(52px,5vw,82px);line-height:.9}
.gallery-count{letter-spacing:.2em}
.gallery-arrow{width:48px;height:48px;background:transparent;border-color:rgba(23,42,48,.26);transition:background .25s ease,color .25s ease,transform .25s var(--ease)}
.gallery-arrow:hover{transform:translateY(-2px);background:var(--ink);color:var(--paper)}
.gallery-grid.full-gallery,.belsiana-gallery .gallery-grid.full-gallery,.vib-gallery .gallery-grid.full-gallery,.oca-gallery .gallery-grid.full-gallery,.pollarolo-gallery .gallery-grid.full-gallery{padding-left:clamp(24px,6vw,95px)!important;padding-right:clamp(24px,6vw,95px)!important;gap:18px!important;scrollbar-width:none}
.gallery-grid.full-gallery::-webkit-scrollbar{display:none}
.gallery-grid.full-gallery figure,.gallery-grid.full-gallery figure:nth-child(n){height:clamp(460px,43vw,650px)!important;flex-basis:clamp(340px,38vw,590px)!important}
.gallery-grid.full-gallery img{transition:transform .9s var(--ease)!important}
.gallery-grid.full-gallery figure:hover img{transform:scale(1.02)!important}

.booking{min-height:820px}
.booking-info{padding:clamp(80px,8vw,130px) clamp(30px,6vw,90px)}
.booking-panel{padding:clamp(80px,8vw,130px) clamp(30px,7vw,110px)}
.book-title{font-size:clamp(56px,5.7vw,92px);line-height:.88}
.booking-info p{font-family:var(--serif);font-size:clamp(19px,1.4vw,23px)}
.booking-form input,.booking-form select,.booking-form textarea{font-family:var(--serif);font-size:17px;transition:border-color .25s ease}
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-bottom-color:#fff!important}
.submit{border-radius:0;background:var(--gold);padding:20px 24px;transition:transform .28s var(--ease),filter .25s ease}
.submit:hover{transform:translateY(-2px);filter:brightness(1.04)}
.footer{padding:45px clamp(20px,5vw,80px);border-top:1px solid rgba(23,42,48,.1)}

/* Page transitions + scroll reveal */
@keyframes luxuryPageIn{from{opacity:0}to{opacity:1}}
.spa-page.page-enter{animation:luxuryPageIn .55s ease both}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .9s var(--ease)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal-delay{transition-delay:.12s}

/* Mobile: actual full-screen menu + simplified luxury UX */
@media(max-width:850px){
  .site-head{height:64px;padding:0 14px 0 16px}
  .site-head nav{gap:10px}
  .brand{font-size:9px;letter-spacing:.13em;max-width:none;overflow:visible}
  .site-head nav>a:not(.menu-book){display:none!important}
  .restaurants-menu{position:static}
  .restaurants-trigger{display:flex!important;font-size:8px;letter-spacing:.13em;padding:12px 4px}
  .menu-book{font-size:8px!important;letter-spacing:.13em!important;min-height:38px;padding:9px 12px}
  .restaurants-dropdown{
    display:flex!important;
    position:fixed!important;
    top:64px!important;left:0!important;right:0!important;bottom:0!important;
    width:100vw!important;min-width:0!important;height:calc(100dvh - 64px)!important;
    padding:36px 20px max(34px,env(safe-area-inset-bottom))!important;
    background:rgba(255,249,232,.985)!important;
    border:0!important;border-top:1px solid rgba(23,42,48,.08)!important;
    box-shadow:none!important;border-radius:0!important;
    flex-direction:column;justify-content:center;
    opacity:0;visibility:hidden;pointer-events:none;
    transform:translateY(-12px)!important;
    transition:opacity .28s ease,transform .38s var(--ease),visibility .28s ease!important;
    z-index:200;
  }
  .restaurants-dropdown::before{
    content:'SCEGLI IL RISTORANTE';display:block;margin:0 0 26px 4px;
    color:rgba(23,42,48,.55);font-family:var(--sans);font-size:9px;letter-spacing:.22em;font-weight:700;
  }
  .restaurants-menu.open .restaurants-dropdown{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)!important}
  .restaurants-dropdown a{
    display:block!important;
    padding:18px 4px!important;
    color:var(--ink)!important;
    font-family:var(--serif)!important;
    font-size:clamp(28px,9vw,40px)!important;
    line-height:1!important;letter-spacing:-.025em!important;
    border-bottom:1px solid rgba(23,42,48,.12)!important;
  }
  .restaurants-dropdown a:hover{padding-left:4px!important;background:transparent!important}
  .restaurants-trigger span{font-size:11px}

  .home-hero{height:88svh!important;min-height:620px!important;max-height:none!important}
  .home-content{left:20px!important;right:20px!important;bottom:70px!important}
  .home-title{font-size:clamp(52px,15vw,72px)!important;line-height:.83!important;max-width:520px}
  .home-content>p:not(.eyebrow){font-size:18px!important;line-height:1.47!important;max-width:340px!important;margin-top:22px!important}
  .home-actions{margin-top:24px;gap:9px}
  .home-primary,.home-secondary{min-height:45px;padding:12px 15px;font-size:8px;letter-spacing:.14em}
  .home-dots{bottom:24px!important;right:20px!important}.home-dot{width:20px}.home-dot.active{width:34px}

  .restaurant-index{padding:78px 16px!important}
  .restaurant-index>h2{font-size:clamp(42px,12vw,56px)!important;line-height:.91!important;margin-bottom:42px}
  .restaurant-grid{grid-template-columns:1fr!important;gap:42px!important}
  .restaurant-grid .r-head{padding:20px 0 16px!important;min-height:0!important}
  .restaurant-grid .r-card h3{font-size:34px!important;line-height:.92!important}
  .restaurant-grid .r-strip{height:280px!important;grid-template-columns:1.35fr .8fr!important;gap:5px!important}
  .restaurant-grid .r-card::after{margin-top:17px}

  .group-story-map{grid-template-columns:1fr!important;padding:78px 20px!important;gap:42px!important}
  .group-story-map .big-title{font-size:clamp(44px,12vw,58px)!important;line-height:.91!important}
  .group-story-map .group-story-copy>p:last-child{font-size:19px!important;line-height:1.56!important}

  .hero{height:88svh!important;min-height:650px!important;max-height:none!important}
  .hero-copy{left:20px!important;right:20px!important;bottom:72px!important}
  .hero h1{font-size:clamp(52px,14vw,72px)!important;line-height:.84!important}
  .hero .sub{font-size:18px!important;line-height:1.46!important;max-width:350px}
  .hero-link{font-size:8px!important;letter-spacing:.15em!important}

  .intro{padding:78px 20px!important;gap:40px!important}
  .intro .big-title{font-size:clamp(44px,12vw,58px)!important;line-height:.91!important}
  .intro p.body{font-size:19px!important;line-height:1.58!important}
  .intro-img{box-shadow:0 20px 50px rgba(20,34,39,.11)}
  .food-band .copy{padding:72px 20px!important}.food-band h2{font-size:clamp(44px,12vw,58px)!important}.food-band p{font-size:18px!important}
  .food-band figure{min-height:520px!important}

  .gallery{padding:76px 0!important}.gallery-head{padding:0 20px 26px!important}.gallery h2{font-size:clamp(43px,12vw,56px)!important}
  .gallery-grid.full-gallery,.belsiana-gallery .gallery-grid.full-gallery,.vib-gallery .gallery-grid.full-gallery,.oca-gallery .gallery-grid.full-gallery,.pollarolo-gallery .gallery-grid.full-gallery{padding-left:20px!important;padding-right:20px!important;gap:10px!important}
  .gallery-grid.full-gallery figure,.gallery-grid.full-gallery figure:nth-child(n){height:430px!important;flex-basis:84vw!important}
  .gallery-controls{display:flex!important}.gallery-arrow{width:40px;height:40px}

  .booking-info,.booking-panel{padding:68px 20px!important}.book-title{font-size:clamp(48px,13vw,64px)!important}.booking-info p{font-size:18px!important}
  .submit{min-height:54px}
  .footer{padding:34px 20px 95px!important}
  .mobile-sticky-book{display:flex!important;left:14px;right:14px;bottom:max(12px,env(safe-area-inset-bottom));min-height:52px;border-radius:0;background:var(--gold);box-shadow:0 18px 45px rgba(0,0,0,.23);letter-spacing:.16em}
}
@media(max-width:390px){
  .brand{font-size:8px}.site-head nav{gap:7px}.menu-book{padding:8px 10px}.restaurants-trigger{font-size:7px}
  .home-title{font-size:50px!important}.home-content>p:not(.eyebrow){font-size:16px!important}
}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important}.home-slide,.home-slide.active{transition:none!important}}



/* v44 cascade fixes: override legacy !important layout rules */
.restaurant-index{padding-left:clamp(24px,6vw,100px)!important;padding-right:clamp(24px,6vw,100px)!important}
.restaurant-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:clamp(34px,4vw,64px)!important}
.restaurant-grid .r-head h3{font-size:clamp(38px,3.8vw,62px)!important;min-height:0!important}
.restaurant-grid .r-address{min-height:0!important}

/* Luxury booking selector: large 2x2 cards instead of dense four-column grid */
.booking-hub{padding-top:76px}
.booking-hub-hero-map{padding:clamp(90px,8vw,145px) clamp(28px,7vw,110px)!important;gap:clamp(50px,7vw,120px)!important;background:#C9C0AE!important}
.booking-hub-hero-map h1{font-family:var(--serif)!important;font-size:clamp(58px,6.5vw,102px)!important;line-height:.86!important;letter-spacing:-.055em!important}
.booking-hub-hero-map .booking-hub-hero-copy>p:last-child{font-family:var(--serif);font-size:clamp(20px,1.55vw,25px);line-height:1.6;max-width:680px}
.booking-hub-hero-map-wrap{overflow:hidden}
.booking-hub-hero-map-wrap img{box-shadow:0 30px 75px rgba(23,42,48,.13)!important;border:0!important;transition:transform 1.2s var(--ease)}
.booking-hub-hero-map:hover .booking-hub-hero-map-wrap img{transform:scale(1.012)}
.booking-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;padding:18px!important}
.booking-hub-card{padding:clamp(34px,4vw,58px)!important;gap:28px!important;min-height:650px;position:relative;overflow:hidden}
.booking-hub-card::before{content:"";position:absolute;inset:0;border:1px solid rgba(255,249,232,.16);pointer-events:none}
.booking-hub-card h2{font-family:var(--serif)!important;font-size:clamp(54px,5vw,82px)!important;line-height:.86!important;letter-spacing:-.045em}
.booking-hub-top{min-height:300px!important;gap:24px!important}
.booking-hub-copy{font-family:var(--serif)!important;font-size:19px!important;line-height:1.58!important;min-height:0!important;max-width:620px}
.booking-hub-primary{border-radius:0!important;background:rgba(255,249,232,.10)!important;padding:14px 20px!important;min-height:50px;box-shadow:none!important;letter-spacing:.17em!important}
.booking-hub-primary:hover{background:#FFF9E8!important;color:var(--card-accent)!important;transform:translateY(-2px)}
.booking-hub-strip{height:190px!important;grid-template-columns:1.45fr .8fr .8fr!important;gap:7px!important}
.booking-hub-thumb{height:190px!important}
.booking-hub-thumb img{transition:transform .9s var(--ease)!important}
.booking-hub-discover{letter-spacing:.17em!important}

body.menu-open .site-head{background:var(--paper)!important;color:var(--ink)!important;border-bottom-color:rgba(23,42,48,.1)!important;backdrop-filter:blur(18px)!important}
body.menu-open .site-head .menu-book{background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important}

@media(max-width:980px){
  .restaurant-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .booking-hub-grid{grid-template-columns:1fr!important}
  .booking-hub-card{min-height:0}
  .booking-hub-top{min-height:260px!important}
}
@media(max-width:650px){
  .restaurant-index{padding-left:16px!important;padding-right:16px!important}
  .restaurant-grid{grid-template-columns:1fr!important;gap:42px!important}
  .booking-hub{padding-top:64px}
  .booking-hub-hero-map{padding:78px 20px 52px!important;gap:38px!important}
  .booking-hub-hero-map h1{font-size:clamp(48px,13vw,64px)!important}
  .booking-hub-grid{grid-template-columns:1fr!important;padding:8px!important;gap:8px!important}
  .booking-hub-card{padding:28px 22px!important;gap:22px!important}
  .booking-hub-card h2{font-size:clamp(46px,13vw,60px)!important}
  .booking-hub-top{min-height:0!important}
  .booking-hub-copy{font-size:18px!important;line-height:1.52!important}
  .booking-hub-strip{height:130px!important;grid-template-columns:1.35fr .8fr .8fr!important;gap:5px!important}
  .booking-hub-thumb{height:130px!important}
}



/* v46 - bilingual + PDF menus */
.lang-switch{display:inline-flex!important;align-items:center;justify-content:center;min-width:34px;height:34px;border:1px solid currentColor;border-radius:999px;font-weight:800!important;letter-spacing:.08em!important;transition:background .25s ease,color .25s ease,transform .25s ease}
.lang-switch:hover{background:currentColor;transform:translateY(-1px)}
.lang-switch:hover span{color:#FFF9E8}
.menu-pdf-section{scroll-margin-top:68px;position:relative;display:grid;grid-template-columns:1.15fr .85fr;min-height:460px;background:#FFF9E8;border-top:1px solid rgba(23,42,48,.12);border-bottom:1px solid rgba(23,42,48,.12);overflow:hidden}
.menu-pdf-copy{padding:7vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.menu-pdf-copy h2{font-family:Georgia,serif;font-size:clamp(42px,5vw,78px);font-weight:400;letter-spacing:-.045em;line-height:.92;margin:0;max-width:760px}
.menu-pdf-copy .menu-pdf-text{font-family:Georgia,serif;font-size:19px;line-height:1.55;max-width:600px;margin:28px 0 0}
.menu-pdf-button{margin-top:34px;display:inline-flex;align-items:center;justify-content:space-between;gap:42px;min-width:250px;padding:17px 20px;border:1px solid rgba(23,42,48,.45);border-radius:999px;text-decoration:none;font-size:10px;font-weight:900;letter-spacing:.14em;transition:background .25s ease,color .25s ease,transform .25s ease}
.menu-pdf-button:hover{background:var(--accent);color:#FFF9E8;border-color:var(--accent);transform:translateY(-2px)}
.menu-pdf-mark{position:relative;background:var(--accent);color:#FFF9E8;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.menu-pdf-mark:before{content:"";position:absolute;width:280px;height:390px;border:1px solid rgba(255,249,232,.36);transform:rotate(6deg)}
.menu-pdf-mark:after{content:"";position:absolute;width:280px;height:390px;border:1px solid rgba(255,249,232,.18);transform:rotate(-4deg)}
.menu-pdf-mark span{font-family:Georgia,serif;font-size:clamp(54px,7vw,110px);letter-spacing:-.05em;z-index:1}
.menu-pdf-mark small{font-size:9px;letter-spacing:.24em;margin-top:8px;z-index:1}
.footer-lang{font-weight:800;text-decoration:none}
@media(max-width:850px){
  .site-head nav>.lang-switch{position:absolute;right:72px;top:17px;width:34px;min-width:34px;height:34px;padding:0!important;display:flex!important;z-index:63}
  .site-head nav>.lang-switch span{display:block!important}
  .menu-pdf-section{grid-template-columns:1fr;min-height:0}
  .menu-pdf-copy{padding:78px 22px 58px}
  .menu-pdf-copy h2{font-size:44px}
  .menu-pdf-copy .menu-pdf-text{font-size:17px}
  .menu-pdf-button{width:100%;min-width:0}
  .menu-pdf-mark{min-height:270px}
  .menu-pdf-mark:before,.menu-pdf-mark:after{width:180px;height:240px}
  .menu-pdf-mark span{font-size:72px}
}



/* v49 - visible bilingual switch + premium menu identity */
.lang-selector{display:inline-flex!important;align-items:center;gap:7px;height:34px;padding:0 11px;border:1px solid currentColor;border-radius:999px;font-size:9px;letter-spacing:.13em;font-weight:800;line-height:1;white-space:nowrap}
.lang-selector a{display:inline-flex!important;align-items:center!important;color:inherit!important;text-decoration:none!important;opacity:.58;transition:opacity .2s ease!important}
.lang-selector a:hover{opacity:1!important}.lang-selector .lang-active{opacity:1}.lang-selector .lang-sep{opacity:.34}
.hero-mode .lang-selector{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.48);backdrop-filter:blur(7px)}
.menu-pdf-section{min-height:520px;background:#fdf8eb}.menu-pdf-copy{position:relative;padding-top:8vw;padding-bottom:8vw}
.menu-pdf-copy:before{content:'';width:46px;height:1px;background:var(--accent);margin-bottom:28px;opacity:.75}
.menu-pdf-copy h2{font-family:var(--serif)!important;font-size:clamp(50px,5.5vw,88px)!important;line-height:.86!important;letter-spacing:-.055em!important}
.menu-pdf-copy .eyebrow{color:var(--accent);font-weight:800;letter-spacing:.22em}
.menu-pdf-copy .menu-pdf-text{max-width:510px;font-size:clamp(18px,1.35vw,22px);line-height:1.58}
.menu-pdf-button{border-radius:0!important;border-width:0 0 1px!important;padding:13px 0!important;min-width:220px!important;gap:52px!important}
.menu-pdf-button:hover{background:transparent!important;color:var(--accent)!important;transform:translateX(6px)!important}
.menu-pdf-mark{isolation:isolate}.menu-pdf-mark:before,.menu-pdf-mark:after{width:min(58%,340px);height:min(72%,410px);border-color:rgba(255,249,232,.22)}
.menu-pdf-mark:before{transform:rotate(4deg)}.menu-pdf-mark:after{transform:rotate(-3deg)}
.menu-pdf-mark .menu-restaurant-name{position:relative;z-index:2;font-family:var(--serif);font-size:clamp(38px,4.7vw,78px);line-height:.9;letter-spacing:-.045em;text-align:center;padding:0 24px;max-width:100%}
.menu-pdf-mark small{position:relative;z-index:2;margin-top:18px;letter-spacing:.28em;opacity:.8}
@media(max-width:850px){
  .site-head nav{gap:7px!important}.lang-selector{height:32px;padding:0 8px;gap:5px;font-size:8px;letter-spacing:.08em;flex:0 0 auto}.lang-selector a{display:inline-flex!important}
  .menu-pdf-copy{padding:72px 22px 56px}.menu-pdf-copy:before{margin-bottom:22px}.menu-pdf-copy h2{font-size:50px!important}.menu-pdf-mark{min-height:290px}.menu-pdf-mark .menu-restaurant-name{font-size:clamp(44px,15vw,68px)}
}
@media(max-width:420px){.brand{max-width:70px!important;font-size:8px!important}.restaurants-trigger{font-size:7px!important;padding-inline:2px!important}.menu-book{padding:8px 9px!important;font-size:7px!important}.lang-selector{padding:0 7px;font-size:7px}}



.booking-official-link{display:flex!important;text-decoration:none!important;align-items:center;max-width:420px}
.booking-back{margin-top:14px;border:0;background:transparent;color:inherit;font:inherit;font-size:10px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;opacity:.72;padding:8px 0}
.booking-back:hover{opacity:1}
.success strong{font-family:var(--serif);font-size:clamp(34px,4vw,58px);letter-spacing:-.035em;font-weight:400}
.success small{display:inline-block;margin-top:12px;font-family:var(--serif);font-size:17px;line-height:1.5;max-width:480px}



.menu-pdf-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px;max-width:760px}
.menu-pdf-actions .menu-pdf-button{margin-top:0;min-width:210px;gap:26px}
.menu-pdf-note{font-size:11px;letter-spacing:.06em;opacity:.64;margin-top:16px;line-height:1.5}
@media(max-width:700px){.menu-pdf-actions{width:100%;display:grid;grid-template-columns:1fr;gap:10px}.menu-pdf-actions .menu-pdf-button{width:100%;min-width:0}}

/* v52 — Prenotazioni dirette Google Forms, senza secondo passaggio */
.booking-form .booking-preferences{grid-template-columns:1fr 1fr}
.booking-form .booking-notes-row{grid-template-columns:1fr 1fr;align-items:start}
.booking-form .booking-notes-row textarea{min-height:58px;resize:vertical}
.booking-form .staff-field select{opacity:.86}
.booking-helper{margin:2px 0 0;font-size:11px;line-height:1.45;letter-spacing:.06em;text-transform:uppercase;opacity:.58}
.booking-success{padding:22px 0 8px}
.booking-success strong{font-size:22px;letter-spacing:.04em}
.booking-success small{display:inline-block;max-width:560px;margin-top:10px;line-height:1.65;opacity:.78}
.booking-submit-pending{opacity:.62;pointer-events:none}
@media(max-width:720px){
  .booking-form .booking-preferences,.booking-form .booking-notes-row{grid-template-columns:1fr!important}
  .booking-helper{font-size:10px}
  .booking-success{padding:10px 0}
}



/* v53 — indirizzi Google Maps, mappa interattiva e navigazione ristoranti persistente */
[data-map-url]{cursor:pointer}
.r-address[data-map-url],.hero .eyebrow[data-map-url]{display:inline-block;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:rgba(23,42,48,.34);transition:opacity .2s ease,text-decoration-color .2s ease}
.hero .eyebrow[data-map-url]{text-decoration-color:rgba(255,255,255,.48)}
.r-address[data-map-url]:hover,.hero .eyebrow[data-map-url]:hover{opacity:1;text-decoration-color:currentColor}
.r-address[data-map-url]::after,.hero .eyebrow[data-map-url]::after{content:' ↗';font-size:.9em}
.r-address[data-map-url]:focus-visible,.hero .eyebrow[data-map-url]:focus-visible{outline:1px solid currentColor;outline-offset:5px}

.group-story-map-wrap{position:relative}
.interactive-map{position:relative;width:min(100%,760px);line-height:0}
.interactive-map>img{width:100%!important;max-width:none!important;height:auto!important;display:block}
.map-hotspot{position:absolute;display:block;transform:translate(-50%,-50%);width:12%;height:20%;border-radius:999px;background:rgba(255,249,232,0);border:1px solid transparent;cursor:pointer;z-index:3;transition:background .22s ease,border-color .22s ease,box-shadow .22s ease}
.map-hotspot:hover,.map-hotspot:focus-visible{background:rgba(255,249,232,.22);border-color:rgba(23,42,48,.24);box-shadow:0 8px 24px rgba(23,42,48,.12);outline:none}
.map-hotspot.pollarolo{left:41.7%;top:35.5%}
.map-hotspot.oca{left:53.8%;top:20.5%;width:11%;height:19%}
.map-hotspot.belsiana{left:64.5%;top:36.3%;width:12%;height:20%}
.map-hotspot.vib{left:56%;top:50%;width:10%;height:19%}

.footer-restaurant-list .footer-label{opacity:.72!important;font-weight:700;letter-spacing:.14em}
.footer-restaurant-list a,.restaurant-footer-nav a.restaurant-switch{font-weight:800!important;letter-spacing:.11em!important;border:1px solid rgba(23,42,48,.20)!important;text-decoration:none!important;padding:7px 10px!important;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.footer-restaurant-list a:hover,.restaurant-footer-nav a.restaurant-switch:hover{background:#172a30;color:#fffdf5!important;border-color:#172a30!important;transform:translateY(-1px)}

.site-restaurant-dock{--dock-accent:#172a30;position:fixed;z-index:74;left:50%;right:auto;bottom:16px;transform:translateX(-50%);min-height:0;padding:5px 9px;display:flex;align-items:center;justify-content:center;gap:2px;width:max-content;max-width:calc(100vw - 28px);background:rgba(255,253,245,.46);border:1px solid rgba(23,42,48,.07);border-radius:999px;box-shadow:0 6px 22px rgba(23,42,48,.045);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:.78;transition:opacity .2s ease,background .2s ease}
.site-restaurant-dock:hover,.site-restaurant-dock:focus-within{opacity:.96;background:rgba(255,253,245,.68)}
.site-restaurant-dock .dock-label{margin-right:5px;font-size:7.5px;letter-spacing:.16em;font-weight:650;opacity:.42;white-space:nowrap}
.site-restaurant-dock a{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:5px 8px;border:0;color:rgba(23,42,48,.66);text-decoration:none;font-size:8px;line-height:1;letter-spacing:.10em;font-weight:760;white-space:nowrap;transition:color .2s ease,opacity .2s ease,transform .2s ease}
.site-restaurant-dock a:hover{transform:translateY(-1px);color:#172a30;opacity:1}
.site-restaurant-dock a.is-current{background:transparent;color:var(--dock-accent);box-shadow:inset 0 -1px 0 var(--dock-accent);opacity:.88}
body[data-page="belsiana"] .site-restaurant-dock{--dock-accent:#194452}
body[data-page="vib"] .site-restaurant-dock{--dock-accent:#9A8265}
body[data-page="oca"] .site-restaurant-dock{--dock-accent:#536348}
body[data-page="pollarolo"] .site-restaurant-dock{--dock-accent:#527382}
.spa-page{padding-bottom:28px}

@media(max-width:850px){
  .map-hotspot{width:14%;height:23%}
  .map-hotspot.oca{width:13%;height:22%}.map-hotspot.belsiana{width:14%;height:23%}.map-hotspot.vib{width:12%;height:22%}
  .site-restaurant-dock{left:14px;right:14px;transform:none;width:auto;max-width:none;bottom:max(8px,env(safe-area-inset-bottom));padding:5px 6px;gap:0;background:rgba(255,253,245,.42);opacity:.76}
  .site-restaurant-dock .dock-label{display:none}
  .site-restaurant-dock a{flex:1;min-width:0;min-height:28px;padding:6px 2px;font-size:7.25px;letter-spacing:.065em}
  body[data-page="belsiana"] .site-restaurant-dock,body[data-page="vib"] .site-restaurant-dock,body[data-page="oca"] .site-restaurant-dock,body[data-page="pollarolo"] .site-restaurant-dock{bottom:calc(70px + env(safe-area-inset-bottom))}
  .spa-page{padding-bottom:42px}
}



/* v56 — booking fields: Safari/iPhone stability */
html,body{scroll-behavior:auto!important}
html.booking-field-active{scroll-behavior:auto!important}
.booking,.booking-panel,.booking-form{overflow-anchor:none!important}
.booking-form label{position:relative}
.booking-form input,.booking-form select,.booking-form textarea{position:relative;z-index:1}
.booking-info.reveal,.booking-panel.reveal{opacity:1!important;transform:none!important;transition:none!important}
.booking-form input,.booking-form select,.booking-form textarea{scroll-margin-top:92px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
/* Fixed bottom controls can make iOS reposition the visual viewport when the keyboard/date picker opens. */
html.booking-field-active .site-restaurant-dock,
html.booking-field-active .mobile-sticky-book{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:none!important}
/* Never keep a filtered/animated page as the containing block while a form control is active. */
html.booking-field-active .spa-page{animation:none!important;filter:none!important;transform:none!important}

/* Elementor Free integration */
.site-header,.site-footer,.page-header{display:none!important}
body.elementor-page{margin:0!important}
.elementor-section.elementor-top-section>.elementor-container{max-width:none!important}
.elementor-column-gap-default>.elementor-column>.elementor-element-populated,.elementor-column-gap-no>.elementor-column>.elementor-element-populated{padding:0!important}
.elementor-widget-otpg_header,.elementor-widget-otpg_footer{margin:0!important}
.otpg-click-card{cursor:pointer}
.otpg-editor-note{display:none}
body.elementor-editor-active .otpg-editor-note{display:block;position:relative;z-index:2;padding:8px 12px;background:#fff4c6;color:#172a30;font-size:12px}
