/* ===========================================================
   Cargar SIEMPRE después de contact.css.
   =========================================================== */

/* ---------- TABLET ANCHA (≤ 980px) ---------- */
@media (max-width: 980px) {
    .beneficios {
        grid-template-columns: 1fr 1fr;
    }

    .footer-top {
        grid-template-columns: 1.4fr 1fr;
        gap: 32px 40px;
    }

    .footer-brand { grid-column: 1 / -1; }
}

/* ---------- HEADER: menú hamburguesa (≤ 1040px) ---------- */
@media (max-width: 1040px) {
    header {
        flex-wrap: nowrap;
        gap: 12px;
        padding: 10px 18px;
        min-height: auto;
    }

    .menu-toggle { display: flex; }

    .header-actions .btn-primary { display: none; }

    #logo-div { min-width: 0; }
    .logo-link { min-width: 0; }
    #logo-text { min-width: 0; }
    #logo { height: 46px; margin: 0; }
    #logo-text strong { font-size: 0.98rem; }
    #logo-text span { font-size: 0.62rem; letter-spacing: 0.6px; }

    /* Overlay oscuro detrás del drawer */
    .nav-overlay {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(2, 12, 27, 0.55);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.32s ease, visibility 0.32s ease;
        z-index: 1500;
    }
    .nav-overlay.active { opacity: 1; visibility: visible; }

    /* Drawer lateral (entra desde la derecha) */
    nav {
        position: fixed;
        top: 0;
        right: 0;
        height: 100vh;
        height: 100dvh;
        width: min(330px, 86vw);
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        background: linear-gradient(180deg, #002554 0%, #013a6b 100%);
        border-left: 1px solid rgba(72, 202, 228, 0.2);
        box-shadow: -18px 0 44px rgba(0, 0, 0, 0.4);
        padding: 16px 18px 24px;
        z-index: 1600;
        transform: translateX(105%);
        transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    nav.active { transform: translateX(0); }

    /* cabecera del drawer */
    .nav-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-bottom: 16px;
        margin-bottom: 8px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }
    .nav-head span {
        color: rgba(255, 255, 255, 0.55);
        font-size: 12px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 1.2px;
    }
    .nav-close {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        border-radius: 10px;
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.15);
        color: #fff;
        cursor: pointer;
        transition: background-color 0.2s ease;
    }
    .nav-close:hover { background: rgba(255, 255, 255, 0.18); }

    nav ul {
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
        width: 100%;
    }
    nav a {
        display: block;
        padding: 14px;
        border-radius: 12px;
        font-size: 1.02rem;
    }

    /* CTA Contacto dentro del drawer: botón completo y centrado */
    nav a.nav-cta-link,
    nav a.nav-cta-link.active {
        margin: 10px 0 0;
        padding: 14px;
        text-align: center;
    }

    .nav-cta {
        display: block;
        text-align: center;
        margin-top: 14px;
        padding: 14px;
        background: var(--secondary);
        color: #fff;
        border-radius: 12px;
        font-weight: 700;
        text-decoration: none;
        transition: background-color 0.2s ease, color 0.2s ease;
    }
    .nav-cta:hover { background: var(--accent); color: var(--primary); }

    /* pie del drawer: redes */
    .nav-foot {
        display: block;
        margin-top: auto;
        padding-top: 22px;
    }
    .nav-foot-label {
        display: block;
        color: rgba(255, 255, 255, 0.5);
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 1px;
        margin-bottom: 11px;
    }
    .nav-social { display: flex; gap: 10px; }
    .nav-social a {
        width: 40px;
        height: 40px;
        border-radius: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.14);
        color: #fff;
        transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
    }
    .nav-social a:hover { background: var(--accent); color: var(--primary); transform: translateY(-2px); }

    /* entrada escalonada de los enlaces al abrir */
    nav.active ul li,
    nav.active .nav-cta {
        opacity: 0;
        animation: navItemIn 0.45s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
    }
    nav.active ul li:nth-child(1) { animation-delay: 0.14s; }
    nav.active ul li:nth-child(2) { animation-delay: 0.20s; }
    nav.active ul li:nth-child(3) { animation-delay: 0.26s; }
    nav.active ul li:nth-child(4) { animation-delay: 0.32s; }
    nav.active ul li:nth-child(5) { animation-delay: 0.38s; }
    nav.active ul li:nth-child(6) { animation-delay: 0.44s; }
    nav.active .nav-cta { animation-delay: 0.44s; }

    @keyframes navItemIn {
        from { opacity: 0; transform: translateX(18px); }
        to   { opacity: 1; transform: none; }
    }

    .breadcrumb-in { padding: 10px 18px; }
}

/* ---------- TABLET (≤ 900px) ---------- */
@media (max-width: 900px) {
    .grid-contacto {
        grid-template-columns: 1fr;
        margin-top: 32px;
    }

    .btn-whatsapp {
        width: 3rem;
        height: 3rem;
        bottom: 18px;
        right: 18px;
    }

}

