/* Mobile overrides for <= 768px
   Mantiene intacto el diseño de escritorio. No cambia colores. */
@media (max-width: 768px) {

  /* Base */
  *, *::before, *::after { box-sizing: border-box; }
  html { font-size: 15px; }
  body { margin: 0; overflow-x: hidden; }

  /* Gutter lateral reducido global (8px) y ancho completo */
  .section,
  .container,
  .skills-container,
  .skills-row,
  .projects-grid,
  .timeline-container,
  .contact-container,
  .hstack-container {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  /* Elimina marcos/bandas decorativas que estrechan el contenido */
  .skills-container::before,
  .skills-container::after,
  .skills-row::before,
  .skills-row::after,
  .skills-column::before,
  .skills-column::after,
  .projects-grid::before,
  .projects-grid::after,
  .timeline-container::before,
  .timeline-container::after,
  .contact-container::before,
  .contact-container::after {
    content: none !important;
    display: none !important;
  }

  /* Neutraliza paddings/anchos fijos de paneles */
  .skills-column,
  .skills-column.full,
  .timeline-entry,
  .project-item,
  .contact-form {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 12px;
    padding-right: 12px;
  }

  /* Tipografía más contenida */
  h1 { font-size: clamp(1.5rem, 7vw, 1.9rem); letter-spacing: .02em; margin: 0 0 8px; }
  h2 { font-size: clamp(1.2rem, 5.3vw, 1.5rem); letter-spacing: .02em; margin: 0 0 10px; }
  h3 { font-size: clamp(1rem, 4.6vw, 1.15rem); margin: 0 0 6px; }
  p  { font-size: clamp(.95rem, 3.6vw, 1.02rem); line-height: 1.5; }

  /* Navegación y selector de idioma */
  .tabs-nav ul {
    display: flex; gap: 8px; padding: 8px 8px;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
  }
  .tabs-nav li a { padding: 8px 10px; font-size: .95rem; }
  .language-selector { position: fixed; top: 8px; right: 8px; font-size: .9rem; z-index: 20; }

  /* Skills: una columna, compacta y sin “carriles” verticales */
  .skills-row { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .skills-row.full-width { grid-template-columns: 1fr; }
  .skills-column, .skills-column.full { padding: 12px; background: none; }
  .skills-column h4 {
    font-size: clamp(1rem, 4.6vw, 1.1rem);
    letter-spacing: .02em; line-height: 1.2; margin: 0 0 6px;
  }
  .skills-list { margin: 0; padding: 0; display: grid; gap: 8px; }
  .skills-list li { width: 100%; max-width: 100%; padding: 10px 12px; font-size: .95rem; }

  /* Evita posiciones absolutas que rompan el flujo en móvil */
  .skills-column.full,
  .skills-column.full * { position: static !important; }

  /* Projects */
  .projects-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .project-item > a { display: grid; grid-template-rows: auto auto 1fr; height: 100%; text-decoration: none; color: inherit; }

  /* IMPORTANTE: no recortar imágenes en móvil */
  .project-image { 
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    object-position: center;
    border-radius: 12px;
  }
  .project-item,
  .project-item > a { overflow: visible; }

  .project-item h3 { margin: 8px 10px 4px; font-size: 1.02rem; }
  .project-item p  { 
    margin: 0 10px 10px; font-size: .95rem; line-height: 1.45;
    display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
  }

  /* Timeline en una columna */
  .timeline-entry { margin: 0 0 12px; padding: 0; }
  .timeline-dot { display: none; }
  .timeline-content { display: grid; grid-template-columns: 1fr; gap: 6px; }
  .timeline-description ul { padding-left: 16px; }
  .timeline-description li { margin-bottom: 6px; }

  /* Contacto */
  .contact-container { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 12px 8px; }
  .contact-image { text-align: center; }
  .contact-image img { width: 88px; height: 88px; border-radius: 12px; object-fit: cover; }
  .contact-form { padding: 12px; }
  .contact-info { display: grid; gap: 6px; }
  .form-row { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .form-group { margin-bottom: 10px; }
  .form-group label { font-size: .95rem; margin-bottom: 6px; display: block; }
  .form-group input, .form-group textarea { width: 100%; font-size: 1rem; padding: 10px 12px; }
  .send-message { width: 100%; padding: 12px 16px; font-size: 1rem; }

  /* Oculta flechas grandes en móvil */
  .arrow-from-projects-to-success,
  .arrow-to-contact { display: none !important; }

  /* Medios fluidos genéricos */
  img, video, canvas, iframe { max-width: 100%; height: auto; }

  /* ============================
     Subvistas: SteamMachine
     ============================ */
  /* Hacemos el botón “sticky” y damos aire arriba a la sección para que no se solape con el título */
  .back-button-container { position: sticky; top: 8px; padding: 8px; z-index: 30; }
  .back-btn { padding: 8px 12px; font-size: .95rem; }

  .steam-machine-section { 
    padding: 16px 8px;
    padding-top: 32px; /* espacio suficiente para el botón + sombra */
  }
  .steam-machine-section h1 { margin-top: 0; }

  .header-image {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    border-radius: 12px;
    margin: 8px auto 12px;
  }
  .hstack-images { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .hstack-images img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    border-radius: 12px;
  }
  .download-button {
    display: inline-block;
    width: 100%;
    text-align: center;
    padding: 12px 16px;
    font-size: 1rem;
  }
  .left-align-container { padding: 0 8px; }

  /* ============================
     Subvistas: VR Entrepreneurship
     ============================ */
  .image-container { width: 100%; padding: 8px; }
  .image-container img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    border-radius: 12px;
  }
  .button-container { margin: 12px 0; }
  .download-btn {
    display: inline-block;
    width: 100%;
    text-align: center;
    padding: 12px 16px;
    font-size: 1rem;
  }
}
