/* ---------------------------------------------------------------------------
   Base comune a tutti i temi: struttura, non estetica.
   Ogni tema ridefinisce le variabili e aggiunge le proprie regole.
   Mobile first: si progetta a 390px, il desktop e' un adattamento.
--------------------------------------------------------------------------- */

:root {
  --sfondo: #fef9ee;
  --testo: #1d1c15;
  --tenue: rgba(29, 28, 21, .68);
  --bordo: rgba(29, 28, 21, .14);
  --scheda: #ffffff;
  --primario: #006565;
  --secondario: #b40067;
  --oro: #f6be35;
  /* Verde WhatsApp scurito: sul #25D366 il bianco arriva a 1.98:1 e la scritta
     del bottone piu' importante dell'app non si legge. Questo tiene 5:1. */
  --wa: #0B8043;
  --su-primario: #ffffff;
  /* L'accento fa due mestieri diversi e servono due colori.
     --secondario  e' la superficie: ci va sopra --su-secondario.
     --accento-testo e' lo stesso accento quando diventa scritta sulla
     pagina. Su un arancio o un giallo i due non possono coincidere:
     quello che si legge come testo affoga il bianco come fondo. */
  --su-secondario: #ffffff;
  --accento-testo: #b40067;
  --raggio: 1.1rem;
  --raggio-piccolo: .7rem;
  --raggio-pillola: 999px;
  --bordo-spessore: 1px;
  --gap: 12px;
  --pad: 20px;
  --sezione: 56px;
  --font-testo: system-ui, sans-serif;
  --font-titolo: system-ui, sans-serif;
  --font-etichetta: system-ui, sans-serif;
  --peso-titolo: 600;
  --spaziatura-titolo: -.02em;
  --maiuscolo-etichette: uppercase;
  --ombra: 0 10px 30px -18px rgba(0, 0, 0, .45);
  --media: linear-gradient(135deg, rgba(0,101,101,.22), rgba(180,0,103,.18));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--sfondo); color: var(--testo);
  font-family: var(--font-testo); font-size: 16px; line-height: 1.55;
  overflow-x: hidden; width: 100%; max-width: 100%;
  padding-bottom: env(safe-area-inset-bottom);
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
[hidden] { display: none !important; }

h1, h2, h3, h4 { font-family: var(--font-titolo); font-weight: var(--peso-titolo); letter-spacing: var(--spaziatura-titolo); line-height: 1.08; margin: 0; }
p { margin: 0; }

.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24; user-select: none; }

/* ---- impalcatura ---- */
.nz-app { min-height: 100svh; }
.nz-contenuto { padding-bottom: 120px; }
.nz-sezione { padding: var(--sezione) var(--pad); }
.nz-sezione--stretta { padding-left: 0; padding-right: 0; }
/* min-width:0 e' obbligatorio: dentro un contenitore flex un figlio non si
   restringe sotto il contenuto, e le file scorrevoli sfondano la pagina. */
.nz-limite { width: 100%; min-width: 0; max-width: 720px; margin: 0 auto; }
.nz-limite--largo { width: 100%; min-width: 0; max-width: 1100px; margin: 0 auto; }
.nz-sezione > * { min-width: 0; }

.nz-occhiello { font-family: var(--font-etichetta); font-size: .68rem; letter-spacing: .18em; text-transform: var(--maiuscolo-etichette); font-weight: 600; color: var(--accento-testo); }
.nz-titolo-sezione { font-size: clamp(1.6rem, 6.5vw, 2.3rem); margin: .35rem 0 .5rem; }
.nz-sommario { color: var(--tenue); font-size: .95rem; }

/* ---- barra alta ---- */
.nz-barra { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; gap: 10px; padding: 10px var(--pad); background: var(--sfondo); border-bottom: var(--bordo-spessore) solid var(--bordo); }
.nz-barra__marchio { flex: 1 1 auto; min-width: 0; font-family: var(--font-titolo); font-weight: 700; letter-spacing: .02em; line-height: 1; font-size: .95rem; }
.nz-barra__marchio span { display: block; font-size: .55rem; letter-spacing: .35em; color: var(--accento-testo); }
.nz-lingue { display: flex; gap: 2px; background: var(--bordo); border-radius: var(--raggio-pillola); padding: 2px; }
.nz-lingue button { font-size: .72rem; font-weight: 600; padding: 5px 9px; border-radius: var(--raggio-pillola); color: var(--tenue); }
.nz-lingue button[aria-pressed="true"] { background: var(--testo); color: var(--sfondo); }
.nz-icona-btn { width: 40px; height: 40px; display: grid; place-items: center; border-radius: var(--raggio-pillola); }

