body {
    /* Sfondo arancione esterno */
    background-color: #ff8c00; 
    /* Opzionale: immagine ripetuta (pattern) per dare texture */
    background-image: url('https://www.transparenttextures.com/patterns/cubes.png'); 
    background-attachment: fixed; /* Lo sfondo resta fermo mentre scrolli */
    margin: 0;
    padding: 0;
}

#page-wrapper {
    max-width: 1200px;
    margin: 30px auto; /* Aggiunge 30px di spazio sopra e sotto per far vedere lo sfondo */
	background-color: #ffffff;
    box-shadow: 0 0 50px rgba(0,0,0,0.15);
    border-radius: 15px; /* Arrotonda gli angoli del sito */
    overflow: clip; /* Fondamentale per non far uscire i contenuti dagli angoli tondi, prima era hidden, ora clip per richiesta fytur */
}

/* ============================================================
   NAV BAR (funziona con codice js a fondo pagina per i sottomenu)
   ============================================================ */


.navbar {
    font-family: 'Fredoka', sans-serif;
    background-color: #ffffff !important;
    padding: 15px 25px; 
    border-bottom: 3px solid #fdf2e9;
}

.navbar-brand {
    display: flex;
    align-items: center;
    min-height: 50px; /* Prenota lo spazio per la navbar intera su mobile */
}

@media (min-width: 992px) {
    .navbar-brand {
        min-height: 75px; /* Prenota lo spazio su desktop */
    }
}

.navbar-logo {
    height: 45px; 
    width: auto;
    display: block; /* Aiuta l'allineamento */
}

@media (min-width: 992px) {
    .navbar-logo {
        height: 70px;
        width: auto;
    }
}

.nav-link {
    color: #e65100 !important;
    font-weight: 600;
    font-size: 1.35rem;
}

/* Dropdown Desktop */
@media (min-width: 992px) {
    .dropdown-menu .dropend:hover > .dropdown-submenu {
        display: block;
        position: absolute;
        left: 100%;
        top: 0;
    }
}

/* Pulsanti */
.nav-btn {
    color: white !important;
    border-radius: 50px !important;
    padding: 10px 22px !important;
    margin-left: 12px;
    display: inline-flex;
    align-items: center;
    font-size: 1.05rem !important;
}
.btn-biglietti { background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%) !important; }
.btn-hotel { background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%) !important; }

/* --- FIX SOLO MOBILE (SOTTO 991px) --- */
@media (max-width: 991px) {
    #page-wrapper { margin: 5px auto; }

    /* Allineamento Logo e Hamburger */
    .navbar .container {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding-left: 2px !important;
        padding-right: 2px !important;
    }

    .navbar-brand { margin-left: -5px; max-width: 70%; } /* Logo leggermente più a sinistra */
    .navbar-brand img { height: 45px; }

    /* Hamburger senza bordo */
    .navbar-toggler {
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
    }
    .navbar-toggler-icon {
        filter: invert(30%) sepia(100%) saturate(1000%) hue-rotate(5deg);
    }

    /* Reset generale per i menu a tendina su Mobile */
	.dropdown-menu {
		position: static !important;
		float: none !important;
		width: 100% !important;
		background-color: #fff9f5 !important; /* Arancio pallido */
		border: none !important;
		margin: 10px 0 !important;
		padding-left: 15px !important;
		box-shadow: none !important;
	}

	/* Regola specifica per i Sottomenu (Nascosti di default) */
	.dropdown-menu .dropdown-submenu {
		display: none; 
		position: static !important;
		background-color: #fdf2e9 !important; /* Colore più caldo */
		border-left: 3px solid #e65100 !important; /* Bordo arancio scuro per gerarchia */
		margin-left: 10px !important;
		margin-right: 0.5rem !important;
		padding-left: 10px !important;
		border-top: none !important; /* Assicura che non ci siano altri bordi */
	}

	/* Mostra il sottomenu quando attivato dal JS */
	.dropdown-menu .dropdown-submenu.show {
		display: block !important;
	}

	/* Animazione icona */
	.dropdown-toggle.show i {
		transform: rotate(90deg);
		transition: transform 0.2s ease; /* Rende la rotazione fluida */
	}
	
	/* Nasconde il triangolo di Bootstrap SOLO nei sottomenu */
.dropdown-menu .dropdown-toggle::after {
    display: none !important;
    content: none !important;
    border: 0 !important;
}
	
	/* Posiziona la freccia arancione a DESTRA in modo fisso */
.dropdown-item.dropdown-toggle {
    position: relative; /* Necessario per ancorare la freccia */
    padding-right: 35px; /* Crea lo spazio per non far sovrapporre il testo alla freccia */
}

/* La nostra freccia arancione appare SOLO nei sottomenu */
.dropdown-menu .dropdown-item.dropdown-toggle::before {
    display: inline-block;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f054"; /* chevron-right */
    transition: transform 0.3s ease;
    font-size: 0.75rem;
    color: #e65100;
    
    /* Posizionamento assoluto a destra */
    position: absolute;
    right: 15px; 
    top: 50%;
    transform: translateY(-50%); /* La centra perfettamente in verticale */
}

/* Ruota solo la freccia arancione interna */
.dropdown-menu .dropdown-item.dropdown-toggle.show::before {
    transform: translateY(-50%) rotate(90deg) !important;
}

    /* Riordino pulsanti mobile */
    .navbar-nav { display: flex; flex-direction: column; }
    .nav-item { order: 10; }
    .nav-item:has(.btn-biglietti) { order: 1; }
    .nav-item:has(.btn-hotel) { order: 2; }
    .nav-link { padding: 15px 0 !important; font-size: 1.4rem; }
    .nav-btn { margin: 5px 0 !important; width: 100% !important; justify-content: center; }
}

