/* 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 */
.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-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-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; }
.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; }
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 { 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; }
