/* Font privacy-safe: nessuna chiamata a Google Fonts.
   Per una resa identica all'originale inserire i file .woff2 nella cartella /fonts
   con i nomi indicati sotto. In assenza dei file, il browser userà eventuali font locali
   installati o i fallback di sistema. */
@font-face{font-family:'Jost';src:url('../fonts/jost-regular.woff2') format('woff2'),local('Jost Regular'),local('Jost');font-weight:300 400;font-style:normal;font-display:swap}
@font-face{font-family:'Jost';src:url('../fonts/jost-medium.woff2') format('woff2'),local('Jost Medium'),local('Jost');font-weight:500 700;font-style:normal;font-display:swap}
@font-face{font-family:'Playfair Display';src:url('../fonts/playfair-display-regular.woff2') format('woff2'),local('Playfair Display Regular'),local('Playfair Display');font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:'Playfair Display';src:url('../fonts/playfair-display-italic.woff2') format('woff2'),local('Playfair Display Italic'),local('Playfair Display');font-weight:400 500;font-style:italic;font-display:swap}
:root {
  --ink:#0f0e0b;--cream:#f7f3ec;--warm:#faf7f2;
  --stone:#b5a48a;--terra:#8b4513;--sage:#4a6741;--muted:#6b6456;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Jost','Avenir Next','Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--cream);color:var(--ink);overflow-x:hidden}
img{display:block}

/* LANG */
.lang-bar{display:flex;align-items:center;gap:4px}
.lang-btn{background:none;border:none;cursor:pointer;font-size:.85rem;padding:.3rem .5rem;color:rgba(255,255,255,.5);font-family:'Jost','Avenir Next','Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,sans-serif;transition:color .2s;border-radius:3px;line-height:1;letter-spacing:.03em}
.lang-btn:hover{color:rgba(255,255,255,.8)}
.lang-btn.active{color:#fff;background:rgba(255,255,255,.15)}
.lang-sep{color:rgba(255,255,255,.2);font-size:.65rem}

/* NAV */
#nav{position:fixed;inset:0 0 auto 0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:1rem 3rem;transition:background .4s;background:rgba(15,14,11,.45);backdrop-filter:blur(4px)}
#nav.opaque{background:rgba(15,14,11,.93);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.nav-brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.nav-logo-wrap{width:44px;height:44px;border-radius:50%;background:transparent;display:flex;align-items:center;justify-content:center;overflow:visible;flex-shrink:0}
.nav-logo-wrap img{width:40px;height:40px;object-fit:contain;border-radius:50%;filter:drop-shadow(0 1px 4px rgba(0,0,0,.3))}
.nav-brand span{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.15rem;color:#fff;letter-spacing:.08em}
.nav-links{display:flex;gap:2rem;list-style:none}
.nav-links a{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.95);text-decoration:none;transition:color .2s;text-shadow:0 1px 4px rgba(0,0,0,.5)}
.nav-links a:hover{color:var(--stone)}
.nav-right{display:flex;align-items:center;gap:1.5rem}
.nav-cta{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;padding:.55rem 1.4rem;border:1px solid rgba(255,255,255,.4);color:#fff;text-decoration:none;transition:background .2s;white-space:nowrap}
.nav-cta:hover{background:rgba(255,255,255,.1)}

/* HERO */
.hero{position:relative;height:100vh;min-height:680px;display:flex;align-items:flex-end;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:zoomOut 16s ease-out forwards}
@keyframes zoomOut{to{transform:scale(1)}}
.hero-grad{position:absolute;inset:0;background:linear-gradient(170deg,rgba(15,14,11,.05) 0%,rgba(15,14,11,.75) 100%)}
.hero-body{position:relative;z-index:2;padding:14vh 4rem 3rem;max-width:760px;opacity:0;transform:translateY(32px);animation:rise 1s .4s forwards}
@keyframes rise{to{opacity:1;transform:translateY(0)}}
.hero-tag{font-size:.62rem;letter-spacing:.35em;text-transform:uppercase;color:var(--stone);margin-bottom:1rem}
.hero h1{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:clamp(3.2rem,7vw,6.5rem);font-weight:400;line-height:1.04;color:#fff;margin-bottom:1.6rem;text-shadow:0 2px 12px rgba(0,0,0,.4)}
.hero h1 em{font-style:italic;color:var(--stone)}
.hero-sub{font-size:.88rem;line-height:1.9;color:rgba(255,255,255,.95);max-width:520px;margin-bottom:2.8rem;font-weight:300;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}
.btn{display:inline-block;text-decoration:none;font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;padding:1rem 2.6rem;transition:.2s}
.btn-solid{background:var(--terra);color:#fff}
.btn-solid:hover{background:#6d3510}
.btn-ghost{border:1px solid rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.hero-scroll{position:absolute;right:3rem;bottom:3rem;z-index:2;display:flex;flex-direction:column;align-items:center;gap:.5rem;color:rgba(255,255,255,.5);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;opacity:0;animation:rise 1s 1.2s forwards}
.hero-scroll::after{content:'';width:1px;height:48px;background:linear-gradient(to bottom,rgba(255,255,255,.5),transparent)}

/* STRIP */
.strip{background:var(--ink);display:grid;grid-template-columns:repeat(4,1fr)}
.strip-item{padding:2.4rem 1.5rem;text-align:center;border-right:1px solid rgba(255,255,255,.07);opacity:0;transform:translateY(16px);transition:.6s}
.strip-item:last-child{border-right:none}
.strip-item.in{opacity:1;transform:none}
.strip-num{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:3rem;color:var(--stone);line-height:1;display:block}
.strip-label{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.38);margin-top:.4rem;display:block}

/* SHARED */
.eyebrow{font-size:.6rem;letter-spacing:.38em;text-transform:uppercase;color:var(--terra);margin-bottom:1.2rem;font-weight:500}
.display{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:clamp(2rem,3.5vw,3.2rem);font-weight:400;line-height:1.18;color:var(--ink);margin-bottom:1.8rem}
.display em{font-style:italic;color:var(--sage)}
.body-text{font-size:.84rem;line-height:1.95;color:var(--muted);max-width:560px}
.pullquote{padding-left:1.6rem;border-left:2px solid var(--stone);margin:2.4rem 0}
.pullquote p{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.25rem;font-style:italic;color:var(--ink);line-height:1.55}
.rule{display:flex;align-items:center;gap:1.4rem;margin:1.8rem 0}
.rule::before,.rule::after{content:'';flex:1;height:1px;background:var(--stone);opacity:.28}
.rule span{font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--stone);white-space:nowrap}

/* MANIFESTO */
.manifesto{background:var(--warm);padding:9rem 4rem;display:grid;grid-template-columns:1fr 1fr;gap:7rem;align-items:center}
.manifesto-img-wrap{position:relative}
.manifesto-img-wrap img{width:100%;height:620px;object-fit:cover}
.manifesto-badge{position:absolute;top:2.5rem;left:-1.8rem;background:var(--ink);color:var(--stone);font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:3.2rem;font-weight:400;padding:1rem 1.3rem;line-height:1.1;writing-mode:vertical-rl;letter-spacing:.08em}
.manifesto-border{position:absolute;bottom:-1.8rem;right:-1.8rem;width:160px;height:160px;border:1px solid var(--stone);opacity:.4;z-index:-1}

/* GALLERY */
.gallery-section{background:var(--cream);padding:6rem 0;overflow:hidden}
.gallery-head{padding:0 4rem 3rem;display:flex;justify-content:space-between;align-items:flex-end}
.gallery-reel{display:flex;gap:12px;padding:0 4rem;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;cursor:grab;touch-action:pan-x}
.gallery-reel:active{cursor:grabbing}
.gallery-reel::-webkit-scrollbar{height:3px}
.gallery-reel::-webkit-scrollbar-thumb{background:var(--stone)}
.reel-item{flex:0 0 380px;height:280px;scroll-snap-align:start;overflow:hidden;position:relative;cursor:pointer}
.reel-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.reel-item:hover img{transform:scale(1.05)}
.reel-cap{position:absolute;bottom:0;left:0;right:0;padding:1rem 1.2rem;background:linear-gradient(to top,rgba(0,0,0,.65),transparent);opacity:0;transition:opacity .3s}
.reel-item:hover .reel-cap{opacity:1}
.reel-cap span{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#fff}

/* EXPERIENCES 6-card grid */
.experiences{background:var(--ink);padding:8rem 4rem}
.experiences .display{color:#fff}
.exp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:4rem}
.exp-row2{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:3px}
.exp-card{position:relative;overflow:hidden;height:420px}
.exp-card img{width:100%;height:100%;object-fit:cover;transition:transform .7s,filter .7s;filter:brightness(.82) saturate(.9)}
.exp-card:hover img{transform:scale(1.07);filter:brightness(.55) saturate(.75)}
.exp-num{position:absolute;top:1.5rem;right:1.5rem;font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:4rem;color:rgba(181,164,138,.15);line-height:1}
.exp-info{position:absolute;bottom:0;left:0;right:0;padding:2rem;background:linear-gradient(to top,rgba(0,0,0,.85),transparent)}
.exp-info h3{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.6rem;color:#fff;margin-bottom:.3rem;font-weight:400}
.exp-info p{font-size:.65rem;letter-spacing:.1em;color:var(--stone)}
.exp-detail{position:absolute;inset:0;background:rgba(10,10,8,.92);padding:2.5rem 2rem;opacity:0;transition:opacity .4s;display:flex;flex-direction:column;justify-content:flex-end}
.exp-card:hover .exp-detail{opacity:1}
.exp-detail h3{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.5rem;color:#fff;margin-bottom:1rem}
.exp-detail ul{list-style:none}
.exp-detail ul li{font-size:.7rem;color:rgba(255,255,255,.65);padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.07);letter-spacing:.04em}
.exp-detail ul li::before{content:'— ';color:var(--stone)}
.exp-tagline{font-size:.7rem;letter-spacing:.1em;color:var(--stone);font-style:italic;margin-top:1rem}

/* ROOMS 3+3 */
.rooms-section{background:var(--warm);padding:8rem 4rem}
.rooms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:3.5rem}
.room-card{position:relative;overflow:hidden;cursor:pointer}
.room-card img{width:100%;height:340px;object-fit:cover;transition:transform .6s}
.room-card:hover img{transform:scale(1.05)}
.room-info{padding:1.2rem 0}
.room-info h4{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.25rem;font-weight:400;color:var(--ink);margin-bottom:.25rem}
.room-info p{font-size:.66rem;letter-spacing:.08em;color:var(--muted)}
.room-badge{position:absolute;top:1rem;left:1rem;background:var(--ink);color:var(--stone);font-size:.54rem;letter-spacing:.2em;text-transform:uppercase;padding:.3rem .7rem}

/* CALENDAR */
.calendar-section{background:var(--cream);padding:8rem 4rem}
.cal-layout{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start}
.cal-grid{margin-top:2rem}
.cal-months{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.cal-month{background:var(--warm);padding:1.5rem}
.cal-month-title{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1rem;color:var(--terra);margin-bottom:1rem;font-weight:400}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.5rem}
.cal-weekday{font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center;padding:.3rem 0}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-day{font-size:.7rem;text-align:center;padding:.45rem .2rem;color:var(--ink);border-radius:2px;cursor:default}
.cal-day.empty{color:transparent}
.cal-day.booked{background:rgba(139,69,19,.15);color:#8b4513;text-decoration:line-through}
.cal-day.available{background:rgba(74,103,65,.1);color:var(--sage)}
.cal-day.today{font-weight:600;border:1px solid var(--stone)}
.cal-legend{display:flex;gap:2rem;margin-top:1.5rem}
.cal-legend-item{display:flex;align-items:center;gap:.5rem;font-size:.65rem;color:var(--muted)}
.cal-legend-dot{width:12px;height:12px;border-radius:2px}
.dot-available{background:rgba(74,103,65,.25)}
.dot-booked{background:rgba(139,69,19,.2)}
.cal-info p{font-size:.84rem;line-height:1.9;color:var(--muted);margin-bottom:1.5rem}
.cal-cta-small{display:inline-flex;gap:.7rem;align-items:center;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);text-decoration:none;border-bottom:1px solid var(--terra);padding-bottom:.2rem}

.cal-guidance{margin-top:3rem;display:grid;grid-template-columns:1fr;gap:1rem;max-width:640px}
.cal-note-card{background:rgba(255,255,255,.38);border:1px solid rgba(161,96,48,.18);padding:1.35rem 1.45rem}
.cal-note-card h3{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.05rem;font-weight:400;color:var(--terra);margin-bottom:.85rem}
.cal-note-card ol,.cal-note-card ul{margin:0;padding-left:1.1rem;color:var(--muted);font-size:.78rem;line-height:1.85}
.cal-note-card li::marker{color:var(--terra)}
.cal-stay-info ul{columns:2;column-gap:2rem}

/* LOCATION */
.location-section{display:grid;grid-template-columns:1fr 1fr;min-height:600px}
.location-visual{position:relative;overflow:hidden}
.location-visual img{width:100%;height:100%;object-fit:cover;filter:brightness(.75) saturate(.85)}
.location-pin{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff}
.pin-dot{width:64px;height:64px;border-radius:50%;border:1px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin:0 auto 1.2rem;animation:ripple 3s infinite}
@keyframes ripple{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.2)}60%{box-shadow:0 0 0 22px rgba(255,255,255,0)}}
.location-pin h3{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.9rem;margin-bottom:.4rem}
.location-pin p{font-size:.68rem;letter-spacing:.15em;color:rgba(255,255,255,.7)}
.location-content{background:var(--warm);padding:6rem;display:flex;flex-direction:column;justify-content:center}
.dist-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:2.4rem}
.dist-row{display:flex;align-items:center;gap:1rem;padding:1.1rem 0;border-bottom:1px solid rgba(0,0,0,.07)}
.dist-t{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.7rem;color:var(--terra);min-width:70px;line-height:1}
.dist-t small{display:block;font-family:'Jost','Avenir Next','Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.56rem;color:var(--stone);letter-spacing:.12em}
.dist-name{font-size:.74rem;letter-spacing:.05em;color:var(--ink)}

/* AMENITIES */
.amenities-section{background:var(--cream);padding:8rem 4rem}
.amen-layout{display:grid;grid-template-columns:1fr 1fr;gap:7rem;align-items:start}
.amen-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:3rem}
.amen-item{padding:1.4rem 1rem;border-bottom:1px solid rgba(0,0,0,.07);border-right:1px solid rgba(0,0,0,.07);opacity:0;transform:translateY(12px);transition:.5s}
.amen-item:nth-child(2n){border-right:none}
.amen-item.in{opacity:1;transform:none}
.amen-icon{width:22px;height:22px;color:var(--terra);margin-bottom:.6rem}
.amen-icon svg{width:100%;height:100%}
.amen-name{font-size:.72rem;font-weight:500;letter-spacing:.07em;color:var(--ink)}
.amen-desc{font-size:.63rem;color:var(--muted);margin-top:.15rem}
.amen-photo{position:sticky;top:110px}
.amen-photo img{width:100%;height:580px;object-fit:cover}
.amen-photo-cap{margin-top:.8rem;font-size:.6rem;letter-spacing:.18em;color:var(--stone);text-transform:uppercase;text-align:right}

/* CTA */
.cta-section{background:var(--sage);padding:9rem 4rem;text-align:center;position:relative;overflow:hidden}
.cta-section::before{content:'VILLA ALLE RANE';position:absolute;font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:16vw;color:rgba(255,255,255,.04);top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none}
.cta-section .eyebrow{color:rgba(255,255,255,.55)}
.cta-section .display{color:#fff;text-align:center}
.cta-sub{font-size:.84rem;color:rgba(255,255,255,.62);max-width:520px;margin:0 auto 3rem;line-height:1.85}
.cta-pills{display:flex;justify-content:center;gap:1.2rem;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:.7rem;padding:1rem 2.4rem;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;transition:.2s}
.pill-main{background:var(--terra);color:#fff}
.pill-main:hover{background:#6d3510}
.pill-outline{border:1px solid rgba(255,255,255,.3);color:#fff}
.pill-outline:hover{background:rgba(255,255,255,.12)}
.cta-note{margin-top:2.8rem;font-size:.6rem;color:rgba(255,255,255,.3);letter-spacing:.1em}

/* FOOTER */
footer{background:var(--ink);padding:4rem}
.footer-top{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:2rem;margin-bottom:3rem}
.footer-brand{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem}
.footer-logo-wrap{width:52px;height:52px;border-radius:50%;background:transparent;display:flex;align-items:center;justify-content:center;overflow:visible;flex-shrink:0}
.footer-logo-wrap img{width:48px;height:48px;object-fit:contain;border-radius:50%;filter:drop-shadow(0 1px 4px rgba(0,0,0,.4))}
.footer-brand span{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.8rem;color:var(--stone);letter-spacing:.08em}
.footer-addr{font-size:.68rem;color:rgba(255,255,255,.3);line-height:1.9;letter-spacing:.04em}
.footer-right{text-align:right}
.footer-nav{display:flex;justify-content:flex-end;gap:1.5rem;margin-bottom:1.8rem;list-style:none;flex-wrap:wrap}
.footer-nav a{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.35);text-decoration:none;transition:color .2s}
.footer-nav a:hover{color:var(--stone)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding-top:2rem;display:flex;justify-content:space-between;align-items:center}
.footer-social{display:flex;gap:1.2rem}
.social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.5);text-decoration:none;transition:border-color .2s,color .2s}
.social-link:hover{border-color:var(--stone);color:var(--stone)}
.social-link svg{width:18px;height:18px;fill:currentColor}
.footer-copy{font-size:.58rem;color:rgba(255,255,255,.18);letter-spacing:.1em}

/* LIGHTBOX */
.lb{display:none;position:fixed;inset:0;background:rgba(0,0,0,.96);z-index:500;align-items:center;justify-content:center;cursor:zoom-out}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:92vh;object-fit:contain}
.lb-close{position:absolute;top:1.5rem;right:2rem;color:#fff;font-size:2rem;background:none;border:none;cursor:pointer;font-family:'Playfair Display',Georgia,'Times New Roman',serif}

@media(max-width:960px){
  #nav{padding:1rem 1.5rem}
  .nav-links{display:none}
  .hero-body{padding:0 1.5rem 4rem}
  .manifesto,.amen-layout,.cal-layout{grid-template-columns:1fr;gap:3rem}
  .exp-grid,.exp-row2,.rooms-grid{grid-template-columns:1fr}
  .cal-months{grid-template-columns:1fr}
  .location-section{grid-template-columns:1fr}
  .location-visual{height:320px}
  .location-content{padding:3rem 1.5rem}
  .dist-grid{grid-template-columns:1fr}
  .strip{grid-template-columns:repeat(2,1fr)}
  .reel-item{flex:0 0 300px;height:220px}
  .footer-top{grid-template-columns:1fr}
  .footer-right{text-align:left}
  .footer-nav{justify-content:flex-start}
  .manifesto-badge{display:none}
  .footer-bottom{flex-direction:column;gap:1.5rem}
  .gallery-section,.experiences,.amenities-section,.cta-section,.rooms-section,.calendar-section{padding:5rem 1.5rem}
}

/* HOSTS */
.hosts-section{background:var(--ink);padding:8rem 4rem}
.hosts-section .eyebrow{color:rgba(255,255,255,.45)}
.hosts-section .display{color:#fff}
.hosts-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:4rem}
.host-card{display:flex;gap:2rem;align-items:flex-start;padding:2.5rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07)}
.host-photo-wrap{flex-shrink:0}
.host-photo-wrap img{width:90px;height:90px;border-radius:50%;object-fit:cover;border:2px solid var(--stone)}
.host-name{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.5rem;color:#fff;font-weight:400;margin-bottom:.3rem}
.host-role{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--stone);margin-bottom:1rem}
.host-bio{font-size:.8rem;line-height:1.9;color:rgba(255,255,255,.55);font-style:italic}
@media(max-width:960px){
  .hosts-grid{grid-template-columns:1fr}
  .hosts-section{padding:5rem 1.5rem}
  .host-card{flex-direction:column;gap:1.5rem}
}

/* HOSTS */
.hosts-section{background:var(--ink);padding:8rem 4rem}
.hosts-section .eyebrow{color:rgba(255,255,255,.45)}
.hosts-section .display{color:#fff}
.hosts-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:4rem}
.host-card{display:flex;gap:2rem;align-items:flex-start;padding:2.5rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07)}
.host-photo-wrap{flex-shrink:0}
.host-photo-wrap img{width:90px;height:90px;border-radius:50%;object-fit:cover;border:2px solid var(--stone)}
.host-name{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.5rem;color:#fff;font-weight:400;margin-bottom:.3rem}
.host-role{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--stone);margin-bottom:1rem}
.host-bio{font-size:.8rem;line-height:1.9;color:rgba(255,255,255,.55);font-style:italic}
@media(max-width:960px){
  .hosts-grid{grid-template-columns:1fr}
  .hosts-section{padding:5rem 1.5rem}
  .host-card{flex-direction:column;gap:1.5rem}
}

/* WHATSAPP */
.wa-float{
  position:fixed;bottom:2rem;right:2rem;z-index:300;
  width:56px;height:56px;border-radius:50%;
  background:#25D366;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 16px rgba(37,211,102,.45);
  text-decoration:none;
  animation:waPulse 2.5s ease-in-out infinite;
  transition:transform .2s;
}
.wa-float:hover{transform:scale(1.1)}
@keyframes waPulse{
  0%,100%{box-shadow:0 4px 16px rgba(37,211,102,.4)}
  50%{box-shadow:0 4px 28px rgba(37,211,102,.7)}
}
.wa-float svg{width:30px;height:30px;fill:#fff}
.social-link.wa-social{border-color:rgba(37,211,102,.3);color:#25D366}
.social-link.wa-social:hover{border-color:#25D366;color:#25D366}








/* DAY TRIPS */
.daytrips-section{background:var(--ink);padding:8rem 4rem}
.daytrips-section .eyebrow{color:rgba(255,255,255,.45)}
.daytrips-section .display{color:#fff}
.dt-intro{margin-bottom:3rem;max-width:680px;font-size:.82rem;line-height:1.9;color:rgba(255,255,255,.5)}
.dt-grid{margin-top:3rem;border-top:1px solid rgba(255,255,255,.07)}
.dt-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-bottom:1px solid rgba(255,255,255,.07);
}
.dt-card{
  display:flex;
  flex-direction:row;
  gap:1.2rem;
  align-items:flex-start;
  padding:1.6rem;
  border-right:1px solid rgba(255,255,255,.07);
  transition:background .2s;
}
.dt-card:last-child{border-right:none}
.dt-card:hover{background:rgba(255,255,255,.04)}
.dt-img-wrap{flex:0 0 90px;width:90px;height:90px;overflow:hidden;position:relative}
.dt-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.85) saturate(.8);transition:filter .3s}
.dt-card:hover .dt-img-wrap img{filter:brightness(1) saturate(1)}
.dt-num{position:absolute;top:0;left:0;background:rgba(0,0,0,.5);color:var(--stone);font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:.6rem;padding:.15rem .4rem;line-height:1.5;letter-spacing:.05em}
.dt-body{flex:1;min-width:0;overflow:hidden;padding-top:.1rem}
.dt-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.3rem;flex-wrap:nowrap}
.dt-name{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:.95rem;font-weight:400;color:#fff;white-space:nowrap}
.dt-dist{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:.8rem;color:var(--stone);white-space:nowrap}
.dt-time{font-size:.52rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3);display:block;margin-bottom:.4rem}
.dt-desc{font-size:.7rem;line-height:1.7;color:rgba(255,255,255,.45)}
@media(max-width:1000px){
  .dt-row{grid-template-columns:repeat(2,1fr)}
  .dt-card:nth-child(2){border-right:none}
  .dt-card:nth-child(3){border-top:1px solid rgba(255,255,255,.07);grid-column:1/-1}
}
@media(max-width:600px){
  .daytrips-section{padding:5rem 1.5rem}
  .dt-row{grid-template-columns:1fr}
  .dt-card{border-right:none}
  .dt-img-wrap{flex:0 0 80px;width:80px;height:80px}
}
/* COOKIE BANNER */
.cookie-banner{
  position:fixed;bottom:0;left:0;right:0;z-index:400;
  background:rgba(15,14,11,.97);
  border-top:1px solid rgba(255,255,255,.08);
  padding:1.2rem 3rem;
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  flex-wrap:wrap;
  transform:translateY(100%);
  transition:transform .4s ease;
  backdrop-filter:blur(8px);
}
.cookie-banner.show{transform:translateY(0)}
.cookie-text{font-size:.72rem;line-height:1.7;color:rgba(255,255,255,.6);max-width:700px}
.cookie-text a{color:var(--stone);text-decoration:underline;cursor:pointer}
.cookie-actions{display:flex;gap:.8rem;flex-shrink:0}
.cookie-btn{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;padding:.6rem 1.4rem;border:none;cursor:pointer;transition:background .2s;font-family:'Jost','Avenir Next','Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,sans-serif}
.cookie-accept{background:var(--terra);color:#fff}
.cookie-accept:hover{background:#6d3510}
.cookie-decline{background:transparent;color:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.15)}
.cookie-decline:hover{color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.3)}

/* PRIVACY MODAL */
.privacy-modal{
  display:none;position:fixed;inset:0;z-index:600;
  background:rgba(0,0,0,.85);
  align-items:center;justify-content:center;
  padding:2rem;
}
.privacy-modal.open{display:flex}
.privacy-box{
  background:var(--ink);
  border:1px solid rgba(255,255,255,.08);
  max-width:740px;width:100%;
  max-height:85vh;
  overflow-y:auto;
  padding:3rem;
  position:relative;
}
.privacy-box::-webkit-scrollbar{width:4px}
.privacy-box::-webkit-scrollbar-thumb{background:var(--stone)}
.privacy-close{
  position:absolute;top:1.2rem;right:1.5rem;
  background:none;border:none;color:rgba(255,255,255,.4);
  font-size:1.5rem;cursor:pointer;font-family:'Playfair Display',Georgia,'Times New Roman',serif;
  transition:color .2s;
}
.privacy-close:hover{color:#fff}
.privacy-box h2{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.6rem;color:#fff;font-weight:400;margin-bottom:.5rem}
.privacy-box .privacy-updated{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--stone);margin-bottom:2rem;display:block}
.privacy-box h3{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.1rem;color:#fff;font-weight:400;margin:1.8rem 0 .6rem}
.privacy-box p{font-size:.78rem;line-height:1.85;color:rgba(255,255,255,.5);margin-bottom:.8rem}
.privacy-box ul{font-size:.78rem;line-height:1.85;color:rgba(255,255,255,.5);padding-left:1.2rem;margin-bottom:.8rem}
.privacy-box ul li{margin-bottom:.3rem}
.privacy-box a{color:var(--stone)}
@media(max-width:600px){
  .cookie-banner{padding:1rem 1.5rem;flex-direction:column;align-items:flex-start}
  .privacy-box{padding:2rem 1.5rem}
}

/* Request form */
.request-card {
  margin: 42px auto 0;
  max-width: 980px;
  text-align: left;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(70,55,42,.14);
  border-radius: 28px;
  padding: clamp(22px, 4vw, 42px);
  box-shadow: 0 24px 70px rgba(50,35,20,.10);
  backdrop-filter: blur(8px);
}
.request-head { text-align: center; margin-bottom: 24px; }
.request-head h3 {
  font-family:'Playfair Display',Georgia,'Times New Roman',serif;
  font-size: clamp(1.7rem, 4vw, 2.55rem);
  font-weight: 500;
  color: var(--brown);
  margin: 6px 0 10px;
}
.request-head p:last-child {
  max-width: 680px;
  margin: 0 auto;
  color: var(--muted);
  line-height: 1.65;
}
.request-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.request-form label { display: flex; flex-direction: column; gap: 7px; }
.request-form label span {
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--brown);
  font-weight: 700;
}
.request-form input,
.request-form textarea {
  width: 100%;
  border: 1px solid rgba(70,55,42,.18);
  border-radius: 16px;
  background: rgba(255,255,255,.88);
  padding: 13px 14px;
  font: inherit;
  color: var(--ink);
  outline: none;
}
.request-form textarea { resize: vertical; min-height: 130px; }
.request-form input:focus,
.request-form textarea:focus {
  border-color: rgba(91,112,82,.6);
  box-shadow: 0 0 0 4px rgba(91,112,82,.12);
}
.request-form .full { grid-column: 1 / -1; }
.hidden-field { display: none; }
.privacy-check {
  flex-direction: row !important;
  align-items: flex-start;
  gap: 10px !important;
  background: rgba(255,255,255,.46);
  border-radius: 16px;
  padding: 13px 14px;
}
.privacy-check input { width: auto; margin-top: 4px; }
.privacy-check span {
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 500 !important;
  line-height: 1.45;
  color: var(--muted) !important;
}
.form-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin-top: 8px;
}
.form-submit,
.form-whatsapp {
  border: 0;
  border-radius: 999px;
  padding: 14px 24px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}
.form-submit { background: var(--brown); color: white; }
.form-whatsapp { background: rgba(91,112,82,.14); color: var(--brown); }
.form-note {
  text-align: center;
  color: var(--muted);
  font-size: .86rem;
  margin: 0;
}
.contact-email { font-weight: 700; }
@media (max-width: 760px) {
  .request-form { grid-template-columns: 1fr; }
  .request-card { border-radius: 22px; }
}

/* ── Tasto chiudi modulo richiesta ────────────────────────────────── */
.request-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: 1px solid rgba(70,55,42,.22);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  font-size: 1rem;
  color: var(--muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .18s, color .18s;
  padding: 0;
}
.request-close:hover { background: rgba(70,55,42,.1); color: var(--brown); }
.request-card { position: relative; }

/* ── Bottoni form identici ────────────────────────────────────────── */
.form-submit,
.form-whatsapp {
  background: var(--brown) !important;
  color: white !important;
  font-size: .95rem;
  letter-spacing: .03em;
  min-width: 200px;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  transition: background .18s, transform .12s;
}
.form-submit:hover,
.form-whatsapp:hover { background: var(--brown-dark, #6f3510) !important; transform: translateY(-1px); }

/* ── Copy email footer ────────────────────────────────────────────── */
.footer-email-wrap {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  position: relative;
}
.copy-email-btn {
  background: none;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 6px;
  color: inherit;
  cursor: pointer;
  font-size: .85rem;
  padding: .1rem .35rem;
  line-height: 1.4;
  opacity: .7;
  transition: opacity .18s;
}
.copy-email-btn:hover { opacity: 1; }
.copy-confirm {
  font-size: .78rem;
  color: #8fcb9b;
  opacity: 0;
  transition: opacity .25s;
  pointer-events: none;
}
.copy-confirm.show { opacity: 1; }

/* ── Barra collassata modulo ──────────────────────────────────────── */
.request-collapsed-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .5rem .25rem;
  font-family:'Playfair Display',Georgia,'Times New Roman',serif;
  font-size: 1.15rem;
  color: var(--brown);
}
.request-open-btn {
  background: var(--brown);
  color: white;
  border: none;
  border-radius: 999px;
  padding: .65rem 1.4rem;
  font-weight: 700;
  font-size: .9rem;
  cursor: pointer;
  transition: background .18s;
  white-space: nowrap;
}
.request-open-btn:hover { background: var(--brown-dark, #6f3510); }


/* REVIEWS */
.reviews-section{background:var(--cream);padding:8rem 4rem}
.review-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:3.2rem}
.review-card{background:var(--warm);border:1px solid rgba(139,69,19,.12);padding:1.6rem;min-height:220px;display:flex;flex-direction:column;justify-content:space-between}
.review-featured{grid-column:span 2;background:#fffaf3}
.review-score{font-family:'Jost',system-ui,sans-serif;font-size:.7rem;letter-spacing:.08em;margin-left:.5rem;color:var(--muted)}
.review-stars{color:var(--terra);letter-spacing:.08em;font-size:.85rem;margin-bottom:1rem}
.review-card p{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.05rem;line-height:1.55;color:var(--ink);font-style:italic}
.review-source{display:block;margin-top:1.4rem;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* AMENITIES EXTENDED */
.amen-more{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.5rem}
.amen-more-card{background:rgba(255,255,255,.38);border:1px solid rgba(139,69,19,.12);padding:1.15rem}
.amen-more-card h3{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.05rem;font-weight:400;color:var(--terra);margin-bottom:.55rem}
.amen-more-card p{font-size:.68rem;line-height:1.7;color:var(--muted)}

/* FAQ */
.faq-section{background:var(--warm);padding:8rem 4rem}
.faq-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:3rem}
.faq-item{background:var(--cream);border:1px solid rgba(139,69,19,.12);padding:1.2rem 1.35rem}
.faq-item summary{cursor:pointer;font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-size:1.05rem;color:var(--ink);list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';float:right;color:var(--terra);font-family:'Jost','Avenir Next','Segoe UI',system-ui,sans-serif}
.faq-item[open] summary::after{content:'–'}
.faq-item p{font-size:.75rem;line-height:1.8;color:var(--muted);margin-top:.85rem}

@media(max-width:1100px){
  .review-grid{grid-template-columns:repeat(2,1fr)}
  .amen-more{grid-template-columns:1fr}
}
@media(max-width:760px){
  .review-grid,.faq-list{grid-template-columns:1fr}
  .reviews-section,.faq-section{padding:5rem 1.5rem}
}


/* ── V21: menu mobile e rifiniture performance/UX ───────────────────── */
.mobile-menu-toggle{
  display:none;
  background:transparent;
  border:1px solid rgba(255,255,255,.32);
  border-radius:2px;
  width:42px;
  height:36px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  padding:0;
  flex-shrink:0;
}
.mobile-menu-toggle span{
  display:block;
  width:18px;
  height:1px;
  background:#fff;
  transition:transform .22s, opacity .22s;
}
#nav.menu-open .mobile-menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
#nav.menu-open .mobile-menu-toggle span:nth-child(2){opacity:0}
#nav.menu-open .mobile-menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media(max-width:960px){
  #nav{
    gap:.75rem;
    padding:.75rem 1rem;
  }
  .nav-brand span{
    font-size:1rem;
    letter-spacing:.05em;
  }
  .mobile-menu-toggle{
    display:flex;
    order:3;
  }
  .nav-right{
    margin-left:auto;
    gap:.7rem;
    order:2;
  }
  .nav-cta{
    padding:.5rem .9rem;
    font-size:.58rem;
  }
  .lang-bar{
    gap:1px;
  }
  .lang-btn{
    padding:.28rem .36rem;
    font-size:.72rem;
  }
  .lang-sep{
    display:none;
  }
  .nav-links{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:rgba(15,14,11,.97);
    border-top:1px solid rgba(255,255,255,.08);
    padding:1rem 1.25rem 1.15rem;
    grid-template-columns:1fr 1fr;
    gap:.2rem 1rem;
    box-shadow:0 14px 28px rgba(0,0,0,.28);
  }
  #nav.menu-open .nav-links{
    display:grid;
  }
  .nav-links li{
    list-style:none;
  }
  .nav-links a{
    display:block;
    padding:.75rem 0;
    font-size:.68rem;
    letter-spacing:.14em;
  }
  .hero{
    min-height:640px;
  }
  .hero-body{
    padding-top:7rem;
  }
  .hero-actions{
    gap:.7rem;
  }
  .btn{
    width:100%;
    max-width:320px;
    text-align:center;
    padding:.95rem 1.5rem;
  }
  .hero-scroll{
    display:none;
  }
}

@media(max-width:520px){
  #nav{
    padding:.65rem .8rem;
  }
  .nav-logo-wrap{
    width:38px;
    height:38px;
  }
  .nav-logo-wrap img{
    width:35px;
    height:35px;
  }
  .nav-brand span{
    font-size:.9rem;
  }
  .nav-cta{
    display:none;
  }
  .nav-right{
    gap:.45rem;
  }
  .mobile-menu-toggle{
    width:40px;
    height:34px;
  }
  .nav-links{
    grid-template-columns:1fr;
    padding:.75rem 1rem 1rem;
  }
  .hero h1{
    font-size:clamp(2.65rem,13vw,4rem);
  }
  .hero-sub{
    font-size:.82rem;
    line-height:1.75;
  }
  .gallery-head{
    padding:0 1.5rem 2rem;
    display:block;
  }
  .gallery-reel{
    padding:0 1.5rem;
  }
  .reel-item{
    flex-basis:82vw;
  }
  .cal-month{
    padding:1rem;
  }
  .request-collapsed-bar{
    flex-direction:column;
    align-items:flex-start;
  }
  .request-open-btn{
    width:100%;
  }
}

/* Riduzione movimento per utenti che la richiedono */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.001ms !important;
  }
}
