﻿iframe {
    width: 100%;
    height: 500px;
    border: none;
    margin: 0;
}

.tj {
    text-align: justify;
    text-justify: inter-word;
    font-size: 0.9rem !important;
}

.action-label {
    font-size: 15px;
    font-weight: 600;
    color: var(--secondary-color);
}

#header .dropdown .dropdown-menu {
    background-color: var(--nav-topheader-background-color);
}

#header > * .dropdown-toggle::after {
    display: none;
}

.card-img-top {
    width: 100%;
    height: 15vw;
    object-fit: cover;
}

.c1 {
    background-color: #fff;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    height: auto !important;
}

.c2 {
    background-image: url(../img/sfondo_home.jpg);
    background-color: #fff;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    height: auto !important;
}

.c3 {
    background-image: url(https://saintstour.blob.core.windows.net/strapi-upload/assets/Galleria_Borghese_Esterne_4_0e778819a0.png);
    background-color: #fff;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    height: auto !important;
}

.icon-100 {
    font-size: 100px;
}

.icon-200 {
    font-size: 200px;
}

.icon-300 {
    font-size: 200px;
}


.search-sec .container {
    background-color: #7b7e83;
    padding: 20px 20px 20px 20px;
    border-radius: 25px;
    margin-bottom: 100px;
}

/*.search-sec .input-group {
    background-color: white;
    border-radius: 25px;
}*/

/*.search-sec input[type=text] {
    background-color: white;
    border-radius: 25px;
}*/

.search-sec select {
    background-color: white;
    border-radius: 25px;
}



.flat {
    border: 0;
    background: none;
    box-shadow: none;
    border-radius: 0px;
}

.cart_summary {
    position: relative;
    border: 1px solid var(--bs-gray-500);
    border-top: 4px solid var(--nav-topheader-background-color);
    border-radius: 8px;
    margin-bottom: 16px
}

.price-day {
    /*line-height: 6px;*/
    /*font-size: 10px;*/
}

/* Whislist icon */
.wishlist {
    position: absolute;
    left: 7px;
    top: 5px;
    z-index: 1;
    overflow: hidden;
    color: white;
    transition: color 0.5s ease;
    cursor: pointer;
}

    .wishlist:hover {
        color: red;
    }


.ribbon {
    position: absolute;
    right: -5px;
    top: -5px;
    z-index: 1;
    overflow: hidden;
    width: 75px;
    height: 75px;
    text-align: right;
}

.border-tlight {
    border-top: 10px solid #ffca2b;
}

.ribbon span {
    font-size: 9px;
    font-weight: bold;
    color: #021C36;
    text-transform: uppercase;
    text-align: center;
    line-height: 20px;
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    width: 100px;
    display: block;
    background: #FFCA2B;
    background: linear-gradient(#ffedb5 0%, #FFCA2B 100%);
    box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 1);
    position: absolute;
    top: 19px;
    right: -21px;
}

    .ribbon span::before {
        content: "";
        position: absolute;
        left: 0px;
        top: 100%;
        z-index: -1;
        border-left: 3px solid #000;
        border-right: 3px solid transparent;
        border-bottom: 3px solid transparent;
        border-top: 3px solid #000;
    }

    .ribbon span::after {
        content: "";
        position: absolute;
        right: 0px;
        top: 100%;
        z-index: -1;
        border-left: 3px solid transparent;
        border-right: 3px solid #000;
        border-bottom: 3px solid transparent;
        border-top: 3px solid #000;
    }


.bg-tlight {
    --bs-bg-opacity: 1;
    color: #1A2B48;
    background-color: #FFCA2B !important;
}
/*SCHEDA PRODOTTO HOME */
/*.product-card {
    width: 340px;*/ /*Mobile 340px*/
/*max-width: 340px;
    position: relative;
    box-shadow: 0 2px 7px #dfdfdf;
    background: #fff;
    margin: 0 auto;
}*/

.product-card {
    width: 100%;
    max-width: 340px;
    position: relative;
    box-shadow: 0 2px 7px #dfdfdf;
    background: #fff;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    height: 100%;
}

    /* Card body che si espande */
    .product-card .card-body {
        /*flex-grow: 1;
        display: flex;
        flex-direction: column;*/
        padding: 20px;
    }

    /* Immagine con altezza fissa */
    .product-card .product-tumb {
        display: flex;
        /*align-items: center;*/
        /*justify-content: center;*/
        background: #f0f0f0;
        flex-shrink: 0;
        height: 200px;
        overflow: hidden;
        position: relative;
    }

        .product-card .product-tumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s ease;
        }

    /* Altezza responsive per l'immagine */
    .product-card .product-tumb {
        height: 180px;
    }

@media (min-width: 768px) {
    .product-card .product-tumb {
        height: 200px;
    }
}

@media (min-width: 1200px) {
    .product-card .product-tumb {
        height: 220px;
    }
}

.product-card .product-tumb:hover img {
    transform: scale(1.1);
}

/* Footer con altezza minima */
.product-card .card-footer {
    /*flex-shrink: 0;*/
    padding: 15px 20px;
    min-height: 70px;
}


/* Responsive width adjustments */
@media (min-width: 576px) {
    .product-card {
        max-width: 310px;
    }
}

@media (max-width: 575.98px) {
    .product-card {
        max-width: 340px;
    }
}


.shadow-tlight {
    box-shadow: 0 1px 7px #FFCA2B;
}

