/* PROPIEDADES CSS */

/* Estilo para el elemento <body> o, mejor dicho, todo el contenido visible de tu sitio web */
body {
  /*  background-color: Establece el color de fondo de un elemento. Su sintaxis es: 
          background-color: color  transparencia  inicial  heredar 
              color: Especifica el color de fondo. 
              transparencia: Especifica que el color de fondo debe ser transparente 
              inicial: Establece esta propiedad en su valor predeterminado. 
              heredar: Hereda esta propiedad de su elemento padre */
  background-color: lightcyan;  /* Color de fondo azul claro del elemento <body> */
}




nav {
  /*  position: Especifica el tipo de método de posicionamiento utilizado para un elemento (static, relative, fixed, absolute or sticky)
  Esta propiedad convierte un elemento en un "elemento posicionado".
  cualquier elemento que tiene una position establecida a algo distinto de "static" (es decir, relative, absolute, fixed, o sticky) 
  se convierte en un "contenedor de posicionamiento" (o "contexto de posicionamiento") para sus descendientes absolute.
      relative: El elemento se posiciona según el flujo normal del documento y se desplaza respecto a sí mismo según los valores de top, right, bottom y left. 
      El desplazamiento no afecta la posición de ningún otro elemento; por lo tanto, el espacio asignado al elemento en el diseño de página es el mismo que si la posición fuera static. 
      Se convierte en un "contenedor de posicionamiento" (o "contexto de posicionamiento") para sus descendientes absolute. */
  position: static;	/* Al convertirse en "contenedor de posicionamiento", su posición sirve como "referencia" para cualquier "elemento posicionado" como absolute */
}





/* Estilo para los elementos <img> anidados dentro del elemento <nav></nav> de la página */
nav img {
  /*  height: Establece la altura de un elemento */
  height: auto;   /* Tamaño base del logo */
  /*  object-fit: Establece cómo se debe redimensionar un <img> o <video> para que se ajuste a su contenedor. 
      La propiedad puede tomar uno de los siguientes valores:display:
      fill: Esta es la configuración predeterminada. La imagen se redimensiona para ajustarse a la dimensión especificada. 
           Si es necesario, se estira o se comprime para ajustarla.
      contain: La imagen mantiene su relación de aspecto, pero se redimensiona para ajustarse a la dimensión dada.
      cover: La imagen mantiene su relación de aspecto y ocupa la dimensión indicada. La imagen se redimensiona para llenar completamente el contenedor.
          Si la relación de aspecto del contenedor es diferente a la de la imagen, la imagen se recortará para ajustarse. 
      none: La imagen no se redimensiona
      scale-down: la imagen se reduce a la versión más pequeña de noneo contain*/
  object-fit: contain; 
}

/* MEDIA QUERIES para el título contenido en el elemento <header></header>*/
/* Base para dispositivos muy grandes (XXL) y superiores - min-width de 1400px en adelante */
@media (min-width: 1400px) {
  nav img {
    /*  width: Establece la altura de un elemento */
    width: 20%;       /* Mantiene la proporción */
  }
}

/* Ajustes para dispositivos XL (extra large) - entre 1200px y 1399.98px */
@media (min-width: 1200px) and (max-width: 1399.98px) {
  nav img {
    /*  width: Establece la altura de un elemento */
    width: 20%;       /* Mantiene la proporción */;
  }
}

/* Ajustes para dispositivos LG (large) - entre 992px y 1199.98px */
@media (min-width: 992px) and (max-width: 1199.98px) {
  nav img {
    /*  width: Establece la altura de un elemento */
    width: 20%;       /* Mantiene la proporción */;
  }
}

/* Ajustes para dispositivos MD (medium) - entre 768px y 991.98px */
@media (min-width: 768px) and (max-width: 991.98px) {
  nav img {
    /*  width: Establece la altura de un elemento */
    width: 15%;       /* Mantiene la proporción */
  }
}

/* Ajustes para dispositivos SM (small) - entre 576px y 767.98px */
@media (min-width: 576px) and (max-width: 767.98px) {
  nav img {
    /*  width: Establece la altura de un elemento */
    width: 15%;       /* Mantiene la proporción */
  }
}

/* Ajustes para dispositivos XS (extra small) - pantallas menores a 576px */
@media (max-width: 575.98px) {
  nav img {
    /*  width: Establece la altura de un elemento */
    width: 10%;       /* Mantiene la proporción */
  }
}