/* ============================================================
   TITOLI
   ============================================================ */
   
/* Titoli H2 */
.title-h2 {
    color: #e65100 !important; /* Arancione intenso e leggibile */
    font-size: 2,5rem;
    font-weight: 800;
    margin-top: 0px;
    margin-bottom: 20px;
	text-shadow: 1px 1px 3px rgba(0,0,0,0.3); /* Spostamento piccolo, sfocatura media, colore scuro */
}

/* Titoli H3 */
.title-h3 {
    color: #e65100 !important; /* Arancione intenso e leggibile */
    font-size: 2,0rem;
    font-weight: 700;
    margin-top: 0px;
    margin-bottom: 20px;
	text-shadow: 1px 1px 3px rgba(0,0,0,0.3); /* Spostamento piccolo, sfocatura media, colore scuro */
}

/* Titoli H4 */
.title-h4 {
    color: #e65100 !important; /* Arancione intenso e leggibile */
    font-size: 1,8rem;
    font-weight: 700;
    margin-top: 0px;
    margin-bottom: 20px;
	text-shadow: 1px 1px 3px rgba(0,0,0,0.3); /* Spostamento piccolo, sfocatura media, colore scuro */
}

/* Titoli Semplici in Grassetto */
.titolo-arancio-grassetto {
	color: #ff8c00; /* Il nostro arancione */
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 25px;
    font-size: 1.1rem;
    letter-spacing: 1px;
}

/* ============================================================
   PERSONALIZZAZIONE CARATTERI
   ============================================================ */
   

/* Personalizzazione per i testi del tuo sito */
p {
    font-size: 1.1rem; /* Leggermente più grande per facilitare la lettura */
    line-height: 1.6;    /* Un filo più di aria tra le righe */
    color: #444;        /* Un grigio leggermente più morbido del default Bootstrap */
}

.prezzo-barrato {
    text-decoration: line-through;
}

/* Se vuoi dei paragrafi che risaltino (es. introduzioni) */
.lead {
    font-size: 1.25rem; /* Classe già esistente in Bootstrap, molto utile */
    font-weight: 300;
}


/* ============================================================
   HERO SECTION: DINAMICA E RESPONSIVE
   ============================================================ */

.hero-section {
    position: relative; /* Mantienilo se hai elementi posizionati assolutamente all'interno */
    background-image: var(--bg-mobile);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    
    /* Prenotazione spazio per CLS */
    min-height: 550px; 
    
    /* Centratura verticale dei contenuti */
    display: flex;
    align-items: center;
    
    /* Spaziatura interna (sostituisce il vecchio padding 80px) */
    padding: 60px 0; 
    
    color: white; 
    border-top: 1px solid rgba(0,0,0,0.05);
    transition: background-image 0.3s ease-in-out; /* Opzionale: rende fluido lo switch */
}

@media (min-width: 992px) {
    .hero-section {
        background-image: var(--bg-desktop);
        min-height: 600px; /* Altezza ottimizzata per monitor grandi */
        padding: 100px 0;  /* Più respiro su desktop */
    }
}

.hero-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.15); /* Scurisce lo sfondo per far risaltare il testo */
    z-index: 1;
}

.hero-content { position: relative; z-index: 2; color: white; }

.hero-title {
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 900;
    text-transform: uppercase;
    margin-bottom: 15px;
    line-height: 1.1;
    text-shadow: 2px 2px 10px rgba(0,0,0,0.3);
}

.hero-subtitle {
    font-size: 1.3rem;
    font-weight: 400;
    margin-bottom: 40px;
    max-width: 650px;
    line-height: 1.5;
	color: white;
}

/* Pulsante Blu (Guida) */
.btn-guida {
    background-color: #00d2ff; 
    color: #fff !important;
    border: none;
    font-weight: 700;
	text-transform: uppercase;
    padding: 16px 35px;
    transition: all 0.3s ease;
    border-radius: 50px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

.btn-guida:hover {
    background-color: #00b8e6;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(0,210,255,0.4);
}

/* Card Offerte Bianca */
.promo-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 35px;
    color: #333;
    box-shadow: 0 20px 40px rgba(0,0,0,0.25);
}

/* Badge che riprende lo stile del pulsante Biglietti */
.badge-smeraldo {
    background-color: #28a745 !important; /* Usa lo stesso HEX del tuo bottone */
    color: white !important;
    text-transform: uppercase;
    font-weight: 800;
    padding: 0.5em 1em;
    box-shadow: 0 4px 10px rgba(40, 167, 69, 0.2);
}

.price-tag {
    font-size: 1.85rem;
    font-weight: 800;
    color: #e67e22;
}

