 /* Importamos la fuente de google */

@import url('https://fonts.googleapis.com/css2?family=Urbanist:ital,wght@0,100..900;1,100..900&display=swap'); 

 /* Importamos iconos web */
@import url(fontawesome-free-7.0.0-web/css/all.min.css);

:root { /*Hace referencia al objeto HTML */
    --primary-color:#f6e0b7;     /* Color principal, un tono beige */
    --secondary-color: #1B3C53;  /* Azul claro para el fondo */
    --color-background: #F9F3EF; /* Color de fondo, un tono claro */
    --color-surface:#087189;    /* Color de superficie, un tono gris azulado */
    --color-blanco: #FFFFFF;     /* Blanco puro */
    --color-negro: #000000;      /* Negro puro */
    --color-gris-claro: #CCCCCC; /* Gris claro para el contenido */
    --color-gris-oscuro: #333333;/* Gris oscuro para el contenido */ 
}
*{ /*Con * seleccionamos todos los objetos*/
    box-sizing: border-box; /* Evita q asignarle ancho o alto a un objeto la propiedad
    padding no incrmente el ancho ni el alto respectivamente*/
}
html{
    scroll-behavior: smooth;
}
body{
    font-family: "Urbanist", sans-serif; /* Fuente principal del cuerpo */
    margin: 0; /* Sin margen */
    line-height: 1.5;     
    font-size: 18px; 
}
p{
    margin-top: 0;         /* Sin margen superior */
    margin-bottom: 20px;   /* Margen inferior de 20px */
}
h1, h2, h3, h4, h5, h6{
    margin: 0;  /*Sin margen*/

}
h1{
    font-size: 64px;       /* Tamaño de fuente del título principal */
    font-weight: 350;      /* Peso de la fuente del título principal */
    letter-spacing: -3px;  /* Espacio entre caracteres del título principal */
}
h2{
    font-size: 36px;
    font-weight: 900;         /* Peso de la fuente del subtítulo son gruesos */
    letter-spacing: -2px;     /* Espacio entre caracteres */
    text-transform: lowercase;/* muestra el texto en minúscula */
}
a{    /* estado inicial del vinculo */
    color: var(--color-surface); /* Color del enlace */
    text-decoration: none; /* Sin subrayado */
}
a:hover{/* estado al pasar el puntero del mouse por el vinculo */
    color: var(--primary-color); /* Color del enlace al pasar el puntero */
    text-decoration: underline; /* Subrayado */
}
h3{
    font-size: 20px;
    font-weight: 700;
    text-transform: uppercase; /* muestra el texto en mayúscula */
}
img{
    display: block; /* Hace que las imágenes se comporten como bloques */
}
figure{
    margin: 0; /* Sin margen */
    margin-bottom: 8px; /* Margen inferior de 8px */
}
#top-nav{
    background-color: var(--color-gris-oscuro);
}
#main-header{
    position: sticky;
    top: 0;
    background-color: var(--color-blanco);
    z-index: 1000;
}
#main-header p{
    margin-bottom: 0; /* Sin margen inferior en el párrafo del encabezado principal */
}
#header-content{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#logo{
    max-width: 150px;
}
#main-banner{
    margin-bottom: 0; /* Sin margen inferior en el banner principal */
}
#main-banner img{
    width: 100%; /* Ancho del banner principal al 100% */
    height: auto; /* Altura automática para mantener la proporción */
}