.image-container {
    overflow: hidden;
    position: relative;
}

    .image-container img {
        transition: transform 0.5s ease;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .image-container:hover img {
        transform: scale(1.1);
    }


.product-tumb {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0f0f0;
    overflow: hidden;
    position: relative;
}

    .product-tumb img {
        max-width: 100%;
        max-height: 100%;
        width: 100%;
        height: 250px;
        object-fit: cover;
        transition: transform 0.5s ease;
    }

    .product-tumb:hover img {
        transform: scale(1.1);
    }


.product-details {
    padding: 30px;
}

.product-catagory {
    display: block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: #ccc;
    margin-bottom: 18px;
}

.product-details h4 a {
    font-weight: 500;
    display: block;
    margin-bottom: 12px;
    text-transform: uppercase;
    color: #363636;
    text-decoration: none;
    transition: 0.3s;
}

    .product-details h4 a:hover {
        color: #fbb72c;
    }

.product-details p {
    font-size: 15px;
    /*line-height: 22px;*/
    margin-bottom: 18px;
    color: #999;
}

.product-bottom-details {
    overflow: hidden;
    border-top: 1px solid #eee;
    padding-top: 20px;
}

    .product-bottom-details div {
        float: left;
        width: 50%;
    }

.product-price {
    font-size: 18px;
    color: #fbb72c;
    font-weight: 600;
}

    .product-price small {
        font-size: 80%;
        font-weight: 400;
        text-decoration: line-through;
        display: inline-block;
        margin-right: 5px;
    }

.product-links {
    text-align: right;
}

    .product-links a {
        display: inline-block;
        margin-left: 5px;
        color: #e1e1e1;
        transition: 0.3s;
        font-size: 17px;
    }

        .product-links a:hover {
            color: #fbb72c;
        }


.cart-sidebar {
    font-size: 14px;
}

    .cart-sidebar title {
        font-size: 15px;
        font-weight: 500;
    }


/*Gallery style*/
@media (max-width: 1199px) {
    #gallery a {
        display: none;
    }

        #gallery a:first-child {
            display: block;
        }
}

.img-responsive {
    display: block;
    height: auto;
    width: 100%;
}

.gallery__item .img-responsive {
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    transition: all 0.5s ease-in;
}

.gallery__item:first-child img {
    border-radius: 10px 0 0 10px;
}

.gallery-wrapper {
    padding: 2.5rem 0;
    position: relative;
    overflow: hidden;
}

.gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 0.4166666667rem;
}

    .gallery:not(:first-child) {
        margin-top: 0.4166666667rem;
    }

@media (min-width: 768px) {
    .gallery {
        grid-template-columns: repeat(5, 1fr);
    }
}

.gallery.-block {
    display: grid;
}

.gallery__item {
    background-color: #333;
    color: #fff;
    cursor: pointer;
    display: flex;
    border-radius: 10px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}


    .gallery__item:nth-child(13n+1) {
        grid-column: 1/-1;
    }

.show-ar .gallery__item:nth-child(13n+1):before {
    content: "2:3";
}

@media (min-width: 768px) {
    .gallery__item:nth-child(13n+1) {
        grid-column: 1/span 2;
        grid-row: 1/span 3;
    }
}

.gallery__item:nth-child(13n+8) {
    grid-column: 1/-1;
}

.show-ar .gallery__item:nth-child(13n+8):before {
    content: "4:2";
}

.gallery__item:nth-child(13n+13) {
    grid-column: 1/-1;
}

.show-ar .gallery__item:nth-child(13n+13):before {
    content: "2:2";
}

@media (min-width: 768px) {
    .gallery__item:nth-child(13n+13) {
        grid-column: 3/span 2;
        grid-row: 5/span 2;
    }
}

.-absolute .gallery__item {
    position: relative;
}

.card-title {
    font-size: 18px;
    line-height: 24px;
    font-weight: 600;
    color: var(--secondary-color);
}

/*TEAM OVERRIDE */
.team {
    --background-color: #f4f4f4;
}

    .team .member {
        position: relative;
    }

        .team .member .member-img {
            margin: 0 40px;
            border-radius: 0;
            overflow: hidden;
            position: relative;
            border: 3px solid var(--background-color);
            box-shadow: 0 15px 35px -10px rgba(0, 0, 0, 0.2);
        }


li .link {
    color: black;
}

/* Rating piccolo usato nelle card esperienza */
.experience-rating {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #f2b01e; /* colore stellina/giallo */
    font-weight: 600;
    font-size: 14px;
    line-height: 1;
}

    .experience-rating .fa-star {
        font-size: 14px;
        color: #f2b01e;
        margin-left: 2px;
        /* piccola ombra per leggibilità su sfondi chiari */
        text-shadow: 0 0 0 rgba(0,0,0,0.02);
    }

    .experience-rating .rating-value {
        color: #333;
        font-weight: 600;
    }

    .experience-rating .reviews-count {
        color: rgba(var(--default-color-rgb), 0.6);
        font-weight: 400;
        font-size: 13px;
    }

@media (max-width: 576px) {
    .experience-rating {
        font-size: 13px;
        gap: 4px;
    }

        .experience-rating .fa-star {
            font-size: 13px;
        }
}

/* Messaggio trust sotto la search-bar nel hero */
.hero-note {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #ffffff;
    font-weight: 600;
    font-size: 15px;
    margin-top: 16px;
    text-shadow: 0 2px 6px rgba(0,0,0,0.45);
}

    .hero-note .note-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        background: rgba(255,255,255,0.08);
        border-radius: 6px;
        color: #fff;
        font-size: 14px;
    }

        .hero-note .note-icon i {
            line-height: 0;
        }

@media (max-width: 576px) {
    .hero-note {
        font-size: 13px;
        margin-top: 12px;
    }

        .hero-note .note-icon {
            width: 24px;
            height: 24px;
            font-size: 12px;
        }
}

/* Forza visibilità del burger anche su desktop e migliora allineamento */
.mobile-nav-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    font-size: 24px; /* regola a piacere per desktop */
    color: var(--nav-color);
    cursor: pointer;
    margin-right: 12px;
    line-height: 0;
    /*z-index: 9999;*/
}



.flag-icon {
    display: block;
    width: 20px;
    height: auto;
    animation: wave 2s infinite linear;
    transform-origin: left center;
    /*box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.5);*/
}

/* Profile dropdown card-like styles */
#header .profile-dropdown-menu {
    min-width: 300px;
    padding: 0;
    border: 0;
    background: transparent;
}

#header .profile-card {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 18px rgba(35, 47, 63, 0.12);
    background: #ffffff;
    color: #0f1724;
    width: 100%;
}

#header .profile-card-header {
    border-bottom: 1px solid rgba(15,23,36,0.06);
    background: linear-gradient(0deg, rgba(255,255,255,0.9), rgba(255,255,255,0.9));
}

    #header .profile-card-header h6 {
        font-weight: 700;
        margin: 0;
        color: #0b2540;
    }

#header .profile-card-body {
    padding: 0.25rem 0;
}

#header .profile-action {
    color: #0b2540;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: background .12s ease, color .12s ease;
}

    #header .profile-action:hover,
    #header .profile-action:focus {
        background: rgba(11,37,64,0.03);
        color: #0b2540;
        text-decoration: none;
    }

    /* ICONS: semplici, senza bordo né sfondo */
    #header .profile-action i.bi,
    #header .profile-card .bi {
        font-size: 1.05rem;
        color: #0b2540;
        background: transparent !important;
        border-radius: 0 !important;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

        /* eventuale dimensione uniforme per l'icona iniziale */
        #header .profile-action i.bi.me-3 {
            width: 28px;
            text-align: center;
        }

