@font-face {
    font-family: "Josefin Sans";
    src: url("../fonts/JosefinSans-VariableFont_wght.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
}

/* Fuente Neutra Text Light SC (OTF) */
@font-face {
    font-family: "Neutra Text Light SC";
    src: url("../fonts/NeutraText-LightSC.otf") format("opentype");
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: "Neutra Text Book";
    src: url("../fonts/NeutraText-Book.otf") format("opentype");
    font-style: normal;
}

@font-face {
    font-family: "Neutra Text Demi";
    src: url("../fonts/NeutraText-DemiSC.otf") format("opentype");
    font-weight: 100;
    font-style: normal;
}

.font-josefin {
    font-family: "Josefin Sans", sans-serif;
}

.font-neutra {
    font-family: "Neutra Text Light SC", serif;
}

.font-neutra-book {
    font-family: "Neutra Text Book", serif;
}

.font-regular {
    font-weight: 400;
}

.font-semibold {
    font-weight: 600;
}

.font-bold {
    font-weight: 700;
}

.hero-image {
    min-height: 700px;
}

@media (max-width: 768px) {
    .hero-image {
        height: 80vh;
        min-height: 400px;
    }
}

@media (max-width: 480px) {
    .hero-image {
        height: 70vh;
        min-height: 350px;
    }
}

/* Mejoras tipográficas responsivas */
.hero-title {
    font-size: clamp(2.5rem, 8vw, 6rem);
    line-height: 1.1;
}

.hero-subtitle {
    font-size: clamp(1rem, 3vw, 1.5rem);
}

.section-title-floating {
    font-size: clamp(2rem, 6vw, 3rem);
}

/* Solución para títulos flotantes responsivos */
@media (max-width: 1199px) {
    .floating-title {
        display: none !important;
    }

    .mobile-section-title {
        display: block !important;
    }
}

@media (min-width: 1200px) {
    .floating-title {
        display: block !important;
    }

    .mobile-section-title {
        display: none !important;
    }
}

/* Gallery responsivo mejorado */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
}

@media (min-width: 768px) {
    .gallery-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .gallery-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 2rem;
    }
}

/* Mejoras responsivas adicionales */
@media (max-width: 768px) {
    .stats-section {
        margin-top: -2rem;
    }

    .section-spacing {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

@media (max-width: 480px) {
    .stats-section {
        margin-top: -1rem;
    }
}

.gradient-overlay {
    background: linear-gradient(to right,
            rgba(0, 0, 0, 0.83),
            rgba(0, 0, 0, 0.4) 50%,
            rgba(0, 0, 0, 0) 100%);
}