#nosotros{ /* Regla de estilos para un objeto por su id, si es fijo*/
    background-color: var(--color-background);  /* Color de fondo */
} 
#noticias .col{
    border: solid 1px var(--color-gris-claro);
    margin-left: 5px;
    margin-right: 5px;
    padding-top: 12px;
    border-radius: 8px;
    box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.3);
    transition: all ease-in-out .3s;
}
#noticias .col:hover{
    box-shadow: 0px 12px 15px 0px rgba(0, 0, 0, 0.1);
    margin-top: -4px;
}
#noticias img{
    border-radius: 8px;
}
#concierto{
    background-image: url('../images/2.flujo_veh2.jpg'); /* Imagen de fondo del bloque concierto */
    color: var(--color-background); /* Color del texto en el bloque concierto */
    text-align: right; /* Alineación del texto a la derecha */
    background-size: cover; /* Cubre todo el bloque */
    background-position: right 10%; /* Posición de la imagen de fondo */
    background-attachment: fixed; /* Mantén la imagen de fondo fija */
}
#empresa{
    background-color: var(--color-negro); /* Color de fondo del bloque empresa */
    color: var(--primary-color); /* Color del texto en el bloque empresa */
}
#empresa figure{
    margin-bottom: 0; /* Sin margen inferior en el bloque empresa */
}
#historia{
    background-color: var(--color-surface);
    color: var(--color-blanco); /* Color del texto en el bloque historia */
}
#historia a{
    color: var(--color-negro); /* Color del enlace en el bloque historia */
}
#historia a:hover{
    color: var(--color-background); /* Color del enlace al pasar el puntero en el bloque historia */
    color: var(--primary-color); /*color de texto*/
}
#cursos .col{
    border: solid 10px var(--primary-color);
    margin-left: 5px;
    margin-right: 5px;
    padding-top: 15px;
    border-image-source: linear-gradient(45deg, rgb(0,143,104), rgb(250,224,66));
    border-image-slice: 1;
}
#eventos{
    background-color: var(--primary-color); /* Color de fondo del bloque eventos */
    color: var(--color-negro); /* Color del texto en el bloque eventos */
}
#equipo{
    background-color: var(--primary-color);
    text-align: center;
}
#equipo img{
    border-radius: 50%;
}
#main-footer{
    background-color: var(--color-surface); /* Color de fondo del pie de página */
    color: var(--color-gris-claro); /* Color del texto en el pie de página */
    padding-top: 45px; /* Espacio superior en el pie de página */
    padding-bottom: 45px; /* Espacio inferior en el pie de página */
}
#page-header{
    background-color: var(--secondary-color);
    color: var(--color-background);
    padding: 30px 0;
}
/* SOCIOS ************************************************************/
.banner {
  position: relative;
  width: 100%;
  height: auto;
}

.banner img {
  width: 100%;
  height: auto;
  display: block;
  filter: brightness(70%); /* oscurece un poco la imagen para resaltar el texto */
}

.banner-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: white;
  max-width: 80%;
}

.banner-text h1 {
  font-size: 2.5em;
  font-weight: bold;
  margin-bottom: 10px;
}

.banner-text p {
  font-size: 1.2em;
  margin-bottom: 20px;
}

.btn-banner {
  display: inline-block;
  padding: 12px 24px;
  background: #ff9800;
  color: #fff;
  text-decoration: none;
  border-radius: 8px;
  font-weight: bold;
  transition: background 0.3s;
}

.btn-banner:hover {
  background: #e68900;
}

