  :root{
    --sabbia:#F2E6D0;
    --sabbia-2:#EADFC7;
    --bianco:#FFFDF9;
    --arancio:#D9631E;
    --arancio-scuro:#A84310;
    --arancio-tramonto:#B8460F;
    --nero:#211C16;
    --nero-2:#3A322A;
    --ink:#2B2117;
    --gelato-rosa:#F7D9CE;
    --gelato-pesca:#F2C3A8;
    --gelato-menta:#CFE9DD;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:auto;}
  body{
    font-family:'Work Sans', sans-serif;
    color:var(--ink);
    background:var(--sabbia);
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Bricolage Grotesque', sans-serif;
    font-weight:800;
    letter-spacing:-0.02em;
    line-height:0.98;
    text-wrap:balance;
  }
  .mono{font-family:'Space Mono', monospace;}
  a{color:inherit;text-decoration:none;}
  img{
    max-width:100%;display:block;
    -webkit-user-select:none; user-select:none;
    -webkit-user-drag:none; user-drag:none;
    -webkit-touch-callout:none;
    pointer-events:auto;
  }
  a:focus-visible, button:focus-visible{
    outline:2px solid var(--arancio); outline-offset:3px;
  }
  a, button{touch-action:manipulation; -webkit-tap-highlight-color:rgba(217,99,30,0.25);}
  section, #ristorante, #pub{scroll-margin-top:90px;}

  /* ---------- Nav di esplorazione rapida ---------- */
  .site-nav{
    position:fixed; top:0; left:0; right:0; z-index:300;
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 6vw;
    background:rgba(33,28,22,0.35);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    transition:background 0.3s ease;
  }
  .site-nav.scrolled{background:rgba(33,28,22,0.82);}
  .nav-brand{
    display:flex; align-items:center; gap:10px;
    font-family:'Work Sans', sans-serif; font-weight:800; font-size:19px; color:#FFF8EA;
  }
  .nav-brand img{height:28px; width:auto;}
  .nav-links{display:flex; align-items:center; gap:26px; list-style:none;}
  .nav-links a{
    font-family:'Space Mono', monospace; font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
    color:#FFF8EA; opacity:0.85; transition:opacity 0.2s ease;
  }
  .nav-links a:hover{opacity:1;}
  .nav-toggle{
    display:none; background:none; border:none; cursor:pointer; padding:6px; z-index:301;
    min-width:44px; min-height:44px;
  }
  .nav-toggle span, .nav-toggle::before, .nav-toggle::after{
    content:''; display:block; width:24px; height:2px; background:#FFF8EA; margin:5px 0; transition:transform 0.2s ease, opacity 0.2s ease;
  }
  @media (max-width:860px){
    .nav-links{
      position:fixed; top:0; right:0; height:100vh; width:min(78vw, 320px);
      flex-direction:column; align-items:flex-start; justify-content:center; gap:30px;
      background:rgba(20,16,12,0.97); padding:10vh 8vw;
      transform:translateX(100%); transition:transform 0.35s ease;
      overscroll-behavior:contain;
    }
    .nav-links.open{transform:translateX(0);}
    .nav-links a{font-size:14px;}
    .nav-toggle{display:block;}
  }
  /* ================= HOME: hero pulita dell'azienda ================= */
  .home-hero{
    min-height:92vh; display:flex; flex-direction:column; justify-content:center;
    position:relative;
    background:
      linear-gradient(180deg, rgba(33,28,22,0.4) 0%, rgba(33,28,22,0.62) 100%),
      url('../images/home-bg.webp') center center / cover no-repeat,
      linear-gradient(180deg, var(--sabbia) 0%, var(--sabbia-2) 100%);
  }
  .home-brand{
    display:flex; flex-direction:column; align-items:flex-start; gap:16px;
    font-family:'Work Sans', sans-serif; font-weight:800;
    font-size:clamp(48px, 9vw, 108px); color:#FFF8EA; letter-spacing:-0.01em; line-height:1;
  }
  .home-brand img{height:clamp(48px,8vw,84px); width:auto; filter:drop-shadow(0 4px 14px rgba(0,0,0,0.35));}
  .home-eyebrow{
    font-family:'Space Mono', monospace; font-size:13px; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--sabbia); opacity:0.85; margin-bottom:18px;
  }
  .home-sub{
    max-width:580px; margin-top:26px; font-size:20px; line-height:1.6; color:var(--sabbia); opacity:0.92; font-weight:400;
  }
  .scroll-cue{
    margin-top:48px; font-family:'Space Mono',monospace; font-size:12px; letter-spacing:0.1em;
    display:flex; align-items:center; gap:10px; text-transform:uppercase; color:var(--sabbia); opacity:0.85;
  }
  .scroll-cue .line{width:36px; height:1px; background:currentColor; animation:pulseline 2.4s infinite;}
  @keyframes pulseline{0%,100%{opacity:.3;width:36px;}50%{opacity:1;width:56px;}}

  /* ---------- section base + mood per sezione ---------- */
  section{position:relative; padding:10vh 7vw; overflow:hidden;}
  .cielo-giorno{background:linear-gradient(180deg, var(--sabbia) 0%, var(--bianco) 14%); color:var(--ink);}
  .cielo-meriggio{background:linear-gradient(180deg,#F7EFDD 0%, #F1DFC2 100%); color:var(--ink);}
  .cielo-notte{background:linear-gradient(180deg, var(--nero-2) 0%, var(--nero) 100%); color:var(--sabbia);}
  .cielo-pub{background:linear-gradient(180deg, #241d17 0%, #171310 100%); color:var(--sabbia);}
  .cielo-gelato{background:linear-gradient(180deg, var(--bianco) 0%, var(--gelato-rosa) 100%); color:var(--ink);}

  .section-eyebrow{
    font-family:'Space Mono', monospace; font-size:13px; letter-spacing:0.16em; text-transform:uppercase;
    opacity:0.75; margin-bottom:14px;
  }

  /* ---------- reveal on scroll ---------- */
  .reveal{opacity:0; transform:translateY(44px) scale(0.97); transition:opacity 1s cubic-bezier(.16,.8,.3,1), transform 1s cubic-bezier(.16,.8,.3,1);}
  .reveal.in{opacity:1; transform:translateY(0) scale(1);}
  .reveal-left{opacity:0; transform:translateX(-56px) scale(0.97); transition:opacity 1s cubic-bezier(.16,.8,.3,1), transform 1s cubic-bezier(.16,.8,.3,1);}
  .reveal-left.in{opacity:1; transform:translateX(0) scale(1);}
  .reveal-right{opacity:0; transform:translateX(56px) scale(0.97); transition:opacity 1s cubic-bezier(.16,.8,.3,1), transform 1s cubic-bezier(.16,.8,.3,1);}
  .reveal-right.in{opacity:1; transform:translateX(0) scale(1);}

  /* stagger dei gruppi (card locali, gallery, pillole) */
  .locali-grid > .locale-card:nth-child(2){transition-delay:0.12s;}
  .locali-grid > .locale-card:nth-child(3){transition-delay:0.24s;}
  .grid-foto .cell:nth-child(2){transition-delay:0.06s;}
  .grid-foto .cell:nth-child(3){transition-delay:0.12s;}
  .grid-foto .cell:nth-child(4){transition-delay:0.18s;}
  .grid-foto .cell:nth-child(5){transition-delay:0.24s;}
  .grid-foto .cell:nth-child(6){transition-delay:0.3s;}
  .grid-foto .cell:nth-child(7){transition-delay:0.36s;}
  .sport-list .sport-pill:nth-child(2){transition-delay:0.06s;}
  .sport-list .sport-pill:nth-child(3){transition-delay:0.12s;}
  .sport-list .sport-pill:nth-child(4){transition-delay:0.18s;}
  .sport-list .sport-pill:nth-child(5){transition-delay:0.24s;}
  .sport-list .sport-pill:nth-child(6){transition-delay:0.3s;}

  /* Ken Burns: leggero zoom continuo sulle foto hero a piena larghezza */
  @keyframes kenburns{0%{transform:scale(1);}100%{transform:scale(1.07);}}
  .hero-ph img, .gelateria-hero-ph img{animation:kenburns 22s ease-in-out infinite alternate;}

  /* piccolo respiro sul logo in home */
  @keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
  .home-brand img{animation:floaty 4.5s ease-in-out infinite;}

  @media (prefers-reduced-motion:reduce){
    .reveal,.reveal-left,.reveal-right{transition:none !important; opacity:1 !important; transform:none !important;}
    html{scroll-behavior:auto;}
    .ph-carousel{scroll-behavior:auto;}
    .ph-carousel img{transition:none !important;}
    .locale-card:hover .ph-slide.active img{transform:none !important;}
    .hero-ph img, .gelateria-hero-ph img, .home-brand img{animation:none !important;}
  }

  /* ---------- I nostri locali ---------- */
  .locali-head{text-align:center; max-width:680px; margin:0 auto 6vh;}
  .locali-head h2{font-size:clamp(34px,5.5vw,58px); margin-bottom:18px;}
  .locali-head p{font-size:18.5px; line-height:1.7; color:var(--nero-2);}
  .locali-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:4vw;}
  .locale-card{display:flex; flex-direction:column;}
  .locale-ph{
    position:relative; border-radius:6px; margin-bottom:20px;
    overflow:hidden;
  }
  .locale-ph > img{
    width:100%;
    height:auto;
    display:block;
    filter:saturate(1.1) contrast(1.04);
  }

  /* ---------- Carousel foto: ogni immagine tiene il proprio formato, niente crop/riquadro ---------- */
  .ph-carousel{
    display:flex; width:100%; align-items:center; overflow-x:auto; scroll-snap-type:x mandatory;
    scrollbar-width:none; -ms-overflow-style:none; touch-action:pan-y;
  }
  .ph-carousel::-webkit-scrollbar{display:none;}
  .ph-slide{
    flex:0 0 100%; width:100%; scroll-snap-align:start;
    display:flex; align-items:center; justify-content:center;
  }
  .ph-carousel img{
    width:auto; max-width:100%; height:auto; max-height:66vh; margin:0 auto;
    transition:transform 0.5s ease;
  }
  .locale-card:hover .ph-slide.active img{transform:scale(1.05);}
  .ph-nav{
    position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px;
    border-radius:50%; background:rgba(23,20,16,0.4); color:#FFF8EA; border:none;
    display:flex; align-items:center; justify-content:center; font-size:20px; line-height:1;
    cursor:pointer; opacity:0; transition:opacity 0.2s ease, background 0.2s ease;
  }
  .ph-nav.prev{left:10px;}
  .ph-nav.next{right:10px;}
  .locale-ph:hover .ph-nav, .ph:hover .ph-nav, .ph-nav:focus-visible{opacity:1;}
  .ph-nav:hover{background:rgba(23,20,16,0.65);}
  @media (hover:none){ .ph-nav{opacity:1;} }
  .ph-dots{
    position:absolute; bottom:10px; left:0; right:0; z-index:2;
    display:flex; justify-content:center; gap:6px; pointer-events:none;
  }
  .ph-dot{width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.5);}
  .ph-dot.active{background:#FFF8EA;}
  .locale-card h3{font-size:clamp(23px,2.8vw,32px); margin-bottom:10px;}
  .locale-card p{font-size:16.5px; line-height:1.6; color:var(--nero-2); margin-bottom:10px;}
  .locale-orari{font-family:'Space Mono',monospace; font-size:12.5px; opacity:0.7; margin-bottom:16px;}
  .locale-link{
    font-family:'Space Mono',monospace; font-size:13px; text-transform:uppercase; letter-spacing:0.06em;
    color:var(--arancio-scuro); border-bottom:1px solid var(--arancio-scuro); padding-bottom:2px; align-self:flex-start;
    transition:color 0.2s ease, border-color 0.2s ease;
  }
  .locale-link:hover{color:var(--arancio); border-color:var(--arancio);}
  @media (max-width:900px){ .locali-grid{grid-template-columns:1fr; gap:8vh;} }

  /* ================= HERO VIDEO SCRUB — solo dentro la sezione Ristorante ================= */
  .ristorante-intro{max-width:640px; margin-bottom:6vh;}
  .ristorante-intro h2{font-size:clamp(30px,4.5vw,50px);}
  .scrub-wrap{
    position:relative;
    height:400vh;
    background:var(--nero);
  }
  .scrub-sticky{
    position:sticky; top:0; height:100vh; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    background:var(--nero);
  }
  .scrub-canvas{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    filter:brightness(0.92) saturate(1.05);
  }
  .scrub-fade{
    position:absolute; inset:0; z-index:4; pointer-events:none;
    background:linear-gradient(180deg, rgba(242,230,208,0) 0%, rgba(242,230,208,0) 55%, var(--sabbia) 100%);
    opacity:0; transition:opacity 0.15s linear;
  }
  .scrub-overlay{
    position:relative; z-index:5; width:100%; height:100%;
    display:flex; flex-direction:column; justify-content:flex-end;
    padding:8vh 6vw; pointer-events:none;
    background:linear-gradient(0deg, rgba(15,11,7,0.75) 0%, rgba(15,11,7,0.15) 45%, rgba(15,11,7,0.4) 100%);
  }
  .scrub-brand{
    position:absolute; top:8vh; left:6vw; right:6vw; z-index:6;
    font-family:'Work Sans', sans-serif; font-weight:800;
    font-size:clamp(40px, 7.5vw, 92px); color:#FFF8EA; letter-spacing:-0.01em; line-height:1;
    text-shadow:0 6px 30px rgba(0,0,0,0.55);
    opacity:1; transition:opacity 0.4s ease;
  }
  .scrub-brand span{color:var(--arancio);}
  .scrub-eyebrow{
    font-family:'Space Mono', monospace; font-size:13px; letter-spacing:0.16em; text-transform:uppercase;
    color:var(--sabbia); opacity:0.9; margin-bottom:14px; text-shadow:0 2px 10px rgba(0,0,0,0.5);
  }
  .scrub-sub{
    max-width:480px; color:#FFF8EA; font-size:17px; font-weight:400; opacity:0.95;
    text-shadow:0 2px 12px rgba(0,0,0,0.5);
  }
  .loading-flag{
    position:absolute; bottom:8vh; right:6vw; z-index:6;
    font-family:'Space Mono',monospace; font-size:11px; color:var(--sabbia); opacity:0.6;
  }
  @media (prefers-reduced-motion:reduce){
    .scrub-wrap{height:auto;}
    .scrub-sticky{position:relative;}
  }

  /* ---------- Storia ---------- */
  .storia{display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; margin-top:6vh;}
  .ph{
    position:relative; border-radius:4px;
    overflow:hidden;
  }
  .ph > img{
    width:auto;
    max-width:100%;
    height:auto;
    max-height:70vh;
    margin:0 auto;
    display:block;
  }
  .storia h2{font-size:clamp(32px,4.6vw,54px); margin-bottom:24px;}
  .storia p{font-size:18.5px; line-height:1.75; max-width:44ch; font-weight:400;}
  @media (max-width:760px){ .storia{grid-template-columns:1fr;} }

  /* ---------- Locale-body feature: testo grande centrato sulla foto ---------- */
  .locale-body.lb-feature{align-items:center;}
  .locale-body.lb-feature h2, .locale-body.lb-feature h3{font-size:clamp(34px,4.8vw,58px); line-height:1.02; margin-bottom:18px;}
  .locale-body.lb-feature p{font-size:19px; line-height:1.7; max-width:46ch;}

  /* ---------- Pub intro: testo + foto a lato ("Non il classico Snack veloce") ---------- */
  .pub-intro{display:grid; grid-template-columns:1.05fr 0.95fr; gap:5vw; align-items:center; margin-bottom:10vh;}
  .pub-intro-text{max-width:640px;}
  .pub-intro-text h1{font-size:clamp(34px,5vw,60px); line-height:1.02; margin-bottom:20px;}
  .pub-intro-text p{font-size:18.5px; line-height:1.7; opacity:0.92; max-width:52ch;}
  .pub-intro-ph{border-radius:10px; overflow:hidden; box-shadow:0 26px 50px -28px rgba(0,0,0,0.55);}
  .pub-intro-ph img{width:100%; height:auto; max-height:62vh; object-fit:cover; display:block;}
  @media (max-width:860px){.pub-intro{grid-template-columns:1fr; gap:5vh; margin-bottom:7vh;}}

  /* ---------- Pub portrait photo row ---------- */
  .pub-photo-row{display:grid; grid-template-columns:minmax(220px,300px) 1fr; gap:4vw; align-items:center; margin-top:6vh; position:relative;}
  .pub-text h3{text-wrap:balance;}
  .pub-photo-grid{display:flex; min-width:0; gap:16px; margin-right:-7vw; padding-right:7vw; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
  .pub-photo-grid::-webkit-scrollbar{display:none;}
  .pub-ph{flex:0 0 auto; height:clamp(300px,40vh,400px); aspect-ratio:3/4; overflow:hidden; border-radius:6px; background:rgba(255,255,255,0.05); scroll-snap-align:start;}
  .pub-ph img{width:100%; height:100%; object-fit:cover; display:block;}
  .pub-arrow{position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:46px; height:46px; border-radius:50%; border:none; cursor:pointer; background:rgba(23,19,16,0.78); color:#fff; font-size:22px; line-height:1; display:flex; align-items:center; justify-content:center; transition:background .2s, opacity .2s; backdrop-filter:blur(4px);}
  .pub-arrow:hover{background:rgba(23,19,16,0.96);}
  .pub-arrow.prev{left:calc(clamp(220px,24vw,300px) + 4vw + 14px);}
  .pub-arrow.next{right:calc(-7vw + 14px);}
  @media (max-width:860px){.pub-photo-row{grid-template-columns:1fr;} .pub-photo-grid{margin-right:0; padding-right:0;} .pub-ph{height:clamp(300px,66vw,420px);} .pub-arrow.prev{left:14px;} .pub-arrow.next{right:14px;}}

  /* ---------- Gelato showcase (versione premium) ---------- */
  .gelato-row{display:block; position:relative; margin:10vh 0 11vh; padding:clamp(38px,5vw,72px); border-radius:28px; overflow:hidden;
    background:radial-gradient(130% 130% at 0% 0%, #FFF7EE 0%, #F7E7D2 45%, #F0D8BC 100%);
    box-shadow:0 40px 80px -40px rgba(120,70,20,0.4);}
  .gelato-row::before{content:''; position:absolute; top:-20%; right:-8%; width:min(46vw,560px); height:min(46vw,560px); border-radius:50%;
    background:radial-gradient(circle at 30% 30%, rgba(217,99,30,0.18), rgba(217,99,30,0) 70%); pointer-events:none;}
  .gelato-row .pub-text{position:relative; z-index:1; max-width:660px; margin-bottom:clamp(22px,3.2vw,40px);}
  .gelato-row .drink-tag{color:var(--arancio-scuro); opacity:1; font-weight:700;}
  .gelato-row .pub-text h3{font-size:clamp(30px,4.2vw,50px); line-height:1.05; color:var(--ink); text-wrap:balance; margin-bottom:22px;}
  .gelato-row .pub-text p{color:var(--ink); opacity:0.78; max-width:52ch;}
  .gelato-stripwrap{position:relative;}
  .gelato-grid{margin-right:0; padding:30px 6px 46px; align-items:flex-start;}
  .gelato-card{height:clamp(340px,48vh,480px); border-radius:20px; box-shadow:0 18px 38px -18px rgba(70,35,5,0.55); background:#e9dcc8;
    transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s ease;}
  .gelato-card:nth-child(even){transform:translateY(30px);}
  .gelato-card img{transition:transform .6s cubic-bezier(.2,.7,.2,1);}
  .gelato-card:hover{transform:translateY(-8px) scale(1.02); box-shadow:0 30px 54px -20px rgba(70,35,5,0.6);}
  .gelato-card:nth-child(even):hover{transform:translateY(22px) scale(1.02);}
  .gelato-card:hover img{transform:scale(1.07);}
  .gelato-row .pub-arrow{top:50%; background:rgba(217,99,30,0.92); box-shadow:0 8px 20px -6px rgba(120,60,10,0.6);}
  .gelato-row .pub-arrow:hover{background:var(--arancio-scuro);}
  .gelato-row .pub-arrow.prev{left:14px; right:auto;}
  .gelato-row .pub-arrow.next{right:14px; left:auto;}
  @media (max-width:860px){.gelato-card{height:clamp(300px,66vw,420px);} .gelato-card:nth-child(even){transform:translateY(18px);} .gelato-card:nth-child(even):hover{transform:translateY(12px) scale(1.02);}}

  /* ---------- Giornata head (riusato anche dalla Photogallery) ---------- */
  .giornata-head{text-align:center; margin:6vh 0 5vh;}
  .giornata-head h2{font-size:clamp(32px,5vw,56px);}

  /* ---------- Menu list (riusato in Passatempo) ---------- */
  .menu-list{list-style:none; margin-top:18px;}
  .menu-list li{
    display:flex; justify-content:space-between; gap:16px; padding:10px 0;
    border-bottom:1px dashed currentColor; opacity:0.9; font-size:16.5px;
  }
  .menu-list li .price{font-family:'Space Mono',monospace; font-size:14.5px; white-space:nowrap;}

  /* ---------- Pub ---------- */
  .locale-section-head{max-width:640px; margin-bottom:6vh;}
  .locale-section-head h2{font-size:clamp(34px,5.5vw,58px);}
  .locale-section-head p{font-size:18.5px; line-height:1.7; margin-top:16px; opacity:0.9;}
  .locale-body{display:grid; grid-template-columns:1fr 1fr; gap:6vw; align-items:start;}
  .locale-body + .locale-body{margin-top:8vh;}
  .locale-body.rev{grid-template-columns:1fr 1fr;}
  .locale-body.rev .ph{order:2;}
  .locale-body h3, .hero-ph-caption h3{font-size:clamp(26px,3.4vw,38px); margin-bottom:14px;}
  .locale-body p, .hero-ph-caption p{font-size:17px; line-height:1.7; max-width:48ch; opacity:0.92;}

  /* ---------- Foto singola grande a piena larghezza + didascalia sotto ---------- */
  .hero-ph{width:100%; margin-bottom:5vh; border-radius:6px; text-align:center;}
  .hero-ph img{width:auto; max-width:100%; max-height:66vh; margin:0 auto;}
  .hero-ph-caption{max-width:640px; margin-bottom:8vh;}
  @media (max-width:900px){
    .locale-body, .locale-body.rev{grid-template-columns:1fr;}
    .locale-body.rev .ph{order:0;}
  }

  .drink-tag{
    font-family:'Space Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.14em;
    opacity:0.7; margin-bottom:14px; display:block;
  }

  /* ---------- Gelateria: foto interno a piena larghezza ---------- */
  .gelateria-hero-ph{width:100%; margin-bottom:6vh; border-radius:6px; text-align:center;}
  .gelateria-hero-ph img{width:auto; max-width:100%; max-height:66vh; margin:0 auto;}

  /* ---------- Passatempo: sport a pillole (sfondo scuro) ---------- */
  .sport-list{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
  .sport-pill{
    padding:9px 18px; border-radius:100px; font-family:'Space Mono',monospace; font-size:13px;
    border:1px solid rgba(255,255,255,0.28); color:var(--sabbia); background:rgba(255,255,255,0.05);
  }

  /* ---------- Photogallery ---------- */
  .galleria{background:var(--nero); color:var(--sabbia);}
  .grid-foto{
    display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:clamp(160px,17vw,260px);
    grid-auto-flow:dense; gap:16px; margin-top:6vh;
  }
  .grid-foto .cell{
    border-radius:4px; overflow:hidden; position:relative;
    border:none; padding:0; background:none; cursor:pointer; display:block; width:100%; height:100%;
  }
  .grid-foto .cell img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    filter:saturate(1.12) contrast(1.05);
    transition:transform 0.6s ease;
  }
  .grid-foto .cell:hover img{transform:scale(1.06);}
  .grid-foto .cell-wide{grid-column:span 2;}
  .grid-foto .cell-tall{grid-row:span 2;}
  .grid-foto .cell-xl{grid-column:span 2; grid-row:span 2;}
  @media (max-width:900px){
    .grid-foto{grid-template-columns:repeat(2,1fr); grid-auto-rows:clamp(140px,38vw,220px);}
    .grid-foto .cell-xl{grid-column:span 2; grid-row:span 2;}
  }
  @media (max-width:560px){
    .grid-foto{grid-template-columns:1fr;}
    .grid-foto .cell, .grid-foto .cell-wide, .grid-foto .cell-tall, .grid-foto .cell-xl{grid-column:span 1; grid-row:span 1; aspect-ratio:4/3;}
  }
  @media (prefers-reduced-motion:reduce){
    .grid-foto .cell img{transition:none !important;}
    .grid-foto .cell:hover img{transform:none !important;}
  }

  /* ---------- Lightbox Photogallery ---------- */
  .lightbox-overlay{
    display:none; position:fixed; inset:0; z-index:600; background:rgba(10,8,6,0.94);
    align-items:center; justify-content:center; padding:6vh 5vw;
  }
  .lightbox-overlay.open{display:flex;}
  .lightbox-overlay img{
    max-width:100%; max-height:88vh; width:auto; height:auto; margin:0 auto;
    display:block; border-radius:4px;
  }
  .lightbox-close{
    position:absolute; top:20px; right:24px; width:44px; height:44px; border-radius:50%;
    background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25); color:var(--sabbia);
    font-size:20px; line-height:1; cursor:pointer;
  }
  .lightbox-close:hover{background:rgba(255,255,255,0.16);}
  .lightbox-nav{
    position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%;
    background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25); color:var(--sabbia);
    font-size:26px; line-height:1; cursor:pointer;
  }
  .lightbox-nav:hover{background:rgba(255,255,255,0.16);}
  .lightbox-nav.prev{left:16px;}
  .lightbox-nav.next{right:16px;}
  @media (max-width:700px){
    .lightbox-nav{width:42px; height:42px; font-size:20px;}
    .lightbox-close{width:38px; height:38px; font-size:17px; top:12px; right:12px;}
  }

  /* ---------- Lavora con noi ---------- */
  .lavora{text-align:center;}
  .lavora-inner{max-width:620px; margin:0 auto;}
  .lavora h2{font-size:clamp(34px,5.5vw,58px); margin-bottom:20px;}
  .lavora p{font-size:18.5px; line-height:1.75; opacity:0.9; margin-bottom:32px;}
  .btn-book{
    display:inline-block; background:var(--arancio); color:#fff; padding:14px 30px;
    border-radius:100px; font-family:'Space Mono',monospace; font-size:13px; text-transform:uppercase; letter-spacing:0.08em;
    transition:transform 0.25s ease, background 0.25s ease;
  }
  .btn-book:hover{transform:translateY(-2px); background:var(--arancio-scuro);}

  /* ---------- Info / footer ---------- */
  .info{background:var(--nero); color:var(--sabbia); padding-top:6vh;}
  .info-grid{display:grid; grid-template-columns:1.1fr 0.75fr 0.75fr 0.9fr; gap:5vw; padding-bottom:8vh; border-bottom:1px solid rgba(255,255,255,0.12);}
  .info h2{font-size:clamp(30px,4.5vw,52px); max-width:14ch;}
  .info-col h4{font-family:'Space Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.14em; opacity:0.6; margin-bottom:14px;}
  .info-col p, .info-col a{display:block; font-size:16.5px; line-height:1.8; opacity:0.9;}
  footer{display:flex; justify-content:space-between; align-items:center; padding:5vh 0 3vh; font-size:13px; opacity:0.55; flex-wrap:wrap; gap:10px;}
  @media (max-width:760px){ .info-grid{grid-template-columns:1fr; gap:6vh;} }

  /* ---------- Footer minimo (rimanda a contatti.html) ---------- */
  .site-footer{
    display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:16px;
    padding:5vh 7vw; font-size:13px; opacity:0.6;
  }
  .site-footer .footer-link{
    font-family:'Space Mono',monospace; font-size:12.5px; text-transform:uppercase; letter-spacing:0.06em;
    color:var(--arancio); border-bottom:1px solid var(--arancio); padding-bottom:2px;
  }