/* ---------- MÓVIL GRANDE (≤ 768px) ---------- */
@media (max-width: 768px) {
    .hero-contacto {
        padding: 3.5rem 1.5rem;
    }

    .beneficios {
        margin-top: 28px;
        padding: 0;
    }

    .fila-doble {
        grid-template-columns: 1fr;
    }

    .formulario-wrap,
    .datos {
        padding: 22px;
    }

    .hero-acciones {
        flex-direction: column;
    }

    .hero-btn-primary,
    .hero-btn-ghost {
        justify-content: center;
    }

    .faq-item summary {
        font-size: 15px;
        padding: 16px 18px;
    }

    .faq-item p {
        padding: 0 18px 18px 18px;
    }

    .devices-card {
        height: auto;
    }

    .inner-card {
        padding-top: 35px;
        flex-direction: column;
        text-align: center;
    }

    .devices-card img {
        width:10rem;
    }

    .devices-card p {
        font-size: 1.1rem;
    }

    /* Footer móvil: limpio, alineado a la izquierda, solo lo esencial */
    .footer-top {
        grid-template-columns: 1fr;
        padding: 34px 24px 24px;
        gap: 26px;
        text-align: left;
    }

    .footer-logo { justify-content: flex-start; }
    .footer-brand p { display: none; }          /* descripción larga fuera en móvil */
    .footer-social { justify-content: flex-start; }

    .footer-col--repara { display: none; }       /* lista de equipos fuera en móvil */

    .footer-col ul { align-items: flex-start; }
    .footer-contact-list li { justify-content: flex-start; }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
        gap: 10px;
        padding: 18px 24px;
    }

    .btn-whatsapp {
        width: 2.9rem;
        height: 2.9rem;
        bottom: 16px;
        right: 16px;
    }

}

/* ---------- MÓVIL (≤ 440px) ---------- */
@media (max-width: 440px) {
    .beneficios {
        grid-template-columns: 1fr;
    }

    .footer-top {
        grid-template-columns: 1fr;
    }

    .chips-grupo {
        gap: 8px;
    }

    .chip-radio span {
        padding: 8px 13px;
        font-size: 13px;
    }
}

/* ===========================================================
   SOBRE NOSOTROS
   =========================================================== */
@media (max-width: 900px) {
    .sn-intro { grid-template-columns: 1fr; gap: 26px; }
    .sn-valores { grid-template-columns: 1fr 1fr; }
    .sn-mv { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
    .sn-hero { padding: 3.5rem 1.5rem; }
    .sn-valores { grid-template-columns: 1fr; }
    .sn-mv { margin-top: 16px; }
    .sn-actions { flex-direction: column; }
    .sn-btn { justify-content: center; }
    .mv-card { padding: 26px 22px; }
    .sn-cta { padding: 44px 22px; }
    .redes-row { flex-direction: column; }
    .red-btn { width: 100%; justify-content: center; box-sizing: border-box; }
}

/* ===========================================================
   COBERTURA
   =========================================================== */
@media (max-width: 980px) {
    .cb-pasos { grid-template-columns: 1fr 1fr; }
    .cb-confianza { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
    .cb-mapa-wrap { grid-template-columns: 1fr; }
    #map { height: 360px; }
    .cb-zonas-lista {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
}

@media (max-width: 680px) {
    .cb-hero { padding: 3.5rem 1.5rem; }
    .cb-actions { flex-direction: column; }
    .cb-btn { justify-content: center; }
    .cb-pasos { grid-template-columns: 1fr; }
    .cb-confianza { grid-template-columns: 1fr; }
    .cb-zonas-lista { grid-template-columns: 1fr; }
    #map { height: 300px; }
    .cb-cta { padding: 44px 22px; }
}

/* ===========================================================
   PROCESO
   =========================================================== */
@media (max-width: 820px) {
    .pr-info { grid-template-columns: 1fr; }

    /* timeline: de zigzag a una sola columna */
    .pr-timeline { max-width: 640px; }
    .pr-timeline::before { left: 27px; transform: none; }
    .pr-step,
    .pr-step:nth-child(odd),
    .pr-step:nth-child(even) {
        width: 100%;
        left: 0;
        padding: 0 0 26px 80px;
    }
    .pr-step:nth-child(odd) .pr-num,
    .pr-step:nth-child(even) .pr-num {
        left: 0;
        right: auto;
    }
}

@media (max-width: 680px) {
    .pr-hero { padding: 3.5rem 1.5rem; }
    .pr-actions { flex-direction: column; }
    .pr-btn { justify-content: center; }
    .pr-num { width: 48px; height: 48px; font-size: 18px; }
    .pr-timeline::before { left: 23px; }
    .pr-step,
    .pr-step:nth-child(odd),
    .pr-step:nth-child(even) { padding-left: 66px; }
    .pr-step-body { padding: 16px 18px; }
    .pr-garantia, .pr-horario { padding: 26px 22px; }
    .pr-cta { padding: 44px 22px; }
}

/* ===========================================================
   SERVICIOS
   =========================================================== */
@media (max-width: 920px) {
    .svc-grid3 { grid-template-columns: 1fr 1fr; }
    .svc-devices { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 680px) {
    .svc-hero { padding: 3.5rem 1.5rem; }
    .svc-actions { flex-direction: column; }
    .svc-btn { justify-content: center; }
    .svc-grid3 { grid-template-columns: 1fr; }
    .svc-devices { grid-template-columns: 1fr; }
    .svc-cta { padding: 44px 22px; }
}
