/* ===================================================================
   RESPONSIVE STYLESHEET v4
   - Cargar DESPUÉS de style.css.
   - Excluye el comportamiento DE ESCRITORIO de "Latest Cybersecurity News"
     (#inicio, .news-hero, .news-grid, .news-card, .news-badge, ...).
   - SOLO en móvil (≤768px) se convierte .news-grid en scroll horizontal.
   - Usa !important en reglas clave de layout para ganarle a style.css.
   - v4:
       * Header en una sola fila en móvil: [IMG] [NOMBRE] [SUBTITULO]
       * Más respiración entre el header y la sección de noticias.
       * News-grid en móvil = scroll horizontal con snap (desktop intacto).

   DIAGNÓSTICO:
   Etiqueta en la esquina superior izquierda con el breakpoint activo
   (XL / L / T / M / S / XS). Bórrala cuando confirmes que todo funciona.
   =================================================================== */

/* ---------- DIAGNÓSTICO ---------- */
/* =================================================================== 
body::before {
  content: "RESP OK · D";
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999999;
  background: #00cc66;
  color: #000;
  font: 700 10px/1 "Fira Code", monospace;
  padding: 3px 7px;
  border-bottom-right-radius: 4px;
  pointer-events: none;
  opacity: .9;
} =================================================================== *

/* ---------- Base fluida ---------- */
html,
body {
  overflow-x: hidden !important;
}
html {
  max-width: 100vw !important;
}

img,
video,
iframe {
  max-width: 100%;
  height: auto;
}

section,
.marco,
.contenido,
.contenedor,
.filtros-maquinas,
.maquinas-grid,
.blog-container,
form,
.header-content,
.footer-content,
.footer-links {
  box-sizing: border-box !important;
  max-width: 100% !important;
}

/* ---------- Contenedores principales fluidos ---------- */
#maquinas-completadas .contenedor {
  width: 92% !important;
  max-width: 1300px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
}

#proyectos .marco,
#contacto .marco,
#blog .marco {
  width: 92% !important;
  max-width: 1100px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* =====================================================
   DESKTOP GRANDE ≥ 1400px
   ===================================================== */