.container {  /* Clase */
    max-width: 1320px;   /* Ancho máximo del contenedor */
    margin-left: auto;   /* Centrado horizontal */
    margin-right: auto;  /* Centrado horizontal */
    padding-left: 12px;  /* Espacio a la izquierda del contenedor */
    padding-right: 12px; /* Espacio a la derecha del contenedor */
}
.padded {  /* es la distancia del borde al contenido */
    padding-top: 90px;    /* Espacio superior */
    padding-bottom: 90px; /* Espacio inferior */
}
.row { /* Clase para filas */
    display: flex; /* Utiliza flexbox para el diseño, acomoda los objetos que contineuno al costado del otro */
    margin-left: -12px;  /* Elimina el margen izquierdo para alinear con las columnas */
    margin-right: -12px; /* Elimina el margen derecho para alinear con las columnas */
    flex-wrap: wrap;    /* Permite que las columnas se ajusten a múltiples líneas si es necesario */
    justify-content: center; /* Centra las columnas dentro de la fila */
}
.col { /* Clase para columnas */
    flex-basis: 0;       /* Base flexible para las columnas */
    flex-grow: 1;        /* Permite que las columnas crezcan igualmente */
    padding-left: 12px;  /* Espacio a la izquierda de las columnas */
    padding-right: 12px; /* Espacio a la derecha de las columnas */
}
.col-50{
    flex-basis: 50%;     /* Ancho del 50% para columnas de este tipo */
    max-width: 50%;      /* Ancho máximo para columnas de este tipo */
}
.col-25{
    flex-basis: 25%;     /* Ancho del 25% para columnas de este tipo */
    max-width: 25%;      /* Ancho máximo para columnas de este tipo */
}
.img-fluid { /* Clase para imágenes fluidas */
    max-width: 100%;       /* Ancho máximo del objeto es el 100% para que se ajuste a su  contenedor */
}
.centrado-vertical { /* Clase para centrar verticalmente */
    display: flex;          /* Utiliza flexbox para el diseño */
    flex-direction: column; /* Alinea los elementos en una columna */
    justify-content: center;/* Centra los elementos verticalmente */
}
.display-1 {
    font-weight: 800;          /* Negrita fuerte */
    font-size: 1.8em;          /* Texto 2.5 veces el tamaño base */
    line-height: 1.2em;        /* Más espacio entre líneas para mejor lectura */
    letter-spacing: -1px;      /* Ajuste sutil de espacio entre letras */
    text-shadow: 2px 2px 4px #000000; /* Sombra con ligero difuminado */
}
.texto-importante{
    color:var(--primary-color)
}
.menu{
    list-style: none; /*Elimina las viñetas por defecto de la lista*/
    margin: 0; /*Sin margen*/
    padding: 0;
    display: flex;
}
.menu li a{
    display: block;
}
.menu-top li a{
    padding: 8px 16px;
    color: var(--color-background);
}
.menu-top li a:hover{
    text-decoration: none;
    background-color: var(--secondary-color);
}
.menu-main li a{
    padding: 30px 15px;
    text-transform: uppercase;
    font-size: 0.8em;
    font-weight: 700;
    letter-spacing: -0.5px;;
}
.menu-main li a:hover{
    text-decoration: none;
    color: var(--color-negro);
    box-shadow: inset 0 -4px var(--primary-color);
}
.imagen-texto{
    position: relative;
}
.imagen-texto figcaption{
    position: absolute;
    background-color: rgba(0, 0, 0, 0.6);
    width: calc(100% + 24px);
    height: 100%;
    top: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 24px;
    opacity: 0;
    transition: all ease-in-out .5s;
}
.imagen-texto figcaption:hover{
    opacity: 1;
}
.redes-sociales{
    text-align: right;
}
.redes-sociales a{
    color: var(--primary-color);
    padding: 15px;
    border: solid 1px;
    border-radius: 50%;
    background-color: var(--color-background);
}
.redes-sociales a:hover{
    color: var(--color-gris-oscuro);
}
.video-fluid{
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
}
.mapa-fluid{
    width: 100%;
    aspect-ratio: 1 / 1;
    height: auto;
}
.form-group{
    margin-bottom: .5rem;
}
.form-control{
    width: 100%;
    border: none;
    border-bottom: 1px var(--primary-color) solid;
    padding: 8px;
    font: inherit;
    font-size: 0.8em;
    outline: none;
}
.form-control:focus{
    border-bottom-color: var(--color-surface);
}
.boton-formulario{
    border: none;
    padding: 8px 16px;  
    font: inherit;
    font-size: 0.8em;
    background-color: var(--primary-color);
    color: var(--color-negro);
    font-weight: 700;
    cursor: pointer;
    border-radius: 19px;
}
.boton-formulario:hover{
    border: var(--primary-color) 1px solid;
    background-color: transparent;
}