/* Estilo para el elemento <header> de la página */
header {
  /*  position: Especifica el tipo de método de posicionamiento utilizado para un elemento (static, relative, fixed, absolute or sticky)
  Esta propiedad convierte un elemento en un "elemento posicionado".
  cualquier elemento que tiene una position establecida a algo distinto de "static" (es decir, relative, absolute, fixed, o sticky) 
  se convierte en un "contenedor de posicionamiento" (o "contexto de posicionamiento") para sus descendientes absolute.
      relative: El elemento se posiciona según el flujo normal del documento y se desplaza respecto a sí mismo según los valores de top, right, bottom y left. 
      El desplazamiento no afecta la posición de ningún otro elemento; por lo tanto, el espacio asignado al elemento en el diseño de página es el mismo que si la posición fuera static. 
      Se convierte en un "contenedor de posicionamiento" (o "contexto de posicionamiento") para sus descendientes absolute. */
  position: relative;	/* Al convertirse en "contenedor de posicionamiento", su posición sirve como "referencia" para cualquier "elemento posicionado" como absolute */
	/*  color: Establece el color del texto */
  color: white;	/* Color del texto blanco */
}

/* Estilo para el título contenido en el elemento <header></header> */
header h1 {
  /*  position: Especifica el tipo de método de posicionamiento utilizado para un elemento (static, relative, fixed, absolute or sticky) 
  Esta propiedad convierte un elemento en un "elemento posicionado".
  cualquier elemento que tiene una position establecida a algo distinto de "static" (es decir, relative, absolute, fixed, o sticky) 
  se convierte en un "contenedor de posicionamiento" (o "contexto de posicionamiento") para sus descendientes absolute.
      absolute: Un elemento position: absolute; se posiciona en relación con el ancestro posicionado más cercano (en lugar de estar posicionado en relación con la ventana gráfica, como fijo). 
      Sin embargo, si un elemento posicionado absolutamente no tiene antecesores posicionados, utiliza el cuerpo del documento y se mueve junto con el desplazamiento de la página. */
  position: absolute;	/* En resumen, posiciona el elemento <h1></h1> de forma absoluta dentro del elemento <header><header> cuya posición es relativa */
	/*  background-color: Establece el color de fondo de un elemento. Su sintaxis es: 
          background-color: color  transparencia  inicial  heredar 
              color: Especifica el color de fondo. 
              transparencia: Especifica que el color de fondo debe ser transparente 
              inicial: Establece esta propiedad en su valor predeterminado. 
              heredar: Hereda esta propiedad de su elemento padre */
  background-color: rgba(0, 0, 0, 0.1); /* Fondo de color negro expresado en formato RGBA (0, 0, 0) y un 10% de opacidad o 90% de transparencia */
  /*  color: Establece el color del texto */
  color: #fff;  /* Color de texto blanco en formato hexadecimal (#fff es la forma abreviada de #FFFFFF) */
  /*  top: Afecta la posición vertical de un "elemento posicionado". La posición parte desde la parte superior del contenedor. No afecta a los elementos no posicionados.*/
  top: 70%;	/* Con respecto al elemento <header><header> cuya posición es relativa, mueve al 70% desde la parte superior */
	/*  left: Afecta la posición horizontal de un "elemento posicionado". La posición parte desde la izquierda del contenedor. No afecta a los elementos no posicionados.*/
  left: 5%;	/* Con respecto al elemento <header><header> cuya posición es relativa, mueve al 70% desde la izquierda */
	/*  transform: Aplica una transformación 2D o 3D a un elemento. Permite rotar, escalar, mover, sesgar, etcétera, los elementos */
  /*  translate(x, y): Define una royación 2D con respecto a los ejes x e y */
  transform: translate(-5%, -50%);	/* Ajusta la posición del texto para centrarlo verticalmente */
  /*  padding: Especifica el relleno (padding) en los cuatro lados de un elemento a la vez. (Salvo que se especifique con left, right, top, bottom, etcétera) */
  padding: 1%;	/* Espaciado interno */
  /*  border-radius: Redondea las esquinas del borde exterior de un elemento. 
          Puede establecer un solo radio para crear esquinas circulares o dos para crear esquinas elípticas. */
	border-radius: 25px;
  /*  box-shadow: Añade efectos de sombra alrededor del marco de un elemento. Su sintaxis es:
          box-shadow: offset-x  offset-y  blur-radius  spread-radius  color  [inset];

          offset-x: Desplazamiento horizontal de la sombra. Un valor positivo desplaza la sombra hacia la derecha, un valor negativo hacia la izquierda.
          offset-y: Desplazamiento vertical de la sombra. Un valor positivo desplaza la sombra hacia abajo, un valor negativo hacia arriba.
          blur-radius: Desenfoque de la sombra. Un valor mayor crea una sombra más difusa, un valor de 0 crea una sombra nítida.
          spread-radius: Expansión de la sombra. Un valor positivo hace que la sombra se expanda, un valor negativo la contrae.
          color: Color de la sombra. Puede ser un nombre de color, un valor hexadecimal, RGB, RGBA, etcétera.
          inset: Si se especifica, la sombra se dibuja dentro del elemento en lugar de fuera. */
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  /*  font-size: Establece el tamaño de la fuente del texto */
  /* clamp(): La función clamp() es una función CSS que permite establecer un valor que se ajusta dentro de un rango específico. */
  font-size: clamp(1rem, 2vw + 1rem, 3rem);
}