/* ---- hero ---- */
.nz-hero { position: relative; overflow: hidden; }
/* Senza foto caricata resta il fondo del tema, non un buco nero. */
.nz-hero__foto { position: absolute; inset: 0; background-image: var(--media); background-size: cover; background-position: center; }
.nz-hero__velo { position: absolute; inset: 0; }
.nz-hero__dentro { position: relative; padding: var(--pad); }
.nz-hero__titolo { font-size: clamp(2.1rem, 10vw, 3.4rem); }
.nz-hero__sotto { margin-top: .9rem; font-size: 1rem; }
.nz-azioni { display: flex; flex-direction: column; gap: 10px; margin-top: 1.4rem; }

.nz-itinerario__form { background: var(--scheda); border: var(--bordo-spessore) solid var(--bordo); border-radius: var(--raggio); padding: clamp(18px, 4vw, 28px); margin-bottom: 24px; }
.nz-itinerario__form label { display: block; font-weight: 700; margin-bottom: 10px; }
.nz-itinerario__controlli { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.nz-itinerario__controlli input { width: 100px; min-height: 48px; padding: 8px 12px; border: var(--bordo-spessore) solid var(--bordo); border-radius: var(--raggio-piccolo); color: var(--testo); background: var(--sfondo); font: inherit; font-size: 1.25rem; font-weight: 700; }
.nz-itinerario__controlli .nz-btn--pieno { min-height: 48px; }
.nz-itinerario__form small { display: block; margin-top: 10px; color: var(--tenue); }
.nz-itinerario__conta { margin-bottom: 14px; font-family: var(--font-etichetta); font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.nz-itinerario__risultato { display: grid; gap: 14px; }
.nz-itinerario__giorno { position: relative; overflow: hidden; padding: 22px; border: var(--bordo-spessore) solid var(--bordo); border-radius: var(--raggio); background: var(--scheda); }
.nz-itinerario__numero { margin-bottom: 8px; color: var(--accento-testo); font-family: var(--font-etichetta); font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.nz-itinerario__giorno h3 { margin-bottom: 10px; font-size: clamp(1.3rem, 5vw, 1.8rem); }
.nz-itinerario__giorno > p { color: var(--tenue); }
.nz-itinerario__timeline { display: grid; gap: 0; margin: 18px 0; padding: 0; list-style: none; border-top: var(--bordo-spessore) solid var(--bordo); }
.nz-itinerario__timeline li { display: grid; grid-template-columns: 56px minmax(0,1fr); gap: 12px; padding: 11px 0; border-bottom: var(--bordo-spessore) solid var(--bordo); }
.nz-itinerario__timeline time { color: var(--accento-testo); font-family: var(--font-etichetta); font-size: .78rem; font-weight: 800; }
.nz-itinerario__timeline b, .nz-itinerario__timeline small { display: block; line-height: 1.35; }
.nz-itinerario__timeline b { font-size: .82rem; }
.nz-itinerario__timeline small { margin-top: 2px; color: var(--tenue); font-size: .8rem; }
.nz-itinerario__percorso { width: 100%; min-height: 44px; }
.nz-itinerario__luogo { display: grid; gap: 5px; padding-top: 14px; margin-top: 14px; border-top: var(--bordo-spessore) solid var(--bordo); }
.nz-itinerario__luogo span { color: var(--tenue); font-size: .9rem; }
.nz-itinerario__link { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 7px; }
.nz-itinerario__link a, .nz-itinerario__fonte { display: inline-flex; align-items: center; min-height: 36px; color: var(--accento-testo); font-size: .83rem; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.nz-itinerario__fonte { margin-top: 12px; }
.nz-itinerario__nota { color: var(--tenue); font-size: .85rem; }
.nz-itinerario__trasporti { margin-top: 0; }
@media (max-width: 420px) { .nz-itinerario__controlli input { width: 76px; } .nz-itinerario__controlli .nz-btn--pieno { flex: 1; min-width: 0; padding-inline: 10px; letter-spacing: .03em; } }


.nz-btn, .nz-btn--pieno, .nz-btn--vuoto, .nz-btn--wa {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 20px; border-radius: var(--raggio-pillola);
  font-family: var(--font-etichetta); font-size: .78rem; font-weight: 600; letter-spacing: .12em;
  text-transform: var(--maiuscolo-etichette); text-align: center;
  transition: transform .15s ease, opacity .15s ease;
}
.nz-btn:active, .nz-btn--pieno:active, .nz-btn--vuoto:active, .nz-btn--wa:active { transform: scale(.975); }
.nz-btn--pieno { background: var(--testo); color: var(--sfondo); }
.nz-btn--vuoto { border: var(--bordo-spessore) solid var(--bordo); }
.nz-btn--wa { background: var(--wa); color: #fff; }
.nz-btn--piccolo { padding: 9px 14px; font-size: .7rem; }

/* ---- schede ---- */
.nz-scheda { background: var(--scheda); border: var(--bordo-spessore) solid var(--bordo); border-radius: var(--raggio); padding: 16px; }
.nz-griglia { display: grid; gap: var(--gap); }
.nz-griglia--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nz-griglia--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nz-griglia--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nz-rail { display: flex; gap: var(--gap); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; margin: 0 calc(var(--pad) * -1); padding-left: var(--pad); padding-right: var(--pad); }
.nz-rail > * { scroll-snap-align: start; flex: 0 0 auto; width: 74%; max-width: 280px; min-width: 0; }
.nz-rail::-webkit-scrollbar, .nz-scorri::-webkit-scrollbar { display: none; }
.nz-rail, .nz-scorri { scrollbar-width: none; }
.nz-scorri { display: flex; gap: 8px; overflow-x: auto; margin: 0 calc(var(--pad) * -1); padding: 0 var(--pad) 4px; }
.nz-elenco { display: flex; flex-direction: column; }
.nz-elenco > * + * { border-top: var(--bordo-spessore) solid var(--bordo); }
.nz-riga { display: flex; align-items: center; gap: 14px; padding: 14px 0; text-align: left; width: 100%; }
.nz-riga__corpo { flex: 1 1 auto; min-width: 0; }
.nz-riga__titolo { font-family: var(--font-titolo); font-weight: 600; line-height: 1.2; }
.nz-riga__meta { font-size: .8rem; color: var(--tenue); }

.nz-media { position: relative; overflow: hidden; border-radius: var(--raggio-piccolo); background: var(--media); }
.nz-media__img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.nz-scheda:active .nz-media__img { transform: scale(1.04); }
.nz-media__icona { position: absolute; inset: 0; display: grid; place-items: center; font-size: 2.6rem; opacity: .5; }

.nz-etichetta { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: var(--raggio-pillola); font-size: .72rem; border: var(--bordo-spessore) solid var(--bordo); }
.nz-etichetta--forte { background: var(--secondario); color: var(--su-secondario); border-color: transparent; font-weight: 600; }

/* ---- meteo ---- */
.nz-meteo__ora { display: flex; align-items: flex-end; gap: 10px; }
.nz-meteo__gradi { font-family: var(--font-titolo); font-size: 3rem; line-height: .9; }
.nz-meteo__giorni { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-top: 14px; }
.nz-meteo__giorno { text-align: center; font-size: .7rem; padding: 8px 2px; border-radius: var(--raggio-piccolo); }

/* ---- eventi ---- */
.nz-evento { display: flex; gap: 14px; align-items: center; }
.nz-evento__data { text-align: center; min-width: 46px; }
.nz-evento__giorno { font-family: var(--font-titolo); font-size: 1.5rem; line-height: 1; }
.nz-evento__mese { font-size: .6rem; letter-spacing: .14em; text-transform: uppercase; color: var(--tenue); }

/* ---- barra bassa e bolla ---- */
.nz-barra-bassa { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: flex; justify-content: space-around; align-items: center; gap: 2px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: var(--scheda); border-top: var(--bordo-spessore) solid var(--bordo); }
.nz-barra-bassa a { display: grid; justify-items: center; gap: 2px; font-size: .6rem; color: var(--tenue); padding: 4px 6px; min-width: 56px; }
.nz-barra-bassa a .material-symbols-outlined { font-size: 22px; }
.nz-bolla { position: fixed; right: 16px; bottom: calc(86px + env(safe-area-inset-bottom)); z-index: 46; width: 56px; height: 56px; border-radius: 50%; background: var(--wa); color: #fff; display: grid; place-items: center; box-shadow: 0 14px 30px -12px rgba(0,0,0,.6); }

/* ---- pannelli a scomparsa (menu e WhatsApp) ---- */
.nz-velo { position: fixed; inset: 0; z-index: 60; background: rgba(0,0,0,.55); opacity: 0; transition: opacity .25s ease; }
.nz-velo[hidden] { display: none; }
.nz-velo.aperto { opacity: 1; }
.nz-foglio { position: fixed; left: 0; right: 0; bottom: 0; z-index: 61; max-height: 86svh; overflow-y: auto; background: var(--scheda); border-top-left-radius: var(--raggio); border-top-right-radius: var(--raggio); padding: 10px var(--pad) calc(24px + env(safe-area-inset-bottom)); transform: translateY(100%); transition: transform .35s cubic-bezier(.16,1,.3,1); }
.nz-foglio.aperto { transform: translateY(0); }
.nz-foglio__maniglia { width: 44px; height: 4px; border-radius: 999px; background: var(--bordo); margin: 6px auto 16px; }
.nz-menu { position: fixed; top: 0; bottom: 0; left: 0; z-index: 61; width: min(320px, 86vw); overflow-y: auto; background: var(--scheda); padding: var(--pad); transform: translateX(-100%); transition: transform .35s cubic-bezier(.16,1,.3,1); }
.nz-menu.aperto { transform: translateX(0); }
.nz-menu a { display: flex; align-items: center; gap: 12px; padding: 13px 0; border-bottom: var(--bordo-spessore) solid var(--bordo); }

/* ---- mappa ---- */
.nz-mappa { width: 100%; height: 340px; border: 0; display: block; }

/* ---- accessibilita' ---- */
:focus-visible { outline: 2px solid var(--accento-testo); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ---- desktop: il prodotto e' mobile, qui si centra e basta ---- */
@media (min-width: 900px) {
  :root { --pad: 28px; --sezione: 80px; }
  .nz-rail > * { width: 300px; }
}

/* ---- primitive usate dalle varianti ---- */
.nz-testa-sezione { margin-bottom: 20px; }
.nz-etichette { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.nz-larghezza-piena { display: flex; width: 100%; margin-top: 16px; }
.nz-riga-bottoni { display: flex; align-items: center; gap: 8px; margin-top: 10px; }

.nz-bento { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); }
.nz-bento__cella--largo { grid-column: span 2; }
.nz-bento__etichetta { font-size: .72rem; color: var(--tenue); margin-top: 8px; }
.nz-bento__valore { font-family: var(--font-titolo); font-size: 1.15rem; font-weight: var(--peso-titolo); }
.nz-scheda--largo { grid-column: span 2; }

.nz-tabella { margin: 0; }
.nz-tabella__riga { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: var(--bordo-spessore) solid var(--bordo); }
.nz-tabella dt { color: var(--tenue); font-size: .82rem; }
.nz-tabella dd a { display: inline-flex; align-items: center; gap: 4px; min-height: 24px; }
.nz-tabella dd { margin: 0; text-align: right; font-weight: 600; }

.nz-scheda__media { height: 116px; margin: -16px -16px 14px; border-radius: var(--raggio) var(--raggio) 0 0; }
.nz-scheda--esperienza h3, .nz-scheda--servizio h3, .nz-scheda--ristorante h3 { font-size: 1.05rem; margin-bottom: 6px; }
.nz-scheda--servizio, .nz-scheda--esperienza, .nz-scheda--ristorante { display: flex; flex-direction: column; gap: 8px; }
.nz-scheda--servizio .nz-btn--piccolo, .nz-scheda--esperienza .nz-btn--piccolo { margin-top: auto; }
.nz-scheda--evidenza { grid-column: span 2; }
.nz-riga__media { width: 62px; height: 62px; flex: 0 0 auto; }
.nz-riga__icona { color: var(--primario); }

.nz-pile { display: flex; flex-direction: column; gap: 18px; }
.nz-pila { position: relative; border-radius: var(--raggio); overflow: hidden; min-height: 62svh; display: flex; align-items: flex-end; background: var(--scheda); border: var(--bordo-spessore) solid var(--bordo); }
.nz-pila__media { position: absolute; inset: 0; border-radius: 0; }
.nz-pila__testo { position: relative; padding: 20px; width: 100%; }
.nz-pila__testo h3 { font-size: 1.6rem; margin-bottom: 6px; }
.nz-pila__testo p { color: var(--tenue); margin-bottom: 14px; }

.nz-gruppo + .nz-gruppo { margin-top: 28px; }
.nz-gruppo__titolo { display: flex; align-items: center; gap: 8px; font-size: 1.05rem; margin-bottom: 12px; }

.nz-passi { list-style: none; margin: 16px 0; padding: 0; display: grid; gap: 12px; }
.nz-passi li { display: flex; gap: 12px; align-items: baseline; }
.nz-passi__n { font-family: var(--font-titolo); color: var(--accento-testo); }
.nz-nota { font-size: .75rem; color: var(--tenue); margin-top: 12px; }

.nz-contatto { display: flex; align-items: center; gap: 12px; text-align: left; }
.nz-contatto span { display: grid; }
.nz-contatto small { color: var(--tenue); font-size: .72rem; }
.nz-contatto--wa { background: var(--wa); color: #fff; border-color: transparent; }
.nz-contatto--wa small { color: rgba(255,255,255,.94); }
.nz-contatto--sos { background: #ba1a1a; color: #fff; border-color: transparent; }
.nz-contatto--sos small { color: #fff; }

.nz-upgrade__voce { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: var(--raggio-piccolo); background: var(--bordo); font-size: .85rem; }
.nz-mezzi .nz-scheda { display: flex; flex-direction: column; gap: 8px; }
.nz-mezzi .nz-btn--piccolo { margin-top: auto; }

.nz-tabella-eventi { width: 100%; border-collapse: collapse; font-size: .8rem; }
.nz-tabella-eventi td { padding: 9px 6px; border-bottom: var(--bordo-spessore) solid var(--bordo); vertical-align: top; }
.nz-tabella-eventi td:first-child { white-space: nowrap; color: var(--tenue); }
.nz-eventi-schede { gap: var(--gap); }
.nz-evento__freccia { color: var(--tenue); }

.nz-ancore { position: sticky; top: 56px; z-index: 35; display: flex; gap: 8px; overflow-x: auto; padding: 10px var(--pad); background: var(--sfondo); border-bottom: var(--bordo-spessore) solid var(--bordo); scrollbar-width: none; }
.nz-ancore::-webkit-scrollbar { display: none; }
.nz-ancore a { white-space: nowrap; font-size: .78rem; padding: 7px 13px; border-radius: var(--raggio-pillola); border: var(--bordo-spessore) solid var(--bordo); }

.nz-barra-bassa__wa { width: 46px; height: 46px; border-radius: 50%; background: var(--wa); color: #fff; display: grid; place-items: center; }
.nz-menu__testa { margin-bottom: 18px; }
.nz-menu__wa { width: 100%; margin-top: 18px; }
.nz-foglio__testa { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.nz-foglio__bolla { width: 42px; height: 42px; border-radius: 50%; background: var(--wa); color: #fff; display: grid; place-items: center; flex: 0 0 auto; }
.nz-wa-messaggio { padding: 14px; border-radius: var(--raggio-piccolo); background: var(--bordo); margin: 8px 0 14px; }

.nz-piede { padding: 48px var(--pad) 40px; border-top: var(--bordo-spessore) solid var(--bordo); }
.nz-piede__marchio { font-family: var(--font-titolo); font-weight: 700; font-size: clamp(2rem, 12vw, 3.4rem); line-height: .92; letter-spacing: -.03em; margin-bottom: 10px; }
/* min-height 24px: e' il bersaglio minimo che WCAG 2.2 chiede sul web. */
.nz-piede__tel { display: inline-flex; align-items: center; min-height: 24px; margin-top: 8px; font-weight: 600; }

.nz-meteo__desc { color: var(--tenue); }
.nz-meteo__icona { font-size: 28px; }

/* ---- comparsa progressiva ---- */
.nz-entra { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1); }
.nz-entra.nz-dentro { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .nz-entra { opacity: 1; transform: none; } }

/* Guest guide: uses the active theme's tokens in all fourteen designs. */
.nz-guida-testo { white-space: pre-line; overflow-wrap: anywhere; max-width: 65ch; line-height: 1.65; }
.nz-guida-blocco { border-top: 1px solid var(--bordo); padding: 28px 0; scroll-margin-top: 90px; }
.nz-guida-blocco > h3 { margin-bottom: 18px; font-size: 1.4rem; }
.nz-guida-foto { width: 100%; max-height: 360px; object-fit: cover; border-radius: var(--raggio-piccolo); margin-bottom: 18px; }
.nz-guida-video { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: var(--raggio-piccolo); margin-top: 18px; }
.nz-guida .nz-btn--piccolo, .nz-benvenuto .nz-btn--piccolo { margin-top: 14px; }
.nz-manuale { border-bottom: 1px solid var(--bordo); }
.nz-manuale summary { display: flex; gap: 12px; align-items: center; cursor: pointer; padding: 18px 0; font-weight: 600; }
.nz-manuale summary::after { content: '+'; margin-left: auto; font-size: 1.4rem; }
.nz-manuale[open] summary::after { content: '−'; }
.nz-manuale > div { padding: 0 0 24px; }
.nz-rifiuto, .nz-avviso { display: flex; gap: 16px; padding: 20px 0; }
.nz-rifiuto h4 { font-size: 1.1rem; }
.nz-rifiuto-giorni { color: var(--primario); font-weight: 600; margin: 8px 0; }
.nz-avviso { margin-top: 24px; border-left: 3px solid var(--primario); padding: 18px; background: var(--scheda); border-radius: 0 var(--raggio-piccolo) var(--raggio-piccolo) 0; }
.nz-avviso h3 { font-size: 1.2rem; margin-bottom: 8px; }
.nz-wifi { display: grid; grid-template-columns: minmax(0, 1fr) 140px; gap: 20px; margin-top: 18px; align-items: center; }
.nz-wifi h3 { margin: 8px 0; }
.nz-wifi-password { user-select: all; overflow-wrap: anywhere; font-family: monospace; font-size: 1.15rem; margin: 8px 0 16px; }
.nz-wifi-qr svg { display: block; width: 100%; background: white; border-radius: 8px; }
.nz-wifi-qr p { font-size: .72rem; text-align: center; margin-top: 6px; color: var(--tenue); }
.nz-favorito { display: inline-flex; align-items: center; gap: 5px; padding: 9px 0; font-size: .8rem; color: var(--tenue); }
.nz-favorito[aria-pressed="true"] { color: var(--primario); }
.nz-favorito .material-symbols-outlined { font-size: 20px; }
.nz-favorito[aria-pressed="true"] .material-symbols-outlined { font-variation-settings: 'FILL' 1; }
.nz-meteo__giorni { overflow-x: auto; max-width: 100%; padding-bottom: 8px; }
.nz-meteo__giorno { flex-shrink: 0; min-width: 70px; }
.nz-meteo .nz-nota { margin-top: 12px; }
summary:focus-visible, .nz-favorito:focus-visible { outline: 2px solid var(--primario); outline-offset: 4px; }
@media (max-width: 360px) { .nz-wifi { grid-template-columns: 1fr; } .nz-wifi-qr { max-width: 140px; } }

.nz-meteo .nz-meteo__giorni { display: flex; gap: 10px; }
.nz-meteo--riga .nz-meteo__corpo { display: block; }
.nz-schede-ristoranti .nz-riga-bottoni { flex-wrap: wrap; }
.nz-scheda--ristorante { min-width: 0; }
.nz-scheda--ristorante h3, .nz-scheda--esperienza h3 { overflow-wrap: anywhere; }

/* Nearby places and wineries share each theme's cards and buttons. */
.nz-destinazioni{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.nz-destinazione{min-width:0}.nz-destinazione summary{display:flex;justify-content:space-between;gap:14px;align-items:center;cursor:pointer;list-style:none}.nz-destinazione summary::-webkit-details-marker{display:none}.nz-destinazione summary small{display:block;opacity:.65;margin-top:6px}.nz-destinazione__corpo{margin-top:20px;line-height:1.6}.nz-destinazione__corpo img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px}.nz-destinazione__azioni{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.nz-destinazione summary:focus-visible{outline:2px solid currentColor;outline-offset:6px}@media(max-width:600px){.nz-destinazioni{grid-template-columns:1fr}}

#territorio,#cantine{scroll-margin-top:80px}
