/* ========================= */
/* RESPONSIVE */
/* ========================= */

@media (max-width: 1024px) {
    nav {
        padding: 18px 30px;
    }

    .container {
        max-width: 95%;
    }

    .hero-content h1,
    .hero-content h2 {
        font-size: 2.5rem;
    }

    .internal-content,
    section {
        padding: 80px 30px;
    }

    .servicios-grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .proceso-grid-top {
        grid-template-columns: repeat(2, 1fr);
    }

    .proceso-grid-bottom {
        grid-template-columns: repeat(2, 1fr);
        max-width: 100%;
        margin: 25px 0 0;
    }

    .contact-grid {
        gap: 40px;
    }
}

@media (max-width: 768px) {
    nav {
        padding: 16px 20px;
    }

    .nav-container {
        flex-direction: column;
        gap: 15px;
    }

    .nav-links {
        gap: 18px;
        flex-wrap: wrap;
        justify-content: center;
    }

    .logo img {
        height: 40px;
    }

    header {
        padding: 0 20px;
    }

    .hero-content h1,
    .hero-content h2 {
        font-size: 2rem;
    }

    .hero-content p {
        font-size: 1.05rem;
    }

    .hero-buttons {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .btn {
        width: 100%;
        max-width: 280px;
        text-align: center;
    }

    .internal-header {
        padding-top: 170px;
        padding-bottom: 50px;
    }

    .internal-header h1 {
        font-size: 2rem;
    }

    .internal-content,
    section {
        padding: 70px 20px;
    }

    .contact-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .servicios-grid-4 {
        grid-template-columns: 1fr;
    }

    .proceso-grid-top,
    .proceso-grid-bottom {
        grid-template-columns: 1fr;
        max-width: 100%;
        margin-top: 25px;
    }

    .galeria-grid {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }

    #flecha-izquierda,
    #flecha-derecha {
        font-size: 38px;
        padding: 8px;
    }

    #flecha-izquierda {
        left: 12px;
    }

    #flecha-derecha {
        right: 12px;
    }

    #cerrar-lightbox {
        top: 12px;
        right: 18px;
        font-size: 34px;
    }

    #contador-lightbox {
        bottom: 15px;
        font-size: 13px;
        padding: 6px 12px;
    }
}

@media (max-width: 480px) {
    nav {
        padding: 14px 15px;
    }

    .nav-links {
        gap: 10px;
        font-size: 0.80rem;
    }

    .logo img {
        height: 36px;
    }

    .hero-content h1,
    .hero-content h2 {
        font-size: 1.7rem;
    }

    .hero-content p {
        font-size: 1rem;
    }

    .internal-header {
        padding-top: 185px;
        padding-bottom: 40px;
    }

    .internal-header h1 {
        font-size: 1.8rem;
    }

    .internal-header p {
        font-size: 1rem;
    }

    .internal-content,
    section {
        padding: 60px 15px;
    }

    .grid div,
    .servicio-box,
    .proceso-box,
    .bloque-filosofia {
        padding: 22px;
    }

    .galeria-grid {
        grid-template-columns: 1fr;
    }

    .galeria-grid img {
        height: 220px;
    }

    #imagen-lightbox {
        max-width: 100%;
        max-height: 80vh;
    }

    #flecha-izquierda,
    #flecha-derecha {
        font-size: 32px;
    }

    .btn {
        max-width: 100%;
    }
}