/* MEDIA QUERIES para el título contenido en el elemento <header></header>*/
/* Ajustes para dispositivos SM (small) - entre 576px y 767.98px */
@media (min-width: 576px) and (max-width: 767.98px) {
  header h1 {
    /*  top: Afecta la posición vertical de un "elemento posicionado". La posición parte desde la parte superior del contenedor. No afecta a los elementos no posicionados.*/
    top: 60%;	/* Con respecto al elemento <header><header> cuya posición es relativa, mueve al 70% desde la parte superior */
    /*  left: Afecta la posición horizontal de un "elemento posicionado". La posición parte desde la izquierda del contenedor. No afecta a los elementos no posicionados.*/
    left: 5%;	/* Con respecto al elemento <header><header> cuya posición es relativa, mueve al 70% desde la izquierda */
  }
}

/* Ajustes para dispositivos XS (extra small) - pantallas menores a 576px */
@media (max-width: 575.98px) {
  header h1 {
    /*  top: Afecta la posición vertical de un "elemento posicionado". La posición parte desde la parte superior del contenedor. No afecta a los elementos no posicionados.*/
    top: 30%;	/* Con respecto al elemento <header><header> cuya posición es relativa, mueve al 70% desde la parte superior */
	  /*  left: Afecta la posición horizontal de un "elemento posicionado". La posición parte desde la izquierda del contenedor. No afecta a los elementos no posicionados.*/
    left: 5%;	/* Con respecto al elemento <header><header> cuya posición es relativa, mueve al 70% desde la izquierda */
  }
}


/* Estilo para el elemento <img> dentro del elemento <header> */
header img {
  /*  height: Establece la altura de un elemento */
  height: 1000px;	/* Ajusta la altura de la imagen de forma predeterminada para que no se muestre más allá  */
  /*  display: Especifica el tipo de caja de un elemento. Es decir, el tipo de visualización (block, inline, inline-block, flex, grid, etcétera).
          block: El elemento se muestra como un bloque, ocupando todo el ancho disponible y comenzando en una nueva línea. 
          inline: El elemento se muestra en línea con otros elementos, sin iniciar una nueva línea. 
          inline-block: Combina características de los elementos inline y block, permitiendo establecer dimensiones y márgenes, pero sin iniciar una nueva línea. 
          flex: Especifica que el elemento es un contenedor flexible, lo que significa que sus hijos se organizarán en una fila o columna flexible.
          Etcétera. */
  display: block;
  /*  object-fit: Establece cómo se debe redimensionar un <img> o <video> para que se ajuste a su contenedor. 
      La propiedad puede tomar uno de los siguientes valores: 
          fill: Esta es la configuración predeterminada. La imagen se redimensiona para ajustarse a la dimensión especificada. 
              Si es necesario, se estira o se comprime para ajustarla.
          contain: La imagen mantiene su relación de aspecto, pero se redimensiona para ajustarse a la dimensión dada.
          cover: La imagen mantiene su relación de aspecto y ocupa la dimensión indicada. La imagen se redimensiona para llenar completamente el contenedor.
              Si la relación de aspecto del contenedor es diferente a la de la imagen, la imagen se recortará para ajustarse. 
          none: La imagen no se redimensiona
          scale-down: la imagen se reduce a la versión más pequeña de noneo contain*/
  object-fit: cover;  /* llena, centra y recorta la imagen */
  /*  object-position: Se utiliza junto con object-fit para especificar cómo se debe posicionar un <img> 
  o <video> con las coordenadas x/y dentro de su "propio cuadro de contenido".*/
  object-position: center; /* Centra la imagen */
  /*  display: */
}





