/* Definiciones Base y Tipografía */
:root {
    --font-serif: 'Playfair Display', serif;
    --font-body: 'Lato', sans-serif;
}

.font-serif {
    font-family: var(--font-serif);
}

.font-body {
    font-family: var(--font-body);
}

/* Optimizaciones de renderizado */
.content-visibility-auto {
    content-visibility: auto;
    contain-intrinsic-size: 1000px;
}

/* Mejora masiva de rendimiento en scroll */

/* Animaciones */
.animate-fade-in-up {
    animation: fadeInUp 1s ease-out forwards;
    opacity: 0;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-pan-subtle {
    animation: panSubtle 30s infinite alternate ease-in-out;
    will-change: transform;
}

@keyframes panSubtle {
    0% {
        transform: scale(1.15) translate(-3%, 0);
    }

    100% {
        transform: scale(1.15) translate(3%, 0);
    }
}

.animate-zoom-pulse {
    animation: zoomPulse 2s infinite ease-in-out;
}

@keyframes zoomPulse {

    0%,
    100% {
        transform: scale(1);
        opacity: 0.8;
    }

    50% {
        transform: scale(1.3);
        opacity: 1;
    }
}

.animate-pulse-slow {
    animation: pulseSlow 4s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulseSlow {

    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: .85;
        transform: scale(1.05);
    }
}

/* Utilidades */
.fade-out {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease-out;
}

.scrollbar-hide::-webkit-scrollbar {
    display: none;
}

.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Custom Input Date Picker */
.hero-date-input::-webkit-calendar-picker-indicator {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}