/* ============================================================================
   Novatecsystem | Portal Web Corporativo + NEIF
   Módulo M1 — Ajustes responsive.
   ============================================================================ */

@media (max-width: 1024px) {
    .stage-grid,
    .step-list {
        grid-template-columns: repeat(3, 1fr);
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-7);
    }
}

@media (max-width: 900px) {
    .site-nav {
        display: none;
        position: absolute;
        top: var(--header-h);
        left: 0;
        right: 0;
        background: var(--color-graphite);
        border-bottom: 1px solid var(--color-border);
        padding: var(--space-5);
    }

    .nav-toggle {
        display: inline-flex;
    }

    .nav-toggle-input:checked ~ .site-nav {
        display: block;
    }

    .nav-list {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-1);
    }

    .nav-link {
        display: block;
        padding: var(--space-3) var(--space-4);
    }

    .nav-submenu {
        position: static;
        display: none;
        border: none;
        border-radius: 0;
        box-shadow: none;
        background: transparent;
        padding-left: var(--space-4);
        margin-top: var(--space-1);
    }

    .nav-item.is-open > .nav-submenu {
        display: block;
    }

    .nav-submenu-link {
        padding: var(--space-2) var(--space-4);
        font-size: 0.88rem;
    }

    .grid-3 {
        grid-template-columns: 1fr;
    }

    .grid-2 {
        grid-template-columns: 1fr;
    }

    .stage-grid,
    .step-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .container {
        width: calc(100% - 2 * var(--space-4));
    }

    .hero {
        padding: var(--space-7) 0;
    }

    .hero-actions,
    .cta-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .btn {
        width: 100%;
    }

    .stage-grid,
    .step-list {
        grid-template-columns: 1fr;
    }

    .project-dl {
        grid-template-columns: 1fr;
        gap: var(--space-1);
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }
}

/* ---------------------------------------------------------------------------
   Página NEIF (M2)
   --------------------------------------------------------------------------- */
@media (max-width: 1024px) {
    .neif-hero-grid {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }

    .whatis-grid,
    .problem-list,
    .agnostic-grid,
    .comparison-grid {
        grid-template-columns: 1fr;
    }

    .principle-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .macrophase-grid,
    .benefit-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .stage-row {
        grid-template-columns: repeat(2, 1fr);
    }

    .stage-node::after,
    .track-turn {
        display: none;
    }
}

@media (max-width: 900px) {
    .role-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .neif-hero {
        padding: var(--space-7) 0;
    }

    .neif-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .pipeline {
        padding: var(--space-4);
    }

    .pipeline-label {
        font-size: 0.9rem;
    }

    .stage-row,
    .principle-grid,
    .macrophase-grid,
    .benefit-grid,
    .sector-grid,
    .whatis-cycle {
        grid-template-columns: 1fr;
    }

    .stage-node {
        border-left: 3px solid var(--color-primary);
    }

    .contact-strip-inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ---------------------------------------------------------------------------
   Página Soluciones (M3)
   --------------------------------------------------------------------------- */
@media (max-width: 1024px) {
    .sol-hero-grid {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }

    .transversal-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 900px) {
    .approach-points,
    .sol-compare-grid,
    .domain-grid,
    .iv-list,
    .sector-card-grid,
    .diff-grid {
        grid-template-columns: 1fr;
    }

    .domain-card:last-child {
        grid-column: auto;
    }
}

@media (max-width: 640px) {
    .sol-hero {
        padding: var(--space-7) 0;
    }

    .sol-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .sol-flow {
        flex-direction: column;
        align-items: stretch;
    }

    .sol-flow-node {
        justify-content: space-between;
    }

    .sol-flow-arrow {
        transform: rotate(90deg);
    }

    .capability-list,
    .transversal-grid {
        grid-template-columns: 1fr;
    }

    .iv-step-row {
        grid-template-columns: 1fr;
        gap: var(--space-1);
    }

    .domain-foot {
        flex-direction: column;
        align-items: stretch;
    }

    .domain-foot .btn {
        width: 100%;
    }

    .core-map {
        aspect-ratio: auto;
    }

    .core-map-svg {
        display: none;
    }

    .core-map-center {
        position: static;
        transform: none;
        width: 100%;
        margin-bottom: var(--space-4);
    }

    .core-map-nodes {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-3);
    }

    .core-map-node {
        position: static;
        transform: none;
    }
}