/* Pulsante Verde (Scopri) */
.btn-scopri-verde {
    background-color: #2ecc71;
    color: white !important;
    font-weight: 800;
    border: none;
    padding: 18px;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 12px;
    transition: all 0.3s ease;
}

.btn-scopri-verde:hover {
    background-color: #27ae60;
    transform: scale(1.02);
}

/* ============================================================
   INTRODUZIONE E SCHEDA PARCO
   ============================================================ */


/* Stile Sezione Info */

.text-description {
    font-size: 1.1rem;
    line-height: 1.6;
    color: #444;
}

.card-scheda-tecnica {
    background-color: #fdf2e9;
    padding: 25px;
    border-radius: 15px;
    border-left: 5px solid #ff8c00;
}

.info-list li {
    padding: 10px 0;
    border-bottom: 1px solid rgba(230, 81, 0, 0.1);
    font-size: 1.05rem;
}

.info-list li:last-child {
    border-bottom: none;
}

.info-list i {
    color: #e65100;
    width: 25px;
}

.icon-orange {
    color: #f57c00; /* L'arancione dei tuoi pulsanti */
    width: 25px;    /* Larghezza fissa per allineare perfettamente il testo */
    text-align: center;
    margin-right: 8px;
}


/* ============================================================
   INDICE DELLA GUIDA - STILE COLORATO
   ============================================================ */

.guide-index {
    padding: 60px 0;
    background-color: #f8f9fa;
}

.index-card {
    background: transparent;
    border: none;
    text-align: center;
    transition: transform 0.3s ease;
    text-decoration: none !important;
    display: block;
    height: 100%;
}

.index-card:hover {
    transform: translateY(-10px);
}

