/* Stili delle funzioni del nucleo (cookie e consenso, icone social): comuni a tutti i temi. */
/* ── Cookie: banner, finestra preferenze, pulsante fisso (partials/cookie_banner.php, logica in site.js) ──
   Sfondo scuro fisso; l'accento (--ck-accent) e il colore del testo sopra l'accento (--ck-accent-ink) arrivano dalle Impostazioni. */
.ck-root { --ck-bg: #1b1b1b; --ck-text: #ececec; --ck-muted: #a9a9a9; --ck-line: #3b3b3b; --ck-accent: #a6d5b8; --ck-accent-ink: #101a14; --ck-gray: #4f4f4f; font-family: var(--font-body, system-ui, sans-serif); line-height: 1.5; }
.ck-root [hidden] { display: none !important; }
.ck-root button, .ck-root input { font: inherit; }
.ck-root a { color: var(--ck-muted); }
.ck-root a:hover { color: var(--ck-text); }
.ck-root :focus-visible { outline: 3px solid var(--ck-accent); outline-offset: 2px; }

.ck-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1080; max-height: 85vh; overflow-y: auto; background: var(--ck-bg); color: var(--ck-text); border-top: 2px solid var(--ck-accent); box-shadow: 0 -6px 24px rgba(0,0,0,.35); }
.ck-banner-in { max-width: 1100px; margin: 0 auto; padding: 1.15rem 1.25rem 1rem; }
.ck-banner-title { font-size: 1.2rem; font-weight: 700; margin: 0 0 .35rem; }
.ck-banner-text { margin: 0 0 .9rem; font-size: 1rem; }
.ck-banner-text strong { color: #fff; }
.ck-note { margin: .85rem 0 0; font-size: .85rem; color: var(--ck-muted); }

.ck-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.ck-btn { cursor: pointer; border: 1px solid transparent; border-radius: 6px; padding: .65rem 1.2rem; font-weight: 700; font-size: .98rem; line-height: 1.2; }
.ck-btn-accept { background: var(--ck-accent); color: var(--ck-accent-ink); border-color: var(--ck-accent); }
.ck-btn-accept:hover { filter: brightness(1.08); }
.ck-btn-reject { background: var(--ck-gray); color: #fff; border-color: #8c8c8c; }
.ck-btn-reject:hover { background: #5b5b5b; }
.ck-btn-custom { background: transparent; color: var(--ck-accent); border-color: var(--ck-accent); font-weight: 500; }
.ck-btn-custom:hover { background: rgba(255,255,255,.07); }
.ck-btn-save { background: #fff; color: #111; border-color: #fff; }
.ck-btn-save:hover { background: #e9e9e9; }

.ck-fab { position: fixed; bottom: calc(1rem + var(--ck-banner-h, 0px)); z-index: 1070; cursor: pointer; background: #444; color: var(--ck-accent); border: 1px solid var(--ck-accent); border-radius: 8px; padding: .5rem .85rem; font-size: .95rem; line-height: 1.2; box-shadow: 0 3px 12px rgba(0,0,0,.35); }
.ck-fab:hover { background: #505050; }
.ck-fab-right { right: 1rem; } .ck-fab-left { left: 1rem; }
.ck-fab-up { bottom: calc(5.5rem + var(--ck-banner-h, 0px)); }   /* le icone social flottanti occupano lo stesso angolo */

.ck-modal { position: fixed; inset: 0; z-index: 1100; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.ck-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.62); }
.ck-dialog { position: relative; width: 100%; max-width: 640px; max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); overflow-y: auto; background: var(--ck-bg); color: var(--ck-text); border: 1px solid #333; border-radius: 14px; padding: 1.6rem 1.75rem 1.4rem; box-shadow: 0 24px 70px rgba(0,0,0,.6); }
.ck-dialog:focus { outline: none; }
.ck-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.ck-dialog-title { margin: 0; font-family: var(--font-heading, Georgia, serif); font-size: 1.55rem; font-weight: 600; color: #fff; line-height: 1.2; }
.ck-close { cursor: pointer; background: none; border: 0; color: #fff; line-height: 0; padding: .55rem; margin: -.2rem -.3rem 0 0; border-radius: 6px; }
.ck-close:hover { background: rgba(255,255,255,.1); }
.ck-lead { margin: 0 0 1.1rem; color: var(--ck-text); }
.ck-cat { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 0; border-top: 1px solid var(--ck-line); }
.ck-cat label { display: block; font-weight: 700; font-size: 1.08rem; color: #fff; cursor: pointer; }
.ck-cat p { margin: .2rem 0 0; font-size: .95rem; color: var(--ck-muted); }
.ck-cat input[type=checkbox] { appearance: none; -webkit-appearance: none; flex: 0 0 auto; width: 1.4rem; height: 1.4rem; margin: .1rem 0 0; border-radius: 5px; background: #fff; border: 2px solid #fff; cursor: pointer; display: grid; place-content: center; }
.ck-cat input[type=checkbox]::after { content: ""; width: .8rem; height: .8rem; transform: scale(0); background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23101a14' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3.2 3.2L13 4.8'/%3E%3C/svg%3E"); }
.ck-cat input[type=checkbox]:checked { background: var(--ck-accent); border-color: var(--ck-accent); }
.ck-cat input[type=checkbox]:checked::after { transform: scale(1); }
.ck-cat input[type=checkbox]:disabled { cursor: not-allowed; }
.ck-cat input[type=checkbox]:disabled:checked { background: #8a8a8a; border-color: #8a8a8a; }
.ck-dialog .ck-actions { margin-top: .4rem; padding-top: 1.3rem; border-top: 1px solid var(--ck-line); }
.ck-foot { margin: 1rem 0 0; font-size: .85rem; color: var(--ck-muted); }
html.ck-lock { overflow: hidden; }
@media (max-width: 575.98px) {
  .ck-banner-in { padding: 1rem; }
  .ck-actions .ck-btn { flex: 1 1 100%; }
  .ck-dialog { padding: 1.25rem 1.1rem 1.1rem; border-radius: 12px; }
  .ck-dialog-title { font-size: 1.35rem; }
}

/* Riquadro al posto della mappa finché non c'è il consenso ai cookie mappe */
.site-map { height: 360px; width: 100%; }
.map-consent { display: flex; align-items: center; justify-content: center; text-align: center; padding: 1rem; background: repeating-linear-gradient(135deg, rgba(0,0,0,.03) 0 12px, rgba(0,0,0,.06) 12px 24px); }
.map-consent-inner { max-width: 34rem; }

/* ── Icone social ─────────────────────────────────────────── */
.social-icons { list-style: none; margin: 0; padding: 0; gap: .5rem; flex-wrap: wrap; align-items: center; }
.social-icons a { display: inline-flex; align-items: center; justify-content: center; width: var(--social-size, 32px); height: var(--social-size, 32px); text-decoration: none; transition: transform .15s, filter .15s; }
.social-icons a:hover { transform: translateY(-2px); filter: brightness(1.1); }
.social-icons svg { width: 52%; height: 52%; }
.social-shape-circle a { border-radius: 50%; } .social-shape-rounded a { border-radius: 22%; } .social-shape-square a { border-radius: 0; }
.social-style-brand a.net-instagram { background: #e4405f; color: #fff; } .social-style-brand a.net-facebook { background: #1877f2; color: #fff; } .social-style-brand a.net-linkedin { background: #0a66c2; color: #fff; }
.social-style-brand a.net-tiktok { background: #000; color: #fff; } .social-style-brand a.net-whatsapp { background: #25d366; color: #fff; }
.social-style-primary a { background: var(--c-primary); color: #fff; }
.social-style-light a { background: #fff; color: #212529; border: 1px solid var(--c-border); }
.social-style-dark a { background: #212529; color: #fff; }
.social-shape-none a { background: transparent !important; border: 0 !important; }
.social-shape-none.social-style-brand a.net-instagram { color: #e4405f; } .social-shape-none.social-style-brand a.net-facebook { color: #1877f2; } .social-shape-none.social-style-brand a.net-linkedin { color: #0a66c2; }
.social-shape-none.social-style-brand a.net-tiktok { color: #000; } .social-shape-none.social-style-brand a.net-whatsapp { color: #25d366; }
.social-shape-none.social-style-primary a { color: var(--c-primary); } .social-shape-none.social-style-light a { color: #adb5bd; } .social-shape-none.social-style-dark a { color: #212529; }
.site-footer .social-icons a:hover { color: inherit; }
.social-float { position: fixed; z-index: 1050; }
/* ── Riquadri «Categorie» (albero) e «Tipologie» nella sidebar ─────────────────── */
.side-taxonomy .tax-list { list-style: none; margin: 0; padding: 0; }
.side-taxonomy .tax-sub { margin: 0 0 .15rem .5rem; padding-left: .65rem; border-left: var(--c-border-width, 1px) solid var(--c-border, #dee2e6); }
.side-taxonomy .tax-link { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; padding: .22rem 0; color: inherit; text-decoration: none; }
.side-taxonomy .tax-link:hover { color: var(--c-primary); }
.side-taxonomy .tax-link.active { font-weight: 600; color: var(--c-primary); }
.side-taxonomy .tax-n { flex: none; font-size: .85em; color: var(--bs-secondary-color, #6c757d); }
.listing-subcats .btn { --bs-btn-padding-y: .15rem; }
.social-float-scroll { position: absolute; }
.social-float .social-icons { margin: 0; }
.social-float-left_middle { left: .5rem; top: 50%; transform: translateY(-50%); } .social-float-right_middle { right: .5rem; top: 50%; transform: translateY(-50%); }
.social-float-left_middle .social-icons, .social-float-right_middle .social-icons { flex-direction: column; }
.social-float-bottom_left { left: 1rem; bottom: 1rem; } .social-float-bottom_right { right: 1rem; bottom: 1rem; }

/* ── Testata (hero): immagine a banda, slider, video, YouTube ───────────── */
.site-hero.hero-media { padding: 0; }
.hero-frame { position: relative; max-width: var(--hero-maxw, none); margin-inline: auto; }
.hero-stage { position: relative; overflow: hidden; height: var(--hero-h, 420px); background-color: var(--c-hero-bg); color: var(--c-hero-text); }
@media (max-width: 767.98px) { .hero-stage { height: var(--hero-hm, var(--hero-h, 420px)); } }
.hero-stage.hero-auto { height: auto; }
.hero-el { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: var(--hero-fit, cover); object-position: var(--hero-pos, center); }
.hero-auto .hero-el { position: static; display: block; height: auto; object-fit: fill; }
.hero-bg { background-size: cover; background-position: var(--hero-pos, center); background-repeat: no-repeat; background-attachment: fixed; }
@media (max-width: 991.98px), (hover: none) { .hero-bg { background-attachment: scroll; } }
.hero-shade { position: absolute; inset: 0; background: var(--hero-shade, #000); opacity: var(--hero-shade-o, .3); pointer-events: none; }
.hero-caption { position: absolute; inset: 0; display: flex; padding: 1.5rem 3.5rem; pointer-events: none; z-index: 2; }
.hero-caption-inner { width: 100%; max-width: 780px; }
.hero-caption a, .hero-caption button { pointer-events: auto; }
.hero-ta-left { justify-content: flex-start; text-align: left; } .hero-ta-center { justify-content: center; text-align: center; } .hero-ta-right { justify-content: flex-end; text-align: right; }
.hero-va-top { align-items: flex-start; } .hero-va-middle { align-items: center; } .hero-va-bottom { align-items: flex-end; }
.hero-caption .hero-title, .hero-caption .lead { color: var(--c-hero-text); text-shadow: 0 1px 8px rgba(0,0,0,.5); }
@media (max-width: 575.98px) { .hero-caption { padding: 1rem 2.75rem; } .hero-caption .display-5 { font-size: 1.6rem; } .hero-caption .lead { font-size: 1rem; } }
.hero-carousel .carousel-control-prev, .hero-carousel .carousel-control-next { z-index: 3; }
.hero-carousel .carousel-indicators { z-index: 3; margin-bottom: .6rem; }
/* YouTube: il video riempie (o sta dentro) l'area senza barre; il contenitore misura l'area per calcolare il 16:9 */
.hero-yt { position: absolute; inset: 0; overflow: hidden; container-type: size; }
.hero-yt iframe { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border: 0; width: 100%; height: 100%; width: max(100cqw, 177.78cqh); height: max(100cqh, 56.25cqw); }
.hero-fit-contain .hero-yt iframe { width: min(100cqw, 177.78cqh); height: min(100cqh, 56.25cqw); }
.hero-yt-bg iframe { pointer-events: none; }

/* ── Immagini delle schede: dimensioni da Impostazioni → Immagini schede ─── */
.lc-img-link { display: block; overflow: hidden; border-radius: var(--radius) var(--radius) 0 0; }
.listing-card .card-img-top.lc-img { width: 100%; aspect-ratio: var(--card-img-ratio, 16/9); height: var(--card-img-h, auto); object-fit: var(--card-img-fit, cover); border-radius: 0; background: var(--c-bg); transition: transform .35s ease; }
.card-hover-zoom:hover .lc-img { transform: scale(1.07); }
.listing-main { margin: 0 0 1rem; width: var(--ls-img-w, 100%); max-width: 100%; }
.listing-main-img { display: block; width: 100%; height: var(--ls-img-h, auto); object-fit: var(--ls-img-fit, cover); border-radius: var(--radius); }
.gal-img { display: block; width: 100%; height: var(--gal-img-h, auto); object-fit: var(--gal-img-fit, cover); border-radius: var(--radius); }
a[data-lb] { display: block; cursor: zoom-in; }
a[data-lb]:hover img { filter: brightness(.94); }
.img-zoomable { overflow: hidden; cursor: zoom-in; border-radius: var(--radius); }
.img-zoomable.is-zoomed { cursor: zoom-out; }
.img-zoomable img { transition: transform .2s ease; }
.img-zoomable.is-zoomed img { transform: scale(2.2); }

/* ── Finestra con l'immagine ingrandita ─────────────────────────────────── */
.lb { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,.9); display: flex; align-items: center; justify-content: center; }
.lb[hidden] { display: none; }
.lb-stage { max-width: 94vw; max-height: 88vh; display: flex; align-items: center; justify-content: center; overflow: hidden; touch-action: pan-y; }
.lb-img { max-width: 94vw; max-height: 88vh; object-fit: contain; cursor: zoom-in; user-select: none; -webkit-user-drag: none; transition: transform .2s ease; }
.lb-stage.is-zoomed { cursor: zoom-out; }
.lb-stage.is-zoomed .lb-img { transform: scale(2.4); cursor: zoom-out; }
.lb-btn { position: absolute; border: 0; background: rgba(255,255,255,.14); color: #fff; width: 2.75rem; height: 2.75rem; border-radius: 50%; font-size: 1.9rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.lb-btn:hover, .lb-btn:focus-visible { background: rgba(255,255,255,.3); outline: 2px solid #fff; outline-offset: 2px; }
.lb-close { top: .75rem; right: .75rem; } .lb-prev { left: .75rem; top: 50%; transform: translateY(-50%); } .lb-next { right: .75rem; top: 50%; transform: translateY(-50%); }
.lb-cap { position: absolute; left: 0; right: 0; bottom: .6rem; text-align: center; color: #fff; font-size: .9rem; padding: 0 4rem; text-shadow: 0 1px 4px #000; pointer-events: none; }
.mg-item { margin: 0; }
.mg-cap { margin-top: .35rem; font-size: .875rem; line-height: 1.3; color: var(--c-muted, #6c757d); }
/* Video YouTube nella galleria: miniatura con play (solo sui video) e finestra ingrandita */
.gal-video { position: relative; display: block; color: #000; border-radius: var(--radius); }
.gal-video:focus-visible { outline: 3px solid var(--c-primary, #0d6efd); outline-offset: 2px; }
.gal-video .gal-nocover { aspect-ratio: 16 / 9; background: #111; }
.gal-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none; }
.gal-play svg { width: clamp(2.5rem, 22%, 4rem); height: auto; filter: drop-shadow(0 2px 6px rgba(0,0,0,.45)); transition: transform .15s ease; }
.gal-video:hover .gal-play svg, .gal-video:focus-visible .gal-play svg { transform: scale(1.12); }
.lb-video { display: flex; align-items: center; justify-content: center; }
.lb-video[hidden] { display: none; }
.lb-iframe { display: block; border: 0; width: min(94vw, calc(88vh * 16 / 9)); aspect-ratio: 16 / 9; height: auto; max-height: 88vh; background: #000; }
.lb-consent { max-width: 34rem; margin: 0 auto; padding: 1.5rem 1.25rem; text-align: center; color: #fff; background: #181818; border: 1px solid rgba(255,255,255,.18); border-radius: .6rem; }
.lb-consent p { margin: 0 0 .9rem; }
.lb-consent-actions { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.lb-stage.is-video { overflow: visible; touch-action: auto; }
body.lb-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .card-hover-zoom:hover .lc-img, .listing-card .card-img-top.lc-img, .img-zoomable img, .lb-img, .gal-play svg { transition: none; } }

/* ── Disclaimer da accettare (modale non richiudibile) ─────────────────────
   Sta sopra al banner cookie (1080). La logica è in assets/js/site.js. */
#disclaimerModal { z-index: 1095; }
.disclaimer-backdrop.modal-backdrop { z-index: 1090; --bs-backdrop-opacity: .7; }
.disclaimer-modal .modal-body { overflow-wrap: anywhere; }
.disclaimer-modal .disclaimer-text > :last-child { margin-bottom: 0; }

/* ── Indice della pagina (TOC): stili gerarchici ─────────────────────────
   toc-h1…3 = tag del titolo; toc-depth-0…2 = rientro rispetto al livello più alto presente. */
#toc .toc-h1 { text-transform: uppercase; }
#toc .toc-depth-1 { margin-left: 1rem; }
#toc .toc-depth-2 { margin-left: 2rem; }

/* Selettore di lingua (Lang::switcher): colori presi dalla navbar, così resta leggibile su qualsiasi sfondo (3.6.4) */
.lang-switcher .btn { --bs-btn-color: var(--c-nav-text, #212529); --bs-btn-border-color: var(--c-nav-text, #6c757d); --bs-btn-hover-color: var(--c-nav-bg, #fff); --bs-btn-hover-bg: var(--c-nav-text, #6c757d); --bs-btn-hover-border-color: var(--c-nav-text, #6c757d); --bs-btn-active-color: var(--c-nav-bg, #fff); --bs-btn-active-bg: var(--c-nav-text, #6c757d); --bs-btn-active-border-color: var(--c-nav-text, #6c757d); --bs-btn-focus-shadow-rgb: 128, 128, 128; }
.lang-switcher .dropdown-menu { --bs-dropdown-bg: var(--c-nav-bg, #fff); --bs-dropdown-color: var(--c-nav-text, #212529); --bs-dropdown-link-color: var(--c-nav-text, #212529); --bs-dropdown-link-hover-color: var(--c-nav-hover, #212529); --bs-dropdown-link-hover-bg: rgba(128, 128, 128, .25); --bs-dropdown-link-active-color: var(--c-nav-active, #212529); --bs-dropdown-link-active-bg: rgba(128, 128, 128, .25); --bs-dropdown-border-color: var(--c-border, #dee2e6); }

/* PDF in una finestra (shortcode [mostra-file], 3.17.0) */
.pdf-open-ico { font-size: 1.05em; line-height: 1; }
body.pdf-lock { overflow: hidden; }
.pdf-modal { position: fixed; inset: 0; z-index: 1085; background: rgba(0, 0, 0, .72); display: flex; align-items: center; justify-content: center; padding: .75rem; }
.pdf-modal[hidden] { display: none; }
.pdf-modal-box { display: flex; flex-direction: column; width: min(1100px, 100%); height: min(92vh, 100%); background: var(--bs-body-bg, #fff); color: var(--bs-body-color, #212529); border-radius: .5rem; overflow: hidden; box-shadow: 0 .75rem 2.5rem rgba(0, 0, 0, .45); }
.pdf-modal-head { display: flex; align-items: center; gap: .75rem; padding: .6rem .9rem; border-bottom: 1px solid var(--bs-border-color, #dee2e6); }
.pdf-modal-title { font-size: 1.05rem; font-weight: 600; margin: 0 auto 0 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdf-modal-ext { white-space: nowrap; }
.pdf-modal-frame { flex: 1 1 auto; width: 100%; border: 0; background: #525659; }
@media (max-width: 575.98px) { .pdf-modal { padding: 0; } .pdf-modal-box { height: 100%; border-radius: 0; } }

/* Disclaimer: casella di accettazione (3.18.0) */
.disclaimer-check { padding: .6rem .75rem .6rem 2.25rem; border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .4rem; background: rgba(128, 128, 128, .08); }
