:root{--blue:#2f6182;--blue-dark:#244f6c;--paper:#f6f4ef;--line:#dfddd6;--text:#2b536d;--muted:#687783;--coral:#e26d3c;--green:#24c66b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--text);font-family:'DM Sans',Arial,sans-serif}a{text-decoration:none;color:inherit}button,input,select{font:inherit}.topbar{height:108px;background:rgba(248,247,244,.97);display:flex;align-items:center;padding:0 38px;position:sticky;top:0;z-index:50;border-bottom:1px solid #e6e2db}.logo,.footer-brand,h1,h2{font-family:'Playfair Display',serif}.logo{font-size:31px;font-weight:600;margin-right:auto}.languages{height:54px;background:#f0efec;border-radius:28px;display:flex;align-items:center;padding:4px;gap:2px;box-shadow:0 1px 5px rgba(20,40,50,.03)}.languages button{border:0;background:transparent;color:#5d6870;font-size:16px;padding:14px 16px;border-radius:23px}.languages button.active{background:#2e6183;color:#fff}.menu{border:0;background:transparent;margin-left:22px;width:48px;padding:7px 0;display:grid;gap:7px}.menu span{height:3px;width:34px;background:#2e5d79;display:block;border-radius:2px}.mobile-menu{display:none;position:fixed;z-index:49;top:108px;left:0;right:0;background:#fff;padding:18px 38px 25px;border-bottom:1px solid var(--line)}.mobile-menu.open{display:grid;gap:10px}.mobile-menu a{padding:10px 0}.hero{height:calc(100svh - 108px);min-height:690px;max-height:920px;position:relative;overflow:hidden;color:#fff}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;transform:scale(1.02)}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,26,34,.12) 8%,rgba(20,55,74,.13) 48%,rgba(13,47,67,.72) 100%)}.hero-content{position:absolute;left:38px;right:38px;bottom:74px}.location-pill{display:inline-flex;align-items:center;gap:10px;background:rgba(49,59,65,.56);backdrop-filter:blur(5px);border-radius:9px;padding:13px 18px;color:#fff;font-size:14px;letter-spacing:3px;font-weight:600;margin-bottom:25px}.hero h1{font-size:68px;line-height:.96;letter-spacing:-1.8px;margin:0;font-weight:600;text-shadow:0 2px 12px rgba(0,0,0,.13);max-width:650px}.hero p{font-family:'Playfair Display',serif;font-size:55px;font-style:italic;color:var(--coral);line-height:1;margin:12px 0 42px}.hero-buttons{display:flex;gap:20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:15px;border-radius:999px;padding:22px 38px;font-size:19px;font-weight:600;border:1px solid transparent}.btn b{font-size:27px;font-weight:400;line-height:0}.coral{background:var(--coral);color:#fff}.glass{border-color:rgba(255,255,255,.78);background:rgba(35,81,108,.14);backdrop-filter:blur(4px);color:#fff}.dark{background:var(--blue);color:#fff}.ticker{height:54px;background:var(--blue);color:#fff;display:flex;justify-content:center;align-items:center;gap:20px;font-size:12px;letter-spacing:2px;font-weight:600}.ticker b{color:var(--coral);font-size:9px}.section{padding:105px 38px}.intro{background:#fff}.intro-photo{width:100%;height:540px;border-radius:24px;overflow:hidden;margin-bottom:30px}.intro-photo img{width:100%;height:100%;object-fit:cover}.intro-text{font-size:19px;line-height:1.8;color:#6c777d;margin:0 0 30px}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;margin-bottom:28px}.stats div{padding:20px 8px;border-right:1px solid var(--line);text-align:center}.stats div:last-child{border:0}.stats strong{display:block;font-family:'Playfair Display',serif;font-size:28px;font-weight:500;color:var(--text)}.stats span{font-size:9px;color:#7e878b;letter-spacing:.45px}.wide{width:100%;padding:20px}.stay{background:var(--paper)}.section h2{font-size:58px;line-height:1.03;margin:0 0 42px;font-weight:600;letter-spacing:-1px}.stay-grid{display:grid;grid-template-columns:1fr;gap:14px}.house-photo{height:540px;border-radius:24px;overflow:hidden}.house-photo img,.gallery-mini img{width:100%;height:100%;object-fit:cover;display:block}.gallery-mini{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,220px);gap:14px}.gallery-mini img{border-radius:22px;min-height:0}.comfort{background:var(--paper)}.comfort h2{text-align:center;font-size:58px;margin-bottom:54px}.amenities{display:grid;grid-template-columns:1fr 1fr;gap:16px}.amenities div{height:230px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;box-shadow:0 4px 15px rgba(20,40,55,.035)}.amenities span{font-size:40px;line-height:1;color:#2d607e}.amenities b{font-size:19px;font-weight:500;text-align:center}.reviews{background:var(--paper);padding-top:85px}.reviews-head{margin-bottom:55px}.reviews-head h2{font-size:58px;margin-bottom:38px}.reviews-score{display:flex;align-items:flex-end;gap:28px}.reviews-score>strong{font-family:'Playfair Display',serif;font-size:86px;line-height:.82;color:#2f6182;white-space:nowrap}.reviews-score div{display:grid;gap:6px}.stars{font-size:16px;letter-spacing:4px;color:#c8663d}.stars.big{font-size:25px}.reviews-score b{font-size:22px;color:#304553}.reviews-score small{font-size:17px;color:#78848b}.review-list{display:grid;gap:22px}.review-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:38px 34px 30px;position:relative;box-shadow:0 3px 14px rgba(24,48,62,.035)}.quote-mark{position:absolute;right:28px;top:18px;color:#e1dfda;font-family:'Playfair Display',serif;font-size:80px;line-height:1}.review-card p{font-size:25px;line-height:1.55;color:#4c565c;margin:25px 0 30px;padding-right:12px}.reviewer{border-top:1px solid #e7e3dc;padding-top:22px;display:grid;gap:6px;font-size:18px}.reviewer strong{font-size:20px;color:#2d5c78}.reviewer span{color:#78848b}.booking{background:var(--blue);color:#fff;padding-top:92px;padding-bottom:92px}.booking-copy h2{font-size:58px;line-height:1.02;margin-bottom:20px}.booking-copy p{font-size:20px;line-height:1.5;color:#d5e0e5;margin:0 0 36px}.booking-form{background:#fff;border-radius:22px;padding:30px;color:var(--text)}.booking label{display:block;font-size:14px;font-weight:600;color:#68777e;margin-bottom:18px}.booking input,.booking select{width:100%;height:56px;border:1px solid #dfe3e4;border-radius:10px;background:#fff;padding:0 12px;margin-top:9px;color:#263f50}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full{width:100%;margin-top:4px;padding:19px 18px;font-size:16px}.location{background:#fff;padding:0}.location-copy{padding:90px 38px 50px}.location-copy h2{font-size:56px;margin-bottom:20px}.location-copy>p{font-size:18px;line-height:1.75;color:#69767d;margin:0 0 20px}.location-copy .address{font-size:15px;color:#6f787c}.maps-btn{padding:17px 25px;font-size:14px;margin-top:7px}.map-box{height:480px}.map-box iframe{border:0;width:100%;height:100%}footer{background:var(--blue);color:#d7e0e5;padding:76px 38px 110px;font-size:15px}.footer-brand{font-size:46px;color:#fff;margin-bottom:17px}.footer-brand+p{margin:0 0 40px;color:#d2dde3;font-size:17px}.footer-line{height:1px;background:rgba(255,255,255,.18);margin:48px 0 28px}footer p{margin:0 0 12px;line-height:1.5}.whatsapp{position:fixed;right:28px;bottom:28px;width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;z-index:45;font-size:37px;box-shadow:0 14px 32px rgba(0,0,0,.22)}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:80;display:none;align-items:center;justify-content:center;padding:20px}.lightbox.open{display:flex}.lightbox img{max-width:95%;max-height:90%;object-fit:contain}.lightbox button{position:absolute;right:20px;top:15px;background:none;border:0;color:#fff;font-size:36px}@media(max-width:760px){.topbar{height:100px;padding:0 36px}.logo{font-size:28px}.languages{height:52px}.languages button{font-size:15px;padding:13px 13px}.menu{margin-left:18px}.mobile-menu{top:100px;padding-left:30px;padding-right:30px}.hero{height:720px;min-height:0;max-height:none}.hero-content{left:36px;right:36px;bottom:62px}.hero h1{font-size:56px;letter-spacing:-1.5px}.hero p{font-size:47px;margin:10px 0 34px}.location-pill{font-size:12px;letter-spacing:2.3px;padding:12px 15px;margin-bottom:22px}.hero-buttons{gap:18px}.btn{padding:19px 28px;font-size:17px}.section{padding:90px 42px}.section h2{font-size:52px}.intro-photo{height:480px}.stay-grid{gap:16px}.house-photo{height:480px}.gallery-mini{grid-template-rows:repeat(3,180px);gap:14px}.amenities{gap:16px}.amenities div{height:205px;border-radius:22px}.comfort h2{font-size:52px}.reviews-head h2{font-size:52px}.reviews-score{gap:18px}.reviews-score>strong{font-size:68px}.reviews-score b{font-size:18px}.reviews-score small{font-size:15px}.review-card p{font-size:22px}.booking-copy h2{font-size:50px}.whatsapp{width:78px;height:78px;right:28px;bottom:26px}.location-copy{padding:82px 42px 48px}}@media(max-width:430px){.topbar{height:86px;padding:0 22px}.logo{font-size:24px}.languages{height:44px}.languages button{font-size:12px;padding:10px 9px}.menu{margin-left:11px;width:33px}.menu span{width:29px;height:2px}.mobile-menu{top:86px}.hero{height:665px}.hero-content{left:27px;right:27px;bottom:48px}.hero h1{font-size:47px}.hero p{font-size:39px;margin-bottom:28px}.location-pill{font-size:10px;letter-spacing:1.7px;padding:10px 12px}.hero-buttons{gap:13px}.btn{padding:17px 20px;font-size:15px}.section{padding:76px 27px}.section h2,.comfort h2,.reviews-head h2{font-size:37px}.house-photo{height:360px;border-radius:18px}.gallery-mini{grid-template-rows:repeat(3,112px);gap:10px}.gallery-mini img{border-radius:14px}.amenities{gap:10px}.amenities div{height:158px;border-radius:17px;gap:18px}.amenities span{font-size:28px}.amenities b{font-size:14px}.reviews{padding-top:55px}.reviews-head{margin-bottom:35px}.reviews-head h2{margin-bottom:24px}.reviews-score{gap:14px}.reviews-score>strong{font-size:52px}.stars.big{font-size:17px}.reviews-score b{font-size:15px}.reviews-score small{font-size:12px}.review-list{gap:16px}.review-card{padding:26px 24px 22px;border-radius:18px}.review-card p{font-size:17px;line-height:1.6;margin:18px 0 22px}.quote-mark{font-size:58px}.reviewer{padding-top:15px;font-size:13px}.reviewer strong{font-size:15px}.booking-copy h2{font-size:39px}.booking-copy p{font-size:14px}.booking{padding-top:70px;padding-bottom:70px}.location-copy{padding:68px 27px 38px}.location-copy h2{font-size:36px}.whatsapp{width:70px;height:70px;font-size:31px;right:26px;bottom:26px}.intro-photo{height:390px}.intro-text{font-size:15px}.stats strong{font-size:21px}.stats span{font-size:7px}.ticker{height:42px;font-size:9px}.booking-form{padding:20px}.location-copy>p{font-size:14px}.footer-brand{font-size:34px}}@media(min-width:761px){.hero-content{max-width:850px;left:max(8vw,70px)}.section{padding-left:max(8vw,70px);padding-right:max(8vw,70px)}.intro{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.intro-photo{margin:0;height:560px}.intro-copy{max-width:600px}.stay-grid{max-width:1100px}.house-photo{height:580px}.gallery-mini{height:580px;grid-template-rows:repeat(3,1fr)}.comfort .amenities{max-width:920px;margin:auto}.booking{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.booking-form{max-width:620px}.location{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.location-copy{padding:95px max(8vw,70px)}.map-box{height:auto;min-height:560px}footer{padding-left:max(8vw,70px);padding-right:max(8vw,70px)}}
/* 2026-09-01 FIX: blocco galleria isolato per evitare sovrapposizioni */
#gallery.stay{display:block;position:relative;clear:both;overflow:visible;isolation:isolate}
#gallery .stay-grid{display:grid;position:relative;clear:both;overflow:visible;align-items:stretch}
#gallery .house-photo,#gallery .gallery-mini{position:relative;float:none;clear:none;min-width:0;overflow:hidden}
#gallery .house-photo img,#gallery .gallery-mini img{position:static!important;transform:none!important;margin:0!important}
#comfort{position:relative;clear:both;margin:0;z-index:1}
@media(max-width:760px){
  #gallery .stay-grid{grid-template-columns:1fr!important;gap:16px!important}
  #gallery .house-photo{height:480px!important}
  #gallery .gallery-mini{display:grid!important;grid-template-columns:1fr 1fr!important;grid-template-rows:repeat(3,180px)!important;gap:14px!important;height:auto!important;overflow:visible!important}
  #gallery .gallery-mini img{width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;object-fit:cover!important;display:block!important}
}
@media(max-width:430px){
  #gallery{padding-bottom:76px!important}
  #gallery .stay-grid{grid-template-columns:1fr!important;gap:14px!important}
  #gallery .house-photo{height:390px!important}
  #gallery .gallery-mini{grid-template-columns:1fr 1fr!important;grid-template-rows:repeat(3,112px)!important;gap:10px!important}
}
/* HOME HERO FIX: mostra tutta la composizione dell'arco su mobile */
@media(max-width:430px){
  .hero>img{
    object-fit:fill;
    object-position:center center;
    transform:none;
  }
}

/* FIX FINALE: navigazione alle sezioni e form prenotazione su mobile */
section[id]{scroll-margin-top:108px}
.form-grid,.form-grid label{min-width:0}
.booking-form input,.booking-form select{min-width:0;max-width:100%}
@media(max-width:760px){
  section[id]{scroll-margin-top:100px}
  .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:430px){
  section[id]{scroll-margin-top:86px}
}
