/* ==== Preloader Styles ==== */
#preloader {
    position: fixed;
    inset: 0;
    background-color: #F9FAFB; /* light-gray */
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 0.5s ease-out, visibility 0.5s ease-out;
}

.preloader-logo {
    animation: pulse 1.5s infinite ease-in-out;
}

@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

#preloader.preloader-hidden {
    opacity: 0;
    visibility: hidden;
}

/* ==== Form Message Styles ==== */
#form-messages p {
    padding: 1rem;
    margin-bottom: 1rem;
    border-radius: 0.5rem;
    font-weight: 500;
}

.success-message {
    background-color: #D1FAE5; /* Green 100 */
    color: #065F46; /* Green 800 */
    border: 1px solid #6EE7B7; /* Green 300 */
}

.error-message {
    background-color: #FEE2E2; /* Red 100 */
    color: #991B1B; /* Red 800 */
    border: 1px solid #FCA5A5; /* Red 300 */
}


/* ==== Estilos personalizados (existentes) ==== */

/* Letra capital */
.styled-p::first-letter {
    color: #1E3A8A; /* primary-blue */
    font-size: 3em;
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    float: left;
    line-height: 0.8;
    margin-right: 0.1em;
    padding-top: 0.1em;
}

/* Texto resaltado */
.highlight {
    position: relative;
    display: inline-block;
    font-weight: 600;
    color: #1E3A8A; /* primary-blue */
}

/* Subrayado ondulado */
.highlight::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 3px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 10"><path d="M 0,5 C 25,10 75,0 100,5" stroke="%23F59E0B" stroke-width="2" fill="none"/></svg>');
    background-repeat: repeat-x;
    background-size: 20px 5px;
}

/* Animación de entrada */
@keyframes fadeIn {
    from { 
        opacity: 0; 
        transform: translateY(20px); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

.animate-fade-in {
    animation: fadeIn 1s ease-out forwards;
}

/* Estilo para el modal de idioma */
#language-modal.flex {
    display: flex;
}
/* ==== Video Gallery Styles ==== */
.video-gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 0.75rem; /* rounded-xl */
    cursor: pointer;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); /* shadow-md */
}

.video-gallery-item video {
    width: 100%;
    height: 16rem; /* h-64 */
    object-fit: cover;
    transition: transform 0.5s;
}

.video-gallery-item:hover video {
    transform: scale(1.10);
}

.video-play-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.4);
    opacity: 0;
    transition: opacity 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.video-gallery-item:hover .video-play-overlay {
    opacity: 1;
}

.video-play-overlay i {
    color: white;
    font-size: 4rem; /* text-6xl */
    text-shadow: 0 2px 4px rgba(0,0,0,0.5);
}