/* Estilo para el elemento <div> con la clase "contenedorImagenACT" que contiene la imagen */
.contenedorImagenACT {
  /*  position: Especifica el tipo de método de posicionamiento utilizado para un elemento (static, relative, fixed, absolute or sticky)
  Esta propiedad convierte un elemento en un "elemento posicionado".
  cualquier elemento que tiene una position establecida a algo distinto de "static" (es decir, relative, absolute, fixed, o sticky) 
  se convierte en un "contenedor de posicionamiento" (o "contexto de posicionamiento") para sus descendientes absolute.
      relative: El elemento se posiciona según el flujo normal del documento y se desplaza respecto a sí mismo según los valores de top, right, bottom y left. 
      El desplazamiento no afecta la posición de ningún otro elemento; por lo tanto, el espacio asignado al elemento en el diseño de página es el mismo que si la posición fuera static. 
      Se convierte en un "contenedor de posicionamiento" (o "contexto de posicionamiento") para sus descendientes absolute. */
  position: relative;	/* Al convertirse en "contenedor de posicionamiento", su posición sirve como "referencia" para cualquier "elemento posicionado" como absolute */
	/*  color: Establece el color del texto */
  /*  height: Establece la altura de un elemento */
  height: 100%;
  /*  width: Establece la altura de un elemento */
	width: 100%;
	/*  overflow: Establece el comportamiento deseado cuando el contenido no cabe en el cuadro de relleno del elemento (se desborda) en dirección horizontal y/o vertical 
      La propiedad puede tomar uno de los siguientes valores: 
          visible: Es el valor predeterminado. El desbordamiento no se recorta. El contenido se muestra fuera del cuadro del elemento.
          hidden: El desbordamiento se recorta y el resto del contenido será invisible.
          scroll: Se recorta el desbordamiento y se agrega una barra de desplazamiento para ver el resto del contenido.
          auto: Similar a scroll, pero agrega barras de desplazamiento solo cuando es necesario*/
  overflow: hidden; /* En resumen, el contenido que se desborde del elemento no se mostrará */
	/*  display: Especifica el tipo de caja de un elemento. Es decir, el tipo de visualización (block, inline, inline-block, flex, grid, etcétera).
          block: El elemento se muestra como un bloque, ocupando todo el ancho disponible y comenzando en una nueva línea. 
          inline: El elemento se muestra en línea con otros elementos, sin iniciar una nueva línea. 
          inline-block: Combina características de los elementos inline y block, permitiendo establecer dimensiones y márgenes, pero sin iniciar una nueva línea. 
          flex: Especifica que el elemento es un contenedor flexible, lo que significa que sus hijos se organizarán en una fila o columna flexible.
          Etcétera. */
  display: flex;
  /*  align-items: Especifica la alineación predeterminada para los elementos dentro de un contenedor de cuadrícula o flexbox.
      La propiedad puede tomar uno de los siguientes valores: 
          normal: Los elementos se alinean según su alineación normal.
          stretch: Los elementos se estiran para llenar el espacio disponible en el eje transversal del contenedor. */
	align-items: stretch;
}

/* Estilo para el elemento <img> con la clase "imagenACT" dentro del elemento <div> con la clase "contenedorImagenACT" */
.contenedorImagenACT .imagenACT {
  height: 100%;
  width: 100%;
  object-fit: cover; /* llena, centra y recorta la imagen */
  display: block;
}





/* Estilo para el elemento <button> con el id="botonFlotante_AAQ_II" que ejecuta un modal */
#botonFlotante_AAQ_II {
  /*  position: Especifica el tipo de método de posicionamiento utilizado para un elemento (static, relative, fixed, absolute or sticky)
  Esta propiedad convierte un elemento en un "elemento posicionado". 
      fixed: posiciona con respecto a la ventana gráfica, lo que significa que permanece en la misma posición incluso al desplazarse por la página. */ 
  position: fixed;  /* En resumen, hace que el elemento esté siempre visible */
  /*  bottom: Afecta la posición vertical de un "elemento posicionado". La posición parte desde la parte inferior del contenedor. No afecta a los elementos no posicionados.*/
  bottom: 5%; /* En resumen, desde la parte inferior de la pantalla, posiciona el elemento un 5% de alto */
  /*  right: Afecta la posición horizontal de un "elemento posicionado". La posición parte desde la derecha del contenedor. No afecta a los elementos no posicionados.*/
  right: 5%;  /* En resumen, desde la parte derecha de la pantalla, posiciona el elemento un 5% hacia la izquierda */
  /*  z-index: Especifica el orden de pila de un elemento. Indica el orden de un "elemento posicionado" y sus descendientes. */
  z-index: 1000;  /* En resumen, este elemento cubrirá a los elementos con un valor z-index menor a 1000 */
}

