/* Ospitalità - sito pubblico.
   «Il tema decide lo stile»: pulsanti (simple-button-plugin), frecce (.FrecciaSito), punti (indicatori delle Slide),
   font e colori vengono dal tema e da Impostazioni Sito. Qui solo disposizione, misure e icone. */
.op{--op-linea:rgba(0,0,0,.12);--op-fondo:#f3f3f1;--op-tenue:#6b6b6b;--op-gap:clamp(20px,3vw,48px);--op-spazio:var(--spazio-paragrafi,60px)}
.op *,.op *::before,.op *::after{box-sizing:border-box}
.op img{opacity:1!important;animation:none!important}

/* ---------- icone ---------- */
.op-ico{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--op-icona,28px);height:var(--op-icona,28px);color:var(--op-icona-colore,currentColor);line-height:0}
.op-ico svg,.op-ico img{width:100%!important;height:100%!important;max-width:none!important;margin:0!important;display:block}
.op-ico img{object-fit:contain}

/* ---------- dotazioni ----------
   Il testo segue la misura delle icone (Plugins › Ospitalità › Icone): icone piccole ed eleganti, testo più piccolo.
   20 px → testo 14 px · 24 → 16 · 28 → 18 · 32 → 20 */
.op{--op-dot-testo:calc(var(--op-icona,28px) * .5 + 4px)}
.op ul.op-dot{list-style:none!important;margin:1.4em 0 0!important;padding:0!important}
.op ul.op-dot li{margin:0!important;padding:0!important;list-style:none!important;background:none!important;line-height:1.3!important;font-size:var(--op-dot-testo)!important}
.op ul.op-dot li::before{display:none!important}
.op ul.op-dot .op-dot-testo{font-size:inherit!important;line-height:inherit!important}
/* icona e testo affiancati, su più colonne */
.op-dot-colonne{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,calc(var(--op-icona,28px) * 4.5 + 50px)),1fr));gap:calc(var(--op-icona,28px) * .4) calc(var(--op-icona,28px) * .9)}
.op-dot-colonne li,.op-dot-elenco li{display:flex;align-items:center;gap:calc(var(--op-icona,28px) * .4 + 2px)}
/* icona sopra, testo sotto (pagina dell'alloggio) */
.op-dot-griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:1.6em 1.2em}
.op ul.op-dot-griglia li{display:flex;flex-direction:column;align-items:center;gap:.55em;text-align:center!important;font-size:calc(var(--op-icona,28px) * .42 + 4px)!important}
.op-dot-griglia .op-ico{width:calc(var(--op-icona,28px) * 1.5);height:calc(var(--op-icona,28px) * 1.5)}
/* una per riga */
.op-dot-elenco{display:flex;flex-direction:column;gap:calc(var(--op-icona,28px) * .45)}
/* in fila, piccole (schede) */
.op-dot-riga{display:flex;flex-wrap:wrap;gap:.5em 1.1em}
.op ul.op-dot-riga li{display:inline-flex;align-items:center;gap:.4em;font-size:calc(var(--op-icona,28px) * .35 + 4px)!important}
.op-dot-riga .op-ico{width:calc(var(--op-icona,28px) * .75);height:calc(var(--op-icona,28px) * .75)}
/* compatte (dotazioni comuni a tutti): più piccole, su più colonne */
.op-dot-compatte{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:.7em 1.4em}
.op ul.op-dot-compatte li{display:flex;align-items:center;gap:.55em;font-size:calc(var(--op-icona,28px) * .38 + 4px)!important}
.op-dot-compatte .op-ico{width:calc(var(--op-icona,28px) * .8);height:calc(var(--op-icona,28px) * .8)}