/* Pulsanti all'interno della card */
#header .profile-card .btn {
    border-radius: 8px;
}

/* remove default dropdown padding on small screens to keep native look */
@media (max-width: 991.98px) {
    #header .profile-dropdown-menu {
        min-width: 220px;
    }
}

/* Lang dropdown card-like (stile coerente con profile-card) */
#header .lang-dropdown-menu {
    min-width: 70px;
    padding: 0;
    border: 0;
    background: transparent;
}

#header .lang-card {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 18px rgba(35, 47, 63, 0.08);
    background: #ffffff;
    color: #0f1724;
    width: 100%;
}

#header .lang-card-header {
    border-bottom: 1px solid rgba(15,23,36,0.06);
    background: linear-gradient(0deg, rgba(255,255,255,0.9), rgba(255,255,255,0.9));
}

    #header .lang-card-header h6 {
        font-weight: 700;
        margin: 0;
        color: #0b2540;
    }

#header .lang-card-body {
    padding: 0.25rem 0;
}

/* Riusa profile-action per riga: icone semplici senza sfondo */
#header .lang-card .profile-action {
    color: #0b2540;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: background .12s ease, color .12s ease;
}

    #header .lang-card .profile-action:hover,
    #header .lang-card .profile-action:focus {
        background: rgba(11,37,64,0.03);
        color: #0b2540;
    }



/* adattamento responsive */
@media (max-width: 991.98px) {
    #header .lang-dropdown-menu {
        min-width: 220px;
    }
}

/* Mobile single-item swipeable gallery */
@media (max-width: 767.98px) {
    .gallery {
        display: flex;
        flex-direction: row;
        gap: 0.5rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        padding-bottom: 0.5rem; /* spazio per lo scroll */
    }

    .gallery__item {
        flex: 0 0 100%;
        width: 100%;
        scroll-snap-align: center;
        box-sizing: border-box;
        padding-right: 0; /* evita overflow aggiuntivo */
    }

        .gallery__item img {
            width: 100%;
            height: auto;
            display: block;
            object-fit: cover;
            border-radius: 8px;
        }

    /* rimuove eventuali margin/padding delle colonne che interferiscono */
    .gallery-wrapper .container,
    .gallery {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }

        /* nasconde overflow verticale indesiderato */
        .gallery::-webkit-scrollbar {
            height: 8px;
        }

        .gallery::-webkit-scrollbar-thumb {
            background: rgba(0,0,0,0.15);
            border-radius: 6px;
        }

    /* Aggiunte per la navigazione mobile della gallery: frecce e override per mostrare un elemento alla volta */
    #gallery a,
    .gallery__item {
        display: block !important;
    }

    .mobile-gallery-nav {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 50;
        width: 44px;
        height: 44px;
        border-radius: 22px;
        background: rgba(0,0,0,0.45);
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 22px;
        border: 0;
        cursor: pointer;
        line-height: 1;
        box-shadow: 0 6px 18px rgba(0,0,0,0.25);
    }

        .mobile-gallery-nav.prev {
            left: 0.6rem;
        }

        .mobile-gallery-nav.next {
            right: 0.6rem;
        }

        .mobile-gallery-nav.disabled {
            opacity: 0.35;
            pointer-events: none;
        }

    /* piccolo aggiustamento per evitare che le frecce si sovrappongano alle immagini con bordi arrotondati */
    .gallery-wrapper {
        position: relative;
    }
}

/* Aggiunte per ricerca hero (pill white search) */
.search-hero {
    width: 100%;
    max-width: 900px; /* regola la larghezza massima come nell'immagine */
    margin-top: 18px;
}

.search-hero__group {
    background: #ffffff;
    border-radius: 999px; /* pill */
    padding: 6px 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.28);
    align-items: center;
    border: 0;
}

.search-hero__icon {
    background: transparent;
    border: 0;
    width: 48px;
    height: 48px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #0d6efd; /* colore icona primario */
    font-size: 1.05rem;
    margin-left: 6px;
}

.search-hero__input {
    border: 0;
    box-shadow: none;
    padding-left: 10px;
    height: 56px;
    font-size: 1.05rem;
    border-radius: 999px;
    background: transparent;
    color: #34495e;
}

    .search-hero__input::placeholder {
        color: #7a8b9a;
    }

    .search-hero__input:focus,
    .search-hero__group:focus-within {
        outline: none;
        box-shadow: none;
    }

/* rimuove bordi predefiniti di bootstrap per input-group-text */
.input-group .input-group-text {
    border: 0;
    background: transparent;
}

/* Miglioramento layout risultati ricerca hero */
.search-hero #search-results .list-group-item {
    display: flex !important;
    align-items: flex-start !important; /* allinea in alto */
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    overflow: hidden;
    white-space: normal; /* consente wrap */
    box-shadow: none;
}

    /* thumbnail */
    .search-hero #search-results .list-group-item img,
    .search-hero #search-results .list-group-item .search-thumb {
        flex: 0 0 56px;
        width: 56px;
        height: 56px;
        margin-right: 0.75rem;
        border-radius: 6px;
        object-fit: cover;
        display: block;
    }

/* contenuto a fianco dell'immagine, permette ellipsis */
.search-hero #search-results .search-result-content {
    flex: 1 1 auto;
    min-width: 0; /* fondamentale per text-overflow in flex */
    overflow: hidden;
}

    /* titolo: massimo 2 righe con ellipsis */
    .search-hero #search-results .search-result-content .title {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: normal;
        line-height: 1.15;
        margin-bottom: 0.25rem;
    }

    /* meta (categoria + prezzo) */
    .search-hero #search-results .search-result-content .meta {
        display: flex;
        gap: 0.5rem;
        align-items: center;
        color: #6c757d;
        font-size: 0.85rem;
    }

        /* piccolo polish: rendi più leggibile il badge prezzo */
        .search-hero #search-results .search-result-content .meta .badge {
            font-size: 0.78rem;
            padding: 0.35rem 0.5rem;
        }