@media (min-width: 1400px) {
  body::before { content: "RESP OK · XL"; background: #66ccff; }

  .maquinas-grid   { grid-template-columns: repeat(4, 1fr) !important; }
  .blog-container  { grid-template-columns: repeat(3, 1fr) !important; }
}

/* =====================================================
   LAPTOP ≤ 1200px
   ===================================================== */
@media (max-width: 1200px) {
  body::before { content: "RESP OK · L"; background: #00cc66; }

  .maquinas-grid { grid-template-columns: repeat(3, 1fr) !important; }
}

/* =====================================================
   TABLET ≤ 1024px
   ===================================================== */
@media (max-width: 1024px) {
  body::before { content: "RESP OK · T"; background: #ffcc00; }

  main { padding-top: 150px !important; }

  header { padding: 15px 20px !important; }
  .header-content {
    gap: 15px !important;
    margin-left: 10px !important;
    width: 100% !important;
  }
  .header-image { width: 80px !important; height: 80px !important; }
  header h1 { font-size: 2em !important; }
  header p { font-size: 0.95em !important; }

  section { margin-bottom: 70px !important; }
  .marco { padding: 28px 22px !important; }
  .contenido h2 { font-size: 1.75em !important; }

  .maquinas-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 18px !important;
  }

  .proyecto { padding: 20px !important; }

  .blog-container {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 22px !important;
  }
}

/* =====================================================
   MÓVIL ≤ 768px  (clave)
   ===================================================== */
@media (max-width: 768px) {
  body::before { content: "RESP OK · M"; background: #ff6600; color: #000; }

  main {
    padding-top: 110px !important;
    padding-bottom: 40px !important;
  }

  /* ---------- Header en UNA SOLA FILA: [IMG] [NOMBRE] [SUBTITULO] ---------- */
  header { padding: 12px 14px !important; }

  .header-content {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
    gap: 10px !important;
    margin-left: 0 !important;
    width: 100% !important;
    flex-wrap: nowrap !important;
  }

  .header-image {
    width: 52px !important;
    height: 52px !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
  }

  /* Nombre y subtítulo en línea, uno al lado del otro */
  .header-text {
    display: flex !important;
    flex-direction: row !important;
    align-items: baseline !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  header h1 {
    font-size: 1.35em !important;
    margin: 0 !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }
  header p {
    font-size: 0.78em !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    opacity: .9 !important;
  }

  /* Hamburguesa */
  .hamburger-menu {
    top: 15px !important;
    right: 15px !important;
    width: 40px !important;
    height: 40px !important;
  }

  /* Menú lateral */
  .menu-panel { width: 85% !important; }

  /* SECCIONES: separación clara entre bloques */
  section {
    margin-bottom: 55px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* MÁS aire entre el header y el primer título de noticias */
  #inicio {
    margin-top: 40px !important;
    padding-top: 20px !important;
  }
  #inicio .contenido > h2 {
    margin-top: 10px !important;
    margin-bottom: 22px !important;
    padding-top: 6px !important;
  }

  /* MARCO: más padding interno, bordes visibles, sombra clara */
  .marco {
    padding: 24px 18px !important;
    border-radius: 10px !important;
    border: 1px solid rgba(255, 0, 0, 0.3) !important;
    background-color: rgba(15, 15, 15, 0.85) !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4) !important;
  }
  #proyectos .marco,
  #contacto .marco,
  #blog .marco {
    width: 94% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  #maquinas-completadas .contenedor { width: 94% !important; }

  /* Tipografía de secciones (legible) */
  .contenido h2 { font-size: 1.55em !important; margin-bottom: 20px !important; }
  .contenido p  { font-size: 0.95em !important; line-height: 1.6 !important; }

  /* =====================================================
     SECCIÓN DE NOTICIAS — SOLO MÓVIL
     Convertir .news-grid en scroll horizontal con snap.
     El comportamiento de escritorio (style.css) NO se toca.
     ===================================================== */
  #inicio .news-grid {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    gap: 12px !important;
    padding: 4px 4px 14px 4px !important;
    margin: 0 -4px !important;
    grid-template-columns: none !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  #inicio .news-grid > * {
    flex: 0 0 82% !important;
    min-width: 82% !important;
    max-width: 82% !important;
    scroll-snap-align: start !important;
  }
  /* Hint visual para indicar que se puede deslizar */
  #inicio .news-grid::-webkit-scrollbar { height: 6px; }
  #inicio .news-grid::-webkit-scrollbar-thumb {
    background: rgba(255, 0, 0, 0.4);
    border-radius: 3px;
  }

  /* ---------- Máquinas ---------- */
  #maquinas-completadas { padding: 35px 0 !important; }

  .titulo-seccion { font-size: 1.5rem !important; margin-bottom: 12px !important; }
  .descripcion-seccion { font-size: 0.9rem !important; margin-bottom: 20px !important; }

  .filtros-maquinas {
    flex-direction: column !important;
    gap: 12px !important;
    padding: 16px !important;
    border-radius: 8px !important;
  }
  .filtro-grupo {
    width: 100% !important;
    min-width: 0 !important;
  }
  .filtro-grupo label { font-size: 0.85rem !important; margin-bottom: 4px !important; }
  .filtro-select,
  .filtro-input {
    width: 100% !important;
    padding: 10px 12px !important;
    font-size: 0.9rem !important;
  }
  .contador-maquinas {
    text-align: center !important;
    margin: 18px 0 !important;
    font-size: 0.9rem !important;
  }
  .maquinas-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    margin-bottom: 24px !important;
  }
  .maquina-card { border-radius: 8px !important; }
  .maquina-header { padding: 12px 14px !important; }
  .maquina-nombre { font-size: 1rem !important; }
  .maquina-plataforma { font-size: 0.7rem !important; padding: 3px 8px !important; }
  .maquina-body { padding: 14px !important; }
  .maquina-info-item { font-size: 0.85rem !important; margin-bottom: 8px !important; }
  .maquina-footer { padding: 12px 14px !important; }
  .maquina-fecha { font-size: 0.78rem !important; }
  .maquina-enlace { font-size: 0.85rem !important; }
  .paginacion-maquinas {
    flex-wrap: wrap !important;
    gap: 12px !important;
    justify-content: center !important;
    margin-top: 22px !important;
  }

  /* ---------- Proyectos ---------- */
  .proyecto {
    padding: 18px !important;
    margin: 18px 0 !important;
  }
  .proyecto-header {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
  }
  .proyecto h3 { font-size: 1.2em !important; }
  .proyecto p  { font-size: 0.95em !important; }
  .proyecto-tags { margin-bottom: 5px !important; }
  .proyecto-links {
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
  }
  .proyecto-links .btn-proyecto,
  .blog-contenido .btn-proyecto {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }

  /* ---------- Blog ---------- */
  .blog-container {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    gap: 24px !important;
    margin-bottom: 24px !important;
  }
  .blog-post { border-radius: 10px !important; }
  .blog-contenido { padding: 18px !important; }
  .blog-contenido h3 { font-size: 1.15em !important; margin-bottom: 12px !important; }
  .blog-contenido p { font-size: 0.92em !important; line-height: 1.55 !important; }
  .blog-meta {
    flex-wrap: wrap !important;
    gap: 10px !important;
    font-size: 0.82em !important;
    margin-bottom: 14px !important;
  }
  .blog-tags { justify-content: center !important; gap: 8px !important; }

  /* ---------- Contacto ---------- */
  .contacto-info { text-align: center !important; margin-bottom: 24px !important; }
  .contacto-metodos {
    flex-direction: column !important;
    gap: 14px !important;
    align-items: center !important;
  }
  form {
    width: 100% !important;
    max-width: 100% !important;
    gap: 10px !important;
  }
  form label {
    font-size: 0.95em !important;
    margin-top: 4px !important;
  }
  form input,
  form textarea {
    padding: 11px !important;
    font-size: 0.95em !important;
    margin-bottom: 12px !important;
  }
  .btn-enviar {
    width: 100% !important;
    padding: 14px 20px !important;
    font-size: 1em !important;
  }

  /* ---------- Footer ---------- */
  footer { padding: 28px 18px !important; }
  .footer-content {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 28px !important;
  }
  .footer-links {
    flex-direction: column !important;
    align-items: center !important;
    gap: 28px !important;
    width: 100% !important;
  }
  .footer-nav ul { text-align: center !important; }
  .social-links  { justify-content: center !important; gap: 14px !important; }
}

