/* css/custom.css */

/* Animazione Hero Section */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Utilità per nascondere la freccia di default del details/summary in Safari/Chrome */
.no-marker::-webkit-details-marker {
    display: none;
}

@keyframes marquee-ribbon-left {
    0% { transform: translate3d(0, 0, 0); -webkit-transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-50%, 0, 0); -webkit-transform: translate3d(-50%, 0, 0); }
}

@keyframes marquee-ribbon-right {
    0% { transform: translate3d(-50%, 0, 0); -webkit-transform: translate3d(-50%, 0, 0); }
    100% { transform: translate3d(0, 0, 0); -webkit-transform: translate3d(0, 0, 0); }
}

.animate-marquee-left {
    animation: marquee-ribbon-left 80s linear infinite;
}

.animate-marquee-right {
    animation: marquee-ribbon-right 80s linear infinite;
}

/* Scroll Reveal Classes */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.reveal-on-scroll.is-revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Flatpickr Airbnb Premium Style Overrides */
.flatpickr-calendar {
    width: max-content !important;
    padding: 16px 24px !important;
    border-radius: 32px !important;
    box-shadow: 0 10px 40px -10px rgba(0,0,0,0.2), 0 0 20px rgba(0,0,0,0.05) !important;
    border: none !important;
    font-family: inherit !important;
}
.flatpickr-calendar.arrowTop::before, .flatpickr-calendar.arrowTop::after,
.flatpickr-calendar.arrowBottom::before, .flatpickr-calendar.arrowBottom::after {
    display: none !important;
}
.flatpickr-months {
    margin-bottom: 16px;
}
.flatpickr-months .flatpickr-month {
    height: 48px;
}
.flatpickr-current-month {
    font-size: 1.15rem !important;
    padding-top: 8px !important;
    display: flex;
    justify-content: center;
    align-items: center;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
    font-weight: 700 !important;
    font-size: 1.15rem !important;
    color: #222222 !important;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    padding-right: 0;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
    background: transparent;
}
.flatpickr-current-month .numInputWrapper {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: #222222 !important;
}
.flatpickr-current-month .numInputWrapper:hover {
    background: transparent;
}
.flatpickr-weekday {
    font-size: 0.8rem !important;
    color: #717171 !important;
    font-weight: 600 !important;
    text-transform: capitalize;
}
.flatpickr-days {
    width: auto !important;
}
.dayContainer {
    width: auto !important;
    min-width: 300px;
    justify-content: center !important;
}
.flatpickr-day {
    max-width: 42px !important;
    height: 42px !important;
    line-height: 42px !important;
    font-weight: 600 !important;
    color: #222222;
    font-size: 0.95rem !important;
    margin-top: 2px !important;
    border: 1px solid transparent !important;
}
.flatpickr-day.inRange {
    background: #f7f7f7 !important;
    border-color: #f7f7f7 !important;
    box-shadow: -5px 0 0 #f7f7f7, 5px 0 0 #f7f7f7 !important;
    color: #222222 !important;
    border-radius: 0 !important;
}
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange,
.flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay {
    background: #222222 !important;
    border-color: #222222 !important;
    color: #fff !important;
    border-radius: 50% !important;
    font-weight: 700 !important;
    z-index: 2;
}
.flatpickr-day.today {
    border-color: #222222 !important;
    border-radius: 50% !important;
}
.flatpickr-day:hover {
    background: #f7f7f7 !important;
    border-color: #222222 !important;
    border-radius: 50% !important;
    color: #222222 !important;
}
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover {
    text-decoration: line-through;
    color: #d1d5db !important;
    background: transparent !important;
    border-color: transparent !important;
}
/* Freccette di navigazione mensile */
.flatpickr-prev-month, .flatpickr-next-month {
    padding: 10px !important;
    border-radius: 50% !important;
}
.flatpickr-prev-month:hover, .flatpickr-next-month:hover {
    background: #f7f7f7 !important;
}
.flatpickr-prev-month svg, .flatpickr-next-month svg {
    fill: #222222 !important;
    width: 14px !important;
    height: 14px !important;
}



/* Fix Flatpickr Overflow on Mobile */
@media (max-width: 640px) {
    .flatpickr-calendar {
        left: 50% !important;
        transform: translateX(-50%) !important;
        width: auto !important;
    }
}

/* Custom Scrollbar per elementi orizzontali */
.custom-scrollbar::-webkit-scrollbar {
    height: 6px;
}
.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
    background-color: rgba(187, 203, 194, 0.6); /* como-sage con opacita */
    border-radius: 10px;
}
.custom-scrollbar {
    scrollbar-width: thin;
    scrollbar-color: rgba(187, 203, 194, 0.6) transparent;
}

/* Card Flip Animation (Grid Approach for Dynamic Height) */
.flip-card {
    perspective: 1000px;
}
.flip-card-inner {
    display: grid;
    transition: transform 0.6s cubic-bezier(0.4, 0.0, 0.2, 1);
    transform-style: preserve-3d;
    height: 100%;
}
.flip-card.flipped .flip-card-inner {
    transform: rotateY(180deg);
}
.flip-card-front, .flip-card-back {
    grid-area: 1 / 1;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    background-color: white; /* Ensure background is solid so backface works cleanly */
}
.flip-card-back {
    transform: rotateY(180deg);
}