/* Fix definitivo risultati ricerca hero: evita sovrapposizione immagine/testo */
.search-hero #search-results,
.search-hero #search-results .list-group-item {
    box-sizing: border-box;
}

    /* Forza layout flex per ogni risultato */
    .search-hero #search-results .list-group-item {
        display: flex !important;
        flex-direction: row !important;
        align-items: flex-start !important;
        gap: 0.75rem !important;
        padding: 0.5rem 0.75rem !important;
        white-space: normal !important; /* permette wrapping */
        overflow: hidden !important;
    }

        /* Specifica rigida per la thumbnail dentro i risultati (override regole globali) */
        .search-hero #search-results .list-group-item img.search-thumb,
        .search-hero #search-results .list-group-item img {
            flex: 0 0 56px !important;
            width: 56px !important;
            height: 56px !important;
            max-width: 56px !important;
            max-height: 56px !important;
            object-fit: cover !important;
            margin-right: 0.75rem !important;
            border-radius: 6px !important;
            display: block !important;
        }

    /* Contenitore testo a fianco dell'immagine */
    .search-hero #search-results .search-result-content {
        flex: 1 1 auto !important;
        min-width: 0 !important; /* fondamentale per text-overflow/ellipsis in flex */
        overflow: hidden !important;
    }

        /* Titolo: fino a 2 righe con ellipsis */
        .search-hero #search-results .search-result-content .title {
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: normal;
            line-height: 1.15;
            margin-bottom: 0.25rem;
        }

        /* Meta (categoria + prezzo) */
        .search-hero #search-results .search-result-content .meta {
            display: flex;
            gap: 0.5rem;
            align-items: center;
            color: #6c757d;
            font-size: 0.85rem;
        }

    /* Se Bootstrap impone width:100% su immagini generiche, questo specifico selector sovrascrive */
    .search-hero #search-results img {
        max-width: none !important;
    }

/* invece di ".hero img" usa solo l'immagine diretta figlia */
.hero > img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 190%;
    -o-object-fit: cover;
    object-fit: cover;
    z-index: 1;
}

/* Override per le thumbnail dei risultati di ricerca */
.search-hero #search-results img {
    position: static !important;
    width: 56px !important;
    height: 56px !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
}

.accordion-button:not(.collapsed) {
    background-color: transparent; /* Removes background color */
    color: inherit; /* Ensures text color remains consistent */
    box-shadow: none; /* Removes any shadow effect */
}

.tour-info .accordion-button {
    font-size: 1.125rem;
    font-weight: 700;
    padding: var(--bs-accordion-btn-padding-y) 1.4rem 1.8rem 0
}

.inclusioni {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    max-width: 900px;
}

    .inclusioni h3 {
        font-size: 1.2rem;
        margin-bottom: 0.75rem;
    }

    .inclusioni ul {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .inclusioni li {
        display: flex;
        align-items: flex-start;
        gap: 0.5rem;
        padding: 0.4rem 0;
        border-top: 1px solid #eee;
    }

        .inclusioni li:first-child {
            border-top: none;
        }

    .inclusioni div:first-child li::before {
        content: "✓";
        color: #16794D; /* verde */
        font-weight: bold;
    }

    .inclusioni div:last-child li::before {
        content: "X";
        color: red; /* grigio */
        font-weight: bold;
    }


.sticky-bottom-avail {
    z-index:999;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    padding: 1rem;
    background: #fff;
    border-top: 1px solid #ddd;
    box-shadow: 0 -2px 6px rgba(0,0,0,0.05);
}

    .sticky-bottom-avail .prezzo span {
        font-size: 1.25rem;
        font-weight: 600;
        color: #222;
    }

    .sticky-bottom-avail .azione a {
        border: none;
        padding: 0.75rem 1.25rem;
        font-size: 1rem;
        font-weight: 600;
        border-radius: 4px;
        cursor: pointer;
    }

/*.sticky-bottom-avail .azione a:hover {
            background: #0f5c39;
        }*/

/* Hero background: assoluto, cover e overlay per contrasto */
.hero {
    position: relative;
    overflow: hidden;
    min-height: 420px;
    display: flex;
    align-items: center;
    background-image: var(--hero-bg, url('/img/sfondo_home.jpg'));
    background-size: cover;
    /*background-position: center center;*/
    background-repeat: no-repeat;
    -webkit-background-size: cover;
}

/* Overlay scuro per garantire leggibilità */
.hero-overlay {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(8,18,33,0.35) 0%, rgba(8,18,33,0.5) 60%, rgba(8,18,33,0.6) 100%);
    pointer-events: none;
}

/* Contenuto sopra l'immagine */
.hero-content {
    position: relative;
    z-index: 2;
    color: #fff;
    padding-top: 40px;
    padding-bottom: 40px;
}

/* Responsive */
@media (max-width: 1199.98px) {
    .hero {
        min-height: 380px;
    }
}

@media (max-width: 767.98px) {
    .hero {
        min-height: 320px;
    }

    .hero-content {
        padding-top: 24px;
        padding-bottom: 24px;
    }

    .hero-overlay {
        background: linear-gradient(180deg, rgba(8,18,33,0.45) 0%, rgba(8,18,33,0.65) 100%);
    }
}

/* Nota: se vuoi servire immagini diverse per breakpoint, aggiungi regole come:
   @media (min-width:1200px){ .hero{ background-image: url('/img/sfondo_home-xl.jpg'); } }
   @media (min-width:768px){  .hero{ background-image: url('/img/sfondo_home-md.jpg'); } }
}

/* Garantire che il hero e il suo dropdown stiano sopra #team */
#hero,
#hero .container,
#hero .row,
#hero .col-lg-5,
.search-hero {
    position: relative; /* riferimento per l'assoluto */
    z-index: 2 !important; /* livello alto per sovrascrivere altri z-index */
    overflow: visible !important; /* evitare clipping dei figli assoluti */
    transform: none !important; /* disabilita transform che crea stacking context */
}

/* Forza il dropdown sopra tutti */
#search-results {
    position: absolute !important;
    left: 0 !important;
    top: calc(100% + 12px) !important;
    width: 100% !important;
    max-height: 360px;
    overflow: auto !important;
    display: none; /* la visibilità continua a essere gestita dallo script */
    z-index: 2147483647 !important; /* massima priorità */
    background: #ffffff;
    color: #212529;
    border-radius: 8px;
    box-shadow: 0 8px 28px rgba(0,0,0,0.28);
}

/* Se nel progetto ci sono slider/carousel comuni che creano stacking contexts,
   sovrascriviamo in modo mirato (potrebbe influire sul comportamento del plugin) */