/* =====================================================
   MÓVIL PEQUEÑO ≤ 480px
   ===================================================== */
@media (max-width: 480px) {
  body::before { content: "RESP OK · S"; background: #cc0066; color: #fff; }

  main { padding-top: 95px !important; }

  /* Header sigue en una fila, solo afina tamaños */
  header { padding: 10px 12px !important; }
  .header-content { gap: 8px !important; margin-left: 0 !important; }
  .header-image { width: 46px !important; height: 46px !important; }
  .header-text { gap: 6px !important; }
  header h1 { font-size: 1.2em !important; }
  header p  { font-size: 0.7em !important; }

  /* Más espacio entre header y noticias también aquí */
  #inicio {
    margin-top: 36px !important;
    padding-top: 18px !important;
  }
  #inicio .contenido > h2 {
    margin-bottom: 20px !important;
  }

  /* Tarjetas de noticias en móvil pequeño un pelín más anchas */
  #inicio .news-grid > * {
    flex-basis: 86% !important;
    min-width: 86% !important;
    max-width: 86% !important;
  }

  .hamburger-menu {
    top: 10px !important; right: 10px !important;
    width: 36px !important; height: 36px !important;
  }
  .hamburger-line { width: 20px !important; }

  .menu-panel { width: 100% !important; }
  .menu-section { padding: 0 15px !important; }

  section { margin-bottom: 45px !important; }
  .marco { padding: 20px 14px !important; }
  .contenido h2 { font-size: 1.35em !important; margin-bottom: 16px !important; }
  .contenido p  { font-size: 0.9em !important; }

  /* Máquinas */
  .titulo-seccion { font-size: 1.3rem !important; }
  .descripcion-seccion { font-size: 0.85rem !important; margin-bottom: 16px !important; }
  .filtros-maquinas { padding: 14px !important; gap: 10px !important; }
  .filtro-select, .filtro-input { font-size: 0.85rem !important; padding: 9px 11px !important; }
  .maquinas-grid { gap: 14px !important; }
  .maquina-nombre { font-size: 0.95rem !important; }
  .maquina-plataforma { font-size: 0.65rem !important; padding: 2px 7px !important; }
  .maquina-info-item { font-size: 0.8rem !important; }
  .maquina-fecha { font-size: 0.72rem !important; }
  .maquina-enlace { font-size: 0.8rem !important; }
  .btn-pagina { padding: 8px 12px !important; font-size: 0.8rem !important; }
  #pagina-actual { font-size: 0.8rem !important; }

  /* Proyectos */
  .proyecto { padding: 15px !important; }
  .proyecto h3 { font-size: 1.1em !important; }
  .proyecto p  { font-size: 0.9em !important; }
  .tag { font-size: 0.72em !important; padding: 3px 7px !important; }

  /* Blog */
  .blog-contenido { padding: 15px !important; }
  .blog-contenido h3 { font-size: 1.05em !important; }
  .blog-contenido p  { font-size: 0.88em !important; }
  .blog-meta { gap: 8px !important; font-size: 0.78em !important; }
  .blog-fecha { padding: 5px 9px !important; }

  /* Contacto */
  .contacto-metodo {
    font-size: 0.9em !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
  }
  form label { font-size: 0.9em !important; }
  form input,
  form textarea {
    padding: 10px !important;
    font-size: 0.9em !important;
  }

  /* Footer */
  footer { padding: 22px 14px !important; }
  .footer-logo h3 { font-size: 1.25em !important; }
  .footer-logo p  { font-size: 0.88em !important; }
  .footer-nav h4,
  .footer-social h4 { font-size: 1.05em !important; }
  .footer-nav ul li { margin-bottom: 8px !important; }
  .footer-nav ul li a { font-size: 0.9em !important; }
  .footer-bottom  { font-size: 0.88em !important; }
  .footer-credits { font-size: 0.8em !important; }
  .social-link { width: 38px !important; height: 38px !important; }
}

