/* Associazioni OS · Viaggi sul sito: [aso_viaggi], [aso_viaggio], «I miei viaggi» nell'Area soci.
   I colori vengono dall'associazione (--v-brand, --v-scuro, --v-chiaro), i caratteri e il resto dal tema. */
.aso-vg{--v-brand:#6D28D9;--v-scuro:#4C1D95;--v-chiaro:#EDE9FE;--v-bordo:rgba(0,0,0,.12);--v-tenue:rgba(0,0,0,.6);--v-ok:#0E7051;--v-err:#B0243E;--v-att:#8F5406;font-size:16px;line-height:1.5;margin:0 0 28px}
.aso-vg *{box-sizing:border-box}
.aso-vg [hidden]{display:none!important}
.aso-vg-titolo-pagina{margin:0 0 12px}
.aso-vg-intro{margin:0 0 18px;max-width:760px}
.aso-vg-vuoto{padding:16px;border:1px dashed var(--v-bordo);border-radius:14px;color:var(--v-tenue)}
.aso-vg-piccolo{font-size:13px;color:var(--v-tenue);margin:6px 0}
.aso-vg-centro{text-align:center}

/* ── I filtri ── */
.aso-vg-filtri{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0 0 18px}
.aso-vg-filtro{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.aso-vg-filtro>span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--v-tenue);margin-right:4px}
.aso-vg-filtro button{border:1px solid var(--v-bordo);background:#fff;color:inherit;font:inherit;font-size:14px;padding:6px 14px;border-radius:999px;cursor:pointer;line-height:1.3}
.aso-vg-filtro button.on{background:var(--v-brand);border-color:var(--v-brand);color:#fff}
.aso-vg-filtro button:focus-visible{outline:3px solid var(--v-chiaro);outline-offset:2px}
.aso-vg-filtri-nulla{flex-basis:100%;margin:0;color:var(--v-tenue)}

/* ── Le schede grandi, a tutta immagine ── */
.aso-vg-griglia{display:grid;gap:22px;grid-template-columns:repeat(3,minmax(0,1fr))}
.aso-vg-col-1{grid-template-columns:1fr}.aso-vg-col-2{grid-template-columns:repeat(2,minmax(0,1fr))}.aso-vg-col-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.aso-vg-carta{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:440px;border-radius:20px;overflow:hidden;color:#fff;text-decoration:none;background:var(--v-scuro);isolation:isolate;box-shadow:0 10px 30px rgba(0,0,0,.14);transition:transform .25s ease,box-shadow .25s ease}
.aso-vg-carta[hidden]{display:none}
.aso-vg-carta:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.2);color:#fff}
.aso-vg-carta:focus-visible{outline:4px solid var(--v-brand);outline-offset:3px}
.aso-vg-carta-foto{position:absolute;inset:0;z-index:-2;background:linear-gradient(135deg,var(--v-brand),var(--v-scuro))}
.aso-vg-carta-foto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.aso-vg-carta:hover .aso-vg-carta-foto img{transform:scale(1.05)}
.aso-vg-carta-velo{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,0) 45%,rgba(0,0,0,.78) 100%)}
.aso-vg-carta-alto{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:18px 18px 0}
.aso-vg-carta-dest{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.aso-vg-bollini{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:0}
.aso-vg-bollino{display:inline-block;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:#222;line-height:1.3}
.aso-vg-bollino.soci{background:var(--v-brand);color:#fff}
.aso-vg-bollino.ultimi{background:#FFD966;color:#5B3B00}
.aso-vg-bollino.completo{background:#fff;color:var(--v-err)}
.aso-vg-bollino.interesse{background:#DDEBFA;color:#1F4E86}
.aso-vg-bollino.concluso{background:rgba(255,255,255,.7);color:#333}
.aso-vg-carta-basso{display:flex;flex-direction:column;gap:6px;padding:0 20px 20px}
.aso-vg-carta-tipo{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.aso-vg-carta-titolo{font-size:26px;line-height:1.15;font-weight:800;text-shadow:0 2px 8px rgba(0,0,0,.35)}
.aso-vg-carta-frase{font-size:15px;opacity:.92;line-height:1.4}
.aso-vg-carta-dati{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13.5px;margin-top:6px;padding-top:10px;border-top:1px solid rgba(255,255,255,.3)}
.aso-vg-carta-prezzo{font-size:14px}.aso-vg-carta-prezzo strong{font-size:20px}
.aso-vg-carta-vai{font-size:14px;font-weight:700;margin-top:4px;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
.aso-vg-carta:hover .aso-vg-carta-vai,.aso-vg-carta:focus-visible .aso-vg-carta-vai{opacity:1;transform:none}
/* Il livello a puntini. */
.aso-vg-livello{display:inline-flex;align-items:center;gap:3px}
.aso-vg-livello i{width:9px;height:9px;border-radius:50%;border:1.5px solid currentColor;display:inline-block;opacity:.75}
.aso-vg-livello i.on{background:currentColor;opacity:1}
.aso-vg-livello-nome{margin-left:6px}

/* ── La pagina di un viaggio ── */
.aso-vg-indietro{display:inline-block;margin:0 0 12px;font-size:14px}
.aso-vg-copertina{position:relative;min-height:440px;border-radius:24px;overflow:hidden;display:flex;align-items:flex-end;color:#fff;background:linear-gradient(135deg,var(--v-brand),var(--v-scuro));isolation:isolate}
.aso-vg-copertina>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.aso-vg-copertina .aso-vg-carta-velo{z-index:-1}
.aso-vg-copertina-testo{padding:28px 32px;max-width:900px}
.aso-vg-copertina-titolo{color:#fff;font-size:44px;line-height:1.08;margin:6px 0 8px;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.aso-vg-copertina-frase{font-size:19px;margin:0 0 12px;opacity:.95}
.aso-vg-copertina .aso-vg-bollini{justify-content:flex-start}
.aso-vg-barra{display:flex;flex-wrap:wrap;gap:0;margin:18px 0 26px;border:1px solid var(--v-bordo);border-radius:16px;background:#fff;overflow:hidden}
.aso-vg-barra>div{flex:1 1 150px;padding:14px 18px;border-right:1px solid var(--v-bordo)}
.aso-vg-barra>div:last-child{border-right:0}
.aso-vg-barra dt{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--v-tenue);margin:0}
.aso-vg-barra dd{margin:4px 0 0;font-weight:700;font-size:15.5px}
.aso-vg-barra .aso-vg-livello{color:var(--v-brand)}
.aso-vg-corpo{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start}
.aso-vg-lato{position:sticky;top:24px}
.aso-vg-sezione{margin:0 0 30px}
.aso-vg-sezione h2{font-size:24px;margin:0 0 12px}
.aso-vg-sezione h3{font-size:17px;margin:0 0 8px}
.aso-vg-testo{max-width:780px}
/* L'itinerario a fisarmonica. */
.aso-vg-itinerario{border-left:3px solid var(--v-chiaro);padding-left:18px;display:flex;flex-direction:column;gap:8px}
.aso-vg-giorno{border:1px solid var(--v-bordo);border-radius:14px;background:#fff;overflow:hidden}
.aso-vg-giorno summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:center;padding:12px 16px;font-weight:700}
.aso-vg-giorno summary::-webkit-details-marker{display:none}
.aso-vg-giorno summary::after{content:'+';margin-left:auto;font-size:20px;color:var(--v-brand)}
.aso-vg-giorno[open] summary::after{content:'–'}
.aso-vg-giorno summary:focus-visible{outline:3px solid var(--v-chiaro)}
.aso-vg-giorno-n{flex:none;font-size:12px;text-transform:uppercase;letter-spacing:.06em;background:var(--v-chiaro);color:var(--v-scuro);padding:3px 10px;border-radius:999px}
.aso-vg-giorno-testo{padding:0 16px 12px}
/* La quota. */
.aso-vg-quota{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.aso-vg-quota ul{margin:0;padding:0;list-style:none}
.aso-vg-quota li{padding:6px 0 6px 28px;position:relative;border-bottom:1px solid rgba(0,0,0,.06)}
.aso-vg-si li::before{content:'✓';position:absolute;left:4px;color:var(--v-ok);font-weight:800}
.aso-vg-no li::before{content:'✕';position:absolute;left:4px;color:var(--v-err);font-weight:800}
.aso-vg-quota>div{border:1px solid var(--v-bordo);border-radius:14px;padding:16px;background:#fff}
.aso-vg-cassa strong{font-size:22px}
.aso-vg-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.aso-vg-info-blocco{border:1px solid var(--v-bordo);border-radius:14px;padding:14px 16px;background:#fff}
.aso-vg-info-blocco p{margin:0 0 6px}
.aso-vg-condizioni summary{cursor:pointer;list-style:none}
.aso-vg-condizioni summary h2{display:inline}
.aso-vg-condizioni summary::after{content:' +';color:var(--v-brand);font-weight:700}
.aso-vg-condizioni[open] summary::after{content:' –'}
/* La galleria e l'ingrandimento. */
.aso-vg-galleria{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.aso-vg-galleria a{display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden}
.aso-vg-galleria img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.aso-vg-galleria a:hover img{transform:scale(1.05)}
.aso-vg-galleria a:focus-visible{outline:3px solid var(--v-brand);outline-offset:2px}
.aso-vg-lente{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:40px}
.aso-vg-lente img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.aso-vg-lente button{position:absolute;border:0;background:rgba(255,255,255,.15);color:#fff;font-size:30px;width:52px;height:52px;border-radius:50%;cursor:pointer;line-height:1}
.aso-vg-lente button:hover,.aso-vg-lente button:focus-visible{background:rgba(255,255,255,.3)}
.aso-vg-lente-chiudi{top:16px;right:16px}.aso-vg-lente-prima{left:16px;top:50%;transform:translateY(-50%)}.aso-vg-lente-dopo{right:16px;top:50%;transform:translateY(-50%)}
/* Il riquadro con le partenze. */
.aso-vg-riquadro{border:1px solid var(--v-bordo);border-radius:18px;background:#fff;padding:20px;box-shadow:0 8px 24px rgba(0,0,0,.06)}
.aso-vg-riquadro h2{font-size:19px;margin:0 0 12px}
.aso-vg-partenze{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:10px}
.aso-vg-partenza{border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:10px 12px}
.aso-vg-partenza-quando{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:space-between}
.aso-vg-partenza-quota strong{font-size:20px}.aso-vg-partenza-quota span{font-size:13px;color:var(--v-scuro);margin-left:4px}
.aso-vg-stato{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:#E6EFF9;color:#1F4E86}
.aso-vg-stato.confermata{background:#E2F3EB;color:var(--v-ok)}
.aso-vg-stato.completa{background:#FFF1D6;color:var(--v-att)}
.aso-vg-soci{background:var(--v-chiaro);border-radius:12px;padding:12px 14px}
.aso-vg-soci p{margin:0 0 10px}
/* I pulsanti. */
.aso-vg-bottone{display:inline-block;border:0;background:var(--v-brand);color:#fff;font:inherit;font-weight:700;padding:13px 22px;border-radius:12px;cursor:pointer;text-decoration:none;text-align:center;line-height:1.3}
.aso-vg-bottone:hover,.aso-vg-bottone:focus-visible{background:var(--v-scuro);color:#fff}
.aso-vg-bottone[disabled]{opacity:.6;cursor:wait}
.aso-vg-secondario{background:var(--v-chiaro);color:var(--v-scuro)}
.aso-vg-largo{width:100%;display:block}
/* I moduli. */
.aso-vg-modulo{display:flex;flex-direction:column;gap:12px;max-width:720px;padding:22px;border:1px solid var(--v-bordo);border-radius:18px;background:#fff}
.aso-vg-modulo h2{margin:0;font-size:22px}
.aso-vg-modulo label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600;margin:0}
.aso-vg-modulo input[type=text],.aso-vg-modulo input[type=email],.aso-vg-modulo input[type=tel],.aso-vg-modulo input[type=number],.aso-vg-modulo input[type=date],.aso-vg-modulo select,.aso-vg-modulo textarea{width:100%;padding:10px 12px;border:1px solid var(--v-bordo);border-radius:10px;font:inherit;font-weight:400;background:#fff;margin:0;height:auto}
.aso-vg-modulo .errato{border-color:var(--v-err)!important;box-shadow:0 0 0 3px rgba(176,36,62,.12)}
.aso-vg-due{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.aso-vg-persone,.aso-vg-fattura{border:1.5px dashed rgba(0,0,0,.15);border-radius:14px;padding:12px 14px;margin:0;display:flex;flex-direction:column;gap:10px}
.aso-vg-persone legend,.aso-vg-fattura legend{font-weight:700;font-size:.95rem;padding:0 6px}
.aso-vg-persona{display:flex;flex-direction:column;gap:10px;padding:10px 0;border-top:1px solid rgba(0,0,0,.08)}
.aso-vg-persona:first-child{border-top:0;padding-top:0}
.aso-vg-persona-t{margin:0;font-weight:700;font-size:14px}
.aso-vg-conto{background:var(--v-chiaro);border-radius:12px;padding:10px 14px}
.aso-vg-conto:empty{display:none}
.aso-vg-conto p{margin:2px 0}
.aso-vg-modulo .aso-vg-check{flex-direction:row;align-items:flex-start;gap:8px;font-weight:400}
.aso-vg-check input{margin-top:4px}
.aso-vg-in-riga{display:inline-flex!important;margin-right:14px}
.aso-vg-nascosto{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.aso-vg-esito{margin:0;font-size:14px}
.aso-vg-esito:empty{display:none}
.aso-vg-esito.ok{color:var(--v-ok);font-weight:600}
.aso-vg-esito.err{color:var(--v-err);font-weight:600}
.aso-vg-prova{background:#FFF7E0;border:1px solid #F0D58A;border-radius:10px;padding:8px 12px;font-size:13px;margin:0 0 10px}
.aso-vg-fatto,.aso-vg-box{max-width:720px;padding:22px;border:1px solid var(--v-bordo);border-radius:18px;background:#fff;margin:0 0 18px}
.aso-vg-fatto{border-color:var(--v-brand);background:var(--v-chiaro)}
.aso-vg-fatto h3,.aso-vg-box h2{margin:0 0 8px}
/* La pagina della prenotazione. */
.aso-vg-mia-stato.annullato{color:var(--v-err)}
.aso-vg-mia-persone{margin:0 0 12px;padding-left:20px}
.aso-vg-righe{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.aso-vg-righe>div{flex:1 1 140px;border:1px solid var(--v-bordo);border-radius:12px;padding:8px 12px}
.aso-vg-righe span{display:block;font-size:12px;color:var(--v-tenue)}
.aso-vg-righe strong{font-size:18px}
.aso-vg-paga{display:flex;flex-direction:column;gap:10px;margin:10px 0}
.aso-vg-bonifico{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.aso-vg-dato{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border:1px solid var(--v-bordo);border-radius:10px;background:#fff}
.aso-vg-dato span{font-size:12.5px;color:var(--v-tenue);min-width:84px}
.aso-vg-dato strong{flex:1;font-family:ui-monospace,Menlo,monospace;font-size:14.5px;word-break:break-all}
.aso-vg-copia{border:1px solid var(--v-bordo);background:#fff;border-radius:8px;padding:5px 10px;font:inherit;font-size:13px;cursor:pointer}
.aso-vg-copia.fatto{border-color:var(--v-ok);color:var(--v-ok)}
/* Nell'Area soci: «I miei viaggi» (le classi aso-area-* le dà il modulo Soci). */
.aso-vg-area-pren{padding:10px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.aso-vg-area-pren:last-of-type{border-bottom:0}
.aso-vg-area-t{margin:0 0 4px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.aso-vg-area-liste{margin:4px 0 0;padding-left:18px;font-size:14px}

@media (max-width:1000px){.aso-vg-griglia,.aso-vg-col-4{grid-template-columns:repeat(2,minmax(0,1fr))}.aso-vg-corpo{grid-template-columns:1fr}.aso-vg-lato{position:static;order:-1}}
@media (max-width:640px){.aso-vg-griglia,.aso-vg-col-2,.aso-vg-col-4{grid-template-columns:1fr}.aso-vg-carta{min-height:380px}.aso-vg-copertina{min-height:340px;border-radius:16px}.aso-vg-copertina-titolo{font-size:32px}.aso-vg-copertina-testo{padding:20px}
  .aso-vg-quota,.aso-vg-info,.aso-vg-due{grid-template-columns:1fr}.aso-vg-barra>div{flex-basis:50%;border-right:0;border-bottom:1px solid var(--v-bordo)}.aso-vg-modulo{padding:16px}}
@media (prefers-reduced-motion:reduce){.aso-vg-carta,.aso-vg-carta-foto img,.aso-vg-galleria img,.aso-vg-carta-vai{transition:none}}