/* ---------- testi e pulsanti ---------- */
.op .op-titolo{margin:0!important}
.op .op-titolo a{color:inherit!important;text-decoration:none!important}
@media(hover:hover){.op .op-titolo a:hover{text-decoration:underline!important;text-underline-offset:.15em;text-decoration-thickness:1px!important}}
.op .op-sottotitolo{margin:.3em 0 0!important}
/* righe dell'elenco: sempre a sinistra, anche con i titoli centrati dal tema */
html body .jumbotron .op .op-riga-testo :is(h2,h3,h4,p,div,ul,li){text-align:left!important}
html body .jumbotron .op .op-riga-testo :is(h2,h3,h4){margin-left:0!important;margin-right:0!important}
.op .op-testo{margin-top:1em}
.op p.op-breve{margin:1em 0 0!important}
.op p.op-prezzo{margin:1em 0 0!important;font-weight:700}
.op p.op-azioni{display:flex;flex-wrap:wrap;gap:10px;margin:1.6em 0 0!important;padding:0!important;max-width:none!important;justify-content:flex-start}
/* piede: pulsanti a sinistra, prezzo a destra; sul telefono il prezzo sopra i pulsanti, staccato dalle dotazioni da un filetto */
.op-piede{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 28px;margin-top:2em}
.op .op-piede p.op-azioni{margin:0!important}
.op .op-piede p.op-prezzo{margin:0 0 0 auto!important;text-align:right!important;white-space:nowrap}
.op-sezione .op-piede{justify-content:center}
/* colonna di testo stretta (finestra non larga): prezzo sopra i pulsanti, con il filetto, come sul telefono */
.op-riga-testo{container-type:inline-size}
@container (max-width:560px){
	.op-piede{flex-direction:column;align-items:flex-start;gap:14px}
	.op-piede.op-con-prezzo{border-top:1px solid var(--op-linea);padding-top:1.2em}
	.op .op-piede p.op-prezzo{order:-1;margin:0!important;text-align:left!important}
}
.op .op-sezione .op-piede p.op-prezzo{margin:0!important}
.op-azioni a.simple-button-plugin{display:inline-flex;align-items:center;justify-content:center;gap:.5em;width:auto;margin:0!important;text-decoration:none!important}
/* testi scritti con l'editor: ogni «a capo» resta visibile anche se il tema azzera lo spazio tra i paragrafi */
html body .jumbotron .op .op-testo p,html body .jumbotron .op .op-info-dettaglio p,html body .jumbotron .op .op-testo :is(ul,ol,blockquote,table){margin:0 0 1em!important}
html body .jumbotron .op .op-testo>:last-child,html body .jumbotron .op .op-info-dettaglio>:last-child{margin-bottom:0!important}
html body .jumbotron .op .op-testo :is(ul,ol){padding-left:1.4em!important}
html body .jumbotron .op .op-testo ul{list-style:disc!important}
html body .jumbotron .op .op-testo ol{list-style:decimal!important}
.op .op-blocco-titolo{margin:0 0 clamp(16px,2vw,28px)!important}
.op .op-gruppo-titolo,.OspitalitaSito>.op-gruppo-titolo{margin:var(--op-spazio,60px) 0 clamp(16px,2vw,28px)!important}
.OspitalitaSito>.op-gruppo-titolo:first-child{margin-top:0!important}

