/* ============================================================
   movil.css — TODA la responsividad vive aquí
   Perfiles (skill §8-9):
     Tablet:  @media (max-width: 1024px)  → contenedor 700px
     Móvil:   @media (max-width: 767px)   → contenedor 340px, padding 0
     Chico:   @media (max-width: 359px)   → ajustes tipo iPhone SE

   Reglas madre:
     - El escritorio NO se toca desde este archivo.
     - Botones móviles: píldoras ANCHAS apiladas (captura del cliente).
     - Todo lo clickeable ≥ 44px.
     - Se verifica midiendo en 320 · 360 · 375 · 768 · 1280.
   ============================================================ */


/* ============================================================
   TABLET — 768 a 1024px
   No es "móvil grande" ni "escritorio chico": tiene sus propias
   decisiones. El hero ya se apila aquí, no espera al móvil.
   ============================================================ */

@media (max-width: 1024px) {

  /* ---- El escudo vuelve al header ----
     En escritorio el escudo vive en el hero (decisión del cliente,
     11/08/2026). De 1024px para abajo se revierte: vuelve al header,
     como estaba, y el hero no lo lleva.
     🚫 No aplicar aquí el cambio de escritorio. */
  .header-content { justify-content: space-between; }
  .header .escudo-link { display: flex; }
  .hero-escudo { display: none; }

  /* ---- Hero: una columna, todo centrado ---- */
  .hero-container {
    grid-template-columns: 1fr;
    gap: 40px;
    text-align: center;
  }

  .hero-content { max-width: 100%; }
  .hero-badges  { justify-content: center; }
  .hero-title   { font-size: 44px; }
  .hero-description { font-size: 1.05rem; margin-bottom: 36px; }

  /* El mapa se conserva: los pines clickeables fueron pedido
     explícito del cliente. El original lo oculta; aquí no. */
  .visual-map { width: 340px; height: 340px; }
  .map-icon   { font-size: 5rem; }

  /* La tablet también es táctil: mínimo 44px en todo lo clickeable */
  .map-pin  { width: 44px; height: 44px; font-size: 0.95rem; }
  .nav-link { min-height: 44px; }

  /* El punto del carrusel mide 10px: imposible de atinar con el dedo.
     Este pseudo-elemento estira el área táctil a 44px de alto sin ocupar
     espacio ni cambiar cómo se ve (trampa 9 de la plantilla).
     A lo ancho no se puede estirar sin encimar los puntos vecinos; la ruta
     táctil principal son las flechas de 44px y el deslizamiento con el dedo.
     Este bloque es max-width:1024px, así que cubre tablet Y móvil. */
  .carousel-dot { position: relative; }

  .carousel-dot::after {
    content: "";
    position: absolute;
    left: -3px;
    right: -3px;
    top: 50%;
    transform: translateY(-50%);
    height: 44px;
  }

  /* ---- Estaciones ---- */
  .station-header  { padding: 24px 28px; }
  .station-content { padding: 24px; }
  .station-title-group h2 { font-size: 24px; }

  /* Botones táctiles con espacio: los más grandes de los 3 perfiles */
  .action-btn { font-size: 20px; padding: 16px 26px; }

  /* ---- Videos: 2 columnas ---- */
  .videos-title { font-size: 36px; }
  .videos-grid  { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .video-solo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .video-solo .video-card { width: calc((100% - 24px) / 2); }
}


/* ============================================================
   MÓVIL — hasta 767px
   El móvil no es el escritorio encogido: cada sección redefine
   su disposición. Referencia: las 3 capturas del cliente.
   ============================================================ */

@media (max-width: 767px) {

  /* ---- 1. HEADER ----
     A 340px no caben el escudo + 3 enlaces CON ícono.
     Medido: con íconos ≈ 373px (desborda), sin íconos ≈ 301px (cabe). */
  .header-content { min-height: 64px; gap: 8px; padding-inline: 12px; }

  .escudo-link     { padding: 5px; }
  .escudo-link img { height: 36px; }

  .nav-icon { display: none; }

  .nav-link {
    padding: 10px 8px;
    font-size: 13px;
    min-height: 44px;          /* área táctil */
  }

  .nav-list { gap: 0; }

  /* ---- 2. HERO — todo centrado (captura 2 del cliente) ---- */
  .hero {
    min-height: auto;          /* evita apretar el contenido en pantallas cortas */
    padding: 100px 0 60px;
  }

  .hero-container { gap: 32px; }

  .hero-badges {
    gap: 8px;
    margin-bottom: 20px;
  }

  .hero-badge {
    padding: 8px 14px;
    font-size: 12px;
  }

  .hero-title {
    font-size: 30px;
    margin-bottom: 18px;
    letter-spacing: -0.5px;
  }

  /* Sin botón, el margen del párrafo se suma al hueco de la rejilla y
     deja un vacío. Se pone en 0: la separación la da el gap. */
  .hero-description {
    font-size: 14px;
    line-height: 1.7;
    margin-bottom: 0;
  }

  /* ⚠️ 11/08/2026 — Decisión del cliente tras probar en celular real:
     en móvil NO va el botón "Comenzar Recorrido". El mapa sube y toma
     su lugar. La navegación a las estaciones queda por los 8 pines del
     mapa y por el menú del header. 🚫 No reactivarlo en móvil.
     En tablet y escritorio el botón se queda. */
  .hero-cta-btn { display: none; }

  /* Mapa: 380px no cabe en un contenedor de 340px */
  .visual-map { width: 300px; height: 300px; }
  .map-icon   { font-size: 4rem; }
  .map-glow   { width: 160px; height: 160px; }
  .map-route  { inset: 24px; }

  /* 🚨 Los pines del original miden 36px, por debajo del mínimo
     táctil de 44px. En móvil suben a 44. 🚫 No devolverlos a 36. */
  .map-pin {
    width: 44px;
    height: 44px;
    font-size: 0.95rem;
  }

  /* Las 3 píldoras flotantes no caben junto a un mapa de 300px */
  .floating-cards { display: none; }

  .scroll-indicator { display: none; }

  /* ---- 3. ESTACIONES ----
     Encabezado en COLUMNA CENTRADA: badge arriba, nombre, ubicación.
     (captura 1 del cliente — en escritorio va en fila) */
  .stations-section { padding: 40px 0 60px; }
  .stations-grid    { gap: 36px; }

  .station-card { border-radius: 22px; }

  .station-header {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 14px;
    padding: 26px 18px;
  }

  .station-badge {
    width: 56px;
    height: 56px;
    font-size: 1.5rem;
    border-radius: 16px;
  }

  .station-title-group h2 {
    font-size: 20px;
    line-height: 1.25;
  }

  .station-location {
    font-size: 13px;
    justify-content: center;
    margin-top: 4px;
  }

  .station-content { padding: 18px 14px 22px; }

  /* ---- 4. CARRUSEL ---- */
  .carousel-container {
    margin-bottom: 22px;
    border-radius: 16px;
  }

  .carousel { aspect-ratio: 4 / 3; }   /* más alto: aprovecha la pantalla vertical */

  .carousel-btn {
    width: 44px;                        /* mínimo táctil */
    height: 44px;
    font-size: 17px;
  }

  .carousel-btn.prev { left: 8px; }
  .carousel-btn.next { right: 8px; }

  .carousel-counter {
    top: 12px;
    right: 12px;
    padding: 7px 13px;
    font-size: 13px;
  }

  .carousel-indicators {
    bottom: 14px;
    gap: 7px;
    padding: 8px 14px;
  }

  /* El área táctil de 44px se define en el bloque de tablet, que
     también cubre este rango. Aquí solo el tamaño visual. */
  .carousel-dot { width: 8px; height: 8px; }
  .carousel-dot.active { width: 22px; border-radius: 11px; }

  /* ---- 5. BOTONES DE ACCIÓN ----
     Píldoras ANCHAS apiladas, no al ancho del texto.
     ⚠️ Corregido 11/08/2026 según la captura 1 del cliente.
     🚫 No volver a width: fit-content. */
  .station-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }

  .action-btn {
    width: 100%;
    justify-content: center;
    font-size: 15px;
    letter-spacing: 1.2px;
    padding: 17px 16px;
  }

  /* ---- 6. VIDEOS — una tarjeta por fila (captura 3 del cliente) ---- */
  .videos { padding: 60px 0; }

  .videos-header { margin-bottom: 32px; }
  .videos-title  { font-size: 28px; }
  .videos-sub    { font-size: 14px; }

  .videos-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }

  .video-solo {
    grid-template-columns: minmax(0, 1fr);
    margin-bottom: 30px;
  }

  .video-solo .video-card { width: 100%; }

  .video-card video { border-radius: 14px; }

  .video-label {
    margin-top: 12px;
    font-size: 11px;
    letter-spacing: 0.05em;
  }

  /* ---- 7. MODAL — casi a pantalla completa ---- */
  .modal-overlay { padding: 10px; }

  .modal-content { border-radius: 18px; }

  .modal-header { padding: 12px 14px; gap: 10px; }

  .modal-title-group { gap: 10px; }
  .modal-icon    { font-size: 1.4rem; }
  .modal-title   { font-size: 15px; }
  .modal-subtitle{ font-size: 12px; }

  /* 44px exactos: es el botón de cerrar, tiene que atinarse */
  .modal-close { width: 44px; height: 44px; }

  .modal-body { aspect-ratio: 3 / 4; }   /* más alto para 3D y 360 en vertical */

  .modal-footer { padding: 12px 14px; }
  .modal-tips   { gap: 16px; }
  .tip          { font-size: 11px; }
}


/* ============================================================
   PANTALLAS CHICAS — hasta 359px (iPhone SE y similares)
   El contenedor baja a ~320px y algunos textos vuelven a apretar.
   ============================================================ */

@media (max-width: 359px) {

  .nav-link { padding-inline: 6px; font-size: 12px; }

  .hero-title { font-size: 27px; }

  .visual-map { width: 270px; height: 270px; }
  .map-icon   { font-size: 3.4rem; }

  .action-btn { font-size: 14px; letter-spacing: 1px; padding-inline: 12px; }

  .station-title-group h2 { font-size: 18px; }

  .videos-title { font-size: 25px; }
}
