.gc-mappa-settori { max-width: 100%; height: auto; display: block; margin: 0 auto 1rem; cursor: zoom-in; }

/* --- Pianta a schermo intero ------------------------------------------------ */
.gc-mappa-modale { position: fixed; inset: 0; z-index: 1000; background: rgba(0, 0, 0, 0.85); display: flex; align-items: center; justify-content: center; padding: 2rem; }
.gc-mappa-modale[hidden] { display: none; }
.gc-mappa-modale img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gc-mappa-modale-chiudi { position: fixed; top: 1rem; right: 1.2rem; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: none; background: #fff; color: #1a1a1a; font-size: 1.3rem; cursor: pointer; }

body.gc-body-bloccato { overflow: hidden; }

/* Rete di sicurezza per il caso limite di molte categorie tariffa affiancate: la tabella è a
   larghezza piena con font fluido, ma se non basta si scorre orizzontalmente invece di
   traboccare fuori dalla pagina. */
.gc-tabella-wrap { overflow-x: auto; }

/* table-layout:fixed per poter fissare le proporzioni di Area/Settore: le colonne prezzo, senza
   una width propria, si dividono in parti uguali lo spazio residuo. Il testo va a capo solo
   nelle due colonne dove può essere davvero lungo (es. "OVEST LAT 1° Liv"); i prezzi restano
   nowrap, sono sempre brevi. */
.gc-tabella-prezzi { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: clamp(0.62rem, 1.6vw, 0.9rem); }
.gc-tabella-prezzi th, .gc-tabella-prezzi td { border: 1px solid #ddd; padding: 0.4rem 0.5rem; white-space: nowrap; text-align: center; }
.gc-tabella-prezzi .gc-cella-area { width: 28%; text-align: left; white-space: normal; word-break: break-word; }
.gc-tabella-prezzi .gc-cella-settore { width: 14%; white-space: normal; word-break: break-word; }
.gc-tabella-prezzi tr.gc-nuova-area td { border-top: 2px solid #1c1c1c; }

/* Le due colonne prezzo non sono mai visibili insieme: la tipologia scelta ne seleziona una
   sola (vedi aggiornaVisualizzazionePrezzi in biglietteria.js). Nascondere per classe, e non
   per indice di colonna, tiene intestazione e corpo allineati qualunque sia la scelta. */
.gc-tabella-wrap.gc-solo-pacchetto .gc-col-solobiglietto { display: none; }
.gc-tabella-wrap.gc-solo-biglietto .gc-col-pacchetto { display: none; }

.gc-gamba-viaggio { margin-bottom: 1rem; border: 1px solid #ddd; border-radius: 6px; padding: 0.75rem; }

/* È la prima scelta dello step, non un'etichetta di campo qualunque: leggermente più grande per
   distinguerla dal resto. */
.gc-label-tipologia { font-size: 1.1rem; margin-bottom: 0.4rem; }

/* Un po' di respiro fra "Tipologia richiesta" e le preferenze di settore, e fra queste e quello
   che segue (tabella prezzi/pianta): stavano appiccicate una all'altra. */
#gc-settori-wrap { margin-top: 1rem; margin-bottom: 1rem; }

/* Il radio disabilitato resta leggibile ma chiaramente non scegliibile: le tipologie con bus
   vengono bloccate quando il club chiude anche la lista d'attesa. */
.gc-radio-inline.gc-opzione-bloccata { opacity: 0.55; cursor: not-allowed; }

/* Campi bloccati dopo un match: il dato è quello del socio trovato, non più un punto di
   partenza da correggere — lo sfondo grigio lo segnala a colpo d'occhio. */
.gc-campi-resto input:disabled,
.gc-campi-resto select:disabled { background: #f0f0f0; color: #555; cursor: not-allowed; }

.gc-fermate-elenco { border: 1px solid #ddd; border-radius: 6px; padding: 0.75rem 1rem; margin-bottom: 1rem; font-size: 0.92rem; }
.gc-fermate-elenco ul { margin: 0.4rem 0 0.8rem; padding-left: 1.2rem; }
.gc-fermate-elenco li { margin-bottom: 0.25rem; }