.slick-slider,
.slick-list,
.slick-track,
.swiper-container,
.owl-carousel,
.carousel {
    /* Do not remove transforms on carousel internals — transforms are required by many slider libraries (e.g. Slick, Swiper).
       Only ensure overflow is visible so dropdowns are not clipped. Removing transform breaks the sliding behavior. */
    overflow: visible !important;
}

/* Metti #team sotto per sicurezza */
#team {
    position: relative;
    z-index: 1 !important;
    /*overflow: visible !important;*/
}

/* Footer esteso: griglia link + barra inferiore */
.footer-links-grid {
    border-bottom: 1px solid rgba(255,255,255,0.04);
}

    .footer-links-grid .footer-heading {
        color: rgba(255,255,255,0.95);
        font-weight: 700;
        margin-bottom: 0.6rem;
        font-size: 0.95rem;
    }

    .footer-links-grid ul {
        margin: 0;
        padding: 0;
    }

    .footer-links-grid a {
        color: rgba(255,255,255,0.82);
        text-decoration: none;
        display: inline-block;
        padding: 4px 0;
        font-size: 0.92rem;
    }

        .footer-links-grid a:hover {
            text-decoration: underline;
            color: #fff;
        }

footer {
    background: #121329;
    color: #ffffff;
    /*padding: 2rem 0;*/
}

.footer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-direction: column;
}

.footer-col {
    flex: 1 1 0;
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 0.5rem;
}

.footer-col--left {
    justify-content: flex-start;
}

.footer-col--center {
    justify-content: center;
    text-align: center;
}

.footer-col--right {
    justify-content: flex-end;
}

.footer-logo-text {
    font-weight: 700;
    font-size: 1.25rem;
    color: #fff;
}

.social-links {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: nowrap;
}

    .social-links a {
        color: #ffffff;
        width: 36px;
        height: 36px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        text-decoration: none;
        background: transparent;
        transition: transform .12s ease;
    }

        .social-links a svg {
            width: 18px;
            height: 18px;
            display: block;
        }

        .social-links a:hover {
            transform: translateY(-3px);
            background: rgba(255,255,255,0.03);
        }

.footer-credits {
    color: rgba(255,255,255,0.72);
    font-size: 13px;
    text-align: center;
    padding-top: 8px;
}

/* Responsive: impila la griglia e la barra inferiore su mobile */
@media (max-width: 767.98px) {
    .footer-links-grid .row > [class*="col-"] {
        padding-left: 0.25rem;
        padding-right: 0.25rem;
    }

    .footer-inner {
        flex-direction: column;
        text-align: center;
        gap: 8px;
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .footer-col {
        justify-content: center;
    }

    .footer-col--right {
        order: 3;
    }

    .footer-col--center {
        order: 2;
    }

    .footer-col--left {
        order: 1;
    }

    .social-links {
        justify-content: center;
        gap: 10px;
    }

    .footer-links-grid {
        padding-bottom: 0.75rem;
    }
}

/* Collapsible footer (mobile) + desktop grid */

/* Toggle button (hidden on desktop) */
.footer-toggle {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    color: rgba(255,255,255,0.95);
    font-weight: 700;
    padding: 12px 0;
    display: none; /* shown on mobile via media query */
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    position: relative;
}

    .footer-toggle .chev {
        display: inline-block;
        width: 11px;
        height: 11px;
        border-right: 2px solid rgba(255,255,255,0.9);
        border-bottom: 2px solid rgba(255,255,255,0.9);
        transform: rotate(-45deg);
        transition: transform .22s ease;
        margin-left: 8px;
    }

/* Panel collapsed state (mobile) */
.footer-panel {
    max-height: none;
    overflow: visible;
    transition: max-height .28s ease;
}

/* .open class will be set on parent; rotate arrow */
.footer-accordion-item.open .chev {
    transform: rotate(45deg); /* points up */
}

/* Default: maintain desktop behaviour (panels visible) */
@media (min-width: 768px) {
    .footer-toggle {
        display: none !important;
    }

    .footer-panel {
        max-height: none !important;
        overflow: visible !important;
        padding-bottom: 0;
    }
}

/* Mobile: show toggles, collapse panels */
@media (max-width: 767.98px) {
    .footer-toggle {
        display: flex;
    }

    .footer-panel {
        max-height: 0;
        overflow: hidden;
        padding: 0;
    }

    /* small visual separator like Tiqets */
    .footer-links-grid {
        border-bottom: 1px solid rgba(255,255,255,0.04);
        padding-bottom: 0.75rem;
    }

    .footer-heading {
        display: none;
    }
    /* we use toggle button label instead */
}

/* Keep links appearance */
.footer-links-grid a {
    color: rgba(255,255,255,0.82);
    text-decoration: none;
    display: inline-block;
    padding: 6px 0;
}

    .footer-links-grid a:hover {
        text-decoration: underline;
        color: #fff;
    }

/* ensure footer-inner and social rules remain as before */
.footer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.footer-col {
    flex: 1 1 0;
    display: flex;
    align-items: center;
}

.footer-col--left {
    justify-content: flex-start;
}

.footer-col--center {
    justify-content: center;
    text-align: center;
}

.footer-col--right {
    justify-content: flex-end;
}

.footer-logo-text {
    font-weight: 700;
    font-size: 1.25rem;
    color: #fff;
}

.social-links {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: nowrap;
}

    .social-links a {
        color: #ffffff;
        width: 36px;
        height: 36px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        text-decoration: none;
        background: transparent;
        transition: transform .12s ease;
    }

        .social-links a svg {
            width: 18px;
            height: 18px;
            display: block;
        }

        .social-links a:hover {
            transform: translateY(-3px);
            background: rgba(255,255,255,0.03);
        }

.footer-credits {
    color: rgba(255,255,255,0.72);
    font-size: 13px;
    text-align: center;
    padding-top: 8px;
}

/* Accessibility/focus */
.footer-toggle:focus {
    outline: 2px solid rgba(255,255,255,0.12);
    outline-offset: 2px;
}

#footer a:focus {
    outline: 2px solid rgba(255,255,255,0.12);
    outline-offset: 2px;
}

