/* ==========================================================================
   GP ETNA LIVE - Tema "Osservatorio"
   Caricato DOPO style.css. Valido ovunque per i font; i colori scuri e i
   componenti nuovi si attivano con  <body class="theme-obs">  (home, Etna oggi).
   ========================================================================== */

@font-face { font-family: 'Barlow Condensed'; src: url('../fonts/barlow-condensed-600.woff') format('woff'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url('../fonts/barlow-condensed-700.woff') format('woff'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url('../fonts/manrope-var.woff') format('woff'); font-weight: 200 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'Space Mono'; src: url('../fonts/space-mono-400.woff') format('woff'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Space Mono'; src: url('../fonts/space-mono-700.woff') format('woff'); font-weight: 700; font-style: normal; font-display: swap; }

:root {
  --font-heading: 'Barlow Condensed', 'Arial Narrow', Impact, system-ui, sans-serif;
  --font-body: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --font-mono: 'Space Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --obs-bg: #111316;
  --obs-bg-2: #171a1e;
  --obs-bg-3: #1d2126;
  --obs-line: rgba(255,255,255,.11);
  --obs-text: rgba(255,255,255,.82);
  --obs-muted: rgba(255,255,255,.66);
  --obs-orange: #ff5a1f;
  --obs-orange-hover: #ff7440;
  --obs-ok: #4ade80;
  --obs-warn: #fbbf24;
  --obs-bad: #ff5d52;
}

/* Tipografia valida su tutto il sito */
body { font-family: var(--font-body); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); font-weight: 700; letter-spacing: .005em; line-height: 1.05; }
h3 { font-size: 1.55rem; }
.section-title, .hero-title { text-transform: uppercase; letter-spacing: .01em; }
.section-title { font-size: clamp(2.3rem, 7vw, 3.6rem); line-height: 1; }
.hero--page .hero-title { font-size: clamp(2.6rem, 8vw, 4.4rem); }
.navbar-brand { font-family: var(--font-heading); font-size: 1.5rem; letter-spacing: .06em; }
.nav-link { font-family: var(--font-heading); font-weight: 600; text-transform: uppercase; letter-spacing: .07em; font-size: 1.12rem !important; }
.btn { font-family: var(--font-body); font-weight: 700; }
.excursion-title, .listing-card__title, .card-volcanic .card-title { font-size: 1.5rem; line-height: 1.08; }
.footer-title { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .14em; }

.obs-kicker { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--obs-orange); margin: 0 0 .6rem; display: flex; align-items: center; gap: .55rem; }
.obs-kicker::before { content: ''; width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.obs-kicker--plain::before { display: none; }

/* ------------------------------------------------------------------ */
/* Tema scuro                                                          */
/* ------------------------------------------------------------------ */
.theme-obs { background: var(--obs-bg); color: var(--obs-text); }
.theme-obs .section, .theme-obs .section-light { background: var(--obs-bg); color: var(--obs-text); }
.theme-obs .section-light { background: var(--obs-bg-2); }
.theme-obs .section-dark { background: #0d0f11; }
.theme-obs h1, .theme-obs h2, .theme-obs h3, .theme-obs h4, .theme-obs h5 { color: #fff; }
.theme-obs p { color: var(--obs-text); }
.theme-obs .lead { color: #fff; font-weight: 500; }
.theme-obs a:not(.btn):not(.nav-link):not(.navbar-brand) { color: var(--obs-orange-hover); }
.theme-obs .text-ash { color: var(--obs-muted) !important; }
.theme-obs .text-pine { color: var(--obs-ok) !important; }
.theme-obs .section-title span { color: var(--obs-orange); }
.theme-obs .section-subtitle { color: var(--obs-muted); }
.theme-obs .divider { display: none; }
.theme-obs :focus-visible { outline-color: var(--obs-orange-hover); }

.theme-obs .btn-primary { --bs-btn-bg: var(--obs-orange); --bs-btn-border-color: var(--obs-orange); --bs-btn-color: #14161a; --bs-btn-hover-bg: var(--obs-orange-hover); --bs-btn-hover-border-color: var(--obs-orange-hover); --bs-btn-hover-color: #14161a; --bs-btn-active-bg: var(--obs-orange-hover); --bs-btn-active-color: #14161a; --bs-btn-focus-shadow-rgb: 255,90,31; border-radius: 6px; color: #14161a; }
.theme-obs .btn-primary:hover { box-shadow: 0 12px 28px -12px rgba(255,90,31,.9); }
.theme-obs .btn-outline-primary, .theme-obs .btn-outline-secondary, .theme-obs .btn-outline-info, .theme-obs .btn-secondary { --bs-btn-color: #fff; --bs-btn-border-color: rgba(255,255,255,.4); --bs-btn-bg: transparent; --bs-btn-hover-bg: #fff; --bs-btn-hover-color: #14161a; --bs-btn-hover-border-color: #fff; --bs-btn-active-bg: #fff; --bs-btn-active-color: #14161a; border-radius: 6px; color: #fff; background: transparent; border-color: rgba(255,255,255,.4); }
.theme-obs .btn-outline-primary:hover, .theme-obs .btn-outline-secondary:hover, .theme-obs .btn-outline-info:hover, .theme-obs .btn-secondary:hover { color: #14161a; background: #fff; }
.theme-obs .btn-outline-light { border-radius: 6px; }

/* Schede e riquadri */
.theme-obs .card-volcanic, .theme-obs .excursion-card, .theme-obs .listing-card { background: var(--obs-bg-3); border: 1px solid var(--obs-line); box-shadow: none; border-radius: 10px; color: var(--obs-text); }
.theme-obs .card-volcanic:hover, .theme-obs .excursion-card:hover { transform: translateY(-3px); border-color: rgba(255,90,31,.55); box-shadow: 0 18px 40px -22px rgba(0,0,0,.9); }
.theme-obs .excursion-title, .theme-obs .listing-card__title { color: #fff; text-transform: uppercase; }
.theme-obs .excursion-desc, .theme-obs .excursion-meta, .theme-obs .listing-card__desc { color: var(--obs-muted); }
.theme-obs .excursion-meta-item i { color: var(--obs-orange); }
.theme-obs .excursion-cta { color: var(--obs-orange-hover); font-family: var(--font-mono); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.theme-obs .excursion-image { background: #0d0f11; }
.theme-obs .news-card { border-radius: 10px; }

/* ------------------------------------------------------------------ */
/* Hero "osservatorio"                                                 */
/* ------------------------------------------------------------------ */
.obs-hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; text-align: left; align-items: stretch; min-height: clamp(620px, 100svh, 940px); padding: calc(var(--nav-h) + 3rem) 0 0; background: var(--obs-bg); }
.obs-hero::before { background: linear-gradient(90deg, rgba(10,12,15,.9) 0%, rgba(10,12,15,.55) 45%, rgba(10,12,15,.1) 100%), linear-gradient(180deg, rgba(10,12,15,.35) 0%, rgba(10,12,15,0) 40%, rgba(10,12,15,.88) 100%); }
.obs-hero .container { position: relative; }
.obs-hero__main { padding-bottom: 2.2rem; max-width: 720px; }
.obs-hero__title { font-size: clamp(3.6rem, 13vw, 8.2rem); line-height: .92; margin: 0 0 1.4rem; color: #fff; text-shadow: 0 4px 40px rgba(0,0,0,.5); }
.obs-hero__title em { font-style: normal; color: var(--obs-orange); display: block; }
.obs-hero__lead { font-size: clamp(1rem, 2.6vw, 1.12rem); line-height: 1.7; color: rgba(255,255,255,.9); max-width: 520px; margin: 0 0 1.8rem; text-shadow: 0 1px 14px rgba(0,0,0,.6); }
.obs-hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 1.6rem; }
.obs-hero__cta .btn-primary { padding: .95rem 1.9rem; font-size: 1.1rem; }
.obs-link { color: #fff !important; text-decoration: none; font-weight: 600; font-size: .95rem; display: inline-flex; align-items: center; gap: .6rem; padding: .5rem 0; min-height: 44px; }
.obs-link:hover { color: var(--obs-orange-hover) !important; }
.obs-link i { color: var(--obs-orange); transition: transform .25s; }
.obs-link:hover i { transform: translateY(3px); }
.obs-hero__tag { position: absolute; right: 0; bottom: 9.5rem; display: none; align-items: center; gap: 1rem; font-family: var(--font-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: #fff; }
.obs-hero__tag::before { content: ''; width: 90px; height: 1px; background: rgba(255,255,255,.5); }
.obs-hero__tag i { font-size: 1.9rem; color: var(--obs-orange); }
.obs-hero__tag small { display: block; color: rgba(255,255,255,.7); letter-spacing: .06em; text-transform: none; margin-top: .2rem; font-size: .7rem; }
.obs-stats { border-top: 1px solid rgba(255,255,255,.28); display: flex; flex-wrap: wrap; gap: 1.2rem 2.6rem; padding: 1.3rem 0 1.5rem; align-items: center; }
.obs-stat { display: flex; align-items: center; gap: .9rem; }
.obs-stat strong { font-family: var(--font-heading); font-size: clamp(2.2rem, 5vw, 3rem); line-height: 1; color: #fff; }
.obs-stat span { font-family: var(--font-mono); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.72); line-height: 1.5; }
.obs-stats__more { margin-left: auto; font-family: var(--font-mono); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; color: #fff !important; text-decoration: none; display: none; align-items: center; gap: .6rem; }
.obs-stats__more i { color: var(--obs-orange); }
@media (min-width: 992px) { .obs-hero__tag { display: flex; } .obs-stats__more { display: inline-flex; } }

/* Fascia scorrevole */
.obs-marquee { background: #0d0f11; border-block: 1px solid var(--obs-line); overflow: hidden; }
.obs-marquee__track { display: flex; width: max-content; animation: obs-scroll 38s linear infinite; }
.obs-marquee__item { display: inline-flex; align-items: center; gap: 2.2rem; padding: 1.15rem 1.1rem; font-family: var(--font-mono); font-size: .72rem; letter-spacing: .26em; text-transform: uppercase; color: rgba(255,255,255,.82); white-space: nowrap; }
.obs-marquee__item i { color: var(--obs-orange); font-size: 1.1rem; }
@keyframes obs-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .obs-marquee__track { animation: none; } }

/* Intestazione sezione (a sinistra, con numero) */
.obs-head { margin-bottom: clamp(1.8rem, 4vw, 3rem); max-width: 760px; }
.obs-head h2 { font-size: clamp(2.6rem, 8vw, 4.6rem); line-height: .95; text-transform: uppercase; margin: 0 0 .9rem; }
.obs-head h2 span { color: var(--obs-orange); }
.obs-head p { color: var(--obs-muted); font-size: 1.05rem; margin: 0; max-width: 560px; }
.obs-head--row { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; max-width: none; }

/* Riquadri "strumenti" della home */
.obs-tiles { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--obs-line); border: 1px solid var(--obs-line); border-radius: 10px; overflow: hidden; }
@media (min-width: 576px) { .obs-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .obs-tiles { grid-template-columns: repeat(3, 1fr); } }
.obs-tile { display: flex; flex-direction: column; gap: .6rem; padding: 1.6rem 1.5rem 1.4rem; background: var(--obs-bg-2); color: var(--obs-text); text-decoration: none; min-height: 190px; transition: background .25s; position: relative; }
.obs-tile:hover { background: var(--obs-bg-3); }
.obs-tile__n { font-family: var(--font-mono); font-size: .7rem; letter-spacing: .14em; color: var(--obs-orange); }
.obs-tile h3 { font-size: 1.9rem; text-transform: uppercase; margin: 0; color: #fff; }
.obs-tile p { margin: 0; font-size: .95rem; color: var(--obs-muted) !important; flex: 1; }
.obs-tile__go { font-family: var(--font-mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--obs-orange-hover); display: flex; align-items: center; gap: .5rem; }
.obs-tile:hover .obs-tile__go i { transform: translateX(4px); }
.obs-tile__go i { transition: transform .25s; }

/* ------------------------------------------------------------------ */
/* Etna oggi                                                           */
/* ------------------------------------------------------------------ */
.oggi-wrap { max-width: 1080px; }
.oggi-verdict { border: 1px solid var(--obs-line); border-left: 6px solid var(--obs-muted); background: var(--obs-bg-3); border-radius: 10px; padding: 1.4rem 1.5rem; }
.oggi-verdict.is-ok { border-left-color: var(--obs-ok); }
.oggi-verdict.is-warn { border-left-color: var(--obs-warn); }
.oggi-verdict.is-bad { border-left-color: var(--obs-bad); }
.oggi-verdict__kicker { font-family: var(--font-mono); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--obs-muted) !important; margin: 0 0 .4rem; }
.oggi-verdict__label { font-family: var(--font-heading); font-weight: 700; font-size: clamp(2.2rem, 6vw, 3.4rem); line-height: 1; text-transform: uppercase; color: #fff !important; margin: 0 0 1rem; display: flex; align-items: center; gap: .8rem; }
.oggi-dot { width: .7em; height: .7em; border-radius: 50%; background: var(--obs-muted); flex: 0 0 auto; }
.is-ok .oggi-dot { background: var(--obs-ok); box-shadow: 0 0 0 6px rgba(74,222,128,.18); }
.is-warn .oggi-dot { background: var(--obs-warn); box-shadow: 0 0 0 6px rgba(251,191,36,.18); }
.is-bad .oggi-dot { background: var(--obs-bad); box-shadow: 0 0 0 6px rgba(255,93,82,.2); }
.oggi-reasons { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .45rem; }
.oggi-reasons li { display: flex; gap: .7rem; align-items: baseline; font-size: .98rem; }
.oggi-reasons__tag { flex: 0 0 auto; font-family: var(--font-mono); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; padding: .15rem .5rem; border-radius: 4px; border: 1px solid currentColor; }
.oggi-reasons .is-warn .oggi-reasons__tag { color: var(--obs-warn); }
.oggi-reasons .is-bad .oggi-reasons__tag { color: var(--obs-bad); }
.oggi-ok { margin: 0 0 1rem; }
.oggi-window { margin: 0 0 1rem; }
.oggi-window i { color: var(--obs-orange); margin-right: .5rem; }
.oggi-verdict__fine { font-size: .86rem; color: var(--obs-muted) !important; margin: 0; padding-top: .9rem; border-top: 1px solid var(--obs-line); }
.oggi-gap { height: 1rem; }
.oggi-card { background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-radius: 10px; padding: 1.4rem; height: 100%; }
.oggi-card h3 { font-size: 1.9rem; text-transform: uppercase; margin: 0 0 .3rem; }
.oggi-card__desc { color: var(--obs-muted) !important; font-size: .92rem; margin: 0 0 1rem; }
.oggi-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin: 0; }
.oggi-stat { background: rgba(255,255,255,.04); border-radius: 8px; padding: .65rem .75rem; min-width: 0; }
.oggi-stat dt { font-family: var(--font-mono); font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; color: var(--obs-muted); font-weight: 400; margin: 0 0 .25rem; }
.oggi-stat dd { margin: 0; font-family: var(--font-heading); font-weight: 700; font-size: 1.9rem; line-height: 1; color: #fff; }
.oggi-stat dd small { font-family: var(--font-body); font-size: .72rem; font-weight: 600; color: var(--obs-muted); margin-left: .25rem; }
.oggi-stat__note { display: block; font-family: var(--font-body); font-weight: 500; font-size: .72rem; color: var(--obs-muted); margin-top: .3rem; }
.oggi-stats--inline { margin-top: 1rem; }
@media (max-width: 420px) { .oggi-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.oggi-sub { font-size: 1.5rem; text-transform: uppercase; margin: 2rem 0 .8rem; }
.oggi-strip-wrap { overflow-x: auto; padding-bottom: .5rem; scrollbar-width: thin; }
.oggi-strip { display: flex; gap: .35rem; list-style: none; padding: 0; margin: 0; width: max-content; }
.oggi-hour { width: 62px; text-align: center; background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-radius: 8px; padding: .5rem .2rem .55rem; display: flex; flex-direction: column; gap: .3rem; align-items: center; }
.oggi-hour__t { font-family: var(--font-mono); font-size: .7rem; color: var(--obs-text); }
.oggi-hour__bar { width: 70%; height: 6px; border-radius: 3px; background: var(--obs-ok); }
.oggi-hour.is-warn .oggi-hour__bar { background: var(--obs-warn); }
.oggi-hour.is-bad .oggi-hour__bar { background: var(--obs-bad); }
.oggi-hour__v { font-family: var(--font-heading); font-weight: 700; font-size: 1.35rem; line-height: 1; color: #fff; }
.oggi-hour__w { font-size: .58rem; letter-spacing: .02em; text-transform: uppercase; color: var(--obs-muted); line-height: 1.2; }
.oggi-hour.is-night { opacity: .5; }
.oggi-strip__legend, .oggi-stamp { font-size: .82rem; color: var(--obs-muted) !important; margin-top: .7rem; }
.oggi-method { margin-top: 1.4rem; border: 1px solid var(--obs-line); border-radius: 8px; padding: .8rem 1rem; }
.oggi-method summary { cursor: pointer; font-weight: 700; color: #fff; }
.oggi-method ul { margin: .8rem 0; padding-left: 1.1rem; }
.oggi-method li { margin-bottom: .3rem; }
.oggi-method p { font-size: .9rem; color: var(--obs-muted) !important; margin: .5rem 0 0; }

/* Checklist "prima di salire" */
.obs-check { display: grid; gap: .8rem; grid-template-columns: 1fr; counter-reset: chk; }
@media (min-width: 768px) { .obs-check { grid-template-columns: repeat(2, 1fr); } }
.obs-check__item { counter-increment: chk; background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-radius: 10px; padding: 1.2rem 1.3rem 1.2rem 4rem; position: relative; }
.obs-check__item::before { content: counter(chk, decimal-leading-zero); position: absolute; left: 1.3rem; top: 1.05rem; font-family: var(--font-heading); font-weight: 700; font-size: 1.9rem; color: var(--obs-orange); line-height: 1; }
.obs-check__item h3 { font-size: 1.35rem; text-transform: uppercase; margin: 0 0 .3rem; }
.obs-check__item p { margin: 0; font-size: .93rem; color: var(--obs-muted) !important; }
.obs-links { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.2rem; }

/* Rifiniture globali per le pagine ancora chiare */
.hero--page .hero-title { text-shadow: 0 2px 24px rgba(0,0,0,.5); }
@media (max-width: 575.98px) {
  .obs-stats { gap: 1rem 1.6rem; }
  .obs-hero__cta .btn-primary { width: 100%; justify-content: center; }
}

/* Testata delle pagine interne in stile osservatorio */
.obs-hero--page { min-height: clamp(380px, 56svh, 560px); }
.obs-hero--page .obs-hero__title { font-size: clamp(2.8rem, 9vw, 6rem); }
.obs-hero--page .obs-hero__main { padding-bottom: 3rem; }

/* Colori espliciti (non dipendono dalle variabili di Bootstrap) */
.obs-hero__title { text-transform: uppercase; }
.theme-obs .btn-primary, .theme-obs .btn-primary:focus { background: var(--obs-orange); border-color: var(--obs-orange); color: #14161a; }
.theme-obs .btn-primary:hover, .theme-obs .btn-primary:active { background: var(--obs-orange-hover); border-color: var(--obs-orange-hover); color: #14161a; }
.theme-obs .btn-outline-primary, .theme-obs .btn-outline-secondary { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.4); }
.theme-obs .btn-outline-primary:hover, .theme-obs .btn-outline-secondary:hover { background: #fff; color: #14161a; border-color: #fff; }

/* Menu a 12 voci: sotto 1200 px diventa il menu a pulsante; tra 1200 e 1399 px si stringe */
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .nav-link { font-size: .95rem !important; letter-spacing: .02em; padding-left: .3rem !important; padding-right: .3rem !important; }
  .nav-link::after { left: .3rem; }
  .navbar-brand { font-size: 1.2rem; }
  .navbar-brand img { width: 30px; height: 30px; }
}
@media (min-width: 1400px) { .navbar-nav .nav-link { padding-left: .5rem !important; padding-right: .5rem !important; } }

/* Spazi piu' compatti */
.theme-obs .section { padding: clamp(2.2rem, 5vw, 3.8rem) 0; }
.obs-head { margin-bottom: clamp(1.2rem, 3vw, 2rem); }
.obs-head h2 { font-size: clamp(2.3rem, 7vw, 3.8rem); margin-bottom: .6rem; }
.obs-hero--page { min-height: clamp(280px, 40svh, 400px); padding-top: calc(var(--nav-h) + 1.5rem); }
.obs-hero--page .obs-hero__main { padding-bottom: 2rem; }
.obs-hero--page .obs-hero__title { font-size: clamp(2.6rem, 8vw, 5rem); margin-bottom: .9rem; }
.obs-hero--page .obs-hero__title em { display: inline; }
.obs-hero--page .obs-hero__lead { margin-bottom: 0; }
.obs-hero { min-height: clamp(560px, 92svh, 860px); }

/* ------------------------------------------------------------------ */
/* Componenti storici in versione scura                                */
/* ------------------------------------------------------------------ */
.obs-hero--page { min-height: clamp(230px, 30svh, 340px); }
.theme-obs .footer a, .theme-obs .footer-links a, .theme-obs .footer-contact a { color: rgba(255,255,255,.82) !important; }
.theme-obs .footer a:hover { color: #fff !important; }
.theme-obs .footer-bottom a { color: var(--obs-orange-hover) !important; }
.theme-obs .filter-bar, .theme-obs .map-side { background: var(--obs-bg-3); border: 1px solid var(--obs-line); box-shadow: none; border-radius: 10px; }
.theme-obs .filter-chip { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.3); }
.theme-obs .filter-chip:hover { border-color: var(--obs-orange); }
.theme-obs .filter-chip.is-on { background: #fff; border-color: #fff; color: #14161a; }
.theme-obs .filter-chip[data-fav-only].is-on, .theme-obs .filter-chip[data-layer-fav].is-on { background: var(--obs-orange); border-color: var(--obs-orange); color: #14161a; }
.theme-obs .filter-chip__n { background: rgba(255,255,255,.14); }
.theme-obs .filter-chip.is-on .filter-chip__n { background: rgba(0,0,0,.14); }
.theme-obs .filter-bar__count, .theme-obs .map-note, .theme-obs .listing-state { color: var(--obs-muted); }
.theme-obs .filter-reset { color: var(--obs-orange-hover); }
.theme-obs .form-control, .theme-obs .form-select { background-color: #0f1114; border: 1px solid rgba(255,255,255,.22); color: #fff; border-radius: 6px; }
.theme-obs .form-control::placeholder { color: rgba(255,255,255,.5); }
.theme-obs .form-control:focus, .theme-obs .form-select:focus { background-color: #0f1114; color: #fff; border-color: var(--obs-orange); box-shadow: 0 0 0 .2rem rgba(255,90,31,.25); }
.theme-obs .form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
.theme-obs .form-select option { background: #14161a; color: #fff; }
.theme-obs .form-label, .theme-obs label { color: #fff; }
.theme-obs .form-text, .theme-obs .form-check-label { color: var(--obs-muted); }
.theme-obs .form-check-input { background-color: #0f1114; border-color: rgba(255,255,255,.5); }
.theme-obs .form-check-input:checked { background-color: var(--obs-orange); border-color: var(--obs-orange); }
.theme-obs .filter-bar__search i { color: var(--obs-muted); }
.theme-obs .accordion-item { background: var(--obs-bg-3); border: 1px solid var(--obs-line); color: var(--obs-text); }
.theme-obs .accordion-button { background: var(--obs-bg-3); color: #fff; box-shadow: none; }
.theme-obs .accordion-button:not(.collapsed) { background: #232830; color: var(--obs-orange-hover); }
.theme-obs .accordion-button::after { filter: invert(1) grayscale(1) brightness(2); }
.theme-obs .accordion-body { color: var(--obs-text); background: var(--obs-bg-3); }
.theme-obs .map-list__item { border-top-color: var(--obs-line); }
.theme-obs .map-list__text strong { color: #fff; }
.theme-obs .map-status { background: rgba(251,191,36,.1); border: 1px solid rgba(251,191,36,.4); color: var(--obs-warn); }
.theme-obs .map-note code { color: var(--obs-orange-hover); }
.theme-obs .modal-content { background: var(--obs-bg-2); color: var(--obs-text); border: 1px solid var(--obs-line); }
.theme-obs .modal-header { background: #0d0f11; border-bottom: 1px solid var(--obs-line); }
.theme-obs .modal-body, .theme-obs .modal-footer { background: var(--obs-bg-2); color: var(--obs-text); }
.theme-obs .modal-body p, .theme-obs .modal-body li { color: var(--obs-text); }
.theme-obs .modal-body h3, .theme-obs .modal-body h4, .theme-obs .modal-body h5 { color: #fff; }
.theme-obs .legal-list, .theme-obs .legal-list li { color: var(--obs-text); }
.theme-obs .table { --bs-table-color: var(--obs-text); --bs-table-bg: transparent; --bs-table-border-color: var(--obs-line); --bs-table-striped-bg: rgba(255,255,255,.03); color: var(--obs-text); }
.theme-obs .table th, .theme-obs .table td { color: var(--obs-text); border-color: var(--obs-line); background: transparent; }
.theme-obs .table thead th { color: #fff; background: #0d0f11; }
.theme-obs .alert { background: rgba(251,191,36,.1); border: 1px solid rgba(251,191,36,.4); color: var(--obs-text); }
.theme-obs .alert strong { color: #fff; }
.theme-obs code { color: var(--obs-orange-hover); }
.theme-obs .text-dark, .theme-obs .text-body { color: var(--obs-text) !important; }
.theme-obs .bg-white, .theme-obs .bg-light { background: var(--obs-bg-3) !important; color: var(--obs-text); }
.theme-obs .badge.bg-warning { color: #14161a !important; }
.theme-obs hr { border-color: var(--obs-line); opacity: 1; }
.theme-obs .btn-close { filter: invert(1) grayscale(1) brightness(2); }
.theme-obs .legal-note, .theme-obs .notice { background: rgba(251,191,36,.08); border: 1px solid rgba(251,191,36,.35); color: var(--obs-text); }
.theme-obs .toast-notification { color: #14161a; }
.theme-obs .dashboard-card { background: var(--obs-bg-3); border: 1px solid var(--obs-line); box-shadow: none; border-radius: 10px; color: var(--obs-text); align-self: flex-start; }
.theme-obs .dashboard-card-header { border-bottom-color: var(--obs-line); }
.theme-obs .dashboard-card-title, .theme-obs .dashboard-card-title.h5 { color: #fff; font-family: var(--font-heading); font-size: 1.4rem; text-transform: uppercase; }
.theme-obs .dashboard-card .tremor-widget { background: #0f1114; }
.theme-obs .stat-number { color: var(--obs-orange); }
.theme-obs .widget-source, .theme-obs .small { color: var(--obs-muted); }
.theme-obs .ash-notice { background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-left: 5px solid var(--obs-orange); box-shadow: none; border-radius: 10px; }
.theme-obs .ash-notice h2, .theme-obs .ash-notice h3, .theme-obs .ash-notice strong { color: #fff; }
.theme-obs .ash-notice p, .theme-obs .ash-notice li { color: var(--obs-text); }
.theme-obs .ash-notice a { color: var(--obs-orange-hover); }

/* ---------- Pianifica la giornata ---------- */
.plan-form { display: grid; gap: 1rem; grid-template-columns: 1fr; align-items: end; margin-bottom: 1.2rem; }
@media (min-width: 768px) { .plan-form { grid-template-columns: auto 1fr; } }
.plan-form__day { display: inline-flex; border: 1px solid var(--obs-line); border-radius: 8px; overflow: hidden; }
.plan-day { background: var(--obs-bg-3); color: var(--obs-text); border: 0; padding: .7rem 1.6rem; font-family: var(--font-heading); font-weight: 700; font-size: 1.15rem; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; min-height: 48px; }
.plan-day + .plan-day { border-left: 1px solid var(--obs-line); }
.plan-day.is-on { background: var(--obs-orange); color: #111; }
.plan-day:focus-visible { outline: 3px solid #fff; outline-offset: -3px; }
.plan-form__exc .obs-kicker { display: block; margin-bottom: .35rem; }
.plan-sub { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--obs-muted); margin: 1.6rem 0 .7rem; font-weight: 400; }
.plan-strip { margin-top: 0; }
.oggi-hour.is-best { outline: 2px solid var(--obs-orange); outline-offset: 1px; }
.oggi-hour.is-best .oggi-hour__w { color: var(--obs-orange); }
.plan-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.plan-steps > li { display: grid; grid-template-columns: 4.2rem 1fr; gap: 1rem; background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-radius: 8px; padding: .9rem 1.1rem; }
.plan-steps__t { font-family: var(--font-heading); font-weight: 700; font-size: 1.6rem; color: var(--obs-orange); line-height: 1.1; }
.plan-steps p { margin: .15rem 0 0; color: var(--obs-muted); font-size: .95rem; }
.plan-rest { list-style: none; padding: 0; margin: .3rem 0 .5rem; display: grid; gap: .25rem; }
.plan-actions { margin-top: 1.4rem; }
.plan-basis { margin-top: 1rem; margin-bottom: 0; }
.plan-cmp { margin-top: .4rem; }
.plan-compare { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .plan-compare { grid-template-columns: repeat(2, 1fr); } }
.plan-compare button { width: 100%; text-align: left; display: grid; grid-template-columns: 14px 1fr; column-gap: .7rem; row-gap: .1rem; align-items: center; background: var(--obs-bg-3); color: var(--obs-text); border: 1px solid var(--obs-line); border-radius: 8px; padding: .7rem .9rem; cursor: pointer; min-height: 48px; }
.plan-compare button:hover { border-color: rgba(255,255,255,.3); }
.plan-compare .is-current button { border-color: var(--obs-orange); }
.plan-compare__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--obs-muted); grid-row: 1 / 3; }
.plan-compare .is-ok .plan-compare__dot { background: var(--obs-ok); }
.plan-compare .is-warn .plan-compare__dot { background: var(--obs-warn); }
.plan-compare .is-bad .plan-compare__dot { background: var(--obs-bad); }
.plan-compare__n { font-weight: 700; }
.plan-compare__m { font-size: .85rem; color: var(--obs-muted); grid-column: 2; }
@media print {
  .navbar, .footer, .plan-form, .plan-actions, .plan-cmp, .obs-hero, .skip-link { display: none !important; }
  body, .theme-obs { background: #fff !important; color: #000 !important; }
  .oggi-verdict, .plan-steps > li { background: #fff !important; color: #000 !important; border-color: #888 !important; }
  .plan-steps p, .oggi-verdict *, .plan-sub { color: #000 !important; }
}

/* ---------- Menu a tendina "Servizi" ---------- */
.nav-drop { position: relative; }
.nav-drop__btn { background: none; border: 0; display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; color: inherit; }
.nav-drop__caret { font-size: .6rem; transition: transform .2s; }
.nav-drop.is-open .nav-drop__caret { transform: rotate(180deg); }
.nav-drop__menu { list-style: none; margin: 0; padding: .4rem; display: none; }
.nav-drop.is-open .nav-drop__menu { display: block; }
.nav-drop__link { display: block; padding: .6rem .9rem; border-radius: 6px; color: var(--obs-text) !important; text-decoration: none !important; font-family: var(--font-heading); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; font-size: 1.05rem; white-space: nowrap; }
.nav-drop__link:hover, .nav-drop__link:focus-visible { background: rgba(255,255,255,.08); color: #fff !important; }
.nav-drop__link.active { color: var(--obs-orange) !important; }
.nav-drop__btn.active { color: var(--obs-orange) !important; }
@media (min-width: 992px) {
  .nav-drop__menu { position: absolute; top: calc(100% + .35rem); right: 0; min-width: 14rem; background: #14161a; border: 1px solid var(--obs-line); border-radius: 10px; box-shadow: 0 18px 40px rgba(0,0,0,.55); z-index: 1100; }
}
@media (max-width: 991.98px) {
  .nav-drop__btn { width: 100%; justify-content: space-between; }
  .nav-drop__menu { padding: 0 0 .3rem 1rem; }
}

/* ---------- Auto e parcheggio ---------- */
.serv-grid { display: grid; gap: 1.2rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .serv-grid { grid-template-columns: repeat(2, 1fr); } }
.serv-card { background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-radius: 12px; padding: 1.6rem 1.5rem; display: flex; flex-direction: column; gap: .5rem; }
.serv-card__icon { width: 52px; height: 52px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,90,31,.14); color: var(--obs-orange); font-size: 1.4rem; }
.serv-card h3 { font-size: 1.9rem; text-transform: uppercase; margin: .4rem 0 0; color: #fff; }
.serv-card p { margin: 0; color: var(--obs-muted); }
.serv-card__tag { font-family: var(--font-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--obs-ok) !important; }
.serv-card__meta { list-style: none; margin: .3rem 0; padding: 0; display: grid; gap: .3rem; color: var(--obs-text); }
.serv-card__meta i { width: 1.4rem; color: var(--obs-orange); }
.serv-card__actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: auto; padding-top: 1rem; }
.dashboard-card__extra { margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid var(--obs-line); }
.dashboard-card__extra .oggi-stats, .dashboard-card__extra .oggi-stats--inline { display: none; }

/* ---------- Mappa: schede vista e "Muoversi" ---------- */
.map-tabs { display: inline-flex; border: 1px solid var(--obs-line); border-radius: 8px; overflow: hidden; margin-bottom: 1rem; }
.map-tab { background: var(--obs-bg-3); color: var(--obs-text); border: 0; padding: .7rem 1.2rem; font-family: var(--font-heading); font-weight: 700; font-size: 1.05rem; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; min-height: 46px; }
.map-tab + .map-tab { border-left: 1px solid var(--obs-line); }
.map-tab.is-on { background: var(--obs-orange); color: #111; }
.map-tab:focus-visible { outline: 3px solid #fff; outline-offset: -3px; }
.etna-map--google .embed-slot, .etna-map--google iframe { width: 100%; height: 100%; border: 0; }
.map-serv { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .map-serv { grid-template-columns: repeat(2, 1fr); } }
.map-serv__item { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-radius: 12px; padding: 1.1rem 1.3rem; text-decoration: none !important; color: var(--obs-text) !important; transition: border-color .2s, background .2s; }
.map-serv__item:hover { border-color: var(--obs-orange); background: #1b1e23; }
.map-serv__item strong { display: block; font-family: var(--font-heading); font-size: 1.5rem; text-transform: uppercase; color: #fff; line-height: 1.1; }
.map-serv__item small { color: var(--obs-muted); font-size: .9rem; }
.map-serv__icon { width: 52px; height: 52px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,90,31,.14); color: var(--obs-orange); font-size: 1.4rem; }
.map-serv__go { color: var(--obs-orange); }
.leaflet-tooltip.ash-ref { background: rgba(14,15,17,.82); color: #fff; border: 0; box-shadow: none; font: 600 11px/1.2 var(--font-body); padding: 2px 6px; border-radius: 4px; }
.leaflet-tooltip.ash-ref::before { display: none; }

/* ---------- Escursioni: foto auto e schede scure ---------- */
.excursion-image > img.auto-photo { position: absolute; inset: 0; }
.modal-photo { position: relative; aspect-ratio: 16 / 7; border-radius: 10px; overflow: hidden; margin-bottom: 1.1rem; background: #0d0f11; }
.modal-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.modal-photo > img.auto-photo { position: absolute; inset: 0; }
.theme-obs .guide-note { background: var(--obs-bg-3); border: 1px solid var(--obs-line); color: var(--obs-text); }
.theme-obs .guide-note a { color: var(--obs-orange-hover); }

/* ---------- Curiosità ---------- */
.cur-stats { display: grid; gap: 1px; background: var(--obs-line); border: 1px solid var(--obs-line); border-radius: 12px; overflow: hidden; grid-template-columns: 1fr; }
@media (min-width: 576px) { .cur-stats { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .cur-stats { grid-template-columns: repeat(3, 1fr); } }
.cur-stat { background: var(--obs-bg-2); padding: 1.5rem 1.4rem 1.3rem; }
.cur-stat__n { font-family: var(--font-heading); font-weight: 700; font-size: 2.9rem; line-height: 1; color: var(--obs-orange); margin: 0 0 .3rem; }
.cur-stat__l { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: #fff; margin: 0 0 .55rem; }
.cur-stat__d { margin: 0; color: var(--obs-muted); font-size: .92rem; }
.cur-tl { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; max-width: 60rem; }
.cur-tl__item { display: grid; grid-template-columns: 1fr; gap: .3rem 1.4rem; background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-left: 4px solid var(--obs-orange); border-radius: 10px; padding: 1rem 1.2rem; }
@media (min-width: 768px) { .cur-tl__item { grid-template-columns: 9.5rem 1fr; } }
.cur-tl__y { font-family: var(--font-heading); font-weight: 700; font-size: 1.7rem; line-height: 1.1; color: var(--obs-orange); }
.cur-tl__item h3 { font-size: 1.15rem; margin: 0 0 .25rem; color: #fff; font-family: var(--font-body); font-weight: 700; }
.cur-tl__item p { margin: 0; color: var(--obs-muted); }
.cur-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .cur-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .cur-grid--4 { grid-template-columns: repeat(4, 1fr); } }
.cur-card, .cur-crater, .cur-vona { background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-radius: 12px; padding: 1.3rem 1.2rem; }
.cur-card__icon { width: 46px; height: 46px; border-radius: 10px; display: grid; place-items: center; background: rgba(255,90,31,.14); color: var(--obs-orange); font-size: 1.2rem; margin-bottom: .8rem; }
.cur-card h3 { font-size: 1.5rem; text-transform: uppercase; margin: 0 0 .4rem; color: #fff; }
.cur-card p, .cur-crater p:last-child, .cur-vona p:last-child { margin: 0; color: var(--obs-muted); font-size: .95rem; }
.cur-crater__n { font-family: var(--font-heading); font-weight: 700; font-size: 1.7rem; text-transform: uppercase; color: var(--obs-orange); margin: 0 0 .3rem; }
.cur-sub { font-size: 2rem; text-transform: uppercase; margin: 2.6rem 0 .4rem; color: #fff; }
.cur-lead { color: var(--obs-muted); max-width: 46rem; margin-bottom: 1.1rem; }
.cur-vona__n { display: flex; align-items: center; gap: .6rem; font-family: var(--font-heading); font-weight: 700; font-size: 1.6rem; text-transform: uppercase; color: #fff; margin: 0 0 .4rem; }
.cur-vona__n span { width: 16px; height: 16px; border-radius: 50%; background: var(--obs-ok); }
.cur-vona--warn .cur-vona__n span { background: var(--obs-warn); }
.cur-vona--orange .cur-vona__n span { background: #ff8a3d; }
.cur-vona--bad .cur-vona__n span { background: var(--obs-bad); }
.cur-feature { display: grid; gap: 2rem; align-items: center; grid-template-columns: 1fr; }
@media (min-width: 992px) { .cur-feature { grid-template-columns: 1.1fr .9fr; gap: 3rem; } }
.cur-feature__img img { width: 100%; height: auto; border-radius: 14px; display: block; border: 1px solid var(--obs-line); }
.cur-src { columns: 1; padding-left: 1.1rem; }
@media (min-width: 768px) { .cur-src { columns: 2; column-gap: 2.5rem; } }
.cur-src li { margin-bottom: .5rem; break-inside: avoid; }

/* ===== Foto: cornici a misura fissa, la foto si adatta (qualsiasi dimensione del JPG) ===== */
.listing-card__media > img, .excursion-image > img, .card-volcanic .card-img-top { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.listing-card__media > img.auto-photo, .excursion-image > img.auto-photo, .modal-photo > img.auto-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.prod-visual > img.auto-photo { position: relative; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: center; display: block; }
.card-volcanic .card-img-top { height: auto !important; aspect-ratio: 16 / 10; }

/* ===== Home: colonna meteo + riga INGV / cielo di oggi ===== */
.dash-home > [class*="col-"] { display: flex; flex-direction: column; }
.dash-fill > div { flex: 1 1 auto; display: flex; flex-direction: column; }
.dash-fill > .dash-cta { flex: 0 0 auto; }
.dash-fill .weather-widget, .dash-fill .tremor-widget { flex: 1 1 auto; height: 100%; }
.sky-widget { background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-radius: 12px; padding: 1.4rem 1.4rem 1.2rem; color: var(--obs-text); display: flex; flex-direction: column; gap: 1rem; }
.sky-widget__kicker { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--obs-orange) !important; margin: 0; }
.sky-widget__title { font-size: 1.7rem; text-transform: uppercase; color: #fff; margin: -.4rem 0 0; }
.sky-sun__times { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; text-align: center; }
.sky-sun__times span { display: block; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--obs-muted); }
.sky-sun__times strong { display: block; font-family: var(--font-heading); font-size: 1.55rem; color: #fff; line-height: 1.15; }
.sky-sun__bar { position: relative; height: 8px; border-radius: 99px; background: linear-gradient(90deg, #f2b24a, #ff5a1f); margin: .9rem .3rem .5rem; opacity: .85; }
.sky-sun__bar span { position: absolute; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%; background: #fff; border: 3px solid var(--obs-orange); box-shadow: 0 0 0 4px rgba(255,90,31,.2); }
.sky-sun__state { margin: 0; text-align: center; color: var(--obs-muted); font-size: .92rem; }
.sky-moonrow { display: flex; gap: 1rem; align-items: center; padding-top: 1rem; border-top: 1px solid var(--obs-line); }
.sky-moon { flex: 0 0 auto; }
.sky-moonrow strong { display: block; color: #fff; font-family: var(--font-heading); font-size: 1.3rem; text-transform: uppercase; line-height: 1.1; }
.sky-moonrow span { color: var(--obs-orange); font-family: var(--font-mono); font-size: .78rem; }
.sky-moonrow p { margin: .25rem 0 0; color: var(--obs-muted); font-size: .9rem; }
.sky-widget__src { margin: auto 0 0; font-size: .76rem; color: var(--obs-muted); }

/* ===== Pagina Mappe: schede ===== */
.mappe-tabs-wrap { background: var(--obs-bg-2, #101214); border-bottom: 1px solid var(--obs-line); }
.mappe-tabs { display: flex; gap: .4rem; padding: .7rem 0; overflow-x: auto; }
.mappe-tab { flex: 1 1 0; background: var(--obs-bg-3); color: var(--obs-text); border: 1px solid var(--obs-line); border-radius: 10px; padding: .75rem 1.2rem; min-height: 48px; font-family: var(--font-heading); font-weight: 700; font-size: 1.1rem; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; white-space: nowrap; }
.mappe-tab.is-on { background: var(--obs-orange); border-color: var(--obs-orange); color: #111; }
.mappe-tab:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
@media (min-width: 768px) { .mappe-tab { flex: 0 0 auto; min-width: 16rem; } }
.mappe-panel[hidden] { display: none !important; }

/* ===== Parcheggio: prenotazione incorporata ===== */
.park-grid { display: grid; gap: 1.4rem; grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 992px) { .park-grid { grid-template-columns: 5fr 7fr; } }
.park-side { display: flex; flex-direction: column; gap: 1.2rem; }
.park-side .serv-card { flex: 0 0 auto; }
.park-embed { position: relative; border: 1px solid var(--obs-line); border-radius: 12px; overflow: hidden; background: #0d0f11; min-height: 640px; display: flex; flex-direction: column; }
.park-embed .embed-slot { flex: 1 1 auto; min-height: 640px; }
.park-embed .embed-gate { min-height: 640px; }
.park-embed__bar { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: center; justify-content: space-between; padding: .8rem 1rem; border-top: 1px solid var(--obs-line); background: var(--obs-bg-3); font-size: .88rem; color: var(--obs-muted); }
.park-embed__bar p { margin: 0; flex: 1 1 16rem; }
@media (max-width: 575.98px) { .park-embed, .park-embed .embed-slot, .park-embed .embed-gate { min-height: 560px; } }
.park-steps { list-style: none; counter-reset: ps; margin: 0; padding: 0; display: grid; gap: .7rem; }
.park-steps li { counter-increment: ps; background: var(--obs-bg-3); border: 1px solid var(--obs-line); border-radius: 10px; padding: .9rem 1rem .9rem 3.4rem; position: relative; color: var(--obs-muted); font-size: .93rem; }
.park-steps li::before { content: counter(ps); position: absolute; left: 1rem; top: .75rem; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: rgba(255,90,31,.16); color: var(--obs-orange); font-family: var(--font-heading); font-weight: 700; display: grid; place-items: center; }
.park-steps strong { color: #fff; display: block; }

/* Curiosità: "Le grandi eruzioni" centrate (titolo e linea del tempo) */
.cur-center .obs-head { text-align: center; }
.cur-center .obs-kicker { justify-content: center; }
.cur-center .obs-head p:not(.obs-kicker) { margin-left: auto; margin-right: auto; max-width: 40rem; }
.cur-center .cur-tl { margin-left: auto; margin-right: auto; }
.sky-next { padding-top: 1rem; border-top: 1px solid var(--obs-line); }
.sky-next__h { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--obs-muted) !important; margin: 0 0 .5rem; }
.sky-next ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.sky-next li { display: grid; grid-template-columns: 4.2rem 1fr auto 2.6rem; align-items: center; gap: .6rem; padding: .4rem 0; border-bottom: 1px dashed rgba(255,255,255,.08); font-size: .92rem; }
.sky-next li:last-child { border-bottom: 0; }
.sky-next__d { color: #fff; font-weight: 700; text-transform: capitalize; }
.sky-next__t { color: var(--obs-text); font-family: var(--font-mono); font-size: .85rem; }
.sky-next__i { color: var(--obs-muted); font-family: var(--font-mono); font-size: .78rem; text-align: right; }
.dash-cta { display: flex; align-items: center; gap: 1rem; margin-top: 1rem; padding: 1.1rem 1.2rem; border: 1px solid var(--obs-line); border-radius: 12px; background: var(--obs-bg-3); color: #fff !important; text-decoration: none; transition: border-color .2s, transform .2s; }
.dash-cta:hover { border-color: var(--obs-orange); transform: translateY(-2px); }
.dash-cta i:first-child { width: 44px; height: 44px; border-radius: 10px; background: rgba(255,90,31,.16); color: var(--obs-orange); display: grid; place-items: center; font-size: 1.15rem; flex: 0 0 auto; }
.dash-cta strong { display: block; font-family: var(--font-heading); font-size: 1.3rem; text-transform: uppercase; line-height: 1.1; }
.dash-cta small { color: var(--obs-muted); }
.dash-cta .dash-cta__go { margin-left: auto; color: var(--obs-orange); }
.serv-grid.serv-grid--one { grid-template-columns: 1fr; }
.serv-grid--one .serv-card { height: 100%; }
/* la cornice dei prodotti occupa sempre tutta la larghezza della scheda, qualunque sia la foto */
.card-volcanic .prod-visual, .card-volcanic > .w-100 { width: 100%; align-self: stretch; min-width: 0; }
.prod-visual > img.auto-photo { max-width: 100%; }

/* Parcheggio senza modulo incorporato: scheda e passaggi affiancati */
.park-grid--solo { grid-template-columns: 1fr; }
.park-grid--solo .park-side { display: grid; gap: 1.2rem; grid-template-columns: 1fr; }
@media (min-width: 992px) { .park-grid--solo, .park-grid--solo .park-side { grid-template-columns: 1fr 1fr; } .park-grid--solo .park-side { grid-column: 1 / -1; align-items: stretch; } }

/* ===== Cookie: banner e finestra preferenze nei colori del sito (testo sempre leggibile) ===== */
.theme-obs .cookie-banner { background: #101215; color: #fff; border-top: 3px solid var(--obs-orange); }
.theme-obs .cookie-banner .cookie-text, .theme-obs .cookie-banner .cookie-text strong { color: #f1f1f1; }
.theme-obs .cookie-banner .cookie-text a { color: #ffb08a; text-decoration: underline; }
.theme-obs .cookie-btn-accept { background: var(--obs-orange); border-color: var(--obs-orange); color: #111; }
.theme-obs .cookie-btn-accept:hover { background: #ff7a45; border-color: #ff7a45; }
.theme-obs .cookie-btn-reject { background: #fff; border-color: #fff; color: #111; }
.theme-obs .cookie-btn-settings { background: transparent; border-color: rgba(255,255,255,.7); color: #fff; }
.theme-obs .pref-dialog { background: #14161a; color: #e9eaec; border: 1px solid var(--obs-line); border-radius: 14px; }
.theme-obs .pref-dialog__head { background: #0d0f11; border-bottom: 1px solid var(--obs-line); }
.theme-obs .pref-dialog__head h2 { color: #fff; font-size: 1.5rem; text-transform: uppercase; }
.theme-obs .pref-dialog__body { background: #14161a; }
.theme-obs .pref-cat { border-bottom-color: var(--obs-line); }
.theme-obs .pref-cat__row strong { color: #fff; }
.theme-obs .pref-cat p { color: #b9bec6; }
.theme-obs .pref-dialog__foot { background: #0d0f11; border-top: 1px solid var(--obs-line); }
.theme-obs .pref-dialog__foot .btn-primary { background: var(--obs-orange); border-color: var(--obs-orange); color: #111; }
.theme-obs .pref-dialog__foot .btn-outline-primary, .theme-obs .pref-dialog__foot .btn-outline-secondary { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.45); }
.theme-obs .pref-dialog__foot .btn-outline-primary:hover, .theme-obs .pref-dialog__foot .btn-outline-secondary:hover { background: #fff; color: #111; }
.theme-obs .switch span { background: #4b535d; }
.theme-obs .switch input:checked + span { background: var(--obs-orange); }
.theme-obs .switch input:focus-visible + span { outline: 3px solid #fff; outline-offset: 2px; }
.theme-obs .pref-dialog .btn-close { filter: invert(1); }

/* ---------- Privacy / cookie policy: tema scuro ---------- */
.theme-obs .todo{background:rgba(255,196,60,.14);color:#ffd36b;border:1px dashed #c79a00}
.theme-obs .alert-todo{background:rgba(255,196,60,.08);border:1px solid rgba(255,196,60,.35);border-left:6px solid #e0a800;color:#f3e2b3}
.theme-obs .alert-todo strong{color:#ffd36b}
.theme-obs .table{--bs-table-bg:transparent;--bs-table-color:var(--obs-text,#e8e6e3);--bs-table-border-color:var(--obs-line,#2b2f36);color:var(--obs-text,#e8e6e3)}
.theme-obs .table>:not(caption)>*>*{background-color:transparent;color:inherit;border-color:var(--obs-line,#2b2f36)}
.theme-obs .table-dark,.theme-obs .table-dark>*>*{--bs-table-bg:var(--obs-bg-3,#1a1d22);background-color:var(--obs-bg-3,#1a1d22)!important;color:#fff}
.theme-obs code{color:#ffb089;background:rgba(255,255,255,.06);padding:.05rem .3rem;border-radius:4px}
.theme-obs .legal-list{padding-left:1.1rem}
.theme-obs .legal-list li{margin-bottom:.6rem}
.theme-obs .accordion-item{background:var(--obs-bg-3,#1a1d22);border:1px solid var(--obs-line,#2b2f36)!important;border-radius:8px;overflow:hidden}
.theme-obs .accordion-button{background:var(--obs-bg-3,#1a1d22);color:#fff;box-shadow:none}
.theme-obs .accordion-button:not(.collapsed){background:#22262d;color:#fff}
.theme-obs .accordion-button::after{filter:invert(1)}
.theme-obs .accordion-body{color:var(--obs-text,#e8e6e3)}

/* Selettore sfondo mappa (Leaflet) in stile Osservatorio */
.theme-obs .leaflet-control-layers{background:rgba(14,15,17,.9);color:#fff;border:1px solid var(--obs-line,#2b2f36);border-radius:8px;box-shadow:none}
.theme-obs .leaflet-control-layers-expanded{padding:6px 10px;color:#fff}
.theme-obs .leaflet-control-layers label{margin:3px 0;font:600 13px/1.3 var(--font-body);color:#fff;cursor:pointer}
.theme-obs .leaflet-control-layers label i{color:#ff6a2a;margin-right:4px}
.theme-obs .leaflet-control-layers-selector{accent-color:#ff6a2a}

/* ---------- Sezione "Capire i dati" (tremore, terremoti, calore) ---------- */
.dati-tabs{gap:.5rem;flex-wrap:wrap}
.theme-obs .dati-tabs .nav-link{color:#fff;background:transparent;border:1px solid var(--obs-line,#2b2f36);border-radius:999px;font-weight:600;padding:.55rem 1.1rem}
.theme-obs .dati-tabs .nav-link.active{background:#ff5a1f;border-color:#ff5a1f;color:#fff}
.dati-steps{padding-left:1.2rem}.dati-steps li{margin-bottom:.5rem}
.dati-table th,.dati-table td{vertical-align:middle}
.dati-table td .dot{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;margin-right:.4rem}
.dot-green{background:#4caf50}.dot-yellow{background:#f2c200}.dot-red{background:#e53935}
.dati-tile{background:var(--obs-bg-3,#1a1d22);border:1px solid var(--obs-line,#2b2f36);border-radius:10px;padding:1rem 1.1rem;height:100%}
.dati-tile__label{font-weight:600;font-size:.72rem;line-height:1.2;text-transform:uppercase;letter-spacing:.08em;color:#9aa0a8;margin:0 0 .35rem}
.dati-tile__value{font-weight:700;font-size:1.9rem;line-height:1;margin:0;color:#fff}
.dati-tile__sub{font-size:.8rem;color:#9aa0a8;margin:.3rem 0 0}
.dati-now{margin-top:1rem;padding:1rem;border-left:3px solid #ff5a1f;background:rgba(255,255,255,.03);border-radius:0 8px 8px 0}
.theme-obs .dati-alert{background:rgba(255,196,60,.08);border:1px solid rgba(255,196,60,.35);color:#f3e2b3}
.theme-obs .dati-alert a{color:#ffd36b}

/* Menu: le voci non vanno mai a capo; la dimensione si adatta alla larghezza */
.navbar-nav .nav-link { white-space: nowrap; }
@media (min-width: 1200px) { .navbar-nav { flex-wrap: nowrap; } }

/* Selettore lingua nel footer */
.footer-lang { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; padding: 1.1rem 0; margin-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .95rem; }
.footer-lang > .fa-globe { color: var(--obs-orange, #ff5a1f); }
.footer-lang__label { color: rgba(255,255,255,.65); font-family: var(--font-mono, inherit); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-lang nav { display: flex; flex-wrap: wrap; gap: .4rem .5rem; }
.footer-lang a { display: inline-block; padding: .3rem .8rem; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; color: #fff !important; text-decoration: none !important; }
.footer-lang a:hover, .footer-lang a:focus-visible { background: rgba(255,255,255,.1); }
.footer-lang a.is-active { background: var(--obs-orange, #ff5a1f); border-color: var(--obs-orange, #ff5a1f); color: #14161a !important; font-weight: 700; }
