/* ============================================
   DESEO LIBRE - SISTEMA RESPONSIVE
   Breakpoints estándar y utilidades móviles
   ============================================ */

:root {
    /* Breakpoints estándar */
    --bp-xs: 360px;   /* Móviles pequeños */
    --bp-sm: 480px;   /* Móviles */
    --bp-md: 768px;   /* Tablets */
    --bp-lg: 1024px;  /* Tablets grandes / Laptops pequeños */
    --bp-xl: 1200px;  /* Desktop */
    --bp-xxl: 1400px; /* Desktop grande */
}

/* ============================================
   UTILIDADES RESPONSIVE
   ============================================ */

/* Ocultar en móviles */
.hide-mobile {
    display: block;
}

/* Ocultar en desktop */
.hide-desktop {
    display: none;
}

/* Mostrar solo en móviles */
.show-mobile-only {
    display: none;
}

/* Contenedor responsive */
.container-responsive {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Grid responsive base */
.grid-responsive {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

/* Flex responsive */
.flex-responsive {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

/* ============================================
   MEDIA QUERIES - MOBILE FIRST
   ============================================ */

/* Móviles pequeños (≤360px) */
@media (max-width: 360px) {
    .container-responsive {
        padding: 0 12px;
    }
    
    .grid-responsive {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    
    .flex-responsive {
        flex-direction: column;
        gap: 10px;
    }
}

/* Móviles (≤480px) */
@media (max-width: 480px) {
    .container-responsive {
        padding: 0 15px;
    }
    
    .grid-responsive {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .hide-mobile {
        display: none !important;
    }
    
    .show-mobile-only {
        display: block !important;
    }
}

/* Tablets (≤768px) */
@media (max-width: 768px) {
    .container-responsive {
        padding: 0 20px;
    }
    
    .grid-responsive {
        grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
        gap: 18px;
    }
    
    .hide-desktop {
        display: block !important;
    }
}

/* Tablets grandes / Laptops pequeños (≤1024px) */
@media (max-width: 1024px) {
    .container-responsive {
        max-width: 100%;
        padding: 0 20px;
    }
    
    .grid-responsive {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    }
}

/* Desktop (≤1200px) */
@media (max-width: 1200px) {
    .container-responsive {
        max-width: 1140px;
    }
}

/* Desktop grande (≤1400px) */
@media (max-width: 1400px) {
    .container-responsive {
        max-width: 1320px;
    }
}

/* ============================================
   TIPOGRAFÍA FLUIDA
   ============================================ */

.text-responsive {
    font-size: clamp(0.875rem, 2vw, 1rem);
}

.heading-responsive {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
}

.subheading-responsive {
    font-size: clamp(1.125rem, 3vw, 1.75rem);
}

/* ============================================
   ESPACIADO RESPONSIVE
   ============================================ */

.padding-responsive {
    padding: clamp(1rem, 3vw, 2rem);
}

.margin-responsive {
    margin: clamp(0.5rem, 2vw, 1.5rem);
}

/* ============================================
   BOTONES RESPONSIVE
   ============================================ */

.btn-responsive {
    padding: clamp(0.625rem, 2vw, 0.875rem) clamp(1.25rem, 3vw, 1.75rem);
    font-size: clamp(0.875rem, 2vw, 1rem);
    min-height: 44px; /* Tamaño táctil mínimo */
}

/* ============================================
   MODALES RESPONSIVE
   ============================================ */

.modal-responsive {
    width: 90%;
    max-width: 600px;
    margin: 20px auto;
    max-height: 90vh;
    overflow-y: auto;
}

@media (max-width: 480px) {
    .modal-responsive {
        width: 95%;
        margin: 10px auto;
        max-height: 95vh;
        border-radius: 12px;
    }
}

/* ============================================
   FORMULARIOS RESPONSIVE
   ============================================ */

.form-responsive input,
.form-responsive textarea,
.form-responsive select {
    width: 100%;
    padding: clamp(0.75rem, 2vw, 1rem);
    font-size: clamp(0.875rem, 2vw, 1rem);
    min-height: 44px; /* Tamaño táctil mínimo */
    box-sizing: border-box;
}

/* ============================================
   IMÁGENES Y VIDEOS RESPONSIVE
   ============================================ */

.img-responsive {
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: cover;
}

.video-responsive {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
}

/* ============================================
   CARDS RESPONSIVE
   ============================================ */

.card-responsive {
    width: 100%;
    max-width: 100%;
    padding: clamp(1rem, 3vw, 1.5rem);
    margin-bottom: clamp(1rem, 3vw, 1.5rem);
}

@media (max-width: 480px) {
    .card-responsive {
        padding: 1rem;
        margin-bottom: 1rem;
    }
}