.icon-wrapper {
    width: 80px;
    height: 80px;
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 15px;
    font-size: 2rem;
    box-shadow: 0 10px 20px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

/* Colori icone */
.icon-attrazioni { color: #ff8c00; border-color: #ffe0b2; }
.icon-prezzi { color: #2ecc71; border-color: #d4edda; }
.icon-orari { color: #00d2ff; border-color: #e0f7fa; }
.icon-mappa { color: #e91e63; border-color: #fce4ec; }
.icon-hotel { color: #9b59b6; border-color: #f3e5f5; }
.icon-zoo { color: #795548; border-color: #efebe9; }
.icon-sconti { color: #d32f2f; border-color: #ffebee; } /* Rosso Promo */
.icon-terme { color: #9c27b0; border-color: #f3e5f5; } /* Viola Relax */
.icon-acqua { color: #00bcd4; border-color: #e0f7fa; } /* Turchese Acqua */
.icon-fiore { color: #f06292; border-color: #fce4ec; } /* Rosa Petalo */
.icon-luna { color: #ff5722; border-color: #fbe9e7; } /* Arancio Giostra */
.icon-italia { color: #008c45; border-color: #f1f8f4; } /* Verde bandiera */
.icon-europa { color: #003399; border-color: #e6ebf5; } /* Blu UE */
.icon-mondo { color: #0288d1; border-color: #e1f5fe; } /* Azzurro Oceano */
.icon-eventi { color: #ffeb3b; border-color: #fffde7; text-shadow: 0 0 2px rgba(0,0,0,0.1); } /* Giallo Festa */
.icon-faq { color: #607d8b; border-color: #eceff1; } /* Grigio Blu Query */

.index-card:hover .icon-wrapper {
    box-shadow: 0 15px 30px rgba(0,0,0,0.15);
}

.index-title {
    color: #333;
    font-weight: 700;
    font-size: 0.95rem; /* Ridotto leggermente per favorire l'allineamento */
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Adattamento icone per layout stretti (5 o 6 card) */
@media (min-width: 992px) {
    .col-lg-2 .icon-wrapper, .col-custom-5 .icon-wrapper {
        width: 70px;
        height: 70px;
        font-size: 1.7rem;
    }
}


/* ============================================================
   IMMAGINE A TUTTO SCHERMO CON DIDASCALIA
   ============================================================ */


/* --- FOTO IMMAGINE CON DIDASCALIA --- */
.immagine-foto-wrapper {
    width: 100%;
    border-radius: 20px; 
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    background: #fff; /* Fondo bianco per la zona didascalia */
}

.foto-img {
    display: block;
    width: 100%;
    height: auto;
    /* Arrotondiamo solo gli angoli superiori se c'è la didascalia sotto */
    border-radius: 20px 20px 0 0; 
}

.immagine-foto-caption {
    padding: 15px 20px;
    font-size: 0.9rem;
    color: #666;
    font-style: italic;
    border-top: 1px solid #f0f0f0;
    text-align: left; /* Puoi metterlo anche center */
}

/* --- OTTIMIZZAZIONE MOBILE --- */
@media (max-width: 767px) {
    .immagine-foto-wrapper, .banner-img {
        border-radius: 15px 15px 0 0;
    }
    .immagine-foto-caption {
        padding: 10px 15px;
        font-size: 0.85rem;
    }
}

/* ============================================================
   VIDEO DA YOUTUBE CON DIDASCALIA
   ============================================================ */

/* --- BANNER VIDEO CON ANGOLI ARROTONDATI --- */
.video-wrapper {
    width: 100%;
    border-radius: 20px; 
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    background: #fff;
}

/* Assicura che l'iframe rispetti l'arrotondamento del contenitore */
.video-wrapper .ratio {
    border-radius: 20px 20px 0 0;
    overflow: hidden;
    background-color: #000; /* Fondo nero mentre il video carica */
}

/* La didascalia segue lo stesso stile dell'immagine */
.video-caption {
    display: block;      /* Assicura che si comporti come un blocco solido */
    min-height: 55px;    /* 15px sopra + 15px sotto + circa 25px di testo/icona */
    padding: 15px 20px;
    font-size: 0.9rem;
    line-height: 1.5;    /* Definisce chiaramente l'altezza della riga di testo */
    color: #666;
    font-style: italic;
    border-top: 1px solid #f0f0f0;
    text-align: left;
}

/* OTTIMIZZAZIONE MOBILE */
@media (max-width: 767px) {
    .video-wrapper {
        border-radius: 15px;
    }
    .video-wrapper .ratio {
        border-radius: 15px 15px 0 0;
    }
}

/* ============================================================
   SEZIONE TESTO CENTRATO
   ============================================================ */

/* --- SEZIONE DESCRITTIVA CENTRATA --- */
.description-section {
    background-color: #ffffff;
}

.description-content {
    /* Limita la larghezza massima all'80% del contenitore (1200px) */
    max-width: 85% !important; 
    margin: 0 auto; /* Centra il blocco orizzontalmente */
}

.description-text {
    font-size: 1.15rem; /* Testo leggermente più grande per il corpo centrale */
    line-height: 1.8;
    color: #444;
    margin-bottom: 1.5rem;
}

/* OTTIMIZZAZIONE PER MOBILE */
@media (max-width: 991px) {
    .description-content {
        max-width: 100% !important; /* Su mobile usiamo tutto lo spazio */
        padding: 0 15px;
    }
    
    .description-text {
        font-size: 1.05rem; /* Riduciamo leggermente il font su smartphone */
        text-align: left;  /* Spesso il testo lungo è più leggibile a sinistra su mobile */
    }
}


/* ============================================================
   SEZIONE TESTO + IMMAGINE
   ============================================================ */


/* --- SEZIONE TESTO + IMMAGINE --- */
.content-image-section {
    background-color: #ffffff;
}

.text-content h2 {
    font-family: 'Fredoka', sans-serif;
    line-height: 1.2;
}

.text-content p {
    line-height: 1.8;
    font-size: 1.05rem;
}

.image-wrapper {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    /* Effetto profondità */
    box-shadow: 0 20px 40px rgba(0,0,0,0.1) !important;
}

.image-wrapper img {
    transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
    display: block;
}

/* Effetto zoom leggero al passaggio del mouse */
.image-wrapper:hover img {
    transform: scale(1.05);
}

.btn-arancio {
    /* Il tuo gradiente arancione */
    background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%) !important;
    color: white !important;
    border: none !important;
    padding: 10px 25px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(245, 124, 0, 0.2);
}

.btn-arancio:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(245, 124, 0, 0.4);
    color: white !important;
    filter: brightness(1.1); /* Lo rende leggermente più luminoso al passaggio del mouse */
}

.btn-arancio:active {
    transform: translateY(0);
}

/* Mobile: l'immagine va sotto il testo con un po' di margine */
@media (max-width: 991px) {
    .text-content {
        text-align: center;
        margin-bottom: 30px;
    }
    
    .text-content .mt-4 {
        margin-bottom: 20px;
    }
}

/* ============================================================
   SEZIONE DOPPIA CARD AFFIANCATA
   ============================================================ */


/* --- STILE DOPPIA CARD --- */
.feature-card {
    background: #fff;
    border-radius: 20px;
    overflow: hidden; /* Importante per arrotondare gli angoli dell'immagine */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.1) !important;
}

.card-img-container {
    height: auto;
    overflow: hidden;
}

.card-img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Mantiene le proporzioni dell'immagine riempiendo lo spazio */
    transition: transform 0.5s ease;
}

.feature-card:hover .card-img-container img {
    transform: scale(1.1);
}

/* Liste */
.promo-list {
    list-style: none;
    padding: 0;
    margin: 20px 0;
}

.promo-list li {
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    color: #555;
}

.promo-list li i {
    margin-right: 10px;
    font-size: 0.9rem;
    opacity: 0.8;
}

/* --- PULSANTE ARANCIONE GRADIENTE (Dalla tua Navbar) --- */
.btn-arancio-grad {
    background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%) !important;
    color: white !important;
    border: none !important;
    padding: 12px 25px;
    transition: all 0.3s ease;
    display: inline-block;
}

.btn-arancio-grad:hover {
    filter: brightness(1.1);
    box-shadow: 0 5px 15px rgba(245, 124, 0, 0.4);
    transform: scale(1.05);
}

/* ============================================================
   SEZIONE NOTE AUTORE
   ============================================================ */


/* --- SEZIONE DISCLAIMER / NOTE --- */
.disclaimer-box {
    background-color: #ffffff;
    border-left: 6px solid #f57c00; /* Il tuo arancione per dare continuità */
    border-radius: 12px;
    padding: 35px;
    line-height: 1.7;
    font-size: 0.95rem;
    color: #555;
}

.disclaimer-box h4 {
    font-size: 1.2rem;
    color: #333;
    letter-spacing: 1px;
}

.text-orange {
    color: #f57c00;
}

.fonti-list {
    list-style: none;
    padding-left: 0;
}

.fonti-list li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 8px;
}

.fonti-list li::before {
    content: "\f00c"; /* Icona check di FontAwesome */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    left: 0;
    color: #27ae60; /* Verde per indicare autorevolezza/conferma */
}

.nota-giudizi {
    border-top: 1px dashed #ddd;
    font-style: italic;
    font-size: 0.9rem;
}

/* ============================================================
   LISTINO PREZZI
   ============================================================ */
   
/* Sezione Listino Prezzi - Aggiornata con Fix Mobile */
.listino-section {
    padding: 60px 0;
    background-color: #ffffff;
}

.table-responsive {
    border-radius: 15px;
    overflow-x: auto; /* Permette lo scorrimento orizzontale */
    overflow-y: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    -webkit-overflow-scrolling: touch; /* Scroll fluido su mobile */
}

.table-listino {
    margin-bottom: 0;
    vertical-align: middle;
    background: white;
}

.table-listino thead {
    background-color: #e65100;
    color: white;
}

.table-listino th {
    padding: 20px;
    border: none;
    text-transform: uppercase;
    font-weight: 700;
    white-space: nowrap; /* Evita che i titoli vadano a capo */
}

.table-listino td {
    padding: 15px 20px;
    border-bottom: 1px solid #eee;
}

.prezzo-cassa {
    color: #999;
    font-size: 0.9rem;
}

.prezzo-cassa-barrato {
    text-decoration: line-through;
    color: #999;
    font-size: 0.9rem;
}

.prezzo-online {
    color: #2ecc71;
    font-weight: 800;
    font-size: 1.1rem;
}

.badge-risparmio {
    background-color: #fff3e0;
    color: #e65100;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 0.8rem;
    font-weight: 700;
    white-space: nowrap; /* Mantiene il badge su una riga */
}

/* --- FIX SPECIFICO PER SMARTPHONE (es. S20FE) --- */
@media (max-width: 767px) {
    .table-listino {
        /* Forza la tabella ad essere più larga dello schermo */
        min-width: 650px !important; 
    }
    
    .listino-section {
        padding: 30px 0;
    }

    .table-listino th, .table-listino td {
        padding: 12px 15px; /* Riduciamo leggermente il padding su mobile */
    }
}

/* ============================================================
   SEZIONE OFFERTE
   ============================================================ */
   
/* --- SEZIONE PROMO DOPPIA COLONNA (Colori Navbar 2026) --- */
.promo-box {
    background: #fff;
    border-radius: 20px;
    padding: 35px;
    border: 1px solid #eee;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
}

/* Header e Icone */
.promo-header {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
}

.promo-header h3 {
    margin: 0;
    font-weight: 800;
    font-family: 'Fredoka', sans-serif;
}

/* Stile Pulsanti e Bordi - BIGLIETTI (Verde) */
.promo-tickets { border-top: 6px solid #2ecc71; }
.promo-tickets .promo-icon { color: #2ecc71; font-size: 2.2rem; margin-right: 15px; }

.btn-biglietti { 
    background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%) !important;
    color: white !important;
    border-radius: 50px;
    padding: 12px 25px;
    font-weight: 700;
    border: none;
    transition: transform 0.3s ease;
}

/* Stile Pulsanti e Bordi - HOTEL (Arancione) */
.promo-hotel { border-top: 6px solid #ff9800; }
.promo-hotel .promo-icon { color: #ff9800; font-size: 2.2rem; margin-right: 15px; }

.btn-hotel { 
    background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%) !important;
    color: white !important;
    border-radius: 50px;
    padding: 12px 25px;
    font-weight: 700;
    border: none;
    transition: transform 0.3s ease;
}

/* Effetto Hover Bottoni */
.btn-biglietti:hover, .btn-hotel:hover {
    transform: scale(1.05);
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

/* Liste */
.promo-list {
    list-style: none;
    padding: 0;
    margin: 20px 0;
}

.promo-list li {
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    color: #555;
}

.promo-list li i {
    margin-right: 10px;
    font-size: 0.9rem;
    opacity: 0.8;
}


/* ============================================================
   CONSIGLI SUI BIGLIETTI
   ============================================================ */
   
   /* Sezione Consigli dell'Esperto */
.consigli-section {
    padding: 60px 0;
    background-color: #fffaf0; /* Un crema caldissimo che richiama l'arancione */
    border-top: 2px dashed #ff8c00;
    border-bottom: 2px dashed #ff8c00;
}

.tip-box {
    background: white;
    border-radius: 15px;
    padding: 25px;
    height: 100%;
    border-left: 5px solid #ff8c00;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}

.tip-box h4 {
    color: #e65100; /* Il nostro arancione con ombra "Strong" se vuoi */
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
}

.tip-box h4 i {
    margin-right: 10px;
    font-size: 1.3rem;
}

.tip-box p {
    font-size: 0.95rem;
    color: #444;
    line-height: 1.5;
    margin-bottom: 0;
}

.highlight-text {
    font-weight: 700;
    color: #e65100;
}


/* ============================================================
   CAROSELLI ATTRAZIONI
   ============================================================ */
   
/* Stile Sezione Attrazioni */
.attrazioni-section { padding: 80px 0; background-color: #fff; }

.category-title {
    color: #e65100 !important; /* Il nostro arancione intenso */
    font-size: 2.25rem;       /* Leggermente più grande per compensare la mancanza del bordo */
    font-weight: 800;
    text-transform: uppercase;
    margin-top: 60px;
    margin-bottom: 30px;
    padding-left: 0;          /* Rimuoviamo il padding che serviva per il bordo */
    border-left: none !important; /* Rimuove definitivamente la barra verticale */
    text-align: center;       /* Opzionale: centrato spesso sta meglio senza bordo laterale */
}

/* Card Attrazione */
.attrazione-card {
    border: none;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
    height: 100%;
    margin: 10px; /* Spazio tra le card nel carosello */
	margin-bottom: 5px; /* Evita che la card tocchi il fondo del padding */
}

.attrazione-card:hover { transform: translateY(-5px); }

.card-img-wrapper {
    position: relative;
    height: 200px;
}

.card-img-top {
    height: 100%;
    object-fit: cover;
}

/* Badge Difficoltà */
.badge-difficolta {
    position: absolute;
    top: 15px;
    right: 15px;
    padding: 5px 12px;
    border-radius: 20px;
    font-weight: 700;
    font-size: 0.75rem;
    text-transform: uppercase;
}

/* Controlli Carosello Personalizzati */
.carousel-control-prev, .carousel-control-next {
    width: 5%;
    filter: invert(1); /* Rende le frecce nere se lo sfondo è chiaro */
}

/* Colori tematici per le nuove categorie */
.title-famiglia { border-left-color: #3498db !important; } /* Blu rassicurante */
.title-adrenalina { border-left-color: #e74c3c !important; } /* Rosso energia */
.title-bambini { border-left-color: #2ecc71 !important; } /* Verde allegria */

/* Badge specifici */
.bg-famiglia { background-color: #3498db; color: white; }
.bg-adrenalina { background-color: #e74c3c; color: white; }
.bg-bambini { background-color: #2ecc71; color: white; }

/* Titoli delle Categorie (H2) */
.category-title {
    color: #e65100 !important; /* Arancione intenso e leggibile */
    font-size: 2rem;
    font-weight: 800;
    text-transform: uppercase;
    margin-top: 50px;
    margin-bottom: 25px;
    border-left: 6px solid #ff8c00; /* Bordo coordinato */
    padding-left: 15px;
	text-shadow: 1px 1px 3px rgba(0,0,0,0.3); /* Spostamento piccolo, sfocatura media, colore scuro */
}

/* Titoli delle singole Attrazioni nelle Card (H4) */
.attrazione-card .card-title {
    color: #ff5e00 !important; /* Un arancione leggermente più vivace per le card */
    font-weight: 700;
    font-size: 1.25rem;
    margin-bottom: 10px;
    transition: color 0.3s ease;
}

/* Effetto al passaggio del mouse sul titolo della card */
.attrazione-card:hover .card-title {
    color: #e65100 !important; /* Scurisce leggermente quando passi il mouse */
}

/* Piccola rifinitura per il testo descrittivo nelle card */
.attrazione-card .card-text {
    color: #555; /* Grigio scuro per contrasto con l'arancione */
    line-height: 1.4;
}

/* Aggiungiamo spazio sotto le card per non tagliare ombre e bordi */
.carousel-inner {
    padding-bottom: 40px; /* Spazio extra per l'effetto hover e l'ombra */
    padding-top: 10px;    /* Piccolo margine anche sopra per simmetria */
}

/* Assicuriamoci che il contenitore non tagli i contenuti che "escono" leggermente */
.carousel {
    overflow: visible; 
}


/* ============================================================
   CAROSELLO IBRIDO PER LE CARDS
   ============================================================ */

.hybrid-carousel {
    position: relative;
    display: flex;
    align-items: center;
}

.scroll-wrapper {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    gap: 15px;
    padding: 10px 5px;
    scrollbar-width: none; /* Nasconde scrollbar Firefox */
}

.scroll-wrapper::-webkit-scrollbar { display: none; } /* Nasconde scrollbar Chrome/Safari */


/* Regola base per le card (comune a entrambi) */
.card-item {
    flex: 0 0 82%; /* Default mobile: 1 card e mezza */
}

/* Stile per il link "Scopri di più" */
.btn-scopri {
    color: #e65100; /* Arancione per coerenza */
    text-decoration: none;
    font-weight: 700;
    font-size: 0.9rem;
    display: inline-block;
    transition: all 0.3s ease;
}

.btn-scopri:hover {
    color: #bf4300;
}

/* Ruota la freccetta quando è aperto */
.btn-scopri[aria-expanded="true"] i {
    transform: rotate(180deg);
}

.btn-scopri i {
    transition: transform 0.3s ease;
}

/* Stile per il link grande "Scopri di più" */
.btn-scopri-big {
    color: #e65100; /* Arancione per coerenza */
    text-decoration: none;
    font-weight: 700;
    font-size: 1.3rem;
    display: inline-block;
    transition: all 0.3s ease;
}

.btn-scopri-big:hover {
    color: #bf4300;
}

/* Ruota la freccetta quando è aperto */
.btn-scopri-big[aria-expanded="true"] i {
    transform: rotate(180deg);
}

.btn-scopri-big i {
    transition: transform 0.3s ease;
}

/* Stile del testo extra */
.info-extra {
    font-size: 0.9rem;
    line-height: 1.5;
    color: #555;
}

/* Fix per il carosello: evita scatti durante l'apertura */
.attrazione-card {
    height: auto !important; /* Permette alla card di allungarsi */
}

/* OTTIMIZZAZIONE DESKTOP (Sopra 992px) */
@media (min-width: 992px) {
    .hybrid-carousel {
        /* Aggiungiamo spazio ai lati per ospitare le frecce */
        padding: 0 40px; 
    }

    .card-item {
        /* Regoliamo la larghezza tenendo conto del nuovo spazio */
        flex: 0 0 calc(33.333% - 20px); 
    }
	
	/* Configurazione per caroselli a 3 COLONNE */
    .cols-3 .card-item {
        flex: 0 0 calc(33.333% - 20px);
    }

    /* Configurazione per caroselli a 2 COLONNE */
    .cols-2 .card-item {
        flex: 0 0 calc(50% - 15px);
    }
    
    /* Regola generale per le frecce se presente una classe cols-x */
    .cols-3, .cols-2 {
        padding: 0 45px;
    }
    
    .carousel-nav-btn {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 45px;
        height: 45px;
        background: #ffffff;
        border: 2px solid #e65100;
        border-radius: 50%;
        color: #e65100;
        z-index: 10;
        display: flex;
        justify-content: center;
        align-items: center;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        transition: all 0.3s;
        cursor: pointer; /* Aggiunge la manina al passaggio del mouse */
    }
    
    .carousel-nav-btn:hover {
        background: #e65100;
        color: #fff;
    }
    
	/* Posizionamento frecce: ora restano dentro il padding di 40px */
    .carousel-nav-btn.prev { left: 0; }
    .carousel-nav-btn.next { right: 0; }
	
	
    .scroll-wrapper {
        scroll-snap-type: none !important; /* Disattiva lo snap su desktop */
        overflow-x: hidden; /* Evita che compaia la barra se il JS fallisce */
    }
}

/* Su mobile manteniamo il padding a zero per non sprecare spazio sullo schermo piccolo */
@media (max-width: 991px) {
    .hybrid-carousel {
        padding: 0;
    }
}

/* ============================================================
   CARD A SCORRIMENTO LIBERO
   ============================================================ */

/* Contenitore dello scroll */
.scroll-container-mobile {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory; /* Fa sì che la card "calzi" bene al centro dopo lo scroll */
    -webkit-overflow-scrolling: touch;
    gap: 15px;
    padding-bottom: 15px; /* Spazio per non tagliare l'ombra della card */
}

/* Nasconde la barra di scorrimento brutta su alcuni browser */
.scroll-container-mobile::-webkit-scrollbar {
    display: none;
}

/* Elemento card nello scroll */
.scroll-item {
    flex: 0 0 85%; /* Su mobile ogni card occupa l'85% della larghezza */
    scroll-snap-align: center;
}

/* OTTIMIZZAZIONE DESKTOP (Sopra 992px) */
@media (min-width: 992px) {
    .scroll-container-mobile {
        display: grid;
        grid-template-columns: repeat(3, 1fr); /* 3 card fisse per riga */
        overflow-x: visible;
        gap: 25px;
    }
    
    .scroll-item {
        flex: none;
        width: 100%;
    }
}

/* ============================================================
   SEZIONE INFORMAZIONI E LOGISTICA
   ============================================================ */

/* Contenitore generico per le sezioni info */
.info-section, .arrival-section {
    padding: 60px 0;
}

.info-section {
    background-color: #f8f9fa; /* Grigio chiaro per le info pratiche */
}

.arrival-section {
    background-color: #ffffff; /* Bianco per la sezione logistica */
}

/* Titoli e Introduzione */
.arrival-intro {
    max-width: 850px;
    margin: 0 auto 50px auto;
}

/* Card Base */
.info-card {
    background: white;
    border-radius: 20px;
    padding: 35px 25px;
    text-align: center;
    box-shadow: 0 8px 25px rgba(0,0,0,0.05);
    height: 100%;
    transition: all 0.3s ease;
    border: 1px solid #eee;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.info-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 35px rgba(0,0,0,0.1);
}

/* Icone e Testi nelle Card */
.info-icon {
    font-size: 2.8rem;
    margin-bottom: 20px;
    display: block;
}

/* Colore arancione per info pratiche */
.info-section .info-icon { color: #ff8c00; }

/* Colore arancione per info arrivo */
.arrival-card .info-icon { color: #ff8c00; }

.info-card h3 {
    font-weight: 800;
    color: #e65100;
    margin-bottom: 15px;
    text-transform: uppercase;
    font-size: 1.15rem;
    font-family: 'Fredoka', sans-serif;
}

.info-card h4 {
    font-weight: 800;
    color: #e65100;
    margin-bottom: 15px;
    text-transform: uppercase;
    font-size: 1.15rem;
    font-family: 'Fredoka', sans-serif;
}

.info-card p {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 0;
}

/* Bottone specifico per la Mappa */
.btn-mappa { 
    background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%) !important;
    color: white !important;
    border-radius: 50px;
    padding: 12px 25px;
    font-weight: 700;
    border: none;
    transition: transform 0.3s ease;
}

/* Effetto Hover Bottoni */
.btn-mappa:hover {
    transform: scale(1.05);
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

/* ============================================================
   STRUTTURA IBRIDA (SCORREVOLE / FISSA)
   ============================================================ */

.hybrid-carousel {
    position: relative;
    display: flex;
    align-items: center;
}

/* Wrapper dello scorrimento */
.scroll-wrapper {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    gap: 20px;
    padding: 15px 5px;
    scrollbar-width: none; /* Firefox */
}

.scroll-wrapper::-webkit-scrollbar { display: none; } /* Chrome/Safari */

/* Card singola nel carosello */
.card-item {
    flex: 0 0 85%; /* Mobile: quasi tutta la larghezza */
}

/* OTTIMIZZAZIONE DESKTOP (Sopra 992px) */
@media (min-width: 992px) {
    
    /* Configurazione per caroselli a 3 COLONNE (es. Come Arrivare) */
    .cols-3 .card-item {
        flex: 0 0 calc(33.333% - 14px);
    }

    /* Padding per ospitare le frecce */
    .cols-3.hybrid-carousel {
        padding: 0 50px;
    }

    .carousel-nav-btn {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 45px;
        height: 45px;
        background: #ffffff;
        border: 2px solid #3498db; /* Blu per richiamare i trasporti */
        border-radius: 50%;
        color: #3498db;
        z-index: 10;
        display: flex;
        justify-content: center;
        align-items: center;
        box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        cursor: pointer;
        transition: all 0.3s;
    }

    .carousel-nav-btn:hover {
        background: #3498db;
        color: #fff;
    }

    .carousel-nav-btn.prev { left: 0; }
    .carousel-nav-btn.next { right: 0; }
    
    /* Disattiva lo snap su desktop per permettere il controllo fluido tramite JS */
    .scroll-wrapper {
        scroll-snap-type: none !important;
    }
}

/* CONFIGURAZIONE MOBILE (Sotto 991px) */
@media (max-width: 991px) {
    .scroll-wrapper {
        scroll-snap-type: x mandatory;
    }
    .card-item {
        scroll-snap-align: center;
    }
    .info-section, .arrival-section {
        padding: 40px 0;
    }
}

/* ============================================================
   FAQ
   ============================================================ */
   
   /* Sezione FAQ */
.faq-section {
    padding: 80px 0;
    background-color: #ffffff;
}

.accordion-item {
    border: 1px solid #eee;
    border-radius: 15px !important;
    margin-bottom: 15px;
    overflow: hidden;
    box-shadow: 0 3px 10px rgba(0,0,0,0.03);
}

.accordion-button {
    font-weight: 700;
    color: #333;
    padding: 20px;
}

.accordion-button:not(.collapsed) {
    background-color: #fff3e0; /* Arancio chiarissimo quando aperto */
    color: #e65100;
    box-shadow: none;
}

.accordion-button::after {
    background-size: 1rem;
}

/* Colore arancione per l'icona della freccia quando aperta */
.accordion-button:not(.collapsed)::after {
    filter: sepia(100%) saturate(2000%) hue-rotate(1deg);
}

.accordion-body {
    color: #555;
    line-height: 1.6;
    padding: 20px;
    background-color: #fff;
}

/* ============================================================
   BANNER PARCHIONLINE
   ============================================================ */

/* Centratura del contenitore */
.banner-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    overflow: hidden;
}

/* Regola per i banner desktop */
.banner-desktop {
    height: auto;
    /* Impedisce al banner di superare la larghezza del contenitore su schermi piccoli */
    max-width: 100%; 
}

/* Regola per il banner mobile */
.banner-mobile {
    height: auto;
    max-width: 300px; /* Forza la larghezza corretta */
}

/* ============================================================
   FOOTER PARCHIONLINE
   ============================================================ */
   
   /* Footer Style */
footer {
    background-color: #f2f4f6;
    color: #ecf0f1;
    padding: 60px 0 30px;
    font-size: 1.1rem;
}

.footer-title {
    color: #ff8c00; /* Il nostro arancione */
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 25px;
    font-size: 1.1rem;
    letter-spacing: 1px;
}

.footer-links {
    list-style: none;
    padding: 0;
}

.footer-links li {
    margin-bottom: 12px;
}

.footer-links a {
    color: #000;
    text-decoration: none;
    transition: all 0.3s ease;
}

.footer-links a:hover {
    color: #ff8c00;
    padding-left: 5px;
}

/* Icone Social */
.social-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #ff8c00;
    color: white;
    border-radius: 50%;
    margin-right: 10px;
    font-size: 1.2rem;
    transition: all 0.3s ease;
}

.social-icons a:hover {
    background: #ff8c00;
    transform: translateY(-3px);
}

.copyright-bar {
    border-top: 1px solid rgba(255,255,255,0.1);
    margin-top: 40px;
    padding-top: 20px;
    text-align: center;
    color: #000;
    font-size: 0.8rem;
}