:root{
    --color-1: #005DA8;
    --color-2: #474747;
    --color-3: #D4D4D4;
    --color-4: #F6F6F6;
    --color-5: #D9282F;
    --color-6: #ffffff;
}

body{
  background-color: var(--color-6) !important;
  line-height: normal !important;
  background-image: url(../img/fondo.webp);
  background-repeat: no-repeat;
  background-position: center 0px;
  background-size: auto 800vh;  /* prueba 250–400vh según lo larga que sea la página */
}

.color-1 {
    fill: var(--color-1);
}
.card-1{
    border:1px solid var(--color-3);
    background-color: var(--color-6);
}
svg.icon-1{
    width: 5rem !important;
    height: 5rem;
}
svg.icon-2{
    width: 1rem !important;
    height: 1rem;
}

h2{
    text-transform: uppercase;
}

.g-6{
    gap: 6rem !important;
}
.max-img{
    max-width: 200px;
}
.bg-nav{
    background-color: rgba(255, 255, 255, 0.6) !important;
    backdrop-filter: blur(16px) !important;
    height: 80px;
    box-shadow: 0px 4px 4px -2px rgba(0,0,0,0.25);
}
a {
    text-decoration: none !important;
}
a > article {
    text-decoration: none !important;
}

a > article * {
    text-decoration: none !important;
}

a > article{
    color: var(--color-2);
    transition: all ease-in .2s;
}

a > article:hover{
    color: var(--color-1);
    box-shadow: 0px 4px 8px rgba(0,0,0,.25);
    transition: all ease-in .2s;
}

.footer{
    background-color: var(--color-1);
    color: var(--color-3);
    font-size: .8rem;
    align-content: center;
    padding: 1rem;
}
.footer p{
    text-align: center;
}
ul.datos-contacto li{
    margin: .5rem 0;
}
section ul li{
    text-decoration: none lis;
    list-style: none !important;
    padding: .2rem 0;
}

.navbar-nav a {
  display: block;
  padding: 30px 16px;
  text-decoration: none;
  color: var(--color-1);
  transition: all ease-in .1s;
  border-bottom: 4px solid transparent;
  text-transform: uppercase;
    height: 80px;
}

.navbar-nav a:hover {
  background-color: var(--color-6);
      background-color: rgba(255, 255, 255, 0.6) !important;
    backdrop-filter: blur(16px) !important;
    border-bottom: 4px solid var(--color-5);
    transition: all ease-in .2s;
}

.logo{
    width: 200px;
}
.logo-text{
    color: var(--color-2) !important;
    font-size: .8rem;
    font-weight: bold;
    padding: 1.7rem 0 0 0;
}

.border-1{
    border: 15px solid var(--color-1);
}

.border-2{
    border: 15px solid var(--color-6);
}

.border-3{
    border: 15px solid var(--color-3);
}

.text-banner{
bottom: 150%;
  position: absolute;
  display: block;
  width: 35%;
  right: 5%;
}

.text-banner p{
    text-transform: none !important;
    font-size: 1.5rem;
    font-weight: bold;
}

@media (max-width: 992px) {
    body{
        background-color: white !important;
        line-height: normal !important;
        background-image: url(../img/fondo.jpg);
        background-position: bottom 0px;
        background-size: cover !important;  /* prueba 250–400vh según lo larga que sea la página */
                background-attachment: fixed !important;
                overflow-x: hidden !important;
        }
    h1, .h1 {
    font-size: 2.2rem !important;
    }
    h2, .h2{
        font-size: 2rem !important;
    }
    h3, .h3{
        font-size: 1.5rem !important;
    }
    h4, .h4{
        font-size: 1.4rem !important;
    }
    .font-s-7{
        font-size: 1.5rem !important;
    }
    /*
    .max-img{
        max-width: 100% !important;
    }
        */
    .navbar-header {
    padding: 16px;
    display: flex;
    align-items: center;
    }
    .navbar-toggle {
    background-color: red;
    border: none;
    cursor: pointer;
    padding: 10px;
    border-radius: 1rem;
    left: 80px;
    position: relative;
    top: 0px;
    }

    .logo {
    width: 200px;
    padding: 4px 0 0 0;
    }
    .navbar-nav a {
    display: block;
    padding: 18px 16px;
    text-decoration: none;
    color: var(--color-1);
    transition: all ease-in .1s;
    border-bottom: 4px solid transparent;
    text-transform: uppercase;
    height: 60px;
        background-color: rgba(255, 255, 255, 0.9) !important;
        backdrop-filter: blur(16px) !important;
    }
    .text-banner {
    bottom: 385%;
        position: absolute;
        display: block;
        width: 100%;
        right: 0%;
        padding: 1rem;
    }
    .text-banner p{
        text-transform: none !important;
        font-size: 1.2rem !important;
        font-weight: bold;
    }


    .border-1{
        border: 8px solid var(--color-1);
    }

    .border-2{
        border: 8px solid var(--color-6);
    }

    .border-3{
        border: 8px solid var(--color-3);
    }
    section ul li {
    text-decoration: none lis;
    list-style: none !important;
    padding: .2rem 0;
    }
    .g-6{
        gap: 4rem !important;
    }
    .centrar{
        text-align: center !important;
    }
}

/* SOLO FIREFOX */
@-moz-document url-prefix() {
    @media (max-width: 992px) {
        .navbar-toggle {
            left: 80px !important;
        }
    }
}

.card-body h3 {
  margin: 0;
  line-height: 1.2;
  justify-self: auto !important;
  min-height: 2rem;
  padding-bottom: var(--md-8);
  font-size: 1.5rem;
}