/* ---------- foto e carosello ---------- */
.op-foto{position:relative;display:block;overflow:hidden;aspect-ratio:3/2;background:var(--op-fondo)}
.op-foto>img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;display:block;margin:0!important;transition:transform .5s ease}
@media(hover:hover){a.op-foto:hover img{transform:scale(1.03)}}
.op-formato-43 :is(.op-foto,.op-car-voce,.op-card-foto),.op-foto.op-formato-43,.op-carosello.op-formato-43 .op-car-voce,.op-card-foto.op-formato-43{aspect-ratio:4/3}
.op-formato-169 :is(.op-foto,.op-car-voce,.op-card-foto),.op-foto.op-formato-169,.op-carosello.op-formato-169 .op-car-voce,.op-card-foto.op-formato-169{aspect-ratio:16/9}
.op-formato-11 :is(.op-foto,.op-car-voce,.op-card-foto),.op-foto.op-formato-11,.op-carosello.op-formato-11 .op-car-voce,.op-card-foto.op-formato-11{aspect-ratio:1/1}
.op-carosello.op-formato-32 .op-car-voce,.op-foto.op-formato-32,.op-card-foto.op-formato-32{aspect-ratio:3/2}
.op-car-quadro{position:relative}
.op-scorri{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none}
.op-scorri::-webkit-scrollbar{display:none}
.op-car-voce{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always;position:relative;display:block;overflow:hidden;aspect-ratio:3/2;background:#111}
.op-car-voce img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;margin:0!important}
.op .op-car-nav{position:absolute;top:50%;z-index:2;width:48px;height:48px;margin:-24px 0 0!important;padding:0;cursor:pointer;font-size:16px}
.op-car-prec{left:12px}.op-car-succ{right:12px}
@media(hover:none){.op .op-car-nav{display:none}}
.op-punti{margin-top:clamp(10px,1.4vw,18px);text-align:center!important;font-size:20px;line-height:1}
.op-punti .gpSlideIndicators{position:static;display:inline-block;margin:0;padding:0;list-style:none}
.op-punti .gpSlideIndicators li{margin:0 3px!important;cursor:pointer}
.op .op-punti .gpSlideIndicators li{color:rgba(0,0,0,.25)}
.op .op-punti .gpSlideIndicators li.gpSlideActive{color:var(--colore-cliente,#2c3e50)}
.op-senza-sf .op-punti .gpSlideIndicators li{display:inline-block;width:10px;height:10px;border-radius:50%;background:rgba(0,0,0,.22);font-size:0;vertical-align:middle}
.op-senza-sf .op-punti .gpSlideIndicators li.gpSlideActive{background:var(--colore-cliente,#2c3e50)}
.jumbotron .op div.op-punti{text-align:center!important}

/* ---------- elenco: righe foto/testo alternate ---------- */
.op-elenco{margin:0 0 var(--op-spazio,60px)}
/* due metà uguali, senza spazio tra le colonne: il lato interno di tutte le foto cade sulla linea centrale,
   così nelle righe alternate le foto sono in linea; lo spazio sta tutto dalla parte del testo */
.op-riga{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"testo media";column-gap:0;align-items:center}
.op-riga.op-foto-sx{grid-template-areas:"media testo"}
.op-riga.op-foto-dx .op-riga-testo{padding-right:var(--op-gap)}
.op-riga.op-foto-sx .op-riga-testo{padding-left:var(--op-gap)}
.op-riga+.op-riga{margin-top:var(--op-spazio,60px)}
.op-riga-testo{grid-area:testo;min-width:0}
.op-riga-media{grid-area:media;min-width:0}
.op-riga-compatta{align-items:stretch}
.op-riga-compatta .op-riga-testo{display:flex;flex-direction:column;justify-content:center;padding:clamp(10px,2vw,32px) 0}
.op-riga-compatta .op-dot{margin-top:1.4em!important}
/* testo rispetto alla foto (Tipologie › Testo rispetto alla foto): in alto, al centro, in basso.
   Sotto il carosello ci sono i punti: si tiene conto della loro altezza, così il testo si allinea alla foto, non ai punti */
.op{--op-punti-h:calc(clamp(10px,1.4vw,18px) + 20px)}
.op-riga .op-riga-testo{align-self:center}
.op-testo-alto .op-riga .op-riga-testo{align-self:start}
.op-testo-basso .op-riga .op-riga-testo{align-self:end}
.op-testo-basso .op-riga:has(.op-punti:not([hidden])) .op-riga-testo{padding-bottom:var(--op-punti-h)}
.op-testo-centro .op-riga:has(.op-punti:not([hidden])) .op-riga-testo{padding-bottom:var(--op-punti-h)}
.op-testo-alto .op-riga-testo>:first-child{margin-top:0!important}
.op-riga-compatta .op-riga-testo,.op-con-bordo .op-riga-testo{padding-top:0;padding-bottom:0}
.op-testo-basso .op-riga-compatta:has(.op-punti:not([hidden])) .op-riga-testo,.op-testo-centro .op-riga-compatta:has(.op-punti:not([hidden])) .op-riga-testo{padding-bottom:var(--op-punti-h)}
@media(max-width:767px){.op-elenco .op-riga .op-riga-testo{align-self:start!important;padding-bottom:0!important}}

/* fondo alternato: una riga sì e una no su una fascia a tutta larghezza */
.op-con-fondo .op-riga.op-pari{position:relative;background:var(--op-fondo);box-shadow:0 0 0 100vmax var(--op-fondo);clip-path:inset(calc(-1 * var(--op-spazio,60px) / 2) -100vmax);padding:0}
.op-con-fondo .op-riga+.op-riga{margin-top:var(--op-spazio,60px)}
/* foto al bordo dello schermo (larghezza misurata dallo script: --op-fuori-sx / --op-fuori-dx) */
@media(min-width:992px){
	.op-con-bordo .op-riga.op-foto-dx .op-riga-media{margin-right:calc(-1 * var(--op-fuori-dx,0px))}
	.op-con-bordo .op-riga.op-foto-sx .op-riga-media{margin-left:calc(-1 * var(--op-fuori-sx,0px))}
	.op-con-bordo .op-riga{align-items:stretch}
	.op-con-bordo .op-riga-testo{padding:clamp(16px,2vw,32px) 0}
	.op-con-bordo .op-riga-media :is(.op-foto,.op-car-voce){border-radius:0!important}
}

/* ---------- elenco: una sezione per alloggio ---------- */
.op-sezione+.op-sezione{margin-top:calc(var(--op-spazio,60px) * 1.4);padding-top:calc(var(--op-spazio,60px) * 1.4);border-top:1px solid var(--op-linea)}
.op-con-fondo .op-sezione.op-pari{background:var(--op-fondo);box-shadow:0 0 0 100vmax var(--op-fondo);clip-path:inset(0 -100vmax);border-top:0;padding-bottom:calc(var(--op-spazio,60px) * 1.4)}
.op-con-fondo .op-sezione.op-pari+.op-sezione{border-top:0;margin-top:0}
.jumbotron .op .op-sezione-testa,.jumbotron .op .op-sezione-testa :is(h2,p){text-align:center!important}
.op-sezione-testa{margin:0 0 clamp(20px,2.4vw,40px)}
.op{--op-sez-spazio:clamp(24px,3vw,40px)}
/* testo a tutta larghezza; stretto (circa 80-90 caratteri) solo con «Testi leggibili» di Impostazioni Sito */
.op-sezione-testo{margin:0 0 var(--op-sez-spazio)}
body.TestiLeggibili .op-sezione-testo{max-width:72ch;margin-left:auto;margin-right:auto}
/* dotazioni: lo stesso spazio sopra (dal testo) e sotto (dalla foto) */
.op .op-sezione>ul.op-dot{margin:0 0 var(--op-sez-spazio)!important}
.op-sezione-media{margin:0}
.op-sezione>.op-azioni{justify-content:center!important}

/* ---------- schede (griglia, home, altre soluzioni) ---------- */
.op-schede{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.op-schede.op-col-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.op-schede.op-col-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.op-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--op-linea);background:var(--op-card-fondo,transparent)}
.op-card-foto{position:relative;display:block;overflow:hidden;aspect-ratio:3/2;background:var(--op-fondo);text-decoration:none!important}
.op-card-foto>img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;margin:0!important;transition:transform .5s ease}
@media(hover:hover){a.op-card-foto:hover img{transform:scale(1.04)}}
.op-card-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.05),rgba(0,0,0,.35));pointer-events:none}
.op-card-nome{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px;text-align:center;color:#fff!important;text-shadow:0 1px 10px rgba(0,0,0,.45);line-height:1.2}
.op-card-titolo{display:block;font-size:clamp(18px,.7vw + 13px,23px);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-family:var(--font-titoli,inherit)}
.op-card-sotto{display:block;margin-top:.35em;font-size:.95em;text-transform:uppercase;letter-spacing:.06em;opacity:.95}
.op-card-corpo{display:flex;flex-direction:column;align-items:center;gap:0;padding:16px 16px 18px;flex:1;text-align:center}
.op-card-corpo p.op-azioni{justify-content:center;margin:0!important}
.op-card-corpo p.op-prezzo{margin:0 0 12px!important}
.op-card-corpo ul.op-dot{margin:14px 0 0!important;justify-content:center}
/* nella scheda basta un pulsante: quello verso la pagina dell'alloggio, se c'è */
.op-card .op-azioni a.op-scopri~a.op-prenota{display:none!important}

/* ---------- home ---------- */
.op-home{margin:0 0 var(--op-spazio,60px)}
.op-testa-home{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 20px;margin:0 0 18px}
.op .op-home-titolo{margin:0!important}
.op a.op-tutte{margin-left:auto;font-weight:600;text-decoration:none!important;white-space:nowrap;color:var(--colore-testo-personale,var(--colore-cliente,inherit))!important}
.op-tutte i,.op-torna i{transition:transform .15s}
.op a.op-tutte:hover i{transform:translateX(3px)}
.op-fila{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.op-n-1 .op-fila,.op-fila.op-n-1{grid-template-columns:minmax(0,1fr);max-width:560px}
.op-n-2 .op-fila,.op-fila.op-n-2{grid-template-columns:repeat(2,minmax(0,1fr))}

/* ---------- pagina dell'alloggio ---------- */
.op-slide .responsive_image_wrapper{display:block;position:relative;overflow:hidden}
.op-slide .responsive_image_wrapper>img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;margin:0!important}
.op-slide-scorre .responsive_image_wrapper>img.op-slide-foto{opacity:0!important;transition:opacity var(--op-durata,.8s) ease}
.op-slide-scorre .responsive_image_wrapper>img.op-slide-foto.attiva{opacity:1!important}
.op-slide .responsive_image_caption_wrapper{z-index:2}
.op-slide p.op-slide-sotto{margin:.4em 0 0!important;font-size:clamp(16px,.6vw + 13px,22px)!important;letter-spacing:.04em}
.op-slide .op-slide-nav{position:absolute;top:50%;z-index:3;width:48px;height:48px;margin:-24px 0 0!important;padding:0;cursor:pointer;font-size:16px}
.op-slide-prec{left:clamp(10px,2vw,30px)}.op-slide-succ{right:clamp(10px,2vw,30px)}
@media(hover:none){.op-slide .op-slide-nav{display:none}}
.op-pagina.op-con-slide{margin-top:clamp(20px,calc(var(--spazio-paragrafi,60px) * .6),60px)}
.op .op-titolo-pagina{margin-top:0!important}
.op-dot-blocco{margin:var(--op-spazio,60px) 0 0;padding:0}
.op-dot-blocco.op-fascia{position:relative;background:var(--op-fondo);box-shadow:0 0 0 100vmax var(--op-fondo);clip-path:inset(0 -100vmax);padding:clamp(28px,4vw,56px) 0}
.op-dot-blocco .op-dot{margin:0!important}
.op-blocco{margin:var(--op-spazio,60px) 0 0}
.op-info{margin:var(--op-spazio,60px) 0 0}
.op-galleria-sito{margin:0!important;padding:0!important}
:where(.op-galleria-sito .gp_gallery){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
:where(.op-galleria-sito .gp_gallery li){aspect-ratio:3/2;overflow:hidden;margin:0;float:none;width:auto;height:auto}
:where(.op-galleria-sito .gp_gallery img){width:100%;height:100%;object-fit:cover;display:block}
.op-torna{margin:var(--op-spazio,60px) 0 0!important;padding-top:18px;border-top:1px solid var(--op-linea);font-size:15px!important}
.op-torna a{display:inline-flex;align-items:center;gap:.5em;text-decoration:none!important;color:var(--colore-testo-personale,var(--colore-cliente,inherit))!important;font-weight:600}
.op-torna a:hover i{transform:translateX(-3px)}
.op-avviso{background:#fff4d6;border:1px solid #f0c75e;padding:10px 14px;font-size:14px}
.Livello :is(.op-torna,.op-banda-indietro,.ComunicazioneSito,.IndiceSito){display:none!important}
/* ritorno all'elenco: banda con il pulsante del sito, come nel Catalogo */
.op-banda-indietro{background:var(--op-fondo,#f3f3f1);padding:14px;margin:var(--op-spazio,60px) 0 0;text-align:center}
.op .op-banda-indietro a.op-btn-indietro{display:inline-flex;align-items:center;gap:.6em;margin:0!important;width:auto;text-decoration:none!important}
:where(.op a.op-btn-indietro){padding:.6em 1.6em;background:var(--colore-cliente,#2c3e50);color:var(--testo-su-colore,#fff)!important;line-height:1.2}
.jumbotron .op div.op-banda-indietro{text-align:center!important}

/* ---------- dotazioni comuni a tutti ---------- */
.op-comuni{margin:var(--op-spazio,60px) 0 0;padding:clamp(20px,2.4vw,32px) 0;border-top:1px solid var(--op-linea);border-bottom:1px solid var(--op-linea)}
.op .op-comuni-titolo{margin:0 0 1.1em!important;font-size:clamp(17px,.5vw + 14px,20px)!important;line-height:1.3!important}
.jumbotron .op-comuni :is(h3,li,span){text-align:left!important}
/* nella pagina dell'alloggio: dentro la fascia delle dotazioni, sotto quelle dell'alloggio */
.op-dot-blocco .op-comuni{margin:clamp(28px,3vw,44px) 0 0;padding:clamp(22px,2.4vw,32px) 0 0;border-bottom:0}
.op-dot-blocco .op-comuni:first-child{margin-top:0;padding-top:0;border-top:0}
.op-fascia .op-comuni{border-top-color:rgba(0,0,0,.1)}

/* ---------- informazioni utili: fascia attaccata al piè di pagina ----------
   Fondo: il colore del sito molto tenue. Lo script la sposta subito prima di Social e Informazioni.
   Colonne: quelle del piè di pagina compatto (titolo in una colonna stretta, poi tre colonne);
   negli altri piè di pagina titolo sopra e quattro colonne. Testi piccoli, come nel piè di pagina. */
.op-al-piede{--op-info-fondo:var(--op-fondo,#f3f3f1);position:relative;margin:var(--op-spazio,60px) 0 0!important;padding:clamp(34px,4vw,50px) 0!important;background:var(--op-info-fondo);box-shadow:0 0 0 100vmax var(--op-info-fondo);clip-path:inset(0 -100vmax);font-size:15px;line-height:1.5;color:inherit}
.op-al-piede.op-spostata{margin-bottom:0!important}
.op-info-dentro{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:30px;row-gap:24px}
.op .op-info-titolo{grid-column:1/-1;margin:0!important;font-family:inherit!important;font-size:16px!important;font-weight:700!important;line-height:1.5!important;letter-spacing:normal!important;text-transform:none!important;text-shadow:none!important;color:inherit!important}
.op ul.op-info-voci{display:contents}
.op ul.op-info-voci>li{display:flex;align-items:flex-start;gap:10px;margin:0!important;padding:0!important;list-style:none!important;background:none!important;min-width:0}
.op ul.op-info-voci>li::before{display:none!important}
.op-info .op-ico{width:min(var(--op-icona,28px),22px);height:min(var(--op-icona,28px),22px);margin-top:.05em}
.op-info .op-ico-vuota{visibility:hidden}
.op-info-testo{min-width:0;font-size:15px;line-height:1.5}
.op .op-info-testo strong{display:block;margin:0 0 .15em;font-weight:700;font-size:15px}
.op-info-dettaglio{opacity:.8}
html body .jumbotron .op .op-info-dettaglio p{margin:0 0 .35em!important;font-size:15px!important;line-height:1.5!important}
html body .jumbotron .op.op-info :is(h2,strong,p,div,li){text-align:left!important}
/* piè di pagina compatto: titolo nella prima colonna (come «Orari»), le informazioni nelle altre tre */
body.FooterCompatto .op-info-dentro{grid-template-columns:minmax(0,.7fr) repeat(3,minmax(0,1fr))}
body.FooterCompatto .op .op-info-titolo{grid-column:1;grid-row:1}
body.FooterCompatto .op ul.op-info-voci>li:nth-child(3n+1){grid-column:2}

/* ---------- telefono ---------- */
@media(max-width:991px){
	.op-schede.op-col-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
	.op-riga,.op-riga.op-foto-sx{grid-template-columns:minmax(0,1fr);grid-template-areas:"media" "testo";row-gap:18px}
	.op-riga.op-foto-dx .op-riga-testo,.op-riga.op-foto-sx .op-riga-testo{padding-left:0;padding-right:0}
	.op-riga-compatta .op-riga-testo{padding:0}
	.op-con-fondo .op-riga.op-pari{clip-path:inset(calc(-1 * var(--op-spazio,60px) / 2) -100vmax)}
	.op-schede,.op-schede.op-col-2,.op-schede.op-col-4{grid-template-columns:minmax(0,1fr)}
	/* home e altre soluzioni: schede da scorrere col dito */
	.op-fila,.op-n-2 .op-fila,.op-fila.op-n-2{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:14px;margin-right:calc(-1 * clamp(15px,4vw,30px));padding-right:clamp(15px,4vw,30px)}
	.op-fila::-webkit-scrollbar{display:none}
	.op-fila>.op-card{flex:0 0 82%;scroll-snap-align:start}
	.op-n-1 .op-fila>.op-card,.op-fila.op-n-1>.op-card{flex-basis:100%}
	.op-dot-griglia{grid-template-columns:repeat(2,minmax(0,1fr))}
	/* piede: prezzo sopra i pulsanti, un filetto lo separa dalle dotazioni */
	.op-piede{flex-direction:column;align-items:flex-start;gap:14px}
	.op-piede.op-con-prezzo{border-top:1px solid var(--op-linea);padding-top:1.2em}
	.op .op-piede p.op-prezzo{order:-1;margin:0!important;text-align:left!important}
	.op-sezione .op-piede{align-items:center}
	/* informazioni utili: una colonna (due se c'è posto) */
	.op-info-dentro,body.FooterCompatto .op-info-dentro{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));row-gap:18px}
	body.FooterCompatto .op .op-info-titolo{grid-column:1/-1;grid-row:auto}
	body.FooterCompatto .op ul.op-info-voci>li:nth-child(3n+1){grid-column:auto}
}
@media(min-width:768px) and (max-width:991px){
	.op-info-dentro,body.FooterCompatto .op-info-dentro{grid-template-columns:repeat(2,minmax(0,1fr))}
	body.FooterCompatto .op .op-info-titolo{grid-column:1/-1;grid-row:auto}
	body.FooterCompatto .op ul.op-info-voci>li:nth-child(3n+1){grid-column:auto}
}
@media(prefers-reduced-motion:reduce){.op img{transition:none!important;transform:none!important}.op-slide-scorre img.op-slide-foto{transition:none!important}}

/* ---------- pagina dell'alloggio: testo allineato come nell'editor ----------
   Senza una scelta nell'editor: a sinistra, anche con l'allineamento «Centrato» del tema.
   Con una scelta (sinistra, centro, destra, giustificato) vale quella, anche contro il tema. */
html body .jumbotron .op-pagina .op-corpo :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,div):not([style*="text-align"]){text-align:left!important}
html body .jumbotron .op-pagina .op-corpo :is([style*="text-align: center"],[style*="text-align:center"]){text-align:center!important}
html body .jumbotron .op-pagina .op-corpo :is([style*="text-align: right"],[style*="text-align:right"]){text-align:right!important}
html body .jumbotron .op-pagina .op-corpo :is([style*="text-align: justify"],[style*="text-align:justify"]){text-align:justify!important}
html body .jumbotron .op-pagina .op-corpo.op-allinea-center :is(.op-titolo-pagina,.op-sottotitolo,.op-prezzo){text-align:center!important}
html body .jumbotron .op-pagina .op-corpo.op-allinea-right :is(.op-titolo-pagina,.op-sottotitolo,.op-prezzo){text-align:right!important}
/* piede della pagina: filetto sotto il testo, il prezzo, poi Prenota; allineati come il testo */
.op .op-piede.op-piede-pagina{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:16px;margin-top:2em;padding-top:1.4em;border-top:1px solid var(--op-linea)}
.op .op-piede-pagina p.op-prezzo{order:-1;margin:0!important;white-space:normal}
.op-allinea-center .op-piede.op-piede-pagina{align-items:center}
.op-allinea-right .op-piede.op-piede-pagina{align-items:flex-end}
.op-allinea-center .op-piede-pagina p.op-azioni{justify-content:center}
.op-allinea-right .op-piede-pagina p.op-azioni{justify-content:flex-end}

/* ---------- velatura della foto in cima (Impostazioni o alloggio); «tema» = nessuna regola qui ---------- */
html body .jumbotron .op-slide.op-velatura-0 .responsive_image_caption_wrapper.caption-show-always{background:transparent!important}
html body .jumbotron .op-slide.op-velatura-20 .responsive_image_caption_wrapper.caption-show-always{background:rgba(0,0,0,.2)!important}
html body .jumbotron .op-slide.op-velatura-40 .responsive_image_caption_wrapper.caption-show-always{background:rgba(0,0,0,.4)!important}
html body .jumbotron .op-slide.op-velatura-60 .responsive_image_caption_wrapper.caption-show-always{background:rgba(0,0,0,.6)!important}
/* solo in basso: la foto resta chiara, un velo leggero sotto la barra in alto e più deciso dove c'è il nome */
html body .jumbotron .op-slide.op-velatura-basso .responsive_image_caption_wrapper.caption-show-always{background:linear-gradient(180deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,0) 18%,rgba(0,0,0,0) 50%,rgba(0,0,0,.6) 100%)!important}
html body .jumbotron .op-slide:is(.op-velatura-0,.op-velatura-20,.op-velatura-basso) .responsive_image_caption :is(h1,p){text-shadow:0 1px 14px rgba(0,0,0,.5)}

/* ---------- didascalia sulla foto: come nel Carosello (in basso a sinistra, su un velo che si schiarisce verso l'alto) ---------- */
.op .op-didascalia{position:absolute;left:0;right:0;bottom:0;z-index:2;margin:0;padding:clamp(30px,5vw,64px) clamp(14px,2.4vw,26px) clamp(12px,1.8vw,20px);
	background:linear-gradient(to top,rgba(0,0,0,.62),rgba(0,0,0,.26) 55%,rgba(0,0,0,0));color:#fff!important;text-align:left!important;
	font-size:clamp(14px,.4vw + 12px,17px);line-height:1.4;text-shadow:0 1px 6px rgba(0,0,0,.35);pointer-events:none}
.op .op-didascalia *{color:inherit!important;margin:0!important}
.op .op-didascalia a{pointer-events:auto;text-decoration:underline}
.op-carosello .op-didascalia{padding-left:clamp(14px,2.4vw,26px);padding-right:clamp(70px,8vw,90px)}

/* ---------- video (come in Notizie ed Eventi): play del tema (.FrecciaSito dentro .SuFoto) ---------- */
.op-video-quadro{position:relative;aspect-ratio:16/9;background:#111;overflow:hidden}
.op-video-quadro>video,.op-video-quadro>iframe{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;border:0;display:block;background:#000}
.op-video-esterno{position:absolute;inset:0;cursor:pointer;background:radial-gradient(ellipse at center,#3a3a3a 0%,#141414 75%)}
.op-video-esterno>img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;margin:0!important}
.op-video-esterno:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,.15) 55%);pointer-events:none}
.op .op-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:78px;height:78px;margin:0!important;padding:0;font-size:26px;cursor:pointer}
.op-play i{margin-left:4px}
.op-video-esterno:hover .op-play{transform:translate(-50%,-50%) scale(1.06)}
.op .op-video-nota{position:absolute;left:0;right:0;bottom:0;z-index:2;margin:0!important;padding:12px 16px;color:#fff!important;font-size:13px!important;line-height:1.4!important;text-align:center!important;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.jumbotron .op p.op-video-nota{text-align:center!important}

/* ---------- caroselli con il motore dell'addon Carosello ---------- */
.op-cs{min-width:0}
.op .op-cs .cs{margin:0}
/* testo allineato alla foto, non ai punti sotto (anche con i punti del Carosello) */
.op-testo-basso .op-riga:has(.cs.cs-punti-sotto:not(.cs-uno)) .op-riga-testo,
.op-testo-centro .op-riga:has(.cs.cs-punti-sotto:not(.cs-uno)) .op-riga-testo{padding-bottom:var(--op-punti-h)}
/* foto al bordo: il Carosello senza angoli */
@media(min-width:992px){.op-con-bordo .op-riga-media .cs .cs-palco{border-radius:0!important}}
/* foto in cima alla pagina dell'alloggio: il Carosello riempie la Slide; frecce e punti sopra il velo e il nome */
.op-slide-cs .responsive_image_wrapper>.cs{position:absolute!important;inset:0;z-index:0;margin:0}
.op-slide-cs .responsive_image_wrapper>.cs .cs-quadro{height:100%!important;padding:0!important}
.op-slide-cs .responsive_image_wrapper>.cs .cs-palco{border-radius:0!important}
.op-slide-cs .responsive_image_caption_wrapper{pointer-events:none}
.op-slide-cs .cs .cs-nav{z-index:5}
.op-slide-cs .cs.cs-punti-sopra .cs-punti{z-index:5;bottom:clamp(14px,2.4vw,28px)}
.op-slide-cs .cs .cs-palco>.cs-diapo>img{opacity:1!important}

/* ---------- badge sulla foto (solo negli elenchi): cerchietti in alto a sinistra ----------
   Classe del tema .EtichettaSito: forma e colori li può cambiare il tema; qui la riserva nel colore del sito */
.op-riga-media,.op-sezione-media,.op-card-foto{position:relative}
.op-badge-fila{position:absolute;top:12px;left:12px;z-index:4;display:flex;gap:8px;pointer-events:none}
.op .op-badge{--op-icona-colore:currentColor;position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin:0;padding:0;pointer-events:auto;box-shadow:0 2px 8px rgba(0,0,0,.25)}
:where(.op .op-badge){border-radius:50%;background:var(--colore-cliente,#2c3e50);color:var(--testo-su-colore,#fff)}
.op .op-badge>svg,.op .op-badge>img{width:58%!important;height:58%!important;max-width:none!important;margin:0!important;display:block}
.op .op-badge>img{object-fit:contain}
.op-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:600px){.op .op-badge{width:32px;height:32px}.op-badge-fila{top:10px;left:10px;gap:6px}}

/* ---------- richiesta di disponibilità (blocco «testo a scomparsa» del tema) ---------- */
#op-richiesta{scroll-margin-top:110px;margin-top:var(--op-spazio,60px)}
.op-richiesta .readmore-toggle strong{font-weight:600;text-align:left}
.op-richiesta .readmore-content .Formulario-sito{margin-top:6px}
.op-richiesta .iss-form-inviato{text-align:left}
/* il formulario prende lo stile del tema (classe «Formulario», come nella pagina Contatto),
   senza la cornice della sezione: qui la cornice è il blocco a scomparsa */
html body .jumbotron .op-richiesta .Formulario.op-formulario{padding:0 !important;margin:0 !important;box-shadow:none !important;background:none !important;float:none !important;width:auto !important}
.op-richiesta .op-formulario .contactform{width:100% !important;float:none}
.op-richiesta .op-formulario .contactform::after{content:"";display:block;clear:both}

/* centrato anche quando il tema allinea a sinistra (o il pulsante è un blocco): la banda è un flex */
.jumbotron .op-banda-indietro{display:flex !important;justify-content:center !important;align-items:center}
.jumbotron .op-banda-indietro a.op-btn-indietro{float:none !important;margin:0 !important}

/* calendario delle disponibilità (quello comune di Design) */
.op-disponibilita{scroll-margin-top:110px}
.op .op-disponibilita .op-cal-nota{margin:0 0 clamp(12px,1.4vw,20px)!important;opacity:.8}
.op .op-disponibilita .iss-cal-pagina{margin:0}

/* condizioni di prenotazione sotto il formulario di richiesta */
.op-condizioni{display:flex;gap:14px;align-items:flex-start;margin:22px 0 4px;padding:16px 18px;border:1px solid var(--colore-cliente,rgba(0,0,0,.25));border-left-width:4px;background:color-mix(in srgb,var(--colore-cliente,#888) 6%,transparent);text-align:left}
.op-condizioni .op-ico{flex:0 0 auto;color:var(--op-icona-colore,currentColor)}
.op-condizioni .op-ico svg{width:var(--op-icona,28px);height:var(--op-icona,28px)}
.op-condizioni strong{display:block;margin:0 0 4px}
.op-condizioni-testo p{margin:0 0 6px}
.op-condizioni-testo p:last-child{margin:0}

/* pagina privata «Conferma o rifiuta» (link nell'email del proprietario) */
.op-decidi{max-width:640px;margin:0 auto;text-align:left;padding:var(--spazio-paragrafi,30px) 0}
.op-decidi-dati{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px;margin:20px 0 24px}
.op-decidi-dati dt{font-weight:600}.op-decidi-dati dd{margin:0}
.op-decidi-az{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.op-decidi-az form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:0}
.op-decidi-az label{display:block;margin:0}
.op-decidi-az input.submit{width:auto!important;float:none!important;padding:0 26px!important;margin:0!important}
.op-decidi-no input.submit{background:transparent!important;color:inherit!important;border:1px solid currentColor!important}
.op-decidi-nota{margin-top:18px;opacity:.75;font-size:.9em}

/* prezzo indicativo del soggiorno: sotto il calendario e nel formulario */
.op-conto{margin:14px 0 0;text-align:left}
.op-conto[hidden]{display:none}
.op-conto-form{margin:6px 0 14px;padding:14px 16px;border:1px solid color-mix(in srgb,currentColor 15%,transparent)}
.op-conto-vuoto{margin:0;opacity:.7;font-size:.92em}
.op-conto-tot{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.op-conto-tot .et{font-size:.85em;opacity:.75;width:100%}
.op-conto-tot strong{font-size:1.45em;line-height:1.1;color:var(--colore-cliente,inherit)}
.op-conto-tot s{opacity:.55}
.op-conto-tot .notti{opacity:.75}
.op-conto-dett{margin:8px 0 0;font-size:.9em}
.op-conto-dett summary{cursor:pointer;display:inline-block;opacity:.8;text-decoration:underline;text-underline-offset:3px}
.op-conto-dett table{width:100%;border-collapse:collapse;margin:8px 0 4px}
.op-conto-dett td{padding:5px 0;border-bottom:1px solid color-mix(in srgb,currentColor 10%,transparent);vertical-align:top}
.op-conto-dett td+td{text-align:right;white-space:nowrap;padding-left:14px}
.op-conto-dett td s{opacity:.5;margin-right:4px}
.op-conto-dett tr.tot td{font-weight:700;border-bottom:0}
.op-conto-dett p{margin:4px 0 0;font-size:.88em;opacity:.7}
.op-prezzo-auto s{font-weight:400;opacity:.5;font-size:.8em;margin-right:4px}

/* Prenota porta al calendario: un breve richiamo del riquadro */
@keyframes op-richiamo{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--colore-cliente,#888) 55%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
.iss-cal-pagina.op-richiamo{animation:op-richiamo 1.1s ease-out .35s 2}
@media(prefers-reduced-motion:reduce){.iss-cal-pagina.op-richiamo{animation:none}}
