/* Mejoras de Responsividad y SEO para LCG */

/* Mobile First - Garantizar que sea responsive en todos los dispositivos */
* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  font-family: 'Open Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Mejorar espacios en pantallas pequeñas */
@media (max-width: 480px) {
  .u-section-1, .u-section-2, .u-section-3, .u-section-4,
  .u-section-5, .u-section-6, .u-section-7, .u-section-8, .u-section-9 {
    padding: 20px 10px !important;
  }

  h1, h2 {
    font-size: 1.5rem !important;
    line-height: 1.3;
  }

  h3, h4 {
    font-size: 1.2rem !important;
  }

  p {
    font-size: 0.95rem !important;
    line-height: 1.5;
  }

  .u-container-layout {
    padding: 15px !important;
  }

  /* Mejorar formulario en móvil */
  .u-form-group {
    margin-bottom: 15px !important;
  }

  input, textarea, select {
    font-size: 16px; /* Prevenir zoom en iOS */
    width: 100%;
    padding: 12px;
  }

  button {
    width: 100%;
    padding: 15px;
    font-size: 1rem;
  }

  /* Contacto en móvil */
  .u-layout-row {
    flex-direction: column;
  }

  .u-layout-cell {
    width: 100% !important;
  }
}

@media (max-width: 768px) {
  .u-section-1, .u-section-2, .u-section-3, .u-section-4,
  .u-section-5, .u-section-6, .u-section-7, .u-section-8, .u-section-9 {
    padding: 30px 15px !important;
  }

  h1, h2 {
    font-size: 2rem !important;
  }

  .u-container-layout {
    padding: 20px !important;
  }

  /* Cards en tablet */
  #lcg-cards-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 15px !important;
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  #lcg-cards-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

/* Desktop y pantallas grandes */
@media (min-width: 1025px) {
  .u-section-1, .u-section-2, .u-section-3, .u-section-4,
  .u-section-5, .u-section-6, .u-section-7, .u-section-8, .u-section-9 {
    padding: 50px 40px !important;
  }

  .u-container-layout {
    padding: 30px !important;
  }

  #lcg-cards-grid {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
  }
}

/* Google Maps responsive */
.embed-responsive {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
}

.embed-responsive::before {
  display: block;
  content: "";
}

.embed-responsive-item {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Aspect ratio para maps */
.embed-responsive.embed-responsive-16by9::before {
  padding-top: 56.25%;
}

/* Optimizaciones de performance */
img {
  loading: lazy;
}

/* Links accesibles */
a {
  color: #478ac9;
  text-decoration: none;
  transition: color 0.3s ease;
}

a:hover, a:focus {
  color: #e87722;
  text-decoration: underline;
  outline: 2px solid #478ac9;
}

/* Focus visible para accesibilidad */
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #478ac9;
  outline-offset: 2px;
}

/* Texto legible */
@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
}

/* Print styles */
@media print {
  body {
    background: white;
    color: black;
  }

  a {
    color: #0066cc;
    text-decoration: underline;
  }

  .no-print {
    display: none;
  }
}