/* ================================
   CARRUSEL – ESTILOS GENERALES
================================ */
/* ============================================
   CARRUSEL – CONTENEDOR GENERAL
=============================================== */

.instituciones-carousel {
    display: flex;
    align-items: center;
    gap: 1rem;
    position: relative;

    max-width: 100%;
    overflow: hidden;                /* evita romper el ancho de la pantalla */
    padding: 0;
}


/* ============================================
   TRACK DESLIZABLE
=============================================== */

.instituciones-carousel-track {
    display: flex;
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none;           /* ocultar barra en Firefox */
    -webkit-overflow-scrolling: touch;
    position: relative;
    z-index: 1;
}

/* Ocultar scrollbar en Chrome/Safari/Edge */
.instituciones-carousel-track::-webkit-scrollbar {
    display: none;
}


/* ============================================
   ITEMS DEL CARRUSEL
=============================================== */

.institucion-logo-item {
    flex: 0 0 auto;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.institucion-logo-item img {
    display: block;
    height: auto;
}


/* ============================================
   FLECHAS DE NAVEGACIÓN
=============================================== */

.carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    border: none;
    background: transparent;
    font-size: 2rem;
    cursor: pointer;
    line-height: 1;
    padding: 0.2rem 0.5rem;
}

/* Flecha izquierda */
.carousel-arrow-left {
    left: 0;
}

/* Flecha derecha */
.carousel-arrow-right {
    right: 0;
}

/* Deshabilitadas */
.carousel-arrow[disabled] {
    opacity: 0.3;
    cursor: default;
    pointer-events: none;
}


/* ============================================
   MÓVIL – VERSIÓN RESPONSIVA
=============================================== */
@media (max-width: 768px) {

    .instituciones-carousel-track {
        justify-content: flex-start;
    }

    .institucion-logo-item {
        flex: 0 0 70%;       /* cada ítem ocupa 70% del viewport */
        text-align: center;
    }

    .institucion-logo-item img {
        margin: 0 auto;
        max-width: 90%;
    }

    /* Ajustar flechas a bordes sin que se salgan */
    .carousel-arrow-left {
        left: -2px;
    }

    .carousel-arrow-right {
        right: -2px;
    }
}

/* BANNER CARRUSEL */
/* Estilos básicos del carrusel, ajusta a tu propio CSS */
/* --------------------------------------------------------- */
.carousel-buttons {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    display: flex;
    justify-content: space-between;

    transform: translateY(-50%);
    pointer-events: none;
    z-index: 10;
}

.carousel-buttons button {
    pointer-events: auto;
    z-index: 11;
}

.carousel-buttons.is-hidden {
    display: none;
}

.btn-contacto{
    font-size: 1rem;
    font-weight: bold;
    padding: .8rem 1.5rem;
    background-color: white;
    color: var(--color-1);
    border-radius: 1rem;
    border:1px solid rgb(223, 223, 223);
    text-transform: uppercase;
}
.btn-contacto:hover{
    font-size: 1rem;
    font-weight: bold;
    padding: .8rem 1.5rem;
    background-color: var(--color-1);
    color: var(--color-6);
    border-radius: 1rem;
    border:1px solid var(--color-1);
    text-transform: uppercase;
}

/* MENU */
@keyframes desplegar {
  0% {
    opacity: 0;
    transform: translateY(-10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* MENU MOBILE */
@media (max-width: 992px) {

  .navbar-collapse {
    /* en vez de display: none */
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(-10px);
    pointer-events: none;          /* que no reciba clics cuando está oculto */
    transition:
      max-height 0.2s ease-in-out,
      opacity    0.2s ease-in-out,
      transform  0.2s ease-in-out;
  }

  .navbar-collapse.active {
    /* estado visible */
    max-height: 100vh;             /* o la altura que necesites */
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}


/* IPAD */
@media (min-width: 760px) and (max-width: 1200px) {
body{
    background-color: var(--color-6) !important;
}
.cont-90 {
  max-width: 100% !important;
  width: var(--width-100);
  margin: 0px auto;
}
.cont-50 {
  max-width: 70% !important;
  width: var(--width-100);
  margin: 0px auto;
}
.item-4 {
  grid-template-columns: repeat(2, 1fr) !important;
  grid-template-rows: auto;
}
.logo {
  width: 150px;
}
.logo-text {
  color: var(--color-2) !important;
  font-size: .6rem;
  font-weight: normal;
  padding: 1.4rem 0 0 0;
}
.menu-link{
    font-size: 1rem;
    font-weight: bold;
}
.text-banner {
  bottom: 25%;
  position: absolute;
  display: block;
  width: 45%;
  right: 0%;
}
.text-banner p {
  text-transform: none !important;
  font-size: 1.5rem;
  font-weight: bold;
}

#Eventos section article.card-1 {
    display: grid !important;
    grid-template-columns: 1fr !important; /* una sola columna */
    gap: 0px !important;
}
#Eventos section article.card-1 img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    padding: 0 0 1rem !important;
}
#Eventos section article.card-1 h3 {
    padding-bottom: 1rem !important;
}

#Contacto{
    grid-template-columns: 1fr !important; /* una sola columna */
}
#Productos section,
#Eventos section,
#Contacto section{
    padding: 0px;
}
#Nosotros,
#Que_Hacemos,
#Representaciones{
    text-align: center !important;
}
}

@media (max-width: 1366px) {
    .card-body h3{
        font-size: 1.3rem !important;
    }
    #Eventos section article.card-1 h3 {
        font-size: 1.3rem !important;
    }
}