/* Estilo para el elemento <button> con el id="botonFlotante_AAQ_II" que ejecuta un modal con la pseudoclase hover */
/*  hover: Implica la interacción del usuario con un elemento mediante un dispositivo señalador, pero no lo activa necesariamente. 
      Generalmente se activa cuando el usuario pasa el cursor del ratón sobre un elemento con esta pseudoclase. */
#botonFlotante_AAQ_II:hover {
  /*  background-color: Establece el color de fondo de un elemento*/
  background-color: #0d6efd !important; /* Color azul para el elemento <button> cuando se pasa el cursor por encima */
  /*  color: Establece el color del texto */
  color: white !important;  /* Color blanco del texto del elemento <button> cuando se pasa el cursor por encima */
  /* border-color: Establece el color del borde de un elemento */
  border-color: red !important; /* Establece el color del borde del elemento <button> en rojo cuando se pasa el cursor por encima */
}




p {
  left: 5%;
  right: 5%;
  text-align: justify;
}



/* EXPERIMENTOS A REALIZAR CUANDO NO TENGA NADA QUE HACER */

/* EXPERIMENTO */
.imagen_ilustrativa_de_Flickr {
  /* Altura fija para la sección, que dictará la altura visible de la imagen */
  height: 1000px; /* ¡Esta es tu altura deseada para la imagen y el contenedor! */
  width: 100%;    /* Asegura que el contenedor ocupe todo el ancho disponible */
    
  /* Configuración de la imagen de fondo */
  background-image: url('/../images/Izta_y_Popo_Lucy_Nieto.jpg'); /* Reemplaza con la ruta real de tu imagen */
  background-size: cover; /* ¡CLAVE! Escala la imagen para cubrir todo el contenedor */
  background-position: center center; /* ¡CLAVE! Mantiene el centro de la imagen visible */
  background-repeat: no-repeat; /* Evita que la imagen se repita si es más pequeña que el contenedor */

  /* Para centrar y estilizar el contenido superpuesto (el título) */
  display: flex; /* Usamos Flexbox para centrar el contenido */
  flex-direction: column; /* Coloca los ítems en columna (título arriba del subtítulo) */
  justify-content: center; /* Centra el contenido verticalmente */
  align-items: center; /* Centra el contenido horizontalmente */
    
  /* Estilos para el texto y asegurar visibilidad */
  color: white; /* Color del texto para contrastar con el fondo */
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); /* Sombra para que el texto resalte */
  overflow: hidden; /* IMPORTANTE: Oculta cualquier parte de la imagen que se desborde */  

  /* Opcional: ajustar el tamaño del título */
  /* Asegura que el h1 tenga un tamaño fijo o responsivo controlado, no afectado por el "recorte" de la imagen */
  font-size: 4em; /* Un tamaño grande para el título */
  text-align: center;
}

.titulo_de_pagina {
  /* Puedes darle un tamaño de fuente fijo si quieres que SIEMPRE sea igual,
  pero para responsividad se usa un tamaño adaptable (ej. con vw) o con media queries */
  font-size: 4em; /* O un tamaño fijo como 60px si lo prefieres para que no se mueva */
  margin: 0; /* Elimina márgenes por defecto */
  padding: 0;
}

.subtitulo_de_imagen {
  font-size: 1.5em;
  margin-top: 10px;
}

/* Opcional: Media Query para ajustar el tamaño del título en pantallas muy pequeñas */
@media (max-width: 768px) {
  .imagen_ilustrativa_de_Flickr {
    height: 600px; /* Quizás reducir la altura de la sección en pantallas pequeñas */
  }  
  .titulo_de_pagina {
    font-size: 2.5em; /* Reducir el tamaño del título en móviles para que quepa */
  }
  .subtitulo_de_image {
    font-size: 1em;
  }
}
