/* Responsive Breakpoints & Fluid Design */

:root {
    --section-pad: 8rem 5%;
    --section-pad-mobile: 4rem 5%;
}

@media (max-width: 1400px) {
    .hero-content h1 {
        font-size: 5rem;
    }
}

@media (max-width: 1200px) {
    .hero-content h1 {
        font-size: 4.5rem;
    }

    section {
        padding: 6rem 5%;
    }
}

@media (max-width: 992px) {


    .section-title {
        font-size: 3rem;
    }

    /* Layout Stacks */
    .hero-slider .hero-content {
        padding: 0 5%;
        text-align: center;
    }

    .hero-content p {
        margin: 0 auto 3rem;
        text-align: center;
        border-left: none;
        border-top: 2px solid var(--primary);
        padding-top: 1.5rem;
        padding-left: 0;
    }

    section {
        padding: var(--section-pad-mobile);
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 3rem;
    }

    .servicios-grid,
    .ventas-grid {
        grid-template-columns: 1fr 1fr !important;
    }

    #nosotros,
    .skills-grid,
    .proceso-grid {
        grid-template-columns: 1fr !important;
        gap: 3rem !important;
    }

    .nosotros-img-container {
        margin-top: 2rem;
    }
}

@media (max-width: 768px) {
    .hero-content h1 {
        font-size: 3rem;
        line-height: 1;
    }

    .section-title {
        font-size: 2.5rem;
    }

    .portfolio-grid {
        grid-template-columns: 1fr;
    }

    .servicios-grid,
    .ventas-grid {
        grid-template-columns: 1fr !important;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .footer-col {
        padding: 0 !important;
    }

    .footer-bottom {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
    }

    /* Hide custom cursor on touch devices */
    .custom-cursor,
    .cursor-follower {
        display: none;
    }

    body {
        cursor: auto;
    }

    /* Fix Index "Presencia" */
    #sedes>div {
        grid-template-columns: 1fr !important;
    }

    #sedes iframe {
        height: 300px !important;
    }

    /* Fix Generic 2-column Grids */
    section[style*="grid-template-columns: 1fr 1fr"],
    section[style*="grid-template-columns: 1fr 1fr"]>div {
        grid-template-columns: 1fr !important;
        gap: 4rem !important;
    }

    /* Modal Mobile */
    .modal-content {
        padding: 2rem !important;
    }

    .modal-spec-grid {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 480px) {
    .hero-content h1 {
        font-size: 2.2rem;
    }

    .nav-links a.btn-cta {
        display: none;
    }

    /* Handled by drawer */

    .logo {
        font-size: 1.2rem;
    }

    .btn-cta {
        padding: 1rem 2rem;
        font-size: 0.7rem;
    }

    /* Stats grid in index */
    .stats-container {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }
}

/* Hero Title Scaling */
.hero-title {
    font-size: 7rem;
    line-height: 0.85;
    margin-bottom: 3rem;
    font-weight: 800;
    letter-spacing: -3px;
    text-transform: uppercase;
}

@media (max-width: 1400px) {
    .hero-title {
        font-size: 6rem;
    }
}

@media (max-width: 1200px) {
    .hero-title {
        font-size: 5rem;
    }
}

@media (max-width: 992px) {
    .hero-title {
        font-size: 4rem;
        text-align: center;
    }
}

@media (max-width: 768px) {
    .hero-title {
        font-size: 3.2rem;
    }
}

@media (max-width: 480px) {
    .hero-title {
        font-size: 2.5rem;
        letter-spacing: -1px;
    }
}