/* =========================================================
   CALENDARIO CORSI RESPONSIVE
   Il numero di mesi dipende dallo spazio reale del calendario.
========================================================= */

.cc-slider-wrap {
    container-name: cc-calendar-slider;
    container-type: inline-size;
    min-width: 0;
}

.cc-view-slider .cc-calendar-year {
    width: 100%;
    min-width: 0;
}

@container cc-calendar-slider (max-width: 1200px) {
    .cc-view-slider .cc-calendar-month {
        flex: 0 0 calc((100% - 54px) / 4);
    }

    .cc-view-year .cc-calendar-year,
    .cc-view-events .cc-calendar-year {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@container cc-calendar-slider (max-width: 930px) {
    .cc-view-slider .cc-calendar-month {
        flex: 0 0 calc((100% - 36px) / 3);
    }

    .cc-view-year .cc-calendar-year,
    .cc-view-events .cc-calendar-year {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@container cc-calendar-slider (max-width: 680px) {
    .cc-view-slider .cc-calendar-month {
        flex: 0 0 calc((100% - 18px) / 2);
    }

    .cc-view-year .cc-calendar-year,
    .cc-view-events .cc-calendar-year {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cc-slider-arrow {
        width: 36px;
        min-width: 36px;
        height: 36px;
        min-height: 36px;
        font-size: 22px;
    }
}

@container cc-calendar-slider (max-width: 480px) {
    .cc-slider-wrap {
        padding-inline: 0;
    }

    .cc-view-slider .cc-calendar-year {
        gap: 12px;
        padding-inline: 0;
    }

    .cc-view-slider .cc-calendar-month {
        flex: 0 0 100%;
        width: 100%;
        min-width: 100%;
        scroll-snap-align: start;
    }

    .cc-view-year .cc-calendar-year,
    .cc-view-events .cc-calendar-year {
        grid-template-columns: 1fr;
    }

    .cc-slider-arrow {
        display: none !important;
    }

    .cc-slider-dots {
        flex-wrap: nowrap;
        justify-content: flex-start;
        max-width: 100%;
        padding-block: 10px;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    .cc-dot {
        flex: 0 0 auto;
    }
}

/* Fallback per browser senza container queries. */
@supports not (container-type: inline-size) {
    @media (max-width: 1500px) {
        .cc-view-slider .cc-calendar-month {
            flex: 0 0 calc((100% - 54px) / 4);
        }
    }

    @media (max-width: 1100px) {
        .cc-view-slider .cc-calendar-month {
            flex: 0 0 calc((100% - 36px) / 3);
        }
    }

    @media (max-width: 850px) {
        .cc-view-slider .cc-calendar-month {
            flex: 0 0 calc((100% - 18px) / 2);
        }
    }

    @media (max-width: 600px) {
        .cc-view-slider .cc-calendar-month {
            flex: 0 0 100%;
            min-width: 100%;
        }
    }
}
