/* SK Active — ritocchi minimi per le pagine generate dal page-builder.
   Il grosso dello stile arriva da Website.css: qui solo cio' che nella SPA
   e' fornito dal contenitore React e che in una pagina PHP manca. */
.sk-cms-main { display: block; }
.sk-cms-main > .page-header:first-child { margin-top: 0; }
.sk-embed { max-width: 1180px; margin: 0 auto; }
.sk-embed iframe { max-width: 100%; border: 0; }
/* Le card senza link non devono sembrare cliccabili */
.sk-cms-main .room-card:not(.is-clickable) { cursor: default; }

/* Player esterni (YouTube/Vimeo): le regole di .sk-embed-video NON stanno qui.
   Le inietta sk-media-embed.js, perche' quel modulo gira anche sulle pagine
   React, che questo foglio non lo caricano. Una definizione sola, in un posto solo. */

/* Calendario eventi: righe con filetto dell'elemento, sobrio come il resto. */
.sk-eventi{max-width:1180px;margin:0 auto;display:grid;gap:.6rem}
.sk-evento{display:flex;align-items:baseline;gap:1.6rem;padding:1.1rem 1.3rem;
  background:var(--bg-elevated,#fff);border:1px solid var(--border);border-left-width:3px;
  border-radius:2px;text-decoration:none;color:inherit;transition:transform .25s,border-color .25s}
a.sk-evento:hover{transform:translateX(3px);border-left-color:var(--accent)}
.sk-evento.tint-acqua{border-left-color:#347176}
.sk-evento.tint-aria{border-left-color:#747748}
.sk-evento.tint-fuoco{border-left-color:#973b2e}
.sk-evento.tint-terra{border-left-color:#803a27}
.sk-evento.tint-metallo{border-left-color:#5a6270}
.sk-evento-data{flex:0 0 190px;font-family:var(--font-body);font-weight:600;font-size:.72rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--fg-subtle)}
.sk-evento-corpo{flex:1 1 auto;min-width:0}
.sk-evento-titolo{font-family:var(--font-display);font-weight:400;font-size:1.35rem;line-height:1.25;color:var(--fg)}
.sk-evento-luogo{font-family:var(--font-body);font-size:.85rem;color:var(--accent);margin-top:.15rem}
.sk-evento-testo{font-family:var(--font-body);font-weight:300;font-size:.92rem;color:var(--fg-muted);margin-top:.4rem}
.sk-evento-freccia{flex:0 0 auto;color:var(--accent);font-size:1.1rem}
.section.dark .sk-evento{background:rgba(241,240,236,.04);border-color:rgba(241,240,236,.12)}
.section.dark .sk-evento-titolo{color:var(--fg-on-dark)}
.section.dark .sk-evento-testo{color:var(--fg-on-dark-muted)}
@media (max-width:700px){.sk-evento{flex-direction:column;gap:.5rem}.sk-evento-data{flex:none}}

/* Landing monolingua: testata e chiusura essenziali, senza la nav del sito.
   Poche regole, perché la pagina deve portare a un contatto, non a navigare. */
.sk-landing-top{position:sticky;top:0;z-index:40;display:flex;align-items:center;
  justify-content:space-between;gap:1rem;padding:.9rem 1.4rem;
  background:var(--bg-inverse,#1a2a44)}
.sk-landing-logo{display:flex;align-items:center;gap:.8rem;text-decoration:none}
/* Il marchio e' scuro: su fondo navy va invertito, come fa la nav del sito
   quando sta sopra l'overlay. */
.sk-landing-logo img{display:block;height:40px;width:auto;max-width:56px;
  object-fit:contain;filter:brightness(0) invert(1)}
.sk-landing-nome{font-family:var(--font-body);font-weight:700;font-size:.72rem;
  letter-spacing:.3em;text-transform:uppercase;color:var(--fg-on-dark,#f1f0ec);line-height:1}
.sk-landing-nome span{display:block;font-weight:400;font-size:.55rem;opacity:.6;
  margin-top:4px;letter-spacing:.22em}
/* Il nome resta scritto da sinistra: e' un marchio, non una parola da tradurre. */
[dir=rtl] .sk-landing-nome{direction:ltr;text-align:right}
.sk-landing-cta{white-space:nowrap}

/* Il colore va messo sui FIGLI, non solo sul contenitore: Website.css ha una
   regola globale su p e a (--fg-muted, cioe' navy trasparente) che vince
   sull'ereditarieta'. Su fondo navy il risultato era testo invisibile. */
.sk-landing-foot{background:var(--bg-inverse,#1a2a44);padding:2.6rem 1.4rem}
.sk-landing-foot-in{max-width:1180px;margin:0 auto;line-height:1.9;font-size:.95rem}
.sk-landing-foot-in p{color:var(--fg-on-dark-muted,rgba(241,240,236,.7));margin:0}
.sk-landing-foot-in p strong{color:var(--fg-on-dark,#f1f0ec)}
.sk-landing-foot a,.sk-landing-foot-in p a{color:var(--fg-on-dark,#f1f0ec);text-decoration:none;
  border-bottom:1px solid rgba(241,240,236,.35)}
.sk-landing-foot a:hover{border-bottom-color:var(--accent,#b08d57)}
/* Numeri, indirizzi e email restano da sinistra a destra anche in una pagina araba. */
.ltr{unicode-bidi:isolate;direction:ltr;display:inline-block}

/* Modulo di iscrizione: campi ampi, tocco comodo, nessuna sorpresa su mobile. */
.sk-iscrizione{max-width:560px;margin:0 auto;display:grid;gap:1rem}
.sk-iscrizione-campo{display:grid;gap:.4rem}
.sk-iscrizione-campo span{font-family:var(--font-body);font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--fg-muted)}
.sk-iscrizione input[type=text],.sk-iscrizione input[type=email]{
  width:100%;padding:.85rem 1rem;font:inherit;font-size:1rem;color:var(--fg);
  background:var(--bg-elevated,#fff);border:1px solid var(--border);border-radius:2px;min-height:48px}
.sk-iscrizione input:focus-visible{outline:2px solid var(--sk-raw-oak,#b08d57);outline-offset:2px}
.sk-iscrizione-privacy{display:flex;gap:.7rem;align-items:flex-start;
  font-family:var(--font-body);font-size:.88rem;line-height:1.6;color:var(--fg-muted)}
.sk-iscrizione-privacy input{margin-top:.25rem;width:18px;height:18px;flex:0 0 auto}
.sk-iscrizione .btn-primary{justify-self:start;min-height:48px}
.section.dark .sk-iscrizione-campo span,.section.dark .sk-iscrizione-privacy{color:var(--fg-on-dark-muted)}
.section.dark .sk-iscrizione input[type=text],.section.dark .sk-iscrizione input[type=email]{
  background:rgba(241,240,236,.06);border-color:rgba(241,240,236,.22);color:var(--fg-on-dark)}
[dir=rtl] .sk-iscrizione .btn-primary{justify-self:end}
@media (max-width:600px){.sk-iscrizione .btn-primary{justify-self:stretch;text-align:center}}

/* Modulo di contatto: stessa grammatica dell'iscrizione, piu' campi.
   Su telefono ogni campo va a riga piena: affiancarli renderebbe i selettori
   di data inutilizzabili. */
.sk-contatto{max-width:760px;margin:0 auto;display:grid;gap:1.1rem}
.sk-contatto-riga{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1.1rem}
.sk-campo{display:grid;gap:.4rem}
.sk-campo span{font-family:var(--font-body);font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--fg-muted)}
.sk-contatto input,.sk-contatto textarea{width:100%;padding:.85rem 1rem;font:inherit;font-size:1rem;
  color:var(--fg);background:var(--bg-elevated,#fff);border:1px solid var(--border);
  border-radius:2px;min-height:48px}
.sk-contatto textarea{min-height:120px;resize:vertical}
.sk-contatto input:focus-visible,.sk-contatto textarea:focus-visible{
  outline:2px solid var(--sk-raw-oak,#b08d57);outline-offset:2px}
.sk-consenso{display:flex;gap:.7rem;align-items:flex-start;font-family:var(--font-body);
  font-size:.88rem;line-height:1.6;color:var(--fg-muted)}
.sk-consenso input{margin-top:.25rem;width:18px;height:18px;flex:0 0 auto}
.sk-contatto .btn-primary{justify-self:start;min-height:48px}
.section.dark .sk-campo span,.section.dark .sk-consenso{color:var(--fg-on-dark-muted)}
.section.dark .sk-contatto input,.section.dark .sk-contatto textarea{
  background:rgba(241,240,236,.06);border-color:rgba(241,240,236,.22);color:var(--fg-on-dark)}
[dir=rtl] .sk-contatto .btn-primary{justify-self:end}
@media (max-width:640px){
  .sk-contatto-riga{grid-template-columns:1fr}
  .sk-contatto .btn-primary{justify-self:stretch;text-align:center}
}
/* L'arabo non tollera il maiuscoletto tracciato: spezza le legature. */
[dir=rtl] .sk-campo span,[dir=rtl] .sk-iscrizione-campo span{text-transform:none;letter-spacing:0}
/* Firma dello studio, anche sulle landing monolingua. */
.sk-landing-credit{margin-top:1.2rem;font-size:.82rem;opacity:.75}
.sk-landing-credit a{color:var(--fg-on-dark,#f1f0ec);text-decoration:none;
  border-bottom:1px solid rgba(241,240,236,.3)}
.sk-landing-credit a:hover{border-bottom-color:var(--accent,#b08d57)}
/* La testata e' sticky: senza questo, l'ancora #contatto porta il titolo
   della sezione esattamente sotto la barra, nascosto. */
.sk-cms-main [id]{scroll-margin-top:5.5rem}

/* ═══════════════ COPERTINA — testata con foto o video ═══════════════
   La testata senza foto resta quella di sempre. Con una foto diventa una
   copertina: l'immagine sta sotto, il testo sopra un velo scuro.

   Il velo NON e' un vezzo grafico. Su una foto chiara — neve, cielo, un muro
   bianco — il testo bianco sparisce, e non c'e' modo di saperlo in anticipo
   perche' la foto la sceglie chi scrive. Il velo garantisce il contrasto
   qualunque foto venga caricata domani. */
.page-header.sk-copertina{background:var(--sk-deep-mineral,#12161a)}
/* La specificita' non e' un vezzo: sk-motion.css dichiara
   `.page-header > :not(.sk-jagged) { position: relative }`, che vale piu' di
   una classe sola e rimetterebbe la foto nel flusso — cioe' sopra al testo
   invece che dietro. Due classi bastano a vincere. */
.sk-copertina > .sk-copertina-foto{position:absolute;inset:0;z-index:0}
.sk-copertina-foto img,.sk-copertina-foto video{width:100%;height:100%;object-fit:cover;display:block}
/* Piu' scuro in basso, dove sta il testo; piu' leggero in alto, dove si
   guarda la foto. */
.sk-copertina::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(11,15,18,.35) 0%,rgba(11,15,18,.55) 45%,rgba(11,15,18,.82) 100%)}
.sk-copertina>*:not(.sk-copertina-foto){position:relative;z-index:2}
.sk-copertina .bg-mesh{opacity:.25}
.sk-copertina-alta{min-height:82vh;display:flex;flex-direction:column;justify-content:flex-end}
@media (max-width:768px){
  .sk-copertina-alta{min-height:76vh}
}

/* ═══════════════ MOTORE DI PRENOTAZIONE FISSO IN BASSO ═══════════════
   Sempre a portata di mano: chiuso e' una striscia, aperto e' il motore.

   Perche' chiuso di default: aperto occupa oltre meta' dello schermo di un
   telefono. Chi arriva vuole prima capire dov'e' finito; il motore serve
   subito dopo, ed e' li' che lo trova senza cercarlo. */
.sk-sb-flottante{position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:var(--sk-deep-mineral,#12161a);
  box-shadow:0 -14px 40px rgba(0,0,0,.35);
  font-family:var(--font-body,Helvetica,Arial,sans-serif)}
.sk-sb-flottante[hidden]{display:none}

.sk-sb-maniglia{display:flex;align-items:center;justify-content:center;gap:.7rem;
  width:100%;padding:1.05rem 1.5rem;border:0;cursor:pointer;
  background:var(--accent,#b08d57);color:#12161a;
  font:600 .82rem/1 var(--font-body,Helvetica,Arial,sans-serif);
  letter-spacing:.13em;text-transform:uppercase}
.sk-sb-maniglia:hover{filter:brightness(1.07)}
.sk-sb-maniglia:focus-visible{outline:3px solid #fff;outline-offset:-5px}
/* La freccia gira invece di cambiare simbolo: un solo elemento, nessun testo
   da tradurre, e il verso resta corretto anche da destra a sinistra. */
.sk-sb-maniglia-icona{width:9px;height:9px;border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;transform:rotate(-135deg);
  transition:transform .25s ease;margin-top:3px}
.sk-sb-flottante.aperta .sk-sb-maniglia-icona{transform:rotate(45deg);margin-top:-3px}

/* Chiuso: altezza zero ma nodo vivo. La SyncroBox va inizializzata una volta
   sola per pagina, quindi il contenitore non puo' essere rimosso e rimesso. */
.sk-sb-pannello{max-height:0;overflow:hidden;transition:max-height .32s ease}
.sk-sb-flottante.aperta .sk-sb-pannello{max-height:76vh;overflow:auto;
  -webkit-overflow-scrolling:touch;padding:1.25rem 1.25rem 1.6rem}

/* ── APERTA DEL TUTTO: il calendario deve poter uscire ──
   Il selettore delle date della SyncroBox si apre VERSO L'ALTO e va oltre
   l'altezza della barra. Con overflow nascosto o automatico veniva tagliato
   in cima: si vedeva mezzo riquadro bianco sotto la maniglia e il calendario
   restava irraggiungibile.
   Qui i due contenitori che ritagliavano smettono di farlo. La classe la
   mette il JavaScript a transizione FINITA: durante l'apertura serve ancora
   il ritaglio, altrimenti il contenuto sborda mentre la barra cresce. */
.sk-sb-flottante.spalancata,
.sk-sb-flottante.spalancata .sk-sb-pannello{overflow:visible}

/* ── LA SYNCROBOX RESTA DA SINISTRA A DESTRA ──
   Simple Booking non ha l'arabo e serve la versione inglese, che e' pensata
   per essere letta da sinistra. Dentro una pagina in arabo il browser le
   ribaltava la disposizione: l'etichetta finiva da una parte e i campi
   dall'altra, con l'aria di un errore. Il testo dentro il widget e' inglese:
   che si comporti da inglese. */
[dir="rtl"] #sb-container,
[dir="rtl"] .sk-sb-pannello{direction:ltr}
[dir="rtl"] .sk-sb-maniglia,
[dir="rtl"] .sk-sb-chiudi{direction:rtl}

.sk-sb-chiudi{display:block;margin:1rem auto 0;padding:.55rem 1.6rem;
  background:transparent;color:#f1f0ec;border:1px solid rgba(241,240,236,.34);
  border-radius:2px;cursor:pointer;font-size:.76rem;letter-spacing:.1em;
  text-transform:uppercase}
.sk-sb-chiudi:hover{border-color:var(--accent,#b08d57);color:var(--accent,#b08d57)}

/* Il fondo della pagina non deve finire sotto il pannello aperto. */
body.sk-sb-barra-aperta .sk-cms-main{padding-bottom:4rem}
.sk-sb-flottante ~ .sk-cms-main,body:has(.sk-sb-flottante) .sk-landing-credit{padding-bottom:4.5rem}

/* Da tablet in su la striscia si restringe a pillola centrata: a tutta
   larghezza su un monitor sarebbe una fascia enorme per due parole. */
@media (min-width:900px){
  .sk-sb-flottante{left:50%;right:auto;transform:translateX(-50%);
    width:min(1040px,94vw);border-radius:10px 10px 0 0;overflow:hidden}
  .sk-sb-maniglia{padding:.95rem 2rem;font-size:.8rem}
  .sk-sb-flottante.aperta .sk-sb-pannello{max-height:70vh;padding:1.5rem 1.75rem 1.9rem}
}

/* Card che apre una galleria: deve sembrare cliccabile come quelle con link. */
.room-card[data-sk-galleria]{cursor:pointer}
.room-card[data-sk-galleria]:focus-visible{outline:3px solid var(--accent,#b08d57);outline-offset:3px}

/* ═══════════════ MANUTENZIONE ═══════════════
   Non ha testata ne' piede: durante i lavori la navigazione porterebbe su
   pagine che rispondono anche loro 503, cioe' in nessun posto. */
.sk-manutenzione{min-height:100vh;display:flex;flex-direction:column;justify-content:center}
.sk-manutenzione-contatti{display:flex;gap:1rem;margin-top:2.5rem;flex-wrap:wrap}
.sk-manutenzione-credit{margin-top:3.5rem;font-size:.86rem;line-height:1.8;
  color:var(--fg-on-dark-muted,rgba(241,240,236,.7))}

/* ═══════════════ CALENDARIO A GRIGLIA ═══════════════
   Un elenco dice quando; la griglia dice anche quanto manca e se il ponte
   cade dentro un evento. Chi sta scegliendo le date se lo chiede. */
.sk-cal{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-bottom:2.5rem}
.sk-cal-mese{min-width:0}
.sk-cal-titolo{font-family:var(--font-display,Georgia,serif);font-size:1.15rem;margin-bottom:.9rem;
  text-transform:capitalize}
.sk-cal-titolo span{opacity:.45;font-size:.9em}
.sk-cal-griglia{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.sk-cal-gio{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;text-align:center;
  padding:.3rem 0;opacity:.5}
.sk-cal-vuoto{aspect-ratio:1}
.sk-cal-giorno{aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  font-size:.78rem;border-radius:3px;color:inherit;text-decoration:none;
  /* I numeri in una griglia devono stare incolonnati: con le cifre a
     larghezza variabile la griglia sembra storta. */
  font-variant-numeric:tabular-nums}
/* Oggi: un anello, non un riempimento — il riempimento e' riservato agli
   eventi, e due riempimenti diversi si confonderebbero. */
.sk-cal-giorno.oggi{box-shadow:inset 0 0 0 1.5px currentColor;font-weight:600}
a.sk-cal-giorno.attivo{font-weight:600;background:var(--accent,#b08d57);color:#12161a}
a.sk-cal-giorno.attivo:hover{filter:brightness(1.12)}
a.sk-cal-giorno.attivo:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.sk-cal-giorno.attivo.tint-acqua{background:#5b8fa8}
.sk-cal-giorno.attivo.tint-aria{background:#9db4c0}
.sk-cal-giorno.attivo.tint-fuoco{background:#c46a4a}
.sk-cal-giorno.attivo.tint-terra{background:#8a7a5e}
.sk-cal-giorno.attivo.tint-metallo{background:#7d8794}
a.sk-cal-giorno.attivo{color:#fff}

.sk-cal-legenda{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;font-size:.82rem;opacity:.85}
.sk-cal-voce{display:inline-flex;align-items:center;gap:.5rem}
.sk-cal-voce i{width:11px;height:11px;border-radius:2px;background:var(--accent,#b08d57);flex:0 0 auto}
.sk-cal-voce i.tint-acqua{background:#5b8fa8}
.sk-cal-voce i.tint-aria{background:#9db4c0}
.sk-cal-voce i.tint-fuoco{background:#c46a4a}
.sk-cal-voce i.tint-terra{background:#8a7a5e}
.sk-cal-voce i.tint-metallo{background:#7d8794}

/* La testata e' appiccicata: senza questo, saltando a un evento dalla griglia
   il titolo finirebbe sotto la barra. */
.sk-evento[id]{scroll-margin-top:6rem}
/* Giorno con piu' di un evento: un puntino in basso. Senza, sembrerebbe che
   quel giorno ci sia solo il primo. */
.sk-cal-giorno.doppio{position:relative}
.sk-cal-giorno.doppio::after{content:"";position:absolute;bottom:3px;left:50%;transform:translateX(-50%);
  width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.75}

/* ═══════════════ LA SYNCROBOX SULLA BARRA SCURA ═══════════════
   Website.css veste il motore di prenotazione per una pagina CHIARA: etichette
   e valori in blu profondo, che sulla pagina /prenota e' giusto.

   Sulla barra fissa lo sfondo e' lo stesso blu, e il risultato era blu su blu:
   le caselle si vedevano ma dentro non c'era scritto niente — misurato,
   contrasto 1:1. Nessun errore visibile, solo campi che sembrano vuoti.

   I selettori ricalcano quelli di Website.css con una classe in piu' davanti:
   servono a superarli in specificita', perche' li' sono tutti !important.
   Restano fuori il pulsante (fondo blu, testo gia' chiaro), il calendario e
   il pannello ospiti, che hanno fondo bianco proprio. */
.sk-sb-flottante #sb-container div.sb .sb__form-field-label,
.sk-sb-flottante #sb-container div.sb .sb__form-field-date-number,
.sk-sb-flottante #sb-container div.sb .sb__form-field-month-year,
.sk-sb-flottante #sb-container div.sb .sb__form-field-property,
.sk-sb-flottante #sb-container div.sb .sb__form-field-guests,
.sk-sb-flottante #sb-container div.sb .sb__form-field-rooms,
.sk-sb-flottante #sb-container div.sb .sb__form-field-input{
  color:var(--fg-on-dark,#f1f0ec) !important}

/* I secondari — giorno della settimana, note — restano piu' tenui, ma chiari. */
.sk-sb-flottante #sb-container div.sb .sb__form-field-weekday{
  color:rgba(241,240,236,.72) !important}

/* Il bordo delle caselle: sul chiaro e' un filetto scuro, qui sparirebbe. */
.sk-sb-flottante #sb-container div.sb .sb__form-field{
  border-bottom-color:rgba(241,240,236,.34) !important}
.sk-sb-flottante #sb-container div.sb .sb__form-field:focus-within{
  border-bottom-color:var(--accent,#b08d57) !important}

/* Calendario e pannello ospiti hanno fondo bianco: li' il testo resta scuro,
   com'e' gia' in Website.css. Si ripete solo per essere espliciti: una regola
   di colore scritta a meta' si dimentica al primo ritocco. */
.sk-sb-flottante #sb-container div.sb .sb__calendar,
.sk-sb-flottante #sb-container div.sb .sb__calendar *,
.sk-sb-flottante #sb-container div.sb .sb__guests,
.sk-sb-flottante #sb-container div.sb .sb__guests *{
  color:var(--sk-deep-mineral,#1a2a44) !important}

/* La barra fissa e' scura: li' l'oro chiaro ci sta benissimo. La regola per
   il fondo CHIARO sta in Website.css, che e' caricato anche dalle pagine
   React — sk-cms.css no, e /prenota e' una di quelle. */
.sk-sb-flottante #sb-container div.sb .sb__footer-link{
  color:var(--accent,#c4a878) !important}

/* ============================================================================
   ELENCO ARTICOLI: UNO IN EVIDENZA, GLI ALTRI IN GRIGLIA
   Con un articolo solo la sezione sembrava vuota; con dieci, una fila di
   schede uguali non dice quale valga la pena leggere. Il primo sale a tutta
   larghezza — lo decide la spunta « in evidenza », o in mancanza il piu'
   recente — e gli altri restano nella griglia di sempre.

   Da telefono torna una scheda come le altre: su 375 pixel una scheda alta
   mezzo schermo e' un ostacolo, non un richiamo.
   ========================================================================== */
.sk-art-evidenza{
  position:relative;display:block;width:100%;
  height:clamp(300px,44vh,460px);
  border-radius:3px;overflow:hidden}
.sk-art-evidenza .info{max-width:56ch}
.sk-art-evidenza .nm{font-size:clamp(1.6rem,3.2vw,2.6rem);line-height:1.12}
.sk-art-evidenza .meta{font-size:.98rem;line-height:1.55}

/* Senza foto: il blu della testata, non una tinta a caso. Si riconosce come
   il sito, e non finge di essere una fotografia che non c'e'. */
.sk-art-senza-foto .img{
  background:var(--sk-deep-mineral,#1a2a44);
  background-image:radial-gradient(circle at 22% 18%, rgba(196,168,120,.16), transparent 46%),
                   radial-gradient(circle at 78% 82%, rgba(196,168,120,.10), transparent 52%)}
/* Senza foto sotto non c'e' niente da schiarire: il velo servirebbe solo a
   spegnere il blu. */
.sk-art-senza-foto .overlay{background:linear-gradient(180deg,transparent 40%,rgba(10,18,32,.45))}

@media (max-width:980px){
  .sk-art-evidenza{height:clamp(230px,34vh,300px)}
  .sk-art-evidenza .nm{font-size:clamp(1.3rem,5.2vw,1.7rem)}
  .sk-art-evidenza .meta{font-size:.9rem}
}

/* ============================================================================
   LA COPERTINA DELL'ARTICOLO — 16:9, la stessa proporzione ovunque
   Prima era un'altezza fissa in pixel, e il taglio cambiava fra la scheda
   dell'elenco e la pagina dell'articolo: per ogni foto bisognava cercare
   l'inquadratura che stesse bene in tutti e due, e spesso non esisteva.
   Il 16:9 e' la proporzione con cui si scattano le foto ed e' quella che
   chiedono i social per l'anteprima di un link condiviso — la stessa immagine
   serve tre scopi senza compromessi.
   Non e' larga tutto lo schermo: a tutta larghezza un 16:9 su un monitor
   grande tornerebbe alto 700 pixel — una schermata di sola foto, il difetto
   da cui siamo partiti. Un tetto in altezza la tiene entro i 26rem, e la
   proporzione fa il resto restringendo la larghezza invece di tagliare.
   La foto si vede INTERA: se e' 16:9 all'origine, quello che hai inquadrato
   e' quello che si vede. Era il punto — niente ritagli da indovinare.
   ========================================================================== */
/* La larghezza e' l'unica leva: un tetto in ALTEZZA romperebbe la
   proporzione — provato, la scatola diventava 2,15:1 e la foto tornava
   tagliata. Con 46rem il 16:9 esce intorno ai 450 pixel d'altezza, che sta
   nella prima schermata insieme alla testata. */
.sk-art-cover{width:100%;max-width:46rem;margin:0 auto;aspect-ratio:16/9;overflow:hidden}
.sk-art-cover img,.sk-art-cover video{width:100%;height:100%;object-fit:cover;display:block}

/* Anche le schede dell'ELENCO ARTICOLI in 16:9: stessa proporzione della
   copertina, stesso taglio, nessuna sorpresa fra l'anteprima e la pagina.

   La classe in piu' non e' pignoleria. La regola scritta come
   « .rooms-grid .room-card » prendeva OGNI griglia di card del sito, comprese
   quelle delle pagine migrate: le camere, i servizi, gli itinerari — tutte
   schiacciate da 4:5 a 16:9. Segnalato il 26 agosto 2026 su Bike, e valeva
   per tutte e undici. Le card delle pagine restano verticali, come sono
   sempre state. */
.rooms-grid.sk-elenco-articoli .room-card{aspect-ratio:16/9}

/* « Ti potrebbe interessare anche »: la card come collegamento.
   Nei bundle quella card e' un <button>, e Website.css dimensiona i testi
   interni in em — cioe' in rapporto alla dimensione del bottone, che nessuno
   dichiara e che il browser fissa da solo a 13.3333px. Un <a> invece eredita i
   16px della pagina, e tutto dentro cresce del venti per cento: card piu' alta
   di dodici pixel, misurato affiancando le due versioni.
   Qui si riporta la base a quel valore. Il numero e' brutto perche' e' quello
   vero del browser, non uno scelto da noi: cambiarlo scollerebbe le due
   versioni finche' convivono.

   Stessa storia per l'interlinea: un <button> non eredita line-height dalla
   pagina, un <a> si'. Con l'interlinea del corpo del testo il titolo della
   card passava da 26 a 34 pixel di altezza. « normal » e' quello che il
   browser da' ai bottoni, ed e' quello su cui la CSS originale e' tarata. */
a.related-card { font-size: 13.3333px; line-height: normal; }

/* I pulsanti come collegamenti.
   .btn-primary e .btn-ghost-light in Website.css non dichiarano ne' display
   ne' text-align: si appoggiano a quello che il browser da' gratis ai
   <button>, cioe' inline-block e testo centrato. Un <a> invece e' inline e
   eredita l'allineamento del contenitore, quindi il testo finiva a sinistra
   dentro un pulsante che sembrava storto. Segnalato il 26 agosto 2026 sulle
   pagine migrate.
   Qui si rimette quello che il bottone aveva per conto suo. */
a.btn-primary, a.btn-ghost-light, a.btn-ghost-dark {
  display: inline-block;
  text-align: center;
  text-decoration: none;
}

/* Landing monolingua: le azioni in alto a destra — lingua e contatto.
   Le sigle restano in alfabeto latino anche in RTL: « EN » e « DE » si
   riconoscono a colpo d'occhio, tradurle le renderebbe illeggibili a chi
   quelle lingue le cerca. */
.sk-landing-azioni { display: flex; align-items: center; gap: 1.2rem; }
.sk-landing-lingue { display: flex; gap: .55rem; direction: ltr; unicode-bidi: isolate; }
.sk-landing-lingue a {
  font-family: var(--font-body); font-weight: 600; font-size: .72rem;
  letter-spacing: .14em; text-decoration: none; color: var(--fg-muted);
  padding: .3rem .45rem; border-bottom: 1px solid transparent; transition: color .2s, border-color .2s;
}
.sk-landing-lingue a:hover, .sk-landing-lingue a:focus-visible {
  color: var(--fg); border-bottom-color: var(--accent);
}
@media (max-width: 560px) { .sk-landing-azioni { gap: .7rem } .sk-landing-lingue a { padding: .3rem .25rem } }

/* ─────────────────────────────────────────────────────────────────────────
   BLOCCHI ATTACCATI — due blocchi che a schermo sono una sezione sola.

   Ogni blocco si disegna dentro una .section, che ha 126px di spazio sopra e
   sotto. Quando due blocchi formano UNA sezione — un titolo col suo video, e
   sotto l'elenco che li spiega — i due spazi si sommano: 252px di vuoto in
   mezzo, e la seconda parte sembra appartenere a un'altra cosa.

   E' successo sulla pagina Servizi: l'elenco della zona relax era finito
   staccato dal suo titolo, mentre nel sito di riferimento erano un pezzo solo.
   Segnalato da Sandra il 28 agosto 2026.

   Si toglie lo spazio sopra al blocco attaccato, e — con :has() — anche quello
   sotto al blocco che lo precede. Senza :has() si potrebbe solo tirare su il
   secondo con un margine negativo, che è la stessa cosa detta peggio e si
   rompe al primo cambio di misura.
   ───────────────────────────────────────────────────────────────────────── */
.section.sk-attaccato { padding-top: 0; }
.section:has(+ .section.sk-attaccato) { padding-bottom: 0; }

/* Il titolo di sezione, se c'è, non deve nemmeno lui staccarsi dall'alto. */
.section.sk-attaccato > .section-head { margin-top: 0; }

/* ─────────────────────────────────────────────────────────────────────────
   COME ARRIVARE — mappa a sinistra, indicazioni a destra.

   Nella versione React queste misure erano scritte a mano dentro il
   componente, quindi non esistevano come regole e il blocco CMS sarebbe nato
   senza impaginazione. Sono le stesse, prese dal DOM della pagina vera:
   due colonne 1.2fr/1fr, stacco 2.5rem, colonne allineate in alto.

   Le regole per il telefono ci sono gia' in Website.css e capovolgono
   l'ordine — prima le indicazioni, poi la mappa — perche' su uno schermo
   stretto una mappa alta trecento pixel in cima allontana il testo.
   ───────────────────────────────────────────────────────────────────────── */
.sk-arrivo {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 2.5rem;
  align-items: stretch;
}
.sk-arrivo-modi { display: grid; gap: 1.4rem; align-content: start; }
.sk-arrivo-modi .eyebrow { color: var(--accent); }
.sk-arrivo-modi p {
  font-family: var(--font-body);
  line-height: 1.65;
  color: var(--fg-muted);
  font-size: .95rem;
  margin: 0;
}
.sk-mappa {
  width: 100%;
  min-height: 380px;
  border-radius: 3px;
  overflow: hidden;
  border: 1px solid var(--sk-stone-300);
  background: var(--sk-stone-100, #efedE8);
}
.sk-arrivo-link { margin: .9rem 0 0; font-size: .9rem; }

/* I recapiti accanto al modulo di contatto: nome, indirizzo, telefono,
   WhatsApp, email. Sono link veri — si toccano dal telefono e compongono. */
.sk-recapiti {
  display: flex; flex-direction: column; gap: .3rem;
  margin: 0 0 2rem; font-size: .95rem; line-height: 1.6; color: var(--fg-muted);
}
.sk-recapiti strong { color: var(--fg); font-weight: 600; }
.sk-recapiti a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--accent); width: fit-content; }
.sk-recapiti a:hover, .sk-recapiti a:focus-visible { color: var(--accent); }

/* ─────────────────────────────────────────────────────────────────────────
   TRENTINO GUEST CARD — passi, categorie, distanze, mappa con legenda.

   Queste regole stavano in un <style> dentro il componente React: esistevano
   solo finche' quella pagina era React, e migrandola sarebbero sparite
   portandosi via l'impaginazione di quattro sezioni. Sono le stesse, prese dal
   foglio vero, con i selettori adattati ai blocchi del CMS (il titolo di una
   card ora e' .gc-cat-tag e non h3, perche' nel CMS il titolo della sezione e'
   gia' un h2 e non si annidano due livelli per un'etichetta).
   ───────────────────────────────────────────────────────────────────────── */
.gc-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.gc-step { padding: 1.8rem 0 0; border-top: 1px solid var(--border-strong); }
.gc-step-num { font-family: var(--font-display); font-style: italic; font-size: 1.6rem; color: var(--accent); }
.gc-step-t { font-family: var(--font-display); font-weight: 400; font-size: 1.3rem; color: var(--fg); margin: .6rem 0 .5rem; }
.gc-step p { font-family: var(--font-body); font-weight: 300; font-size: .92rem; line-height: 1.6; color: var(--fg-muted); margin: 0; }

.gc-cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
.gc-cat { position: relative; padding: 2rem 1.8rem; background: var(--bg-elevated); border: 1px solid var(--border); border-radius: var(--radius-xs); }
.gc-cat-dot { position: absolute; top: 1.8rem; right: 1.8rem; width: 10px; height: 10px; border-radius: 50%; }
.gc-cat-tag { font-family: var(--font-display); font-weight: 400; font-size: 1.5rem; line-height: 1.1; color: var(--fg); margin: 0 0 .5rem; }
.gc-cat-lead { font-family: var(--font-body); font-weight: 300; font-size: .95rem; line-height: 1.55; color: var(--fg-muted); margin: 0 0 1.2rem; }
.gc-cat ul { list-style: none; padding: 1rem 0 0; margin: 0; display: flex; flex-direction: column; gap: .6rem; border-top: 1px solid var(--border); }
.gc-cat li { font-family: var(--font-body); font-weight: 400; font-size: .9rem; color: var(--fg); padding-left: 1.2rem; position: relative; }
.gc-cat li::before { content: '—'; position: absolute; left: 0; color: var(--accent); }

.gc-near { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem 3rem; max-width: 70rem; }
.gc-near-row { display: grid; grid-template-columns: auto auto 1fr; gap: 1rem; align-items: start; padding: 1.4rem 0; border-top: 1px solid rgba(241,240,236,.12); }
.gc-near-dot { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; margin-top: .55rem; }
.gc-near-dist { font-family: var(--font-display); font-style: italic; font-size: 1.3rem; color: var(--accent); white-space: nowrap; }
.gc-near-head { font-family: var(--font-display); font-weight: 400; font-size: 1.2rem; color: var(--fg-on-dark); }
.gc-near-body { font-family: var(--font-body); font-weight: 300; font-size: .9rem; line-height: 1.55; color: rgba(241,240,236,.7); margin-top: .3rem; }

.gc-legend { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-bottom: 1.5rem; }
.gc-legend-item { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-body); font-weight: 500; font-size: .78rem; letter-spacing: .04em; color: var(--fg-muted); }
.gc-legend-dot { width: 12px; height: 12px; border-radius: 50%; box-shadow: 0 0 0 3px rgba(0,0,0,.04); }

.gc-map { width: 100%; height: 480px; border-radius: var(--radius-xs); overflow: hidden; border: 1px solid var(--border-strong); box-shadow: var(--shadow-md); z-index: 1; }
.gc-map-note { font-family: var(--font-body); font-weight: 300; font-size: .8rem; line-height: 1.55; color: var(--fg-subtle); margin: 1rem 0 0; max-width: 70ch; }

.gc-pin-dot { display: block; width: 18px; height: 18px; border-radius: 50%; border: 2.5px solid #f9f7f2; box-shadow: 0 2px 6px rgba(26,42,68,.35); }
.gc-pin-dot.gc-pin-big { width: 26px; height: 26px; border-width: 3px; box-shadow: 0 3px 10px rgba(26,42,68,.5); }
.leaflet-popup-content { font-family: var(--font-body); font-size: .85rem; line-height: 1.5; }
.leaflet-popup-content b { font-family: var(--font-display); font-weight: 500; font-size: 1rem; color: var(--sk-deep-mineral); }
.leaflet-popup-content a { color: var(--sk-earthy-rust); font-weight: 600; }

@media (max-width: 980px) {
  .gc-steps { grid-template-columns: 1fr 1fr; }
  .gc-cats  { grid-template-columns: 1fr; }
  .gc-near  { grid-template-columns: 1fr; gap: 0; }
  .gc-map   { height: 380px; }
}
@media (max-width: 560px) { .gc-steps { grid-template-columns: 1fr; } }

/* ============================================================
   DOMANDE FREQUENTI E INVITO ALL'AZIONE DENTRO UN ARTICOLO
   ------------------------------------------------------------
   Le pagine hanno il blocco « faq » e il blocco « cta ». Un
   articolo no: il suo corpo e' un campo di testo solo, dentro
   .legal-prose. Queste due classi danno alle stesse due cose la
   stessa forma anche li'.

   .sk-domande porta l'attributo data-sk-faq, che articolo.php
   legge per costruire il JSON-LD FAQPage. La forma e il dato
   nascono dallo stesso pezzo di testo: non si possono
   disallineare.
   ============================================================ */
.legal-prose .sk-cta-testo { margin: 3rem 0; text-align: center; }
.legal-prose .sk-cta-testo a { display: inline-block; }

.legal-prose .sk-domande {
  margin: 4rem 0 0;
  padding-top: 2.4rem;
  border-top: 1px solid var(--border);
}
.legal-prose .sk-domande > h2 { margin-top: 0; }
.legal-prose .sk-domanda { border-bottom: 1px solid var(--border); padding: 1.2rem 0; }
.legal-prose .sk-domanda:last-child { border-bottom: 0; }
.legal-prose .sk-domanda h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.15rem;
  line-height: 1.35;
  color: var(--fg);
  margin: 0 0 .6rem;
}
.legal-prose .sk-domanda p {
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.7;
  color: var(--fg-muted);
  margin: 0;
}

/* ============================================================
   LA TENDINA DELLE LINGUE SULLE PAGINE MONOLINGUA
   ------------------------------------------------------------
   Sulla landing araba e sulle sue guide React non c'e', quindi
   il selettore di lingua e' un <details> invece del componente.
   Le classi sono le stesse — lang-switch, lang-current,
   lang-menu — cosi' l'aspetto arriva da sk-motion.css e qui
   restano solo le tre differenze fra un <details> e il
   componente: la freccina del riassunto, i link al posto dei
   pulsanti, e il lato da cui si apre quando si legge da destra.
   ============================================================ */
.sk-lingue-tendina { direction: ltr; unicode-bidi: isolate; }
.sk-lingue-tendina > summary { list-style: none; }
.sk-lingue-tendina > summary::-webkit-details-marker { display: none; }
.sk-lingue-tendina > summary::marker { content: ''; }
.sk-lingue-tendina[open] .lang-caret { transform: rotate(180deg); }

/* Nel componente le voci sono <button>: qui sono <a>, e vogliono
   la stessa forma. */
.lang-menu a {
  display: flex; align-items: baseline; gap: .55rem; white-space: nowrap;
  width: 100%; padding: .4rem .7rem; border-radius: 4px;
  text-decoration: none;
  font-family: var(--font-body); font-weight: 600; font-size: .7rem;
  letter-spacing: .1em; color: var(--sk-deep-mineral);
}
.lang-menu a:hover, .lang-menu a:focus-visible {
  background: rgba(196,168,120,.18); color: var(--accent);
}

/* Su una pagina araba il menu si apre a sinistra, o esce dallo schermo. */
[dir="rtl"] .lang-menu { right: auto; left: 0; }

/* ============================================================
   LE SCHEDE DEGLI ARTICOLI — Journal e Cosa Fare
   ------------------------------------------------------------
   Erano .room-card: foto a tutto riquadro e il testo sopra, su
   un velo scuro. Con i titoli lunghi degli articoli il testo
   copriva la fotografia e non si leggeva piu' niente.
   Adesso ognuno sta al suo posto — data, titolo, foto, estratto,
   invito — e la scheda cresce quanto le serve invece di stare
   dentro un rettangolo fisso.
   ============================================================ */
.sk-elenco-articoli { align-items: stretch; }

.sk-art-card {
  display: flex; flex-direction: column;
  height: 100%;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 2px;
  padding: 1.5rem 1.5rem 1.6rem;
  transition: box-shadow .3s ease, border-color .3s ease;
}
.sk-art-card:hover { box-shadow: var(--shadow-md); border-color: var(--border-strong); }

.sk-art-titolo { margin: 0 0 1.1rem; }
/* IL TAGLIO E' A RIGHE, NON A CARATTERI.
   Contando i caratteri due titoli della stessa lunghezza finiscono uno su
   due righe e uno su tre, e le schede si disallineano lo stesso. Contando
   le RIGHE il risultato e' sempre quello che si vede: due righe per il
   titolo, tre per l'estratto, e i puntini li mette il browser dove serve. */
.sk-art-titolo a {
  font-family: var(--font-display); font-weight: 400;
  font-size: 1.3rem; line-height: 1.22; color: var(--fg);
  text-decoration: none; text-wrap: balance;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.sk-art-titolo a:hover { color: var(--sk-earthy-rust); }
.sk-art-titolo a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

/* La foto tiene una proporzione sola: la stessa con cui si scatta
   e la stessa che vogliono i social. */
.sk-art-foto {
  display: block; aspect-ratio: 16/10; overflow: hidden;
  border-radius: 2px; background: var(--sk-stone-300);
}
.sk-art-foto img, .sk-art-foto video { transition: transform .6s var(--ease-out); }
.sk-art-card:hover .sk-art-foto img { transform: scale(1.04); }

.sk-art-estratto {
  font-family: var(--font-body); font-weight: 300;
  font-size: .88rem; line-height: 1.65; color: var(--fg-muted);
  margin: 1.1rem 0 0;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden;
}

.sk-art-leggi {
  /* auto, non una misura: spinge l'invito in fondo alla scheda, e su tutte
     le schede della riga finisce alla stessa quota. */
  margin-top: auto; padding-top: 1.1rem; align-self: start;
  font-family: var(--font-body); font-weight: 600;
  font-size: .68rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--accent); text-decoration: none;
}
.sk-art-card:hover .sk-art-leggi { color: var(--sk-earthy-rust); }

/* Senza copertina la scheda non lascia un buco: si stringe e basta. */
.sk-art-card.sk-art-senza-foto .sk-art-titolo { margin-bottom: 0; }
/* La foto non si comprime quando la scheda si allunga. */
.sk-art-foto { flex: 0 0 auto; }

@media (max-width: 980px) { .sk-elenco-articoli { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .sk-elenco-articoli { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------------------
   Menu e piede scritti nell'HTML servito
   ---------------------------------------------------------------------------
   lib/menu.php e lib/piede.php stampano la navigazione dentro #sk-nav-root e
   #sk-foot-root. React li monta con createRoot(), che svuota il contenitore:
   quindi il markup statico serve solo finche' React non e' partito.

   Con il JavaScript attivo si nasconde subito — la classe sk-js la mette una
   riga in <head>, prima di questo foglio, quindi non c'e' nessun lampo.
   Senza JavaScript resta a schermo: e' l'unica navigazione che quell'utente
   avra' mai, ed e' anche quella che leggono i motori che non eseguono script.
--------------------------------------------------------------------------- */
.sk-js .sk-menu-statico,
.sk-js .sk-piede-statico { display: none; }

/* LO SPAZIO DELLA BARRA IN CIMA, RISERVATO DA SUBITO.
   Il menu statico viene nascosto appena il JavaScript e' vivo (regola qui
   sopra), ma React disegna la barra qualche istante dopo: in mezzo
   #sk-nav-root e' alto ZERO, e tutto il contenuto sta 72 pixel piu' su. Quando
   la barra compare, la pagina scende di colpo.

   E' il difetto che PageSpeed attribuiva a <main class="sk-cms-main"> con
   0,073 di CLS: 0,073 x 823 pixel di schermo fa esattamente l'altezza della
   barra. Compariva a intermittenza — se React arrivava prima del primo
   disegno non si vedeva — ed e' peggiorato via via che la pagina diventava
   piu' veloce, perche' il primo disegno arrivava sempre prima.

   Riservando l'altezza qui, quando la barra compare non muove niente.
   I due valori sono gli stessi di .nav in Website.css: se cambiano li',
   vanno cambiati anche qui. */
#sk-nav-root { min-height: 72px; }
@media (max-width: 880px) { #sk-nav-root { min-height: 60px; } }

.sk-menu-statico, .sk-piede-statico { padding: 24px 20px; font-size: 15px; }
.sk-menu-statico > div, .sk-piede-statico > div { margin-bottom: 18px; }
.sk-menu-statico .t, .sk-piede-statico .t { font-size: 14px; letter-spacing: .08em;
  text-transform: uppercase; font-weight: 600; margin: 0 0 8px; }
.sk-menu-statico ul, .sk-piede-statico ul { list-style: none; margin: 0; padding: 0; }
.sk-menu-statico li, .sk-piede-statico li { margin: 0 0 6px; }

/* ---------------------------------------------------------------------------
   I tre marchi del territorio, in fondo al piede
   ---------------------------------------------------------------------------
   Stanno fra la newsletter e i dati fiscali. Li disegna il piede React
   (Website.components.js) leggendo window.SK_LOGHI_DESTINAZIONE, e li ridisegna
   uguali lib/piede.php per l'HTML servito: un solo aspetto, due sorgenti.

   I file sono gia' bianchi su trasparente, quindi qui non serve nessun filtro:
   basta la trasparenza. Il filtro CSS non sarebbe bastato comunque — due dei
   tre marchi arrivavano in JPEG, col rettangolo bianco intorno, e
   brightness(0) invert(1) avrebbe reso bianco anche quello.

   L'opacita' al 45% e' quella del disegno approvato: presenti, non gridati.
   Al passaggio del mouse salgono, cosi' chi li cerca li legge bene.
--------------------------------------------------------------------------- */
.sk-loghi-destinazione { padding: 26px 0 22px; text-align: center; }
.sk-loghi-eti { margin: 0 0 16px; font-family: var(--font-body);
  font-size: .62rem; font-weight: 700; letter-spacing: .34em; text-transform: uppercase;
  color: rgba(241, 240, 236, .38); }
.sk-loghi-fila { display: flex; align-items: center; justify-content: center;
  gap: clamp(28px, 6vw, 80px); flex-wrap: wrap; }
.sk-loghi-fila img { height: 52px; width: auto; opacity: .45;
  transition: opacity .35s var(--ease-out, ease); }
.sk-loghi-fila img:hover, .sk-loghi-fila img:focus { opacity: .9; }

/* Sul piede statico — quello che si vede solo senza JavaScript — il fondo e'
   chiaro, quindi i marchi bianchi sparirebbero: li si rimette scuri. */
.sk-piede-statico + .sk-loghi-destinazione .sk-loghi-eti { color: var(--fg-subtle); }
.sk-piede-statico + .sk-loghi-destinazione .sk-loghi-fila img { filter: invert(1); opacity: .55; }

@media (max-width: 600px) {
  .sk-loghi-fila { gap: 22px; }
  .sk-loghi-fila img { height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .sk-loghi-fila img { transition: none; }
}

/* ---------------------------------------------------------------------------
   « Dicono di noi » — i punteggi delle piattaforme
   ---------------------------------------------------------------------------
   Testo visibile, niente dati strutturati di recensione: il perche' sta nel
   commento del blocco, in lib/blocks.php.

   Il numero e' l'elemento forte, in Playfair, con le cifre a larghezza fissa
   cosi' tre punteggi in fila restano allineati. La scala e' sempre accanto:
   « 4,8 » da solo non vuol dire niente quando una piattaforma va su 5 e
   un'altra su 10.
--------------------------------------------------------------------------- */
.sk-rep-lista { list-style: none; margin: 0 auto; padding: 0; max-width: 940px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
  background: var(--border-strong); }
.sk-rep-lista > li { background: var(--bg); padding: 30px 26px;
  display: grid; gap: 9px; align-content: start; }
.section.dark .sk-rep-lista { background: var(--sk-overlay-line); }
.section.dark .sk-rep-lista > li { background: var(--bg-inverse); }

.sk-rep-fonte { font-family: var(--font-body); font-size: .72rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase; color: var(--accent); }
.sk-rep-voto { font-family: var(--font-display); font-weight: 400;
  font-size: 2.9rem; line-height: 1; font-variant-numeric: tabular-nums; }
.sk-rep-voto small { font-size: 1.05rem; color: var(--fg-subtle); margin-left: .15em; }
.section.dark .sk-rep-voto { color: var(--fg-on-dark); }
.section.dark .sk-rep-voto small { color: var(--fg-on-dark-subtle); }

.sk-rep-dett { font-size: .88rem; line-height: 1.5; color: var(--fg-muted); }
.section.dark .sk-rep-dett { color: var(--fg-on-dark-muted); }

.sk-rep-lista a { justify-self: start; font-size: .84rem; text-decoration: none;
  color: var(--fg); border-bottom: 1px solid var(--accent); padding-bottom: 2px;
  min-height: 44px; display: inline-flex; align-items: center; }
.section.dark .sk-rep-lista a { color: var(--fg-on-dark); }

.sk-rep-nota { text-align: center; font-size: .78rem; color: var(--fg-subtle);
  margin: 26px 0 0; }
.section.dark .sk-rep-nota { color: var(--fg-on-dark-subtle); }

[dir=rtl] .sk-rep-lista a { justify-self: end; }

@media (max-width: 820px) {
  .sk-rep-lista { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------------------
   La tendina delle lingue sulle landing (arabo compreso)
   ---------------------------------------------------------------------------
   Era blu su blu: colore rgb(26,42,68) su fondo rgb(26,42,68), contrasto
   1,00 : 1. Renderizzata, larga 56x30, dentro il viewport — e invisibile.
   Per questo « non si trovava »: c'era, non si vedeva.

   Stesso difetto del consenso privacy nel modulo newsletter, e stessa causa:
   un token pensato per fondo chiaro finito su fondo scuro. Qui si prende il
   colore che la barra usa gia' per tutto il resto.
--------------------------------------------------------------------------- */
.sk-landing-top .lang-switch,
.sk-landing-top .lang-switch summary,
.sk-landing-top .lang-switch .lang-current,
.sk-landing-top .lang-switch svg { color: var(--fg-on-dark, #f1f0ec); }
.sk-landing-top .lang-switch summary { opacity: .85; }
.sk-landing-top .lang-switch summary:hover,
.sk-landing-top .lang-switch[open] summary { opacity: 1; }

/* Il menu che si apre resta su fondo chiaro, quindi il testo torna scuro. */
.sk-landing-top .lang-switch .lang-menu,
.sk-landing-top .lang-switch .lang-menu a { color: var(--fg, #1a2a44); }

/* Il bersaglio era 56x30: sotto la soglia dei 44 px in altezza. */
.sk-landing-top .lang-switch summary { min-height: 44px; display: inline-flex;
  align-items: center; gap: .35rem; }

/* ---------------------------------------------------------------------------
   La navigazione dell'area araba
   ---------------------------------------------------------------------------
   Quattro pagine che prima non si linkavano fra loro. Sta sotto la barra,
   su fondo carta, e segue la direzione della pagina: in RTL parte da destra
   da sola, perche' e' un flex che eredita `direction` dall'elemento radice.
--------------------------------------------------------------------------- */
.sk-ar-nav { background: var(--bg-paper, #ebe7df);
  border-bottom: 1px solid var(--border, rgba(26,42,68,.10)); }
.sk-ar-nav ul { list-style: none; margin: 0 auto; padding: 10px 20px; max-width: 1180px;
  display: flex; flex-wrap: wrap; gap: 6px 26px; align-items: center;
  font-family: var(--font-body); font-size: .9rem; }
.sk-ar-nav a, .sk-ar-nav span { display: inline-flex; align-items: center;
  min-height: 44px; text-decoration: none; color: var(--fg, #1a2a44); }
.sk-ar-nav a { opacity: .72; transition: opacity .25s ease; }
.sk-ar-nav a:hover, .sk-ar-nav a:focus-visible { opacity: 1; }
.sk-ar-nav [aria-current="page"] { font-weight: 700; opacity: 1; }

@media (max-width: 600px) {
  .sk-ar-nav ul { gap: 4px 18px; font-size: .84rem; }
  .sk-ar-nav a, .sk-ar-nav span { min-height: 38px; }
}
@media (prefers-reduced-motion: reduce) { .sk-ar-nav a { transition: none; } }
