/* ===== Tema Residenza San Lorenzo — override di styles.css (ereditato) + componenti fedeli al WP =====
   Font: titoli Prata (serif), testo Roboto, accento script Great Vibes ("Welcome To"). */
:root{
  --bg:#ffffff; --ivory:#f7f8fa; --white:#fff;
  --text:#29292a; --espresso:#29292a;
  --blu:#1d3470; --blu-dark:#14224d;        /* navy: link, outline, accenti */
  --oro:#c79a5b; --oro-deep:#a87d3c;        /* oro caldo (tende/accenti foto) */
  --muted:#7c7770; --line:#e6e2da;
  --serif:"Prata",Georgia,"Times New Roman",serif;
  --sans:"Roboto",system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  --script:"Great Vibes",cursive;
  --book:#3a4a78; --book-deep:#1d3470;       /* barra/prenota navy come WP */
}
body{font-size:16.5px;color:#3a352f}
h1,h2,h3{font-weight:400;letter-spacing:.01em;color:var(--text)}

/* eyebrow letter-spaced come WP */
.eyebrow{font-size:.7rem;letter-spacing:.28em;font-weight:500}
.eyebrow--blue{color:var(--blu)} .eyebrow--gold{color:var(--oro-deep)}
.section-title{letter-spacing:.01em}

/* bottoni */
.btn{letter-spacing:.12em;text-transform:uppercase;font-size:.78rem}
.btn--book{background:var(--book)} .btn--book:hover{background:var(--book-deep)}
.btn--outline{border-color:var(--blu);color:var(--blu)} .btn--outline:hover{background:var(--blu);color:#fff}

/* HEADER scuro navy */
.header{background:#1b2030;border-bottom:1px solid rgba(255,255,255,.10);backdrop-filter:none}
.nav a{color:rgba(255,255,255,.86);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}
.nav a:hover{color:#fff;opacity:1}
.brand__logo{height:46px}
@media(max-width:820px){.brand__logo{height:38px}}
.lang-sel{background:transparent;color:#fff;border-color:rgba(255,255,255,.28)}
.lang-sel option{color:#29292a}
.nav-toggle span{background:#fff}
.mobile-nav{background:#1b2030;border-bottom-color:rgba(255,255,255,.1)}
.mobile-nav a{color:rgba(255,255,255,.9);border-bottom-color:rgba(255,255,255,.08)}
.mobile-nav__book{color:#9db4e6!important}

/* HERO — "Scopri Firenze" centrato */
.hero{min-height:min(92vh,840px);justify-content:center;text-align:center}
.hero__overlay{background:linear-gradient(to bottom,rgba(20,18,16,.45),rgba(20,18,16,.30) 40%,rgba(20,18,16,.55))}
.hero__content{padding-bottom:0;max-width:900px}
.hero__title{font-size:clamp(2.4rem,6.5vw,4.8rem);letter-spacing:.06em;text-shadow:0 2px 24px rgba(0,0,0,.4)}
.hero__sub{margin-left:auto;margin-right:auto}
.hero__actions{justify-content:center}

/* barra disponibilità navy come WP (4 campi) */
.hero-book{background:rgba(27,36,62,.92);border-top:0}
.hero-book__inner{padding:.3rem var(--pad-x)}
.hb-field{border-right:1px solid rgba(255,255,255,.15)}
.hb-field span{color:rgba(255,255,255,.6)}
.hb-field input,.hb-field select{color:#fff}
.hb-field select option{color:#29292a}
.hb-btn{margin:.6rem 0 .6rem 1.2rem;align-self:center}

/* WELCOME TO */
.welcome{max-width:860px;margin:0 auto;padding:var(--sec-y) var(--pad-x);text-align:center}
.welcome__eyebrow{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin:0 0 1.4rem}
.welcome__script{font-family:var(--script);font-size:clamp(2.2rem,5vw,3.4rem);color:var(--oro-deep);line-height:1;display:block}
.welcome__name{font-family:var(--serif);font-size:clamp(2rem,4.4vw,3rem);margin:.2rem 0 1.6rem}
.welcome__text{color:#5a544c;font-size:1.06rem;line-height:1.8;max-width:60ch;margin:0 auto 2rem}

/* LE CAMERE */
.rooms-sec{background:var(--ivory);padding:var(--sec-y) var(--pad-x)}
.rooms-sec__head{max-width:760px;margin:0 auto 2.6rem;text-align:center}
.rooms-sec__intro{color:#5a544c;line-height:1.8;margin-top:1rem}
.rooms-grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem}
@media(max-width:900px){.rooms-grid{grid-template-columns:repeat(2,1fr);gap:1.6rem}}
@media(max-width:560px){.rooms-grid{grid-template-columns:1fr}}
/* ingresso alternato: dispari da sinistra, pari da destra */
.rooms-grid.reveal-stagger>*{opacity:0;transform:translateX(70px);transition:opacity .85s cubic-bezier(.16,.7,.2,1),transform .9s cubic-bezier(.16,.7,.2,1)}
.rooms-grid.reveal-stagger>*:nth-child(odd){transform:translateX(-70px)}
.rooms-grid.reveal-stagger.in>*{opacity:1;transform:none}
.rcard{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}
.rcard:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(20,18,16,.12)}
.rcard__img{aspect-ratio:4/3;object-fit:cover;width:100%}
.rcard__body{padding:1.1rem 1.2rem 1.4rem;text-align:center}
.rcard__name{font-family:var(--serif);font-size:1.35rem;margin:0}
.rcard__rule{width:40px;height:2px;background:var(--oro);margin:.7rem auto .8rem;border:0}
.rcard__meta{color:var(--muted);font-size:.85rem;margin:0 0 .9rem}
.rcard__cta{color:var(--blu);font-weight:500;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}

/* VIVERE FIRENZE */
.vivere{max-width:var(--maxw);margin:0 auto;padding:var(--sec-y) var(--pad-x)}
.vivere__head{text-align:center;max-width:680px;margin:0 auto 2.4rem}
.vivere__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem}
.vtile{position:relative;border-radius:12px;overflow:hidden;min-height:240px;display:flex;align-items:flex-end;color:#fff;text-decoration:none}
.vtile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}
.vtile:hover img{transform:scale(1.06)}
.vtile__veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(15,13,11,.8),rgba(15,13,11,.05))}
.vtile__txt{position:relative;padding:1.1rem 1.2rem}
.vtile__txt h3{color:#fff;font-size:1.2rem;margin:0 0 .2rem}
.vtile__txt p{margin:0;font-size:.85rem;color:rgba(255,255,255,.85)}

/* DICONO DI NOI */
.reviews{background:#1b2030;color:#fff;padding:var(--sec-y) var(--pad-x);text-align:center}
.reviews h2{color:#fff}
.reviews .eyebrow{color:rgba(255,255,255,.6)}
.reviews__grid{max-width:var(--maxw);margin:2.4rem auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.4rem}
.review{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:1.6rem;text-align:left}
.review__stars{color:#e7b24a;letter-spacing:.15em;margin:0 0 .7rem}
.review__txt{color:rgba(255,255,255,.9);line-height:1.7;font-size:.96rem;margin:0 0 1rem}
.review__by{color:rgba(255,255,255,.6);font-size:.85rem;margin:0}

/* FAQ (native details) */
.faq{max-width:880px;margin:0 auto;padding:var(--sec-y) var(--pad-x)}
.faq__head{text-align:center;margin-bottom:2.2rem}
.faq details{border-top:1px solid var(--line);padding:.2rem 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.2rem .2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--blu);font-size:1.4rem;font-weight:300;flex:none}
.faq details[open] summary::after{content:"\2212"}
.faq__a{padding:0 .2rem 1.3rem;color:#5a544c;line-height:1.75;max-width:70ch}

/* sezione contatti: mantengo lo stile scuro ereditato */
.contact{background:#15192a}

/* ===== ANIMAZIONI scroll/entrance (entrance animation, no plugin) ===== */
/* reveal piu' ricco: sale + dissolve + micro-scala, con easing morbido */
.reveal{opacity:0;transform:translateY(42px) scale(.985);transition:opacity 1s cubic-bezier(.16,.7,.2,1),transform 1s cubic-bezier(.16,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* stagger: i figli di una griglia entrano a cascata */
.reveal-stagger>*{opacity:0;transform:translateY(34px);transition:opacity .85s cubic-bezier(.16,.7,.2,1),transform .85s cubic-bezier(.16,.7,.2,1)}
.reveal-stagger.in>*{opacity:1;transform:none}
.reveal-stagger.in>*:nth-child(1){transition-delay:.05s}
.reveal-stagger.in>*:nth-child(2){transition-delay:.15s}
.reveal-stagger.in>*:nth-child(3){transition-delay:.25s}
.reveal-stagger.in>*:nth-child(4){transition-delay:.35s}
.reveal-stagger.in>*:nth-child(5){transition-delay:.45s}
.reveal-stagger.in>*:nth-child(6){transition-delay:.55s}

/* foto che entrano con zoom-out (immagine dentro un contenitore che taglia) */
.rcard__img,.vtile img,.scard__img{transition:transform 1.2s cubic-bezier(.16,.7,.2,1)}
.reveal-stagger>*:not(.in) .rcard__img{transform:scale(1.12)}
.reveal-stagger.in .rcard__img{transform:scale(1)}

/* hero: titolo e sottotitolo entrano dall'alto al caricamento */
.hero__title{opacity:0;transform:translateY(30px);animation:heroUp 1.1s cubic-bezier(.16,.7,.2,1) .2s forwards}
.hero__sub{opacity:0;transform:translateY(24px);animation:heroUp 1.1s cubic-bezier(.16,.7,.2,1) .45s forwards}
@keyframes heroUp{to{opacity:1;transform:none}}
/* hero parallax: l'immagine scorre piu' lenta (gestito da anim.js con --par) */
.hero__img{will-change:transform;transform:translateY(var(--par,0px)) scale(1.06)}

/* FAQ: apertura morbida */
.faq details[open] .faq__a{animation:faqIn .5s ease}
@keyframes faqIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-stagger>*{opacity:1!important;transform:none!important;transition:none}
  .hero__title,.hero__sub{animation:none;opacity:1;transform:none}
  .hero__img{transform:scale(1.04)}
}

/* hero: inquadratura foto su mobile (mostra il letto) */
.hero__img{object-position:center 48%}
@media(max-width:480px){.hero__title{font-size:2.15rem;letter-spacing:.04em}.hero__sub{font-size:.96rem}}

/* ===== BARRA DISPONIBILITÀ in basso (si apre al clic) ===== */
body{padding-bottom:72px}
.booknow{position:fixed;left:0;right:0;bottom:0;z-index:45;box-shadow:0 -8px 30px rgba(0,0,0,.22)}
.booknow__open{width:100%;border:0;cursor:pointer;background:#1b2030;color:#fff;padding:.9rem 1.2rem;display:flex;flex-direction:column;align-items:center;gap:.15rem;line-height:1.2}
.booknow__open-t{font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:.84rem}
.booknow__open-s{font-size:.72rem;color:rgba(255,255,255,.62)}
.booknow__panel{display:none;background:#1b2030;padding:1.1rem var(--pad-x) 1.2rem;position:relative}
.booknow.open .booknow__open{display:none}
.booknow.open .booknow__panel{display:block;animation:bnUp .3s ease}
@keyframes bnUp{from{transform:translateY(22px);opacity:0}to{transform:none;opacity:1}}
.booknow__close{position:absolute;top:.35rem;right:.7rem;background:none;border:0;color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;opacity:.8}
.booknow__close:hover{opacity:1}
.booknow__fields{display:flex;gap:0}
.booknow__fields .hb-field{padding:.7rem 1rem}
.booknow__submit{width:100%;margin-top:.9rem}
@media(max-width:700px){
  .booknow__fields{flex-direction:column}
  .booknow__fields .hb-field{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}
}
@media(min-width:701px){
  body{padding-bottom:96px}
  .booknow{left:50%;right:auto;transform:translateX(-50%);bottom:1.2rem;width:min(940px,calc(100% - 2rem));border-radius:14px;overflow:hidden}
  .booknow__fields .hb-field{flex:1;border-right:1px solid rgba(255,255,255,.15)}
  .booknow__submit{width:auto;align-self:center;margin:.2rem auto 0;display:block}
}
/* il banner cookie deve stare sopra la barra */
.cookie-banner{z-index:60}

/* ===== RISULTATI DISPONIBILITÀ: card orizzontale (foto piccola + tariffe) ===== */
.avail-results{max-width:var(--maxw);margin:1.6rem auto 0;display:grid;gap:1.3rem}
.avail-results .rcard{display:grid;grid-template-columns:260px 1fr;align-items:stretch;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;text-align:left;transform:none!important;box-shadow:0 6px 22px rgba(20,18,16,.06)}
.avail-results .rcard:hover{transform:none!important}
.avail-results .rcard__img{width:100%;height:100%;aspect-ratio:auto;min-height:190px;max-height:240px;object-fit:cover;margin:0}
.avail-results .rcard__body{padding:1.2rem 1.5rem}
.avail-results .rcard__name{font-family:var(--serif);font-size:1.5rem;margin:0 0 .9rem}
.avail-results .rcard--off{opacity:.5}
.avail-results .rates{display:flex;flex-direction:column;gap:.55rem}
.avail-results .rate{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid var(--line);padding-top:.55rem}
.avail-results .rate:first-child{border-top:0;padding-top:0}
.avail-results .rate__info b{display:block;font-size:.98rem;color:var(--text)}
.avail-results .rate__info span{color:var(--muted);font-size:.8rem}
.avail-results .rate__buy{display:flex;align-items:center;gap:.9rem;flex:none}
.avail-results .rate__price{font-family:var(--serif);font-size:1.35rem;color:var(--text)}
.avail-results .rate__btn{padding:.5rem 1.1rem;font-size:.72rem}
.avail-results .rcard__note{color:var(--muted);padding:1rem 1.5rem;margin:0}
@media(max-width:640px){
  .avail-results .rcard{grid-template-columns:1fr}
  .avail-results .rcard__img{min-height:160px;max-height:190px}
  .avail-results .rate{flex-direction:column;align-items:flex-start;gap:.35rem}
}

/* ===== CARRELLO ===== */
.cart-bar{position:fixed;left:0;right:0;bottom:0;z-index:46;background:#1b2030;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem var(--pad-x);box-shadow:0 -8px 30px rgba(0,0,0,.25)}
.cart-bar[hidden]{display:none}   /* rispetta l'attributo hidden (altrimenti display:flex lo sovrascrive) */
.cart-bar__info{display:flex;align-items:baseline;gap:.8rem}
.cart-bar__info b{font-size:.95rem;letter-spacing:.05em;text-transform:uppercase;font-weight:500}
.cart-bar__info span{font-family:var(--serif);font-size:1.3rem;color:#fff}
.cart-bar .btn{flex:none}
@media(min-width:701px){.cart-bar{left:50%;right:auto;transform:translateX(-50%);bottom:1.2rem;width:min(940px,calc(100% - 2rem));border-radius:14px}}
.rate__btn--in{background:#2e7d52!important}
.rate__btn--in:hover{background:#276a46!important}
.bmodal__cart{margin:.5rem 0 .2rem}
.bm-cart-row{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.bm-cart-row:last-child{border-bottom:0}
.bm-cart-row b{font-family:var(--serif)}