/* Footer: top area lighter, bottom area scura (mantiene il resto delle regole) */
/* Colori: modifica le variabili se vuoi altre tonalità */
:root {
    --footer-top-bg: #2b3d57; /* colore più chiaro per la parte con gli accordion */
    --footer-bottom-bg: #13263f; /* colore scuro già usato per la parte inferiore */
    --footer-top-contrast: rgba(255,255,255,0.95);
    --footer-bottom-contrast: rgba(255,255,255,0.9);
}

/* Mantieni #footer come wrapper scuro di default per fallback */
#footer.footer {
    background: var(--footer-bottom-bg);
}

/* Area superiore: griglia di link / accordion */
.footer-links-grid {
    background: var(--footer-top-bg);
    color: var(--footer-top-contrast);
    border-bottom: 1px solid rgba(255,255,255,0.04);
    /* se vuoi che la colorazione estenda a tutta la larghezza della viewport,
       sposta questo blocco fuori dalla .container o usa un full-width wrapper */
}

    /* Assicura contrasto link su sfondo più chiaro */
    .footer-links-grid a {
        color: rgba(255,255,255,0.92);
    }

    .footer-links-grid .footer-toggle,
    .footer-links-grid .footer-heading {
        color: var(--footer-top-contrast);
    }

/* Area inferiore: lascia il colore scuro come prima */
.footer-inner,
.footer-credits {
    background: transparent; /* il wrapper #footer ha già il colore scuro */
    color: var(--footer-bottom-contrast);
}

/* Se vuoi una barra netta di separazione: */
.footer-separator {
    height: 1px;
    background: rgba(255,255,255,0.04);
    margin: 0;
}

/* Piccolo tweak mobile: rendi più evidente il contrasto dei toggle */
@media (max-width: 767.98px) {
    .footer-toggle {
        color: var(--footer-top-contrast);
        border-top: 1px solid rgba(255,255,255,0.04);
        padding: 14px 0;
    }

    .footer-links-grid {
        padding-top: 0.5rem;
        padding-bottom: 0.25rem;
    }
}

/* Se preferisci che la parte superiore sia piena larghezza (full-bleed),
   posso spostare .footer-links-grid fuori dalla .container oppure aggiungere
   questo wrapper per estenderne lo sfondo (opzionale). */

/* Full-bleed wrapper: ensures footer-links-grid spans full viewport width */
.footer-links-grid {
    width: 100%;
    left: 0;
    right: 0;
    /* rimuove il padding laterale ereditato quando usata come wrapper */
    padding: 0;
    box-sizing: border-box;
}

    /* Mantieni il container interno per allineamento del contenuto */
    .footer-links-grid .container {
        /* lascia il padding/spacing standard della container */
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
    }

/* Se vuoi che il colore del wrapper sia più chiaro e netto sui lati, assicurati
   che l'elemento body/html non abbia margini orizzontali impostati. */
html, body {
    margin: 0;
    padding: 0;
}

/* Header: deve rimanere sopra tutte le sezioni (incluso #hero) */
#header {
    position: relative;
    /*z-index:  !important;*/ /* più alto di #hero (10050) */
    background: #fff;
}

    /* Dropdown menu header: z-index elevato per rimanere sopra hero/altre sezioni */
    #header .dropdown-menu {
        z-index: 10200 !important; /* ancora più alto per garantire visibilità */
        position: absolute;
    }

    /* Profile dropdown specifico */
    #header .profile-dropdown-menu,
    #header .lang-dropdown-menu {
        z-index: 10200 !important;
    }

    /* Assicura che il contenitore dropdown sia posizionato correttamente */
    #header .dropdown {
        position: relative;
    }

/* Sezione Scopri - Layout Fluido (stile Tiqets) */
.discover-section {
    background: #f8f9fa;
}

    .discover-section h2 {
        font-weight: 700;
        color: #0b2540;
        font-size: 1.75rem;
    }

/* Tab navigation pills */
.discover-tabs {
    border-bottom: 1px solid #dee2e6;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
}

    .discover-tabs .nav-link {
        border-radius: 0;
        border: none;
        border-bottom: 3px solid transparent;
        color: #6c757d;
        font-weight: 600;
        padding: 0.75rem 1.5rem;
        transition: all .2s ease;
        background: transparent;
        white-space: nowrap;
    }

        .discover-tabs .nav-link:hover {
            color: #0b2540;
            background: transparent;
        }

        .discover-tabs .nav-link.active {
            color: #0b2540;
            background: transparent;
            border-bottom-color: #0d6efd;
        }

/* Tab content */
.discover-content {
    padding-top: 1.5rem;
    min-height: 200px;
}

.discover-subtitle {
    font-weight: 700;
    color: #0b2540;
    font-size: 1.1rem;
    margin-bottom: 1rem;
}

/* Wrapper fluido con flex-wrap */
.discover-links-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

/* Link stile Tiqets - dimensione fluida */
.discover-link {
    display: inline-block;
    padding: 0.55rem 0.95rem;
    background: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    color: #0b2540;
    text-decoration: none;
    font-weight: 500;
    font-size: 0.85rem;
    transition: all .2s ease;
    white-space: nowrap;
    flex: 0 0 auto; /* non si espande né si riduce, dimensione automatica */
}

    .discover-link:hover {
        background: #0d6efd;
        color: #ffffff;
        border-color: #0d6efd;
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(13,110,253,0.2);
    }

/* Responsive */
@media (max-width: 767.98px) {
    .discover-section h2 {
        font-size: 1.5rem;
    }

    .discover-tabs {
        justify-content: flex-start;
        gap: 0.25rem;
    }

        .discover-tabs .nav-link {
            font-size: 0.9rem;
            padding: 0.6rem 1rem;
        }

    .discover-link {
        font-size: 0.9rem;
        padding: 0.6rem 1rem;
    }

    .discover-links-wrapper {
        gap: 0.5rem;
    }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 991.98px) {
    .discover-link {
        padding: 0.7rem 1.15rem;
    }
}

