/* Prenotazione: calendario, riepilogo, moduli, conferma. Colori e font da sito.css. */
[hidden]{display:none!important}   /* vale anche per i blocchi con display:flex */
/* le due colonne finiscono sulla stessa linea: il calendario si allunga, l'ultimo riquadro a destra pure */
.prenota-griglia{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:32px;align-items:stretch;margin:24px 0 64px}
.pannello{background:var(--carta);border:1px solid var(--bordo);border-radius:var(--r-l);padding:24px;box-shadow:var(--ombra)}
.pannello h2{font-size:1.15rem;margin:0 0 16px}
.laterale{position:sticky;top:96px;display:grid;gap:16px;grid-template-rows:auto 1fr}

/* calendario */
/* testi solo per i lettori di schermo: la guida del calendario e il titolo "Date del soggiorno" */
.solo-lettori,.cal-guida{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cal-titolo-riga{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin-bottom:12px}
.cal-freccia{display:flex;justify-content:center}
.cal-nav{width:40px;height:40px;border-radius:50%;border:1px solid var(--bordo-forte);background:var(--carta);font-size:1.4rem;line-height:1;cursor:pointer;color:var(--nero)}
.cal-nav:disabled{opacity:.3;cursor:default}
.cal-mesi{display:grid;grid-template-columns:repeat(var(--mesi,2),minmax(0,1fr));gap:32px}
.cal-titolo{font-size:1rem;text-align:center;margin:0;text-transform:capitalize}
.cal-griglia{touch-action:pan-y;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
/* legenda: tre stati, gli stessi colori delle caselle */
.cal-legenda{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;list-style:none;margin:0 0 14px;padding:0 0 12px;
  border-bottom:1px solid var(--bordo);font-size:.8rem;color:var(--grigio)}
.cal-legenda li{display:flex;align-items:center;gap:6px}
.cal-legenda i{width:14px;height:14px;border-radius:4px;border:1px solid var(--bordo-forte);background:var(--carta)}
.cal-legenda .leg-scelto{background:var(--bosco);border-color:var(--bosco)}
.cal-legenda .leg-prenotato{background:var(--prenotato);border-color:var(--prenotato-bordo)}
.cal-legenda .leg-solo-partenza{background:linear-gradient(90deg,var(--carta) 50%,var(--prenotato) 50%);border-color:var(--prenotato-bordo)}
.cal-nome{font-size:.75rem;color:var(--grigio);text-align:center;padding:4px 0;text-transform:capitalize}
:root{--prenotato:#FDECEC;--prenotato-bordo:#F5C9C9;--prenotato-testo:#B42318}
.cal-giorno{aspect-ratio:1/1.05;border:1px solid transparent;border-radius:10px;background:transparent;font:inherit;color:var(--nero);cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;position:relative}
.cal-giorno span{font-weight:600;font-size:.95rem}
.cal-giorno small{font-size:.68rem;color:var(--grigio);font-variant-numeric:tabular-nums}
.cal-giorno.no{color:var(--bordo-forte);cursor:default}
/* giorni liberi: casella con bordo; giorni prenotati: rosa con numero rosso (si vedono a colpo d'occhio) */
.cal-giorno.libero,.cal-giorno.partenza-ok{background:var(--carta);border-color:var(--bordo-forte)}
.cal-giorno.no.occupata:not(.partenza-ok):not(.partenza):not(.solo-partenza){background:var(--prenotato);border-color:var(--prenotato-bordo);color:var(--prenotato-testo)}
.cal-giorno.no.oggi-tardi{cursor:pointer;color:var(--grigio)}
.cal-giorno.no-partenza{color:var(--bordo-forte)}
.cal-giorno.partenza-ok{color:var(--nero);cursor:pointer}
.cal-giorno.periodo{background:var(--salvia-chiara);border-color:var(--salvia-chiara)}
/* trascinamento: anteprima del soggiorno mentre il dito o il mouse si muove; niente menu del tocco lungo su iPhone */
.cal-giorno{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.cal-giorno.anteprima{background:var(--salvia-media);border-color:var(--salvia-media);color:var(--nero)}
.trascinando .cal-giorno.arrivo:not(.anteprima),.trascinando .cal-giorno.partenza:not(.anteprima),
.trascinando .cal-giorno.periodo:not(.anteprima){background:var(--carta);border-color:var(--bordo-forte);color:var(--nero)}
.trascinando .cal-giorno:not(.anteprima) small{color:var(--grigio)}
.trascinando .cal-giorno.no-partenza.libero{color:var(--nero)}
.trascinando .cal-giorno.anteprima,.trascinando .cal-giorno.anteprima small{background:var(--salvia-media);border-color:var(--salvia-media);color:var(--nero)}
.cal-giorno.arrivo,.cal-giorno.partenza{background:var(--bosco);border-color:var(--bosco);color:var(--su-bosco)}
.cal-giorno.arrivo small,.cal-giorno.partenza small{color:var(--su-bosco)}
.cal-giorno.oggi span{text-decoration:underline;text-underline-offset:3px}
.cal-giorno.offerta small{color:var(--bosco);font-weight:700}
/* giorno scelto in offerta: il prezzo resta leggibile sul verde scuro */
.cal-giorno.arrivo.offerta small,.cal-giorno.partenza.offerta small{color:var(--su-bosco)}
/* primo giorno di una prenotazione altrui: la mattina si può ripartire (mezzo libero, mezzo prenotato) */
.cal-giorno.solo-partenza{background:linear-gradient(90deg,var(--carta) 50%,var(--prenotato) 50%);border-color:var(--prenotato-bordo);
  color:var(--prenotato-testo);cursor:pointer}
.cal-giorno.no-arrivo{cursor:default}
.cal-giorno.no-arrivo span{color:var(--grigio);text-decoration:underline dotted;text-underline-offset:3px}
.cal-giorno:focus-visible{outline:2px solid var(--bosco);outline-offset:2px}
.cal-cancella{display:block;margin:12px 0 0 auto;background:none;border:0;padding:0;font:inherit;text-decoration:underline;cursor:pointer;color:var(--nero)}

/* ospiti */
.ospiti{display:grid;gap:14px;margin-top:8px}
.ospite-riga{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ospite-riga small{display:block;color:var(--grigio);font-size:.82rem}
.contatore{display:flex;align-items:center;gap:12px}
.contatore button{width:36px;height:36px;border-radius:50%;border:1px solid var(--bordo-forte);background:var(--carta);font-size:1.2rem;cursor:pointer;color:var(--nero)}
.contatore button:disabled{opacity:.3;cursor:default}
.contatore output{min-width:1.5ch;text-align:center;font-weight:600}
.nota{color:var(--grigio);font-size:.85rem;margin:8px 0 0}

/* riepilogo */
.date-scelte{font-weight:600;margin:0 0 12px}
.riga{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--bordo)}
.riga small{display:block;color:var(--grigio);font-size:.78rem;font-weight:400}
.riga span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.riga.sconto span:last-child{color:var(--bosco)}
.riga.totale{border-bottom:0;font-weight:700;font-size:1.15rem;padding-top:12px}
.riep-dettaglio{font-size:.85rem;color:var(--grigio);padding:6px 0;border-bottom:1px solid var(--bordo)}
.riep-dettaglio ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.riep-dettaglio li{display:flex;justify-content:space-between}
.riep-nota,.riep-vuoto{color:var(--grigio);font-size:.88rem;margin:8px 0 0}
.riep-risparmio{margin:10px 0 0;padding:8px 12px;border-radius:var(--r-s);background:var(--salvia-chiara);color:var(--bosco);font-weight:700;text-align:center}
.riep-dettaglio s{color:var(--grigio)}

/* modulo */
.campo{display:grid;gap:6px;margin-bottom:14px}
.campo label{font-weight:600;font-size:.92rem}
.campo input,.campo select{font:inherit;padding:12px 14px;border:1px solid var(--bordo-forte);border-radius:var(--r-s);background:var(--carta);color:var(--nero);width:100%}
.campo input:focus,.campo select:focus{outline:2px solid var(--bosco);outline-offset:1px}
.campo [aria-invalid="true"]{border-color:#B3261E}
.campo small{color:var(--grigio);font-size:.8rem}
.spunta{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;margin:6px 0 16px}
.spunta input{width:20px;height:20px;margin-top:2px;accent-color:var(--bosco)}
.spunta a{color:var(--nero)}
#invia{width:100%;justify-content:center}
#invia:disabled{opacity:.5;cursor:not-allowed}
.nota-pagamento{font-size:.8rem;color:var(--grigio);margin:10px 0 0;text-align:center}
.nota-pagamento a{color:inherit}

/* avvisi */
.avviso{border-radius:var(--r-m);padding:14px 16px;margin:16px 0;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.avviso p{margin:0}
.avviso-info{background:var(--superficie);border:1px solid var(--bordo)}
.avviso-errore{background:#FCEEEE;border:1px solid #E7B8B5}

/* riquadro di ricerca della home e finestra del calendario */
.ricerca{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--bordo-forte);border-radius:var(--r-l);
  background:var(--carta);box-shadow:var(--ombra);overflow:hidden;margin-top:20px;max-width:520px}
.ricerca-campo{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px;border:0;border-right:1px solid var(--bordo);
  border-bottom:1px solid var(--bordo);background:transparent;font:inherit;text-align:left;cursor:pointer;color:var(--nero);min-width:0}
.ricerca-campo:nth-child(3){border-right:0}
.ricerca-campo span{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.ricerca-campo strong{font-weight:500;color:var(--grigio);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ricerca-campo select{border:0;background:transparent;font:inherit;color:var(--nero);padding:0;cursor:pointer}
.ricerca .btn{grid-column:1/-1;margin:8px;border-radius:var(--r-m);justify-content:center}
.dialogo-cal{margin:auto;max-height:calc(100dvh - 32px);overflow:auto;border:0;border-radius:var(--r-l);padding:24px;width:min(760px,calc(100vw - 32px));box-shadow:var(--ombra)}
.dialogo-cal::backdrop{background:rgba(21,26,22,.35)}
.dialogo-chiudi{display:block;margin:16px 0 0 auto}

.barra-mobile{display:none}
@media (max-width:900px){
  .prenota-griglia{grid-template-columns:1fr}
  .laterale{position:static}
  .barra-mobile{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;align-items:center;justify-content:space-between;gap:12px;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--carta);border-top:1px solid var(--bordo);box-shadow:0 -8px 24px -12px rgba(35,48,31,.25)}
  .barra-mobile strong{display:block;font-size:1.15rem}
  .barra-mobile small{color:var(--grigio);font-size:.8rem}
}
@media (max-width:760px){
  .cal-mesi{grid-template-columns:1fr}
  .ricerca{grid-template-columns:1fr 1fr}
  .ricerca-campo:nth-child(2){border-right:0}
  .ricerca-campo:nth-child(3){grid-column:1/-1}
  .dialogo-cal{padding:16px;max-height:90vh}
}

/* conferma di prenotazione: stessa impostazione del preventivo PDF dell'host */
.conferma-ok{font-size:1.25rem;font-weight:600;margin:0 0 16px}
.azioni-conferma{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}
.documento{background:var(--carta);border:1px solid var(--bordo);border-radius:var(--r-l);padding:48px 56px;box-shadow:var(--ombra);
  border-top:10px solid var(--salvia)}
.documento h1{font-size:2rem;margin:24px 0 4px}
.documento h2{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--grigio);margin:28px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--salvia-media)}
.doc-testa{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding-bottom:20px;border-bottom:1px solid var(--salvia-media)}
.doc-marchio{display:flex;gap:12px;align-items:center}
.doc-marchio img{width:56px;height:auto}
.conferma-sotto{margin:-8px 0 16px;color:var(--grigio)}
.doc-wa{margin-top:12px}
.solo-telefono{display:none}
.doc-marchio strong{display:block;font-size:1.8rem;line-height:1}
.doc-marchio span{letter-spacing:.3em;font-size:.72rem;color:var(--grigio)}
.doc-testa address{font-style:normal;text-align:right;font-size:.85rem;color:var(--grigio);line-height:1.5}
.doc-sotto{color:var(--grigio);margin:0}
.doc-riquadri{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}
.doc-riquadri div{background:var(--salvia-chiara);border-radius:var(--r-m);padding:16px 18px;display:grid;gap:2px}
.doc-riquadri span{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--grigio)}
.doc-riquadri strong{font-size:1.1rem}
.doc-riquadri small{color:var(--grigio)}
.doc-dettagli{display:grid;grid-template-columns:140px 1fr;gap:8px 16px;margin:0}
.doc-dettagli dt{color:var(--grigio)}
.doc-dettagli dd{margin:0;font-weight:600}
.doc-tabella{width:100%;border-collapse:collapse}
.doc-tabella th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--grigio);text-align:left;padding:8px 0;border-bottom:1px solid var(--bordo)}
.doc-tabella td{padding:12px 0;border-bottom:1px solid var(--bordo);vertical-align:top}
.doc-tabella td small{display:block;color:var(--grigio);font-size:.8rem}
.doc-tabella .num{text-align:right;white-space:nowrap;padding-left:16px;font-variant-numeric:tabular-nums}
.doc-totale{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;padding:18px 22px;border:1.5px solid var(--salvia);
  border-radius:var(--r-m);background:var(--salvia-chiara)}
.doc-totale span{display:block;font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--bosco)}
.doc-totale small{color:var(--grigio)}
.doc-totale strong{font-size:2rem}
.doc-incluso{columns:2;gap:32px;padding-left:18px;margin:0}
.doc-incluso li{margin-bottom:6px}
.doc-incluso li::marker{color:var(--salvia)}
.doc-importante{margin-top:16px;padding:14px 18px;border:1px solid var(--salvia);border-radius:var(--r-m);background:var(--salvia-chiara)}
.doc-importante strong{font-size:.78rem;letter-spacing:.05em;text-transform:uppercase}
.doc-importante p{margin:6px 0 0}
.doc-firma{margin-top:24px}
.doc-firma em{color:var(--bosco)}
.doc-piede{margin-top:28px;padding-top:12px;border-top:1px solid var(--bordo);text-align:center;font-size:.78rem;color:var(--grigio)}

/* rifinitura (minimalist-skill): ombra appena percettibile, angoli netti, bordi sottili, più aria */
.documento{border-radius:12px;box-shadow:0 1px 3px rgba(21,26,22,.04);padding:56px 64px;line-height:1.6}
.doc-riquadri div,.doc-totale,.doc-importante{border-radius:10px}
.doc-totale{border-width:1px}
.documento h2{margin-top:36px}

@media (max-width:760px){
  .documento{padding:24px 18px}
  .solo-telefono{display:inline}
  .doc-tabella th:nth-child(2),.doc-tabella td:nth-child(2),.doc-tabella th:nth-child(3),.doc-tabella td:nth-child(3){display:none}
  .doc-tabella td{padding:10px 0}
  .doc-totale{flex-direction:column;align-items:flex-start}
  .doc-totale strong{font-size:1.7rem}
  .azioni-conferma .btn{flex:1 1 100%;justify-content:center}
  .doc-testa{flex-direction:column}
  .doc-testa address{text-align:left}
  .doc-riquadri{grid-template-columns:1fr}
  .doc-incluso{columns:1}
  .doc-dettagli{grid-template-columns:110px 1fr}
}

@media print{
  @page{size:A4;margin:12mm}
  body>header,body>footer,.azioni-conferma,#stato,.salta{display:none!important}
  .conferma-wrap{margin:0;max-width:none}
  .documento{box-shadow:none;border:0;border-top:8px solid var(--salvia);padding:0 4mm;border-radius:0}
  .doc-riquadri,.doc-incluso{break-inside:avoid}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* =========================================================================================
   Movimento (stessi principi del ramo animazioni, skill di Emil Kowalski).
   Solo transform e opacity, durate sotto i 300 ms, curve da sito.css (--ease-out, --ease-in-out).
   Effetti al passaggio del mouse solo con un mouse; con «riduci movimento» restano solo le dissolvenze.
   ========================================================================================= */
:root{--ease-drawer:cubic-bezier(0.32, 0.72, 0, 1)}

/* pressione: ogni cosa toccabile risponde subito */
.cal-giorno,.cal-nav,.contatore button,.ricerca-campo,.cal-cancella{
  transition:background-color 150ms ease,color 150ms ease,transform 140ms var(--ease-out);
}
.cal-giorno:active:not([aria-disabled="true"]){transform:scale(.92)}
.cal-nav:active:not(:disabled),.contatore button:active:not(:disabled){transform:scale(.9)}
.ricerca-campo:active{transform:scale(.98)}

/* scheletro del calendario mentre arrivano i dati: si vede subito la forma della pagina */
.cal-scheletro{display:grid;gap:12px}
.cal-scheletro-titolo{height:22px;width:42%;margin:6px auto 10px;border-radius:8px;background:var(--superficie)}
.cal-scheletro-griglia{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-scheletro-griglia span{aspect-ratio:1/1.05;border-radius:12px;background:var(--superficie)}

/* pulsante «Prenota e paga» in attesa: rotella veloce (sembra più rapido anche a parità di tempo) */
#invia.carica{pointer-events:none}
#invia.carica::after{content:"";width:16px;height:16px;margin-left:10px;border-radius:50%;
  border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:gira 600ms linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}

/* barra del totale su telefono: sale dal basso quando ci sono le date, scende quando non ci sono */
@media (max-width:900px){
  .barra-mobile{transform:translateY(110%);visibility:hidden;
    transition:transform 220ms var(--ease-out),visibility 0s linear 220ms}
  .barra-mobile.visibile{transform:none;visibility:visible;transition:transform 320ms var(--ease-drawer),visibility 0s}
  body:has(.barra-mobile.visibile) main{padding-bottom:84px}
}

/* finestra del calendario della home */
.dialogo-cal{transition:opacity 200ms var(--ease-out),transform 200ms var(--ease-out)}
.dialogo-cal::backdrop{transition:opacity 200ms var(--ease-out)}
.dialogo-cal.chiude{opacity:0;transform:scale(.97);transition-duration:150ms}
.dialogo-cal.chiude::backdrop{opacity:0}

/* conferma: segno di spunta disegnato una volta */
.spunta-ok{display:inline-flex;vertical-align:-6px;margin-right:10px;width:30px;height:30px;border-radius:50%;
  background:var(--salvia-chiara);color:var(--bosco);align-items:center;justify-content:center}
.spunta-ok svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.attesa-rotella{display:inline-block;width:18px;height:18px;margin-right:10px;vertical-align:-3px;border-radius:50%;
  border:2px solid var(--salvia-media);border-top-color:var(--bosco);animation:gira 700ms linear infinite}

@media (prefers-reduced-motion:no-preference){
  /* la pagina compare in sequenza; il titolo no, così la parte più grande arriva subito (LCP) */
  .prenota-griglia > *{animation:entra-su 420ms var(--ease-out) both}
  .prenota-griglia > *:nth-child(2){animation-delay:70ms}
  #messaggio:not([hidden]){animation:entra-su 260ms var(--ease-out) both}

  /* scheletro: respiro leggero, finché non arrivano i dati */
  .cal-scheletro-griglia span,.cal-scheletro-titolo{animation:respira 1.1s ease-in-out infinite alternate}

  /* primo disegno del calendario: dissolvenza dallo scheletro */
  .cal-mesi.cal-entra{animation:entra-su 260ms var(--ease-out) both}

  /* il giorno appena scelto (arrivo o partenza) si assesta */
  .cal-giorno.appena{animation:scegli 240ms var(--ease-out)}
  /* il periodo si riempie da sinistra a destra, 18 ms per notte */
  .cal-giorno.periodo.riempie{animation:riempi 220ms var(--ease-out) both;animation-delay:calc(var(--i, 0) * 18ms)}

  /* riepilogo: le righe entrano a cascata la prima volta che compare un prezzo */
  #riepilogo.entra > *{animation:entra-su 280ms var(--ease-out) both}
  #riepilogo.entra > *:nth-child(2){animation-delay:30ms}
  #riepilogo.entra > *:nth-child(3){animation-delay:60ms}
  #riepilogo.entra > *:nth-child(4){animation-delay:90ms}
  #riepilogo.entra > *:nth-child(5){animation-delay:120ms}
  #riepilogo.entra > *:nth-child(6){animation-delay:150ms}
  #riepilogo.entra > *:nth-child(n+7){animation-delay:180ms}
  .riep-risparmio{animation:entra-scala 260ms var(--ease-out) both}

  /* finestra della home: entra dal centro, appena più piccola */
  .dialogo-cal[open]{animation:entra-scala 220ms var(--ease-out)}
  .dialogo-cal[open]::backdrop{animation:dissolvi 220ms var(--ease-out)}

  /* conferma */
  .documento{animation:entra-su 420ms var(--ease-out) 80ms both}
  .spunta-ok{animation:entra-scala 300ms var(--ease-out) both}
  .spunta-ok path{stroke-dasharray:20;stroke-dashoffset:20;animation:disegna 420ms var(--ease-out) 160ms forwards}
}
@media (prefers-reduced-motion:reduce){
  .barra-mobile,.barra-mobile.visibile{transition:visibility 0s}
  .cal-giorno:active,.cal-nav:active,.contatore button:active,.ricerca-campo:active{transform:none}
}
@keyframes entra-su{from{opacity:0;transform:translateY(8px)}}
@keyframes entra-scala{from{opacity:0;transform:scale(.96)}}
@keyframes dissolvi{from{opacity:0}}
@keyframes respira{from{opacity:.55}to{opacity:1}}
@keyframes scegli{0%{transform:scale(.86)}100%{transform:none}}
@keyframes riempi{from{opacity:0}}
@keyframes disegna{to{stroke-dashoffset:0}}

/* passaggio del mouse: solo con un mouse vero (sul telefono resterebbe «incollato» dopo il tocco) */
@media (hover:hover) and (pointer:fine){
  .cal-giorno.libero:hover,.cal-giorno.partenza-ok:hover{background:var(--salvia-chiara)}
  .cal-giorno.arrivo:hover,.cal-giorno.partenza:hover{background:var(--bosco)}
  .cal-nav:hover:not(:disabled),.contatore button:hover:not(:disabled){border-color:var(--nero)}
  .ricerca-campo:hover{background:var(--superficie)}
}

/* =========================================================================================
   Pop-up dei giorni non selezionabili (check-in o check-out non consentiti, soggiorno minimo).
   Computer: al centro, entra crescendo appena. Telefono: sale dal basso come un foglio di iOS.
   ========================================================================================= */
.avviso-date{position:fixed;inset:0;margin:auto;height:fit-content;border:0;padding:28px 24px 24px;border-radius:20px;width:calc(100% - 32px);max-width:400px;text-align:center;
  background:var(--carta);color:var(--nero);box-shadow:0 24px 60px -20px rgba(35,48,31,.35);
  transition:opacity 180ms var(--ease-out),transform 180ms var(--ease-out)}
.avviso-date::backdrop{background:rgba(20,28,18,.38);transition:opacity 180ms var(--ease-out)}
.avviso-emoji{font-size:2.6rem;line-height:1;display:inline-block}
.avviso-date h2{font-size:1.2rem;line-height:1.3;margin:14px 0 8px}
.avviso-date p{margin:0;color:var(--grigio);line-height:1.55}
.avviso-azioni{display:grid;gap:8px;margin-top:22px}
.avviso-azioni .btn{width:100%;justify-content:center}
.avviso-date.chiude{opacity:0;transform:scale(.97)}
.avviso-date.chiude::backdrop{opacity:0}
@media (max-width:600px){
  .avviso-date{margin:auto auto 0;width:100%;max-width:none;border-radius:22px 22px 0 0;
    padding-bottom:calc(24px + env(safe-area-inset-bottom))}
  .avviso-date.chiude{opacity:1;transform:translateY(100%);transition-duration:200ms}
}
@media (prefers-reduced-motion:no-preference){
  .avviso-date[open]{animation:entra-scala 240ms var(--ease-out)}
  .avviso-date[open]::backdrop{animation:dissolvi 240ms var(--ease-out)}
  .avviso-date[open] .avviso-emoji{animation:saluta 560ms var(--ease-out) 120ms both}
  @media (max-width:600px){ .avviso-date[open]{animation:sale 340ms var(--ease-drawer)} }
}
@media (prefers-reduced-motion:reduce){ .avviso-date.chiude{transform:none} }
@keyframes sale{from{transform:translateY(100%)}}
@keyframes saluta{0%{opacity:0;transform:scale(.6) rotate(-12deg)}55%{opacity:1;transform:scale(1.12) rotate(6deg)}100%{transform:none}}

/* =========================================================================================
   Pagine di testo: condizioni di prenotazione e informativa privacy. Pensate prima per il telefono:
   elenchi rientrati (il reset del sito azzera il rientro), spazi regolari, righe di lettura comode.
   ========================================================================================= */
.condizioni{max-width:68ch;margin:24px 0 56px}
.condizioni h1{margin:0 0 8px}
.condizioni h2{font-size:1.125rem;line-height:1.3;margin:36px 0 10px}
.condizioni p,.condizioni li{line-height:1.65;text-wrap:wrap}   /* testo lungo: righe piene, niente a capo anticipati */
.condizioni p{margin:0 0 14px}
.condizioni ul{list-style:disc;margin:4px 0 18px;padding-left:1.35em}
.condizioni li{margin:0 0 10px;padding-left:.2em}
.condizioni li::marker{color:var(--salvia)}
.condizioni strong{font-weight:600;color:var(--nero)}
.condizioni a{color:var(--bosco);text-underline-offset:3px;overflow-wrap:anywhere}
.condizioni .aggiornata{color:var(--grigio);font-size:.9rem;margin:0 0 20px}
@media (min-width:760px){
  .condizioni{margin:40px 0 72px}
  .condizioni h2{font-size:1.2rem;margin-top:40px}
}