/* =====================================================
   MÓVIL MUY PEQUEÑO ≤ 360px
   ===================================================== */
@media (max-width: 360px) {
  body::before { content: "RESP OK · XS"; background: #990033; color: #fff; }

  main { padding-top: 88px !important; }

  header { padding: 8px 10px !important; }
  .header-content { gap: 7px !important; }
  .header-image { width: 40px !important; height: 40px !important; }
  .header-text { gap: 5px !important; }
  header h1 { font-size: 1.05em !important; }
  header p  { font-size: 0.62em !important; }

  /* En 360px el subtítulo puede caer debajo si no cabe */
  .header-text { flex-wrap: wrap !important; }

  #inicio { margin-top: 32px !important; padding-top: 14px !important; }
  #inicio .news-grid > * {
    flex-basis: 90% !important;
    min-width: 90% !important;
    max-width: 90% !important;
  }

  .marco { padding: 16px 12px !important; }
  .contenido h2 { font-size: 1.2em !important; }

  .filtros-maquinas { padding: 10px !important; }
  .filtro-select,
  .filtro-input {
    font-size: 0.78rem !important;
    padding: 7px 9px !important;
  }

  .paginacion-maquinas { gap: 8px !important; }
  .btn-pagina {
    font-size: 0.72rem !important;
    padding: 6px 9px !important;
  }
}

/* =====================================================
   Accesibilidad táctil: área mínima 44x44 en móvil
   (no toca botones dentro de #inicio / news)
   ===================================================== */
@media (max-width: 768px) {
  .proyecto-links .btn-proyecto,
  .blog-contenido .btn-proyecto,
  .btn-pagina,
  .btn-enviar,
  .social-link,
  .menu-social-button,
  .menu-link {
    min-height: 44px;
  }
}