/* Reset CSS para normalizar el comportamiento en diferentes navegadores */

/* Reset básico */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Elementos HTML5 */
article, aside, details, figcaption, figure, 
footer, header, hgroup, main, menu, nav, section {
  display: block;
  margin: 0;
  padding: 0;
}

/* Arreglo específico para imágenes */
img, picture, video, iframe, canvas {
  display: block; /* Evita espacios innecesarios */
  max-width: 100%; /* Imágenes responsivas */
  vertical-align: middle; /* Elimina el espacio inferior */
  object-fit: cover; /* Mantiene proporciones */
  height: auto; /* Mantiene proporciones */
  line-height: 0; /* Elimina espacios entre imágenes */
  font-size: 0; /* Elimina espacios entre imágenes */
  border-style: none; /* Elimina bordes predeterminados */
}

/* Evita cualquier espaciado no deseado en enlaces que contienen imágenes */
a img {
  border: none;
}

/* Evita espacios en contenedores */
.no-gap {
  font-size: 0;
  line-height: 0;
}

/* HTML y body normalizados */
html {
  font-size: 16px; /* Tamaño de fuente base */
  line-height: 1.6; /* Line height predeterminada */
  -webkit-text-size-adjust: 100%; /* Evita ajustes automáticos de tamaño */
  -ms-text-size-adjust: 100%;
  -ms-overflow-style: scrollbar; /* Estilo de scroll en IE */
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); /* Elimina resaltado táctil */
  overflow-x: hidden; /* Previene scroll horizontal */
}

body {
  font-family: Arial, sans-serif;
  line-height: 1.6;
  margin: 0;
  padding: 0;
  overflow-x: hidden; /* Previene scroll horizontal */
}

/* Formato para contenedores de imágenes */
.image-container {
  display: block;
  overflow: hidden;
  font-size: 0; /* Elimina espacios entre imágenes */
  line-height: 0;
}

/* Arregla espacios en tablas */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* Arregla fuentes y formularios para IE */
button, input, optgroup, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

/* Arregla el desbordamiento de texto */
pre, code, kbd, samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Consistencia de elementos interactivos */
a {
  background-color: transparent;
  text-decoration: none;
}

/* Elimina estilos predeterminados de listas */
ul, ol {
  list-style: none;
}

/* Arregla problemas con videos responsivos */
video, iframe {
  width: 100%;
  height: auto;
  border: 0;
}

/* Clases adicionales para solucionar espaciado en navegadores específicos */

/* Safari - Firefox: soluciona el espacio que se forma entre elementos display:inline-block */
.fix-inline-space {
  font-size: 0;
  letter-spacing: -1px;
}
.fix-inline-space > * {
  font-size: 1rem;
  letter-spacing: normal;
}

/* Firefox: soluciona problemas de padding superior en cajas flex */
@-moz-document url-prefix() {
  .firefox-fix-flex {
    display: flex;
    padding-top: 0 !important;
  }
}

/* Chrome/Safari: soluciona problemas de rendering de imágenes */
@media screen and (-webkit-min-device-pixel-ratio:0) {
  .webkit-image-fix {
    transform: translateZ(0);
  }
}

/* Evita margin colapsados en grid y flex layouts */
.grid-container,
.flex-container {
  display: grid;
  gap: 0;
}

/* Asegura que las imágenes se rendericen correctamente en todas las secciones */
.section img,
.section iframe,
.section video,
.section canvas {
  max-width: 100%;
  display: block;
  font-size: 0;
  vertical-align: top;
}

/* Arreglos específicos para Windows */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  /* Arregla espaciado en IE */
  .section {
    margin-top: -1px !important;
    margin-bottom: -1px !important;
  }
}

/* Arreglos específicos para Edge/Chrome en Windows */
@supports (-ms-ime-align:auto) {
  .section {
    margin-top: -1px !important;
    margin-bottom: -1px !important;
  }
}

/* Arreglo espaciado entre secciones en todos los navegadores */
.section {
  margin: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border: none !important;
  position: relative;
  display: block;
  overflow: hidden;
}

/* Arreglo específico para secciones adyacentes */
.section + .section {
  margin-top: -2px !important; /* Elimina espaciado entre secciones */
}

/* Elimina cualquier espacio extra que pueda aparecer en Windows/Edge */
section::before,
section::after {
  display: none !important;
  content: none !important;
}

/* Eliminación de posibles márgenes automáticos que causan problemas en Windows */
* {
  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
} 