/* Unificar el modelo de caja en todo el documento */
*, *::before, *::after {
  box-sizing: border-box;
}

/* Eliminar márgenes por defecto en elementos comunes */
body, h1, h2, h3, h4, p, figure, blockquote, dl, dd {
  margin: 0;
}

/* Limpiar listas usadas para maquetar, pero respetar las de texto */
ul[class], ol[class] {
  list-style: none;
  padding: 0;
}

/* Configurar el comportamiento global del Body */
body {
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeSpeed;
}

/* Elementos multimedia responsivos que no desbordan */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

/* Heredar tipografías en formularios automáticamente */
input, button, textarea, select {
  font: inherit;
}

/* Evitar que textos largos rompan el diseño y prevenir palabras huérfanas */
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
  text-wrap: pretty;
}

/* Respetar la accesibilidad de usuarios que prefieren no ver animaciones */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
