/* ============================================
   ESTILOS ESPECÍFICOS PARA MÓVILES
   ============================================ */

/* Evitar scroll horizontal en cualquier pantalla */
html {
    overflow-x: hidden;
}

/* Reset y base para móviles */
@media screen and (max-width: 768px) {
    /* Asegurar que el body tenga estilos base */
    body {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        overflow-x: hidden !important;
        -webkit-text-size-adjust: 100% !important;
        -ms-text-size-adjust: 100% !important;
    }

    /* Contenedor principal: que no se salga nunca */
    .container {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box !important;
    }

    /* Header móvil */
    .site-header {
        position: sticky !important;
        top: 0 !important;
        width: 100% !important;
        z-index: 999 !important;
        background: var(--bg) !important;
    }

    .header-content {
        padding: 0.8rem 1rem !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    .logo {
        font-size: 1.1rem !important;
        font-weight: 700 !important;
    }

    .logo .logo-img {
        max-height: 56px !important;
        width: auto !important;
    }

    .logo .logo-text {
        font-size: 1.1rem !important;
    }

    /* Navegación móvil */
    .nav {
        position: fixed !important;
        top: 60px !important;
        left: 0 !important;
        right: 0 !important;
        background: var(--bg-alt) !important;
        padding: 1.5rem !important;
        border-radius: 0 0 var(--radius) var(--radius) !important;
        box-shadow: var(--shadow) !important;
        border: 1px solid var(--stroke) !important;
        display: none !important;
        flex-direction: column !important;
        gap: 0.5rem !important;
        z-index: 1000 !important;
        max-height: calc(100vh - 60px) !important;
        overflow-y: auto !important;
    }

    .nav.open {
        display: flex !important;
    }

    .nav-link {
        padding: 0.8rem 1rem !important;
        width: 100% !important;
        text-align: left !important;
        font-size: 0.95rem !important;
        border-bottom: 1px solid var(--stroke) !important;
    }

    .nav-link:last-of-type {
        border-bottom: none !important;
    }

    .nav-toggle {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.3rem !important;
        background: transparent !important;
        border: none !important;
        cursor: pointer !important;
        padding: 0.5rem !important;
    }

    .nav-toggle span {
        width: 24px !important;
        height: 2px !important;
        background: var(--text) !important;
        display: block !important;
    }

    /* Hero móvil */
    .hero {
        min-height: 60vh !important;
        padding: 2rem 0 !important;
    }

    .hero-content {
        padding: 2rem 1rem !important;
        text-align: center !important;
    }

    .hero h1 {
        font-size: 1.8rem !important;
        line-height: 1.2 !important;
        margin-bottom: 1rem !important;
    }

    .lead {
        font-size: 1rem !important;
        line-height: 1.5 !important;
    }

    /* Secciones */
    .section {
        padding: 2.5rem 0 !important;
    }

    .section h2 {
        font-size: 1.5rem !important;
        margin-bottom: 1rem !important;
    }

    /* Grids a una columna */
    .intro-grid,
    .description-grid,
    .contact-grid,
    .schedule-grid,
    .gallery-grid {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }

    .cards {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }

    /* Cards */
    .info-card,
    .card,
    .booking-card,
    .review-form-card {
        padding: 1.5rem !important;
        margin: 0 !important;
    }

    /* Botones */
    .btn {
        padding: 0.75rem 1.5rem !important;
        font-size: 0.95rem !important;
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
        text-align: center !important;
    }

    .btn-outline {
        width: auto !important;
        max-width: none !important;
        display: inline-flex !important;
    }

    /* Footer */
    .footer-content {
        flex-direction: column !important;
        text-align: center !important;
        gap: 1rem !important;
        padding: 1rem !important;
    }

    .footer-content > div {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.5rem !important;
    }

    /* Imágenes */
    img {
        max-width: 100% !important;
        height: auto !important;
        display: block !important;
    }

    figure {
        margin: 0 0 1rem 0 !important;
    }

    /* Productos */
    .products-grid {
        grid-template-columns: 1fr !important;
    }

    .product-card {
        padding: 1.2rem !important;
    }

    /* Servicios */
    .service-tabs {
        flex-direction: column !important;
        gap: 0 !important;
    }

    .service-tabs .tab-button {
        width: 100% !important;
        text-align: left !important;
        padding: 1rem !important;
        border-bottom: 1px solid var(--stroke) !important;
        border-left: 3px solid transparent !important;
    }

    .service-tabs .tab-button.active {
        border-left-color: var(--accent) !important;
    }

    /* Reseñas */
    .scissors-rating {
        justify-content: center !important;
        flex-wrap: wrap !important;
        gap: 0.4rem !important;
    }

    .scissor-btn {
        min-width: 50px !important;
        padding: 0.6rem 0.8rem !important;
    }

    /* Team cards */
    .team-card {
        flex-direction: column !important;
        text-align: center !important;
        padding: 1.5rem !important;
    }

    /* Asegurar que todo el contenido sea visible */
    main {
        width: 100% !important;
        overflow-x: hidden !important;
    }

    /* Prevenir scroll horizontal solo en elementos que suelen desbordar (no en contenedores flex/grid) */
    img, video, iframe, object, embed, svg, table {
        max-width: 100% !important;
    }
}

/* Estilos para pantallas muy pequeñas */
@media screen and (max-width: 480px) {
    .container {
        padding: 0 0.75rem !important;
    }

    .hero h1 {
        font-size: 1.5rem !important;
    }

    .section {
        padding: 2rem 0 !important;
    }

    .section h2 {
        font-size: 1.3rem !important;
    }

    .btn {
        padding: 0.7rem 1.2rem !important;
        font-size: 0.9rem !important;
    }
}