/* Footer: mostra sempre il titolo della colonna */
.footer-toggle .footer-title {
    display: block;
    font-weight: 600;
    font-size: 1rem;
    color: var(--heading-color, #fff);
    margin-bottom: 0.75rem;
}

/* Desktop: trasforma il toggle in semplice heading visivo */
@media (min-width: 768px) {
    .footer-title-desk {
        display: block;
        font-weight: 600;
        font-size: 1rem;
        color: var(--heading-color, #fff);
        margin-bottom: 0.75rem;
    }

    .footer-toggle {
        background: none;
        border: none;
        padding: 0;
        cursor: default;
        pointer-events: none; /* disabilita click */
        width: 100%;
        text-align: left;
    }

        .footer-toggle .chev {
            display: none; /* nasconde la chevron su desktop */
        }

        .footer-toggle .footer-title {
            margin-bottom: 1.25rem; /* più spazio tra titolo e link */
            font-size: 1.1rem;
        }

    /* Assicura che il pannello link sia sempre visibile su desktop */
    .footer-panel {
        display: block !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

/* Mobile: mantieni comportamento accordion */
@media (max-width: 767.98px) {
    .footer-title-desk {
        display: none;
    }

    .footer-toggle {
        width: 100%;
        background: transparent;
        border: none;
        padding: 0.75rem 0;
        display: flex;
        justify-content: space-between;
        align-items: center;
        cursor: pointer;
        color: var(--heading-color, #fff);
        text-align: left;
    }

        .footer-toggle .chev {
            display: inline-block;
            transition: transform 0.3s ease;
        }

    .footer-accordion-item.open .chev {
        transform: rotate(180deg);
    }

    .footer-panel {
        overflow: hidden;
        max-height: 0;
        transition: max-height 0.35s ease;
    }
}

/* Footer - TripAdvisor Widget Styles */
.footer-tripadvisor {
    display: flex;
    flex-direction: column;
}

.footer-title-static {
    font-weight: 600;
    margin-bottom: 1rem;
}

.footer-panel-static {
    display: block !important;
    max-height: none !important;
}

.footer-tripadvisor .tripadvisor-widget {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.tripadvisor-logo {
    max-width: 150px;
    height: auto;
}

.tripadvisor-rating .rating-stars {
    color: #00af87;
    font-size: 1.2rem;
    display: flex;
    gap: 0.25rem;
    justify-content: center;
}

.tripadvisor-rating .rating-text {
    font-size: 0.9rem;
}

.tripadvisor-rating a {
    color: inherit;
    text-decoration: underline;
}

    .tripadvisor-rating a:hover {
        text-decoration: none;
    }

/* Mobile: visualizza su una singola riga orizzontale */
@media (max-width: 767px) {
    .footer-tripadvisor {
        margin-top: 1.5rem;
        padding-top: 1.5rem;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
    }

    .footer-title-static {
        text-align: center;
        margin-bottom: 1rem;
    }

    .footer-panel-static {
        padding: 0;
    }

    .footer-tripadvisor .tripadvisor-widget {
        flex-direction: row;
        justify-content: center;
        align-items: center;
        gap: 1.5rem;
        flex-wrap: wrap;
    }

    .tripadvisor-logo {
        max-width: 120px;
        margin-bottom: 0 !important;
    }

    .tripadvisor-rating {
        text-align: left;
    }

        .tripadvisor-rating .rating-stars {
            justify-content: flex-start;
        }
}

/* Desktop: mantieni layout verticale */
@media (min-width: 768px) {
    .footer-tripadvisor .tripadvisor-widget {
        align-items: flex-start;
        text-align: left;
    }

    .tripadvisor-rating .rating-stars {
        justify-content: flex-start;
    }

    .tripadvisor-rating .rating-text {
        text-align: left;
    }
}

.text-justify {
    margin: 0;
    /*text-indent: 2rem;*/
    text-align: justify;
}

/* === CART PAGE STYLES === */



.cart-item-card {
    border: 1px solid #e9ecef;
    border-radius: 12px;
    padding: 25px;
    margin-bottom: 20px;
    background: #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.04);
    transition: box-shadow 0.3s ease;
}

    .cart-item-card:hover {
        box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    }

.cart-item-image {
    border-radius: 8px;
    overflow: hidden;
    height: 180px;
    object-fit: cover;
}

.cart-item-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #212529;
    margin-bottom: 8px;
}

.cart-item-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 15px;
}

    .cart-item-rating .stars {
        color: #ffc107;
    }

    .cart-item-rating .reviews {
        color: #6c757d;
        font-size: 0.9rem;
    }

.cart-detail-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

    .cart-detail-list li {
        padding: 10px 0;
        border-bottom: 1px solid #f1f3f5;
        display: flex;
        align-items: center;
        gap: 12px;
        color: #495057;
    }

        .cart-detail-list li:last-child {
            border-bottom: none;
        }

    .cart-detail-list i {
        color: #6c757d;
        width: 20px;
    }

.cart-item-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #e9ecef;
}

.cart-item-price {
    font-size: 1.5rem;
    font-weight: 700;
    color: #dc3545;
}

.cart-item-price-original {
    text-decoration: line-through;
    color: #6c757d;
    font-size: 1rem;
    margin-right: 10px;
}

/*.cart-modify-btn {
    border: 1px solid #dee2e6;
    background: #fff;
    padding: 8px 20px;
    border-radius: 20px;
    color: #495057;
    font-weight: 500;
    transition: all 0.3s ease;
}

    .cart-modify-btn:hover {
        background: #f8f9fa;
        border-color: #adb5bd;
    }*/

.cart-delete-btn {
    color: #6c757d;
    font-size: 1.2rem;
    margin-left: 10px;
    transition: color 0.3s ease;
}

    .cart-delete-btn:hover {
        color: #dc3545;
    }

.cart-summary-card {
    border: 1px solid #e9ecef;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    top: 20px;
}

.cart-summary-header {
    background: #f8f9fa;
    padding: 20px;
    font-weight: 600;
    font-size: 1.1rem;
}

.cart-summary-body {
    padding: 25px;
}

.cart-summary-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.cart-summary-total-label {
    font-size: 1rem;
    color: #495057;
}

.cart-summary-total-price {
    font-size: 1.75rem;
    font-weight: 700;
    color: #dc3545;
}

.cart-summary-total-original {
    text-decoration: line-through;
    color: #6c757d;
    font-size: 1rem;
}

.cart-summary-savings {
    background: #d1f4e0;
    padding: 15px;
    border-radius: 8px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

    .cart-summary-savings i {
        color: #28a745;
    }

.cart-summary-savings-text {
    color: #155724;
    font-weight: 600;
    font-size: 0.95rem;
}

.cart-summary-taxes {
    color: #28a745;
    font-size: 0.9rem;
    margin-bottom: 20px;
    text-align: right;
}

/*.cart-checkout-btn {
    width: 100%;
    padding: 15px;
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 8px;
    border: none;
    background: #0d6efd;
    color: #fff;
    transition: background 0.3s ease;
}

    .cart-checkout-btn:hover {
        background: #0b5ed7;
    }*/

.cart-benefits-card {
    border: 1px solid #e9ecef;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    margin-top: 20px;
}

.cart-benefits-header {
    background: #f8f9fa;
    padding: 15px 20px;
    font-weight: 600;
}

.cart-benefits-list {
    padding: 20px;
}

    .cart-benefits-list li {
        padding: 10px 0;
        display: flex;
        align-items: center;
        gap: 12px;
        color: #495057;
    }

    .cart-benefits-list i {
        color: #28a745;
        width: 20px;
    }

.cart-cancellation {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}

    .cart-cancellation i {
        color: #28a745;
    }

.cart-cancellation-text {
    color: #495057;
    font-size: 0.95rem;
}

/* === END CART PAGE STYLES === */

/* Experience card - Price with discount badge */
.card-footer .text-end .badge {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
    font-weight: 600;
}

.card-footer .text-decoration-line-through {
    font-size: 0.85rem;
    color: #6c757d;
}

/* Grid dinamico per le card esperienze */
.experiences-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
    width: 100%;
}

.experience-grid-item {
    display: flex;
    justify-content: center;
    min-width: 0;
}

/* Responsive adjustments */
@media (min-width: 576px) {
    .experiences-grid {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    }
}

@media (min-width: 768px) {
    .experiences-grid {
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
        justify-content: center;
    }
}

@media (min-width: 992px) {
    .experiences-grid {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        max-width: 100%;
    }
}

@media (min-width: 1200px) {
    .experiences-grid {
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: 2rem;
    }
}

/* Extra large screens - garantisce 4 colonne */
@media (min-width: 1400px) {
    .experiences-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 2rem;
    }
}

/* Assicura che la card occupi l'intera altezza disponibile */
.experience-grid-item > a {
    width: 100%;
    height: 100%;
}


.availability-calendar {
    background: #fff;
    /*padding: 1rem;*/
    border-radius: 8px;
}

.calendar-days-wrapper {
    position: relative;
}

.calendar-days {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

    .calendar-days::-webkit-scrollbar {
        display: none;
    }

.calendar-day {
    color: #000;
    flex: 0 0 auto;
    min-width: 110px;
    padding: 1rem;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
}

    .calendar-day:hover {
        border-color: var(--bs-primary);
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    }

    .calendar-day.active {
        background-color: #ffca2b;
        /*border-color: #021c36;*/
        color: #021c36;
    }

    .calendar-day.more-dates {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
    }

        .calendar-day.more-dates i {
            font-size: 1.5rem;
        }

.day-number {
    font-size: 1.5rem;
    margin: 0.5rem 0;
}

.day-options {
    border-top: 2px solid currentColor;
    padding-top: 0.25rem;
    display: inline-block;
}

/* Availability Widget Styles */
.availability-widget {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.availability-header {
    margin-bottom: 20px;
}

    .availability-header .badge {
        font-size: 0.75rem;
        font-weight: 600;
        padding: 6px 12px;
        border-radius: 4px;
    }

.price-info {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.price-label {
    font-size: 0.875rem;
    color: #666;
}

.price-amount {
    font-size: 2rem;
    font-weight: 700;
    color: #000;
}

.price-per-person {
    font-size: 0.875rem;
    color: #666;
}

.availability-form .form-field {
    margin-bottom: 12px;
}

.availability-form .form-control,
.availability-form .form-select {
    padding: 14px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-size: 0.95rem;
    background-color: #f5f5f5;
}

    .availability-form .form-control:focus,
    .availability-form .form-select:focus {
        background-color: #fff;
        border-color: #0066cc;
        box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);
    }

.availability-form .input-group-text {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background-color: #f5f5f5;
    color: #666;
}

.availability-form .dropdown-toggle::after {
    display: none;
}

.availability-form .dropdown-menu {
    border-radius: 8px;
    border: 1px solid #e0e0e0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    margin-top: 8px;
}

.availability-form .btn-primary {
    background-color: #0066cc;
    border: none;
    font-size: 1rem;
    transition: background-color 0.2s;
}

    .availability-form .btn-primary:hover {
        background-color: #0052a3;
    }

.availability-form .bi {
    font-size: 1.2rem;
}

/* Tour Available Results Styles */
.tour-available-results {
    margin-top: 20px;
}

.tour-result-form {
    margin-bottom: 16px;
}

.tour-result-card {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}

    .tour-result-card:hover {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    }

.tour-result-header {
    padding: 16px 20px 12px;
}

    .tour-result-header .badge {
        font-size: 0.75rem;
        font-weight: 600;
        padding: 6px 12px;
        border-radius: 4px;
    }

.tour-result-content {
    padding: 10px 20px 16px;
}

.tour-result-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 12px;
    line-height: 1.4;
}

.tour-result-description {
    font-size: 0.9rem;
    line-height: 1.6;
    color: #666;
}

    .tour-result-description p {
        margin-bottom: 8px;
    }

    .tour-result-description .bi {
        color: #0066cc;
    }

.tour-result-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    background-color: #f8f9fa;
    border-top: 1px solid #e0e0e0;
}

.tour-result-price {
    flex: 1;
}

.price-amount {
    font-size: 1.75rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 4px;
}

.price-details {
    font-size: 0.875rem;
    color: #666;
    margin-bottom: 4px;
}

    .price-details span:not(:last-child)::after {
        content: " + ";
        margin: 0 4px;
    }

.price-note {
    margin-top: 4px;
}

    .price-note small {
        font-size: 0.75rem;
    }

.tour-result-action {
    margin-left: 20px;
}

.btn-select {
    background-color: #0066cc;
    border: none;
    border-radius: 25px;
    padding: 12px 32px;
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
    transition: background-color 0.2s ease;
    white-space: nowrap;
}

    .btn-select:hover {
        background-color: #0052a3;
    }

    .btn-select:focus {
        box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.3);
    }

/* Responsive adjustments */
@media (max-width: 768px) {
    .tour-result-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .tour-result-action {
        margin-left: 0;
        width: 100%;
    }

    .btn-select {
        width: 100%;
    }

    .price-amount {
        font-size: 1.5rem;
    }

    .tour-result-title {
        font-size: 1.1rem;
    }
}

/* Empty state */
.alert.alert-info {
    border-radius: 8px;
    border-left: 4px solid #0066cc;
}

