
:root{--sage:#5c6b4f;--sage2:#8a9a7b;--cream:#faf6ee;--broom:#e3b23c;--ink:#2d2a24;--mut:#6e685d;--line:#e7dfd0}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:400 17px/1.65 "Nunito Sans",system-ui,sans-serif;overflow-x:hidden}
img{max-width:100%;display:block}a{color:inherit}
h1,h2,h3{font-family:Lora,Georgia,serif;font-weight:600;line-height:1.12;margin:0 0 .5em}em{color:var(--sage);font-weight:500}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.kick{color:var(--sage);font-weight:800;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .8em}
.btn{display:inline-flex;justify-content:center;align-items:center;background:var(--sage);color:#fff;border:0;border-radius:40px;padding:.9em 1.6em;font:800 .95rem "Nunito Sans";text-decoration:none;cursor:pointer;transition:.2s}.btn:hover{background:#465239}
.btn.ghost{background:none;border:2px solid var(--sage);color:var(--sage)}.btn.ghost:hover{background:var(--sage);color:#fff}.full{width:100%}
.hdr{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:30px;padding:12px 28px;background:rgba(250,246,238,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto}.logo span{font:600 1.35rem Lora;line-height:1.05;display:flex;flex-direction:column}.logo small{font:600 .7rem "Nunito Sans";color:var(--mut);letter-spacing:.08em;text-transform:uppercase}
.nav{display:flex;gap:26px}.nav a{text-decoration:none;font-weight:600}.nav a.on,.nav a:hover{color:var(--sage);text-decoration:underline;text-decoration-color:var(--broom);text-decoration-thickness:3px;text-underline-offset:6px}
.hdr-cta{background:var(--broom);color:#2d2a24;text-decoration:none;font-weight:800;padding:.55em 1.2em;border-radius:40px}
.burger{display:none;background:none;border:0;width:40px;height:40px;position:relative;cursor:pointer}.burger i{position:absolute;left:9px;right:9px;height:2px;background:var(--ink);transition:.3s}.burger i:first-child{top:15px}.burger i:last-child{top:23px}
.nav-open .burger i:first-child{transform:translateY(4px) rotate(45deg)}.nav-open .burger i:last-child{transform:translateY(-4px) rotate(-45deg)}
.hero{position:relative;padding:28px 22px 0}
.hero-img{height:78vh;min-height:520px;border-radius:28px;overflow:hidden;max-width:1400px;margin:0 auto}.hero-img img{width:100%;height:100%;object-fit:cover}
.hero-card{position:relative;margin-top:-230px;z-index:2}
.hero-card>*{max-width:760px}.hero-card .kick,.hero-card h1{color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.35)}.hero-card h1{font-size:clamp(2.2rem,5vw,3.9rem)}.hero-card h1 em{color:#fde6a8}
.search{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end;background:#fff;border-radius:20px;padding:18px;box-shadow:0 20px 50px rgba(45,42,36,.15);max-width:960px!important}
.search label{font-size:.78rem;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.search input,.search select,.bk-form input,.bk-form select,.bk-form textarea{display:block;width:100%;margin-top:4px;padding:.75em .8em;border:1.5px solid var(--line);border-radius:12px;font:400 1rem "Nunito Sans";background:var(--cream);color:var(--ink)}
.tried :invalid{border-color:#c0392b!important}
.search .ok{grid-column:1/-1;margin:0;background:#eef3e8;border-radius:12px;padding:10px 14px;font-size:.95rem}.search .ok a{color:var(--sage);font-weight:800}.ok small{color:var(--mut)}
.perks{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding-top:70px;padding-bottom:40px}.perks div{display:flex;flex-direction:column;background:#fff;border-radius:18px;padding:22px}.perks span{font-size:1.7rem}.perks small{color:var(--mut)}
.about{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding-top:60px;padding-bottom:100px}.about h2{font-size:clamp(1.9rem,3.2vw,2.7rem)}.about p{color:var(--mut)}
.about-img{position:relative;padding-bottom:70px}.about-img img{border-radius:22px;object-fit:cover}.about-img img:first-child{width:85%;aspect-ratio:4/3}
.about-img img:last-child{position:absolute;right:0;bottom:0;width:48%;aspect-ratio:1;border:8px solid var(--cream)}
.reviews{background:var(--sage);color:#fff;padding:90px 0}.rev-hd{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:12px;margin-bottom:40px}.rev-hd h2{font-size:2.6rem;margin:0}
.score b{font:600 2rem Lora;color:var(--broom);margin-right:6px}
.ex{display:inline-block;background:rgba(255,255,255,.18);border:1px dashed rgba(255,255,255,.6);border-radius:6px;padding:0 .5em;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.rev{margin:0;background:#fff;color:var(--ink);border-radius:20px;padding:26px;position:relative}.rev .ex{position:absolute;top:16px;right:16px;background:#fff6dc;color:#8a6a10;border-color:#e3b23c}
.stars{color:var(--broom);letter-spacing:2px}.rev blockquote{margin:12px 0;font:500 italic 1.08rem/1.55 Lora}.rev figcaption{color:var(--mut);font-weight:700;font-size:.9rem}
.phead{padding:70px 0 40px;background:linear-gradient(180deg,#f1ead9,var(--cream))}.phead h1{font-size:clamp(2.4rem,5vw,4rem)}.phead p:not(.kick){color:var(--mut);max-width:640px}
.rooms{display:grid;gap:34px;padding-top:30px;padding-bottom:70px}
.room{display:grid;grid-template-columns:1.1fr 1fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 10px 30px rgba(45,42,36,.06)}
.room:nth-child(even) .room-img{order:2}
.room-img{padding:0;border:0;cursor:zoom-in;min-height:320px;background:var(--line)}.room-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.room-img:hover img{transform:scale(1.04)}
.room-body{padding:36px}.room-body h2{font-size:2rem}.room-body p{color:var(--mut)}
.feats{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.feats li{background:var(--cream);border-radius:30px;padding:.3em .9em;font-size:.88rem;font-weight:600}
.room-ft{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px}.price{margin:0}.price b{font:600 1.7rem Lora;color:var(--sage)}.price small{display:block;color:var(--mut);font-size:.8rem}
.servizi{padding-bottom:90px}.servizi h2{font-size:2rem}.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.sgrid span{background:#fff;border-radius:14px;padding:14px 16px;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.chip{border:2px solid var(--line);background:#fff;border-radius:30px;padding:.4em 1.1em;font:800 .9rem "Nunito Sans";cursor:pointer;color:var(--ink)}.chip.on,.chip:hover{background:var(--sage);border-color:var(--sage);color:#fff}
.atts{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding-top:30px;padding-bottom:60px}.att[hidden]{display:none}
.att{background:#fff;border-radius:22px;overflow:hidden}.att-img{position:relative;aspect-ratio:4/3}.att-img img{width:100%;height:100%;object-fit:cover}
.dist{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.95);border-radius:30px;padding:.25em .8em;font-size:.82rem;font-weight:800}
.att-b{padding:22px}.att-b h3{font-size:1.4rem}.att-b p{color:var(--mut);margin:0;font-size:.97rem}
.tipbox{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;background:#f1ead9;border-radius:24px;padding:36px 40px;margin-bottom:80px}.tipbox h2{font-size:1.9rem;margin-bottom:.2em}.tipbox p{margin:0;color:var(--mut);max-width:620px}
.book{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:start;padding-top:30px;padding-bottom:80px}
.cal-card,.bk-form{background:#fff;border-radius:24px;padding:28px;box-shadow:0 10px 30px rgba(45,42,36,.06)}
.cal-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.cal-hd b{font:600 1.3rem Lora}.cal-nav{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:none;font-size:1.3rem;cursor:pointer;color:var(--ink)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal-dow span{text-align:center;font-size:.78rem;font-weight:800;color:var(--mut);padding:6px 0}
.cal-grid button{aspect-ratio:1;border:0;border-radius:10px;background:#eef3e8;font:700 .95rem "Nunito Sans";cursor:pointer;color:var(--ink)}.cal-grid button:hover:not(:disabled){background:var(--sage2);color:#fff}
.cal-grid button.past{background:none;color:#c9c1b2;cursor:default}.cal-grid button.busy{background:#f6e3df;color:#b9837a;text-decoration:line-through;cursor:not-allowed}
.cal-grid button.range{background:#fbeec6}.cal-grid button.sel,.cal-grid button.sel:hover{background:var(--broom)!important;color:#2d2a24!important}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px;font-size:.85rem;color:var(--mut)}.lg{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}.lg.free{background:#eef3e8}.lg.busy{background:#f6e3df}.lg.sel{background:var(--broom)}
.hint{font-size:.88rem;color:var(--mut);margin:10px 0 0}
.bk-form label{display:block;font-weight:700;font-size:.9rem;margin-bottom:14px}.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.demo-note{background:#fff6dc;border-radius:12px;padding:10px 14px;font-size:.9rem;margin-bottom:18px}
.quote-box{background:var(--cream);border-radius:14px;padding:16px;margin-bottom:18px;color:var(--mut)}.quote-box div{display:flex;justify-content:space-between;color:var(--ink)}.quote-box .disc{color:var(--sage)}.quote-box .tot{border-top:1px solid var(--line);margin-top:8px;padding-top:8px;font-size:1.15rem}.quote-box small{display:block;margin-top:6px}
.ok{background:#eef3e8;border-radius:12px;padding:14px;margin-top:14px}.bk-form .ok small{display:block}
.ftr{background:#2f3629;color:#cfd4c5;padding:60px 0 26px;margin-top:20px}.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}.flogo{font:600 1.7rem Lora;color:#fff;margin:0 0 .3em}.ftr h4{color:var(--broom);margin:0 0 8px}.fnote{margin-top:36px;font-size:.8rem;color:#98a08c}
@media (max-width:920px){
 .hdr{padding:10px 16px;gap:10px}.burger{display:block}
 .nav{position:fixed;top:62px;left:0;right:0;flex-direction:column;gap:0;background:var(--cream);padding:8px 22px 20px;border-bottom:1px solid var(--line);opacity:0;pointer-events:none;transform:translateY(-8px);transition:.3s}
 .nav a{padding:13px 0;border-bottom:1px solid var(--line);font-size:1.1rem}.nav-open .nav{opacity:1;pointer-events:auto;transform:none}
 .hero{padding:12px 12px 0}.hero-img{height:60vh;min-height:420px;border-radius:20px}.hero-card{margin-top:-190px}
 .search{grid-template-columns:1fr 1fr}.search .btn{grid-column:1/-1}
 .perks,.sgrid{grid-template-columns:1fr 1fr}.about,.book{grid-template-columns:1fr;gap:40px}.rev-grid,.atts{grid-template-columns:1fr 1fr}
 .room{grid-template-columns:1fr}.room:nth-child(even) .room-img{order:0}.room-img{min-height:0;aspect-ratio:16/10}.fgrid{grid-template-columns:1fr}
}
@media (max-width:560px){.hero-card{margin-top:22px;padding:0 6px}.hero-card .kick{color:var(--sage);text-shadow:none}.hero-card h1{font-size:2.1rem;color:var(--ink);text-shadow:none}.hero-card h1 em{color:var(--sage)}.hero-img{height:52vh;min-height:340px}.search{grid-template-columns:1fr}.perks{grid-template-columns:1fr 1fr;gap:10px}.perks div{padding:16px}
 .rev-grid,.atts,.sgrid{grid-template-columns:1fr}.room-body{padding:24px}.g2{grid-template-columns:1fr}.cal-card,.bk-form{padding:18px}.tipbox{padding:26px}.hdr-cta{padding:.5em .9em;font-size:.9rem}.logo small{display:none}}

.lbx{position:fixed;inset:0;z-index:9500;background:rgba(10,10,12,.94);display:flex;align-items:center;justify-content:center;padding:40px}.lbx[hidden]{display:none}
.lbx figure{margin:0;text-align:center;max-width:100%}.lbx img{max-height:80vh;max-width:100%;width:auto;margin:0 auto;display:block}.lbx figcaption{color:#eee;margin-top:12px;font-size:.9rem}
.lbx-x{position:absolute;top:10px;right:16px;font-size:2.6rem;color:#fff;background:none;border:0;cursor:pointer;line-height:1}
.lbx-n{position:absolute;top:50%;transform:translateY(-50%);font-size:3rem;color:#fff;background:rgba(255,255,255,.08);border:0;cursor:pointer;width:52px;height:64px;border-radius:8px}.lbx-p{left:8px}.lbx-nx{right:8px}
@media (max-width:600px){.lbx{padding:8px}.lbx-n{top:auto;bottom:16px;transform:none}}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s,transform .9s}.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
