
  @media (max-width: 991.98px) {

    /* 1) Fija el header */
    .header-area,
    .background-header {
    
      top: 30px !important;
      left: 0 !important;
      right: 0 !important;
      height: 90px !important;    /* corresponde al height:80px!important que ya tienes */
      z-index: 1000 !important;
    }
  
    /* 2) Empuja TODO el banner hacia abajo */
    .section.main-banner {
      margin-top: 80px !important;  /* forzado */
    }
  
    /* 3) Ajustes internos del overlay/banner */
    .video-overlay.header-text {
      padding-top: 20px !important;
    }
    .video-overlay.header-text .caption {
      display: flex !important;
      flex-direction: column !important;
      align-items: center !important;
      padding: 0 15px !important;
      margin: 0 !important;
    }
    .video-overlay.header-text .caption > .col-lg-8,
    .video-overlay.header-text .caption > .col-lg-4 {
      width: 100% !important;
      max-width: 100% !important;
      padding: 0 !important;
    }
    .video-overlay.header-text .caption .info-box {
      width: 90% !important;
      margin-top: 20px !important;
      background-color: rgba(0,0,0,0.5) !important;
      padding: 20px !important;
      border-radius: 10px !important;
      box-sizing: border-box !important;
      text-align: center !important;
    }
  }
  
  /*@media (max-width: 991.98px) {
    .video-overlay.header-text .caption {
      margin-top: 130px !important; 
      padding-left: 15px !important;
      padding-right: 15px !important;
    }
  }*/


  @media (max-width: 991.98px) {
    /* Espacio extra debajo de tu banner para que .services no suba */
    .services {
      margin-top: 40px !important; /* Ajusta este valor a tu gusto */
    }
  }
  




  /* Estilos generales para las info-box (Misión y Visión) */
/*.video-overlay.header-text .caption .info-box {
  background:linear-gradient(180deg, #eeefef, #edeeef, #93b8c7);
  backdrop-filter: blur(5px);              
  border-left: 35px solid #5ca8ae;
  border-radius: 12px;
  padding: 25px 10px;
  transition: transform .3s ease, box-shadow .3s ease;
}*/

.video-overlay.header-text .caption .info-box {
    background-image:
    linear-gradient(180deg, rgba(238, 239, 239, 0.85), rgba(147, 197, 199, 0.85)),
    url('../images/SECCIONES/INFORMACION-INSTITUCIONAL/fondo-informacion-inst.jpg'); /* Asegúrate que esta ruta sea válida */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  backdrop-filter: blur(5px);              
  border-left: 35px solid #5ca8ae;
  border-radius: 12px;
  padding: 25px 10px;
  transition: transform .3s ease, box-shadow .3s ease;
}

.video-overlay.header-text .caption .info-box2{
  background:linear-gradient(180deg, #eeefef, #edeeef, #83aee5);
  backdrop-filter: blur(5px);                /* efecto vidrio esmerilado */
  border:5px solid #a7c4e9;
  border-radius: 12px;
  padding: 25px 20px;
  transition: transform .3s ease, box-shadow .3s ease;
  
}

/* Icono centrado y tamaño ajustado */
.video-overlay.header-text .caption .info-box .icon {
  font-size: 32px;
  margin-bottom: 15px;
}

/* Títulos más destacados */
.video-overlay.header-text .caption .info-box .title {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 10px;
  color:#28888e;
}

.video-overlay.header-text .caption .info-box2 .title2{
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 10px;
  color:#046997;

}

/* Texto de descripción más legible */
.video-overlay.header-text .caption .info-box .description {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #272727;
  margin-bottom: 15px;
}

/* Texto de descripción más legible */
.video-overlay.header-text .caption .info-box2 .description {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #272727;
  margin-bottom: 15px;
}

/* Botón “Ver más” estilo moderno */
.video-overlay.header-text .caption .info-box .btn-more {
  display: inline-block;
  font-size: 0.9rem;
  font-weight: 600;
  color: #fff;
  text-decoration: none;
  padding: 8px 16px;
  border: 1px solid #fff;
  border-radius: 50px;
  transition: background .3s ease, color .3s ease;
}

.video-overlay.header-text .caption .info-box2 .btn-more {
  display: inline-block;
  font-size: 0.9rem;
  font-weight: 600;
  color: #fff;
  text-decoration: none;
  padding: 8px 16px;
  border: 1px solid #fff;
  border-radius: 50px;
  transition: background .3s ease, color .3s ease;
}


/* Hover sobre la card */
.video-overlay.header-text .caption .info-box:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
}


/* Hover sobre la card */
.video-overlay.header-text .caption .info-box2:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
}

/* Hover sobre el botón */
.video-overlay.header-text .caption .info-box .btn-more:hover {
  background: #ffffff;
  color: #0674a6;
}



@media (min-width: 992px) {
  .texto-intro {
    margin-top: 50px !important; /* Ajusta el valor a lo que necesites */
  }
}

.intro-contenido {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
  flex-wrap: wrap;
  max-width: 700px; /* limita el ancho total para no empujar otros elementos */
  margin-bottom: 2rem; /* separa del contenido siguiente */
}

.intro-img {
  flex: 0 0 auto;
  max-width: 160px; /* asegura que la imagen no crezca demasiado */
}

.intro-img img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.intro-text {
  flex: 1 1 auto;
  min-width: 250px;
}

/* Responsive: apilar verticalmente en móviles */
@media (max-width: 768px) {
  .intro-contenido {
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 100%;
  }

  .intro-img {
    margin-bottom: 1rem;
    max-width: 60%;
  }

  .intro-text {
    width: 100%;
  }
}







.apply-now .container {
 /* padding-top: 0; */
}

/* 1. Alinea al tope ambas columnas */
.apply-now .row.align-items-start {
  align-items: flex-start;
}

/* 2. Estilos para los bloques destacados */
/*.item-highlight {
  background:linear-gradient(180deg, #eeefef, #edeeef, #93c5c7);
  border-left: 35px solid #5ca8ae;
  backdrop-filter: blur(5px);              
  border-radius: 12px;
  padding: 25px 20px;
  box-shadow: 0 15px 18px rgba(0,0,0,0.15);
  transition: transform .3s ease, box-shadow .3s ease;
}*/
.item-highlight {
background-image: linear-gradient(360deg, #03303087, #03485c85, #02212e8a);
background-size: cover;
background-position: center;
background-repeat: no-repeat;

border-left: 20px solid #072f378c;
border: 1px solid #1589ad;
border-left: 20px solid #0cb1bd;

border-radius: 12px;
padding: 25px 20px;

box-shadow:
  0 15px 18px rgba(0, 0, 0, 0.15),
  inset 0 1px 0 rgba(255,255,255,0.03);

transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;

}
.item-highlight:hover {
  box-shadow: 0 26px 18px rgba(0,0,0,0.15);
  transform: translateY(-6px);
}


.item-highlight4 {

  /*background-image:
  linear-gradient(180deg, rgb(14 71 86), rgb(11 30 33 / 24%)), url(../images/SECCIONES/INFORMACION-INSTITUCIONAL/fondo-informacion-inst.jpg);*/
  background-image:linear-gradient(356deg, #b2c5c500, #2a72873d, #0a313175);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  border-left: 35px solid #0a4250;
  border-radius: 12px;
  padding: 25px 20px;
  box-shadow: 0 15px 18px rgba(0, 0, 0, 0.15);
  transition: transform 0.3s ease, box-shadow 0.3s ease;

}
.item-highlight4:hover {
  box-shadow: 0 26px 18px rgba(0,0,0,0.15);
  transform: translateY(-6px);
}



.item-highlight2 {
  background:linear-gradient(180deg, #eeefef, #edeeef, #9cbce5);
  border-left: 30px solid #469dc4;
  backdrop-filter: blur(5px);                 /* efecto vidrio esmerilado */
  /*border:5px solid #a7c4e9;*/
  border-radius: 12px;
  padding: 25px 20px;
  box-shadow: 0 15px 18px rgba(0,0,0,0.15);
  transition: transform .3s ease, box-shadow .3s ease;
}
.item-highlight2:hover {
  box-shadow: 0 26px 18px rgba(0,0,0,0.15);
  transform: translateY(-6px);
}

.item-highlight2 h3{
  color:#066b99 !important;
}

/* 3. Asegura que el contenido del acordeón no cambie layout */
/* (tu JS ya gestiona altura con scrollHeight/auto) */
.accordion-body {
  overflow: hidden;
  transition: height 0.4s ease;
}

/* Cuando .is-open, el JS pone height:auto o scrollHeight */


/*********para video tienda****************/
.videos-carru{
  position: relative;   /* antes absolute */
  margin-top: 0;        /* antes -285px */
  width: 100%;
  margin-bottom: 40px;  /* separación hacia services */
}


  @media (max-width: 991.98px) {
    /* Espacio extra debajo de tu banner para que .services no suba */
    .videos-carru {
      margin-top: 40px !important; /* Ajusta este valor a tu gusto */
    }
  }
  

/****************************************/






.services{
  padding-top: 40px;
  padding-bottom: 40px;
  margin: 0;
  position: relative;
}

.services-header {

  position: relative;

  background-image: linear-gradient(
    360deg,
    rgba(10,121,129,.88) 0%,
    rgba(3,66,71,.48) 100%
  );

  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  padding: 24px 22px;

  border-radius: 12px;

  text-align: center;

  margin-bottom: 30px;

  color: #fff;

  box-shadow:
    0 10px 24px rgba(0,0,0,0.22),
    inset 0 0 0 1px rgba(98,222,231,0.08),
    inset 0 14px 26px rgba(255,255,255,0.04);

  border: 2px solid rgba(35,128,157,.65);

  overflow: hidden;

}


/* ============================= */
/* SHIMMER GLASS EFFECT SUPERIOR */
/* ============================= */

.services-header::before {

  content: "";

  position: absolute;

  top: 0;
  left: -45%;

  width: 45%;
  height: 100%;

  background: linear-gradient(
    110deg,
    rgba(255,255,255,0),
    rgba(255,255,255,0.18),
    rgba(255,255,255,0.04),
    rgba(255,255,255,0)
  );

  transform: skewX(-20deg);

  animation: igmGlassShimmerServices 8s ease-in-out infinite;

  pointer-events: none;

  z-index: 1;

}


/* ============================= */
/* ANIMACIÓN SHIMMER */
/* ============================= */

@keyframes igmGlassShimmerServices {

  0% {

    left: -45%;
    opacity: 0;

  }

  40% {

    opacity: .7;

  }

  60% {

    opacity: .5;

  }

  100% {

    left: 125%;
    opacity: 0;

  }

}


/* ============================= */
/* REFLEJO DIAGONAL VIDRIO */
/* ============================= */

.services-header .glass-highlight {

  position: absolute;

  top: -35%;
  left: -10%;

  width: 44%;
  height: 210%;

  transform: rotate(22deg);

  background: linear-gradient(
    90deg,
    rgba(255,255,255,0),
    rgba(255,255,255,0.12),
    rgba(255,255,255,0.04),
    rgba(255,255,255,0)
  );

  filter: blur(2px);

  opacity: .9;

  pointer-events: none;

  z-index: 1;

}


/* ============================= */
/* LÍNEA INFERIOR INSTITUCIONAL */
/* ============================= */

.services-header::after {

  content: "";

  position: absolute;

  left: 50px;
  right: 50px;

  bottom: 0;

  height: 3px;

  border-radius: 999px;

  background: linear-gradient(
    90deg,
    rgba(98,222,231,0),
    rgba(98,222,231,.7),
    rgba(98,222,231,0)
  );

  z-index: 2;

}


/* ============================= */
/* ASEGURAR TEXTO SOBRE EFECTOS */
/* ============================= */

.services-header > * {

  position: relative;

  z-index: 3;

}


/* ============================= */
/* GLOW DEL TÍTULO */
/* ============================= */

.services-header h2 {

  text-shadow:

    0 0 10px rgba(255,255,255,.08),

    0 0 16px rgba(98,222,231,.12);

}


/* ============================= */
/* SUBTÍTULO LIMPIO */
/* ============================= */

.services-header .subtitulo-comercial {

  color: rgba(255,255,255,.94);

  text-shadow:

    0 0 8px rgba(98,222,231,.06);

}


/* ============================= */
/* HR INSTITUCIONAL INTERNO */
/* ============================= */

.services-header hr {

  width: 55%;

  height: 2px;

  margin: 14px auto;

  border: none;

  background: linear-gradient(
    90deg,
    rgba(98,222,231,0),
    rgba(98,222,231,.6),
    rgba(98,222,231,0)
  );

  border-radius: 999px;

  box-shadow:

    0 0 6px rgba(98,222,231,.35);

}

.services-header h2 {
  font-size: 1.75rem;
  font-weight: 600;
}


.tit-informacion{
font-size:25px;
color:#62dee7;
margin-left:10px;
}



/* Reusar estilo similar al carrusel */
.section-banner {
background-image:linear-gradient(177deg, #052427 0%, #0cb1bd 100%);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  
  padding: 30px 20px;
  border-radius: 12px;
  text-align: center;
  margin-bottom: 30px;
  color: #fff;
  box-shadow:
    0 6px 18px rgba(0,0,0,0.18),
    inset 0 0 0 1px rgba(98,222,231,0.06);
  border:1px solid #23809d;
}


.section-banner-direccion {
 background-color:#037d86;
/*background: linear-gradient(181deg, #074ca3, #074ca3);*/
  color: #fff;
  border-radius: 8px 8px 0 0;
}

.section-banner h2 {
  font-size: 1.75rem;
  font-weight: 600;
}


/* Reusar estilo similar al carrusel */




.section-banner2 {
  position: relative;
  background-image: linear-gradient(360deg, #0a7981 0%, #03424754 100%);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  padding: 30px 20px;
  border-radius: 12px;
  text-align: center;
  margin-bottom: 30px;
  color: #fff;

  box-shadow:
    0 10px 24px rgba(0,0,0,0.22),
    inset 0 0 0 1px rgba(98,222,231,0.08),
    inset 0 18px 28px rgba(255,255,255,0.05);

  border: 3px outset #23809d;

  overflow: hidden;
}

/* brillo superior más visible */
.section-banner2::before {
  content: "";
  position: absolute;

  top: 0;
  left: -45%;

  width: 45%;
  height: 100%;

  background: linear-gradient(
    110deg,
    rgba(255,255,255,0),
    rgba(255,255,255,0.20),
    rgba(255,255,255,0.05),
    rgba(255,255,255,0)
  );

  transform: skewX(-20deg);

  animation: igmGlassShimmer 7s ease-in-out infinite;

  pointer-events: none;
  z-index: 1;
}

@keyframes igmGlassShimmer {
  0% {
    left: -45%;
    opacity: 0;
  }

  35% {
    opacity: .75;
  }

  55% {
    opacity: .55;
  }

  100% {
    left: 125%;
    opacity: 0;
  }
}

/* reflejo diagonal tipo ventana un poco más visible */
.section-banner2 .glass-highlight {
  position: absolute;
  top: -35%;
  left: -10%;
  width: 46%;
  height: 210%;
  transform: rotate(22deg);
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0.00),
    rgba(255,255,255,0.14),
    rgba(255,255,255,0.05),
    rgba(255,255,255,0.00)
  );
  pointer-events: none;
  filter: blur(2px);
  opacity: 1;
  z-index: 1;
}

/* acento inferior institucional */
.section-banner2::after {
  content: "";
  position: absolute;
  left: 40px;
  right: 40px;
  bottom: 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    rgba(98,222,231,0),
    rgba(98,222,231,0.75),
    rgba(98,222,231,0)
  );
  z-index: 2;
}

/* contenido por encima de los efectos */
.section-banner2 > * {
  position: relative;
  z-index: 3;
}

/* refuerzo sutil del título */
.section-banner2 h2 {
  text-shadow:
    0 0 10px rgba(255,255,255,0.10),
    0 0 18px rgba(98,222,231,0.12);
}

/* subtítulo más limpio */
.section-banner2 .subtitulo-comercial {
  color: rgba(255,255,255,0.94);
  text-shadow: 0 0 8px rgba(98,222,231,0.06);
}

.section-banner2 hr {
  width: 50%;
  height: 2px;

  margin: 14px auto;

  border: none;

  background: linear-gradient(
    90deg,
    rgba(98,222,231,0),
    rgba(98,222,231,0.7),
    rgba(98,222,231,0)
  );

  border-radius: 999px;

  box-shadow: 0 0 6px rgba(98,222,231,0.5);
}




.section-banner2 h2 {
  font-size: 1.75rem;
  font-weight: 600;
}



/* Estilo para la noticia principal */
.destacada-box {
 background:linear-gradient(357deg, #04505a91, #2a73cc00, #03283a8f);
  backdrop-filter: blur(5px);                 /* efecto vidrio esmerilado */
  /*border: 3px solid rgb(47 114 142);*/
  border-radius: 12px;
  padding: 25px 20px;
   box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
  transition: transform .3s ease, box-shadow .3s ease;
  transition: all 0.3s ease;
  margin-bottom:20px;
}

.post-slide11 {
  background: linear-gradient(180deg, #eeefef, #edeeef, #93b8c7);
  backdrop-filter: blur(5px);
  border-top: 20px solid rgb(27, 150, 172);
  border-bottom: 20px solid rgb(27, 150, 172);
  border-radius: 12px;
  padding: 25px 40px;
  height: 360px;
  box-shadow: 0 20px 25px rgba(0, 0, 0, 0.3);
  transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
  color: white;
  margin-top: 15px;
  position: relative;
  z-index: 1;
}

.post-title{
    min-height: 90px;
    margin-top: 8px;
    line-height: 1.4;
}

.post-title a{
    color: #0b5c73;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
}

.post-title a:hover{
    color: #0a7c99;
}

/* Hover - sin cambiar height */
.post-slide11:hover,
.destacada-box:hover {
  transform: translateY(-8px); /* sube un poco */
  box-shadow: 0 20px 25px rgba(0, 0, 0, 0.3);
  filter: brightness(1.05);
  z-index: 2;
}


#customPrevBtn,
#customNextBtn {
  background: linear-gradient(145deg, #0dbefd, #07b7f5);
  color: white;
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
  transition: background 0.3s, transform 0.3s, box-shadow 0.3s;
}

#customPrevBtn:hover,
#customNextBtn:hover {
  background: linear-gradient(145deg, #055fcf, #1394e5);
  transform: scale(1.1);
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.3);
}


/*videos igm*/

.video-thumb {
  position: relative;
  overflow: hidden;
}

.video-thumb img {
  transition: transform 0.3s ease;
}

.video-thumb:hover img {
  transform: scale(1.05);
}


/*mensaje correo*/
#char-count {
  display: block;
  margin-top: 8px;
  margin-bottom: 15px;
  font-size: 0.9rem;
}


/* Wrapper relativo que contendrá el icono + el campo */
.input-with-icon {
  position: relative;
}

.input-with-icon .form-control,
.input-with-icon .form-select,
.input-with-icon textarea.form-control {
  padding-left: 2.75rem;    /* espacio para el ícono */
}

/* Icono absolutamente posicionado */
.input-with-icon .icon-inside {
  position: absolute;
  top: 50%;
  left: 0.75rem;
  transform: translateY(-50%);
  color: #6c757d;           /* gris Bootstrap */
  font-size: 1rem;
}

/* Focus visual (opcional) */
.input-with-icon .form-control:focus,
.input-with-icon .form-select:focus,
.input-with-icon textarea.form-control:focus {
  border-color: #0d6efd;
  box-shadow: 0 0 0 0.2rem rgba(13,110,253,.25);
}



/*decora tus espacios*/
.explora{
  color: white;
  font-size:22px;
}

section.modulo-decora {
  background-image: url(../images/fon04.jpg);
  background-position: center center;
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-size: cover;
  /*padding-top: 140px;
  padding-bottom: 130px;*/
}

.modulo-decora .item .down-content {
  background-color: #fff;
}

.modulo-decora .item .down-content h4 {
  padding: 25px;
  font-size: 18px;
  color: #1f272b;
  text-align: center; 
  border-bottom: 1px solid #eee;
}





.modulo-decora .item .down-content .info {
  padding: 25px;
}

.modulo-decora .item .down-content .info ul li {
  display: inline-block;
  margin-right: 1px;
}

.modulo-decora .item .down-content .info ul li i {
  color: #f5a425;
  font-size: 14px;
}

.modulo-decora .item .down-content .info span {
  color: #a12c2f;
  font-size: 15px;
  font-weight: 600;
  text-align: right;
  display: inline-block;
  width: 100%;
}

.modulo-decora .owl-nav {
  text-align: center;
  position: absolute;
  width: 100%;
  top: 50%;
  transform: translateY(-45px);
}

.modulo-decora .owl-dots {
  display: inline-block;
  text-align: center;
  width: 100%;
  margin-top: 40px;
}

.modulo-decora .owl-dots .owl-dot {
  transition: all .5s;
  width: 7px;
  height: 7px;
  background-color: #fff;
  margin: 0px 5px;
  border-radius: 50%;
  outline: none;
}

.modulo-decora .owl-dots .active {
  width: 24px;
  height: 8px;
  border-radius: 4px;
}
    
.modulo-decora .owl-nav .owl-prev{
  margin-right: 10px;
  outline: none;
  position: absolute;
  left: -80px;
}

.modulo-decora .owl-nav .owl-prev span,
.modulo-decora .owl-nav .owl-next span {
  opacity: 0;
}

.modulo-decora .owl-nav .owl-prev:before {
  display: inline-block;
  font-family: 'FontAwesome';
  color: #1e1e1e;
  font-size: 25px;
  font-weight: 700;
  content: '\f104';
  background-color: #fff;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  line-height: 50px;
}

.modulo-decora .owl-nav .owl-prev {
  opacity: 1;
  transition: all .5s;
}

.modulo-decora .owl-nav .owl-prev:hover {
  opacity: 0.9;
}

.modulo-decora .owl-nav .owl-next {
  opacity: 1;
  transition: all .5s;
}

.modulo-decora .owl-nav .owl-next:hover {
  opacity: 0.9;
}

.modulo-decora .owl-nav .owl-next{
  margin-left: 10px;
  outline: none;
  position: absolute;
  right: -85px;
}

.modulo-decora .owl-nav .owl-next:before {
  display: inline-block;
  font-family: 'FontAwesome';
  color: #1e1e1e;
  font-size: 25px;
  font-weight: 700;
  content: '\f105';
  background-color: #fff;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  line-height: 50px;
}


.galeria-item {
  background: rgba(255, 255, 255, 0.05); /* fondo translúcido */
  border-right: 20px solid rgba(255, 255, 255, 0.15); /* marco semitransparente */
  border-left: 20px solid rgba(255, 255, 255, 0.15); /* marco semitransparente */
  border-radius: 16px;
  padding: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3); /* sombra suave */
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  backdrop-filter: blur(6px); /* efecto glass */
}

.galeria-item:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
}

.galeria-item img {
  border-radius: 12px;
}

.fondo-seccion-carrusel-recursos {
   backdrop-filter: blur(5px);/* efecto vidrio esmerilado */
 
  border-radius: 12px;
  padding: 25px 20px;
   box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
  transition: transform .3s ease, box-shadow .3s ease;
  transition: all 0.3s ease;
  margin-bottom:20px;

}

.fondo-seccion-contactos {
  background: linear-gradient(1deg, #17222c00, #0d59b8, #3cd1ef00);

}

.fondo-seccion-direccion-estructura{
  /*background: linear-gradient(89deg, #17222c00, #22c3df4f, #3cd1ef00);*/
 /*background:linear-gradient(357deg, #04505a91, #2a73cc00, #03283a8f);*/
  backdrop-filter: blur(5px);                 /* efecto vidrio esmerilado */
  /*border: 3px solid rgb(47 114 142);*/
  border-radius: 12px;
  padding: 25px 20px;
   box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
  transition: transform .3s ease, box-shadow .3s ease;
  transition: all 0.3s ease;
  margin-bottom:20px;

}

.fondo-seccion-direccion-estructura-inf {

   backdrop-filter: blur(5px);                 /* efecto vidrio esmerilado */
  /*border: 3px solid rgb(47 114 142);*/
  border-radius: 12px;
  padding: 25px 20px;
   box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
  transition: transform .3s ease, box-shadow .3s ease;
  transition: all 0.3s ease;
  margin-bottom:20px;
}


.institucional-final1 {
  /*background: linear-gradient(1deg, #17222c00, #0cccff96, #3cd1ef00);*/

}

.institucional-final {
  background: linear-gradient(92deg, #17222c00, #0cccff96, #3cd1ef00);
  color: white;
}

.card-institucional {
  background:linear-gradient(180deg, #eeefef, #edeeef, #93b8c7);
  /*border: 5px solid rgb(248, 249, 250);*/
  border-radius: 15px;
  transition: transform 0.3s, box-shadow 0.3s;
}

.card-institucional:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}


.card-institucional .icon {
  color:#066b99;
}

.card-institucional h5 {
  font-weight: 600;
  color:#066b99;
}

.card-institucional p {
  font-size: 0.95rem;
  color: #000;

}
.card-institucional2 {
  background:linear-gradient(180deg, #eeefef, #edeeef, #93c5c7);
  border: 5px solid rgb(248, 249, 250);
  border-radius: 15px;
  transition: transform 0.3s, box-shadow 0.3s;
}

.card-institucional2:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}

.card-institucional2 .icon {
  color:#28888e;
}

.card-institucional2 h5 {
  font-weight: 600;
  color:#28888e;
}

.card-institucional2 p {
  font-size: 0.95rem;
  color: #000;

}


/***accesos institucionales**/
.accesos-institucionales {
  background-image: url(../images/fondo03.jpg);
  background-position: center center;
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 50px 0px;
  margin-bottom:-30px;
}

.accesos-institucionales .item {
  background-color: #78b3c74f;
  padding: 40px;
  margin-bottom: 30px;
  border-radius:0.9em;
}

.accesos-institucionales-wrapper {
  /*max-width: 880px;*/
  margin: 0 auto;
  padding-left: 15px;
  padding-right: 15px;
  padding-top:0px !important;
  
}
.acceso-institucional-feature {
  display: flex;
  align-items: center;
  background:none;
  border-radius: 20px;
  margin-bottom: 40px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: transform 0.4s ease;
}

.acceso-institucional-feature:hover {
  transform: scale(1.02);
}

.acceso-institucional-feature .icon-wrap {
  background: #0cb1bd;
  color: white;
  padding: 30px;
  font-size: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-top-left-radius: 20px;
  border-bottom-left-radius: 20px;
  min-width: 120px;
  height: 100%;
       background-image:
    linear-gradient(351deg, #048cc9, #18486440, #0587c1),
    url('../images/SECCIONES/CENTRO-ACCESOS/icon-acceso.jpg'); /* Cambia por tu ruta */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.acceso-institucional-feature .content {
  padding: 30px;
  flex: 1;
}

.acceso-institucional-feature h5 {
  font-size: 1.4rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 30px;
}

.acceso-institucional-feature p {
  font-size: 0.95rem;
  color: #fff;
  margin-bottom: 20px;
  line-height: 1.6;
}

.acceso-institucional-feature .main-button-blue a {
  font-weight: 500;
}

@media (max-width: 768px) {
  .acceso-institucional-feature {
    flex-direction: column;
    text-align: center;
  }

  .acceso-institucional-feature .icon-wrap {
    border-radius: 20px 20px 0 0;
    width: 100%;
  }

  .acceso-institucional-feature .content {
    padding: 20px;
  }
}

.acceso-institucional-feature .content-with-image {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  flex-wrap: wrap;
  
}

.acceso-institucional-feature .content-with-image .text {
  flex: 1 1 300px;
}


.acceso-institucional-feature .content-with-image .image {
  position: relative;
  flex: 0 0 250px;
  max-width: 250px;
  border-radius: 10px;
 overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.accesos-institucionales .section-banner2{
  padding: 12px !important;         /* pisa p-3 */
  margin-bottom: 12px !important;   /* pisa mb-4 */
}

.accesos-institucionales .acceso-institucional-feature{
  margin-bottom: 24px;  /* antes 40 */
}

/*
.acceso-institucional-feature .content-with-image .image img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
  object-fit: cover;
  position: relative;
  z-index: 1;
}

/* Onda vectorial en la parte inferior, sin blur */
/*.acceso-institucional-feature .content-with-image .image::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 40px;
  background: url('data:image/svg+xml;utf8,<svg width="100%" height="40" viewBox="0 0 100 40" xmlns="http://www.w3.org/2000/svg"><path fill="%230cb1bd" d="M0 30 Q25 40 50 30 T100 30 L100 40 L0 40 Z"/></svg>') no-repeat bottom center;
  background-size: cover;
  pointer-events: none;
  z-index: 2;
}

.acceso-institucional-feature .content-with-image .image::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 10px;
  pointer-events: none;
  background-image:
    radial-gradient(circle 2px, rgba(12,177,189,0.5) 1px, transparent 1px);
  background-size: 20px 20px;
  z-index: 2;
}
*/



/******/



.linea-separadora {
  width: 60px;
  border: 2px solid #ffffff;
  margin-top: 10px;
  margin-bottom: 20px;
}

.linea-direccion{
   width: 85%;
  height: 1px;

  margin: 12px 0 18px 0;

  border: none;

  background: linear-gradient(
    90deg,
    rgba(98,222,231,0),
    rgba(98,222,231,0.35),
    rgba(98,222,231,0)
  );

  opacity: .6;
}

.linea-noticias{
  border:2px inset #04354415;
  height:20px;
}
.linea-noticias2{
  border:3px inset #23518b;
  height:20px;
}



/*css links de interes*/
.enlaces-interes {
  background-image: url(../images/fondo06.jpg);
  background-position: center center;
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 60px;  /* ajusta según se vea */
  padding-bottom: 60px;  /* ajusta según se vea */
}

.subtitulo-enlaces {
  font-size:22px;
  color:white !important;
  text-align:center;
}


.interes-carousel-wrapper {
  overflow: hidden;
  background-color: #6a8b928a;
  border-radius: 12px;
  padding: 20px 0;
  position: relative;
  width: 100%;
}

.interes-carousel-track {
  display: flex;
  gap: 2rem;
  animation: scrollLinks 40s linear infinite;
  will-change: transform;
}

.interes-carousel-item {
  flex: 0 0 auto;
  min-width: 200px;
  transition: transform 0.4s ease, opacity 0.4s ease;
  opacity: 0.9;
}

.interes-carousel-item:hover {
  transform: scale(1.05);
  opacity: 1;
}

.interes-carousel-item a {
  display: inline-block;
  color: #08497e;
  background: rgba(255, 255, 255, 0.8);
  padding: 15px;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 500;
  font-size: 10px;
  transition: background 0.4s ease, transform 0.3s ease;
  white-space: nowrap;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(2px);
  width:150px;
}

.interes-carousel-item a:hover {
  background: #3cb4e7;
  color: #fff;
  transform: translateY(-4px);
}

.interes-carousel-item img {
  width: 80px;
  height: 80px;
  object-fit: contain;
  margin-bottom: 10px;
}

@keyframes scrollLinks {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-100.33%);
  }
}

.interes-carousel-wrapper:hover .interes-carousel-track {
  animation-play-state: paused;
}
.fade-slide-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1s ease, transform 1s ease;
}

.fade-slide-up.visible {
  opacity: 1;
  transform: translateY(0);
}



/*icono para gire cuando se hace mouseover*/
.arrow-icon {
  margin-left: 6px;
  transition: transform 0.3s ease;
}

.has-sub:hover > a .arrow-icon {
  transform: rotate(180deg);
}


/* Submenú visible con efecto suave + sombra más oscura */
.main-nav .nav li.has-sub:hover > .sub-menu,
.main-nav .nav li.has-sub:focus-within > .sub-menu {
  max-height: 600px;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);

    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4); /* SOMBRA ALREDEDOR */
  border-radius: 10px;
  background-color: #fff;
  z-index: 9999;
  padding: 10px 0;
}

/* Ítems del submenú */
.main-nav .nav .has-sub .sub-menu li a {
  transition: background 0.3s ease;
  display: block;
  color: #333;
  font-size: 15px;
  line-height: 1.5;
}

/* Hover de ítems */
.main-nav .nav .has-sub .sub-menu li a:hover {
  background-color: #f2f2f2;
}


/*para carrusel de noticias*/
#news-slider11 .post-slide11 {
  transition: transform 0.6s ease-in-out, opacity 0.6s ease-in-out;
}

#news-slider11 .post-slide11:hover {
  transform: scale(1.02);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}



/* Estilo para el enlace de un elemento de menú principal activo */
.main-nav .nav li.active > a {
    color:#8af8f7; /* Color para el elemento principal activo (ej: Inicio) */
    /*font-weight: bold;*/
}

/* Estilo para el enlace del menú principal desplegable cuando una de sus subpáginas está activa */
.main-nav .nav li.has-sub.active > a {
    color: #80e3fc; /* Color para el padre desplegable cuando una subpágina está activa */
    /*font-weight: bold;*/
}

/* Estilo para el enlace de un elemento de submenú activo */
.main-nav .nav .sub-menu li a.active {
    background-color: #e9f5ff; /* Color de fondo para el submenú activo */
    font-weight: bold;
    color: #007bff; /* Color de texto para el submenú activo */
}


/*/***** Secciones Institucionales (Quiénes Somos, Misión, etc.) *****/

/* Fondo global en body (imagen fija o scrollable) */
body {

  background-image: url('../images/fondo01.jpg'); /* ajusta la ruta */ /* alternativa fondo 04 */
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed; /* fija el fondo al hacer scroll */
  margin: 0;
  padding: 0;
  font-family: Arial, sans-serif;
  color: #000;
}

/* Contenedor con fondo blanco semitransparente encima del body */
.fondo-blanco-transparente {
 /*ackground: linear-gradient(357deg, #ffffff, #ffffffbd, #ffffff);*/
 background-image: linear-gradient(2deg, #1f5f8542 0%, #040e103d 100%);
  backdrop-filter: blur(6px);  /* efecto difuminado del fondo */
  -webkit-backdrop-filter: blur(6px);
  border-radius: 12px;
  padding: 40px 30px;
  max-width: 1300px;
  margin: 0 auto 100px auto;
  box-shadow: 0 0 30px rgba(0,0,0,0.1);
}

.seccion-interna-igm {
   

  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;

  background-attachment: fixed;

  padding-top: 40px;
  padding-bottom: 60px;
  
  padding: 140px 0 60px;
  color: #ffffff;
  margin-bottom: 100px;
}

.seccion-interna-igm h2,
.seccion-interna-igm h3,
.seccion-interna-igm h4 {
  color: #6fd4f3; /* Azul institucional */
  font-weight: 700;
  margin-bottom: 25px;
  text-align: center;
}

.seccion-interna-igm p,
.seccion-interna-igm li {
  color: #FFF;
  font-size: 1.25rem;
  line-height: 1.8;
  padding:20px;
}

.seccion-interna-igm ul {
  padding-left: 25px;

  list-style:none;
}

.seccion-interna-igm a {
  color: #c4dadf;
  text-decoration: underline;
}

.seccion-interna-igm a:hover {
  color: #ceeef3;
  text-decoration: none;
}






.text-muted-black {
  color: #000 !important; /* fuerza color negro */
  font-size: 1.1rem;
  line-height: 1.6;
  font-weight: 400;
  max-width: auto;
  /*margin: 0 auto 40px auto;*/
  text-align: justify;
}

.titulo-institucional-card {
  /*background-image: linear-gradient(rgb(3 177 205 / 80%), rgb(7 98 132 / 43%)), url(../images/secciones/fondo-titulos.jpg);*/
  background-image:linear-gradient(90deg, #1f5f850f 0%, #2b819542 100%);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  
  padding: 30px 20px;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
  text-align: center;
  margin-bottom: 30px;
  color: #fff;
}


.titulo-institucional-card h1 {
  color: #fff;
  margin: 0;
  font-size: 2.2rem;
  font-weight: 700;
}


/*** Tarjetas para el contenido institucional ***/
/* Contenedor de tarjetas en 2 columnas más anchas */
.modern-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(350px, 1fr)); /* columnas anchas */
  gap: 2.5rem;
  justify-content: center;
  max-width: 1200px;
  margin: 0 auto;
}

/* Responsive para pantallas pequeñas */
@media (max-width: 768px) {
  .modern-cards {
    grid-template-columns: 1fr;
  }
}

/* Tarjeta individual */
.modern-card {
  background: #fff;
  border-radius: 12px;
  border-left: 30px solid #038ecd;
  padding: 30px;
  box-shadow: 0 0px 16px rgba(0, 0, 0, 0.2);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  text-align: center;
  /*border: 4px solid #096eb1;*/
}

/* Hover efecto sombra y elevación */
.modern-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
}

/* Ícono dentro de un círculo */
.icon-box {
  width: 80px;
  height: 80px;
  margin: 0 auto 1.5rem auto;
  border-radius: 50%;
  background: #007bff1a;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Ícono con transición */
.icon-box i {
  font-size: 32px;
  color: #007bff;
  transition: transform 0.3s ease;
}

/* Animación leve del ícono al hacer hover en la tarjeta */
.modern-card:hover .icon-box i {
  transform: scale(1.2);
}

.modern-card ul {
  padding-left: 20px; /* espacio para las viñetas */
  list-style-type: disc; /* viñetas normales */
  margin: 0 0 1rem 0; /* margen inferior para separar */
  color: #333; /* color de texto para que se vea */
}


.modern-card ul li {
    padding: 0;          /* elimina el padding grande heredado */
    margin-bottom: 0.5rem; /* espacio deseado entre items */
    line-height: 1.4;     /* ajusta la altura de línea si quieres más compacta */
    text-align: justify;
}


.modern-card img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 20px auto 0 auto; /* espacio arriba y centrado */
  border-radius: 12px;       /* bordes suaves */
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15); /* sombra suave */
  border: 1.5px solid #007bff33; /* borde sutil azul claro translúcido */
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: default;
}

.modern-card img:hover {
  transform: scale(1.03);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
}



/* Carta institucional: bloque principal */
.modern1-card {
  /*background: #fff;
  border-left: 10px solid #c4c9cd;*/
  padding: 40px;
  text-align: left;
  box-shadow: 0 0 15px rgba(0,0,0,0.05);
  border-radius: 4px;
  font-family: 'Segoe UI', sans-serif;
}

.modern1-subti{
color:#ffffff !important;
font-size:22px;
}


.imagen-director {
  display: block;
  margin: 0 auto 2rem auto;
  max-width: 580px;
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
  /*border: 8px solid #ffff;*/
}

.intro-director {
  font-style: italic;
  font-size: 1.2rem;
  border-left: 4px solid #007BFF;
  padding-left: 1em;
  margin-bottom: 1.5em;
  color: #333;
}

.estilo-director {
  background-color: #f9f9f9;
  padding: 2em;
  border-radius: 8px;
  box-shadow: 0 0 8px rgba(0,0,0,0.05);
}


/* Énfasis en frases clave */
.estilo-director strong,
.intro-director strong {
  color: #003366;
  font-weight: 600;
}

/* Firma al final */
.firma-director {
  margin-top: 2rem;
  font-size: 1rem;
  font-weight: 500;
  color: #002244;
  text-align: center;
  /*border-top: 1px solid #ccc;*/
  padding-top: 1rem;
}

/* Responsive */
@media (max-width: 768px) {
  .modern1-card img {
    float: none;
    display: block;
    margin: 0 auto 1.5rem auto;
  }

  .titulo-institucional-card h1 {
    font-size: 1.4rem;
  }

  .intro-director,
  .estilo-director {
    font-size: 1rem;
  }
}







/**********carrusel banner servicios **************/
.mySwiperRecursos {
  position: relative;
  width: 100%;
  max-width: 1300px;
  margin: auto;
  border-radius: 20px;
  overflow: hidden;
  padding-bottom: 150px; /* espacio para bullets */
  height:430px;
}

.mySwiperRecursos .swiper-pagination {
  position: absolute !important;
  bottom: 0px !important;
  left: 0;
  right: 0;
  margin: auto;
  text-align: center;
  z-index: 10;

}
.mySwiperRecursos .swiper-pagination-bullet {
  width: 16px;
  height: 16px;
  background: #fff;
  opacity: 0.7;
  margin: 0 6px !important;
}

.mySwiperRecursos .swiper-pagination-bullet-active {
  background: #0993f8;
  opacity: 1;
  transform: scale(1);
}





.mySwiperRecursos .item {
  position: relative;
  /*background: linear-gradient(145deg, #f9f9f9, #e4e4e4);*/
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  height: 400px;
  padding: 0;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border-top:20px solid #146172;
}

.mySwiperRecursos .item:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 35px rgba(0, 0, 0, 0.15);
}



.mySwiperRecursos .icon img {
  margin-top:30px;
  width: 100%;
  height: 100px;
  object-fit: cover;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
}

.mySwiperRecursos .down-content {
  flex-grow: 1;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.mySwiperRecursos .down-content h4 {
  font-size: 1.4rem;
  font-weight: 700;
  color: #0b3954;
  margin-bottom: 10px;
}

.mySwiperRecursos .down-content p {
  font-size: 0.95rem;
  color: #333;
  flex-grow: 1;
  margin-bottom: 20px;
  line-height: 1.4rem;
}




/**********videos tienda con swiper**************/
/********** HERO SWIPER INSTITUCIONAL **********/

.mySwiper {
  width: 100%;
  max-width: 1300px;
  height: 620px;
  margin: auto;
  border-radius: 22px;
  overflow: hidden;
  position: relative;
  background: linear-gradient(145deg, #022b35, #064654);
  box-shadow:
    0 30px 70px rgba(0,0,0,0.6),
    0 0 40px rgba(24,166,194,0.25);
}

/* borde luminoso institucional */
.mySwiper::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 22px;
  padding: 2px;
  background: linear-gradient(130deg, #0b5c73, #18a6c2, #0b5c73, #0f7f9e, #0b5c73);
  background-size: 400% 400%;
  animation: bordeIGM 12s ease infinite;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 3;
}

@keyframes bordeIGM {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.mySwiper .swiper-slide {
  height: 100%;
  padding: 0;
  background: transparent;
}

.hero-slide {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.hero-link-slide {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  text-decoration: none;
}

.hero-media {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center center;
  display: block;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.hero-media-contain {
  object-fit: contain !important;
  background: #041c23;
}

/* ── Overlay ── */
.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,0.00) 0%, rgba(0,0,0,0.12) 100%);
}

.slide-video-texto .hero-overlay {
  background: linear-gradient(180deg, rgba(0,0,0,0.00) 0%, rgba(0,0,0,0.15) 100%);
}

/* ── Grid geoespacial ── */
.hero-grid {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.10;
  background:
    linear-gradient(rgba(142,231,241,0.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(142,231,241,0.10) 1px, transparent 1px);
  background-size: 48px 48px, 48px 48px;
  mask-image: linear-gradient(90deg, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.25) 55%, rgba(0,0,0,0.00) 100%);
  -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.25) 55%, rgba(0,0,0,0.00) 100%);
  animation: heroGridMove 18s linear infinite;
}

.hero-grid::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.22;
  background: repeating-linear-gradient(
    -45deg,
    rgba(142,231,241,0.10) 0px,
    rgba(142,231,241,0.10) 1px,
    transparent 1px,
    transparent 26px
  );
}

.hero-grid::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  top: 50%;
  left: 18%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(142,231,241,0.12) 0%, rgba(142,231,241,0.04) 35%, rgba(142,231,241,0.00) 70%);
  filter: blur(8px);
}

@keyframes heroGridMove {
  0%   { background-position: 0 0, 0 0; }
  100% { background-position: 48px 48px, 48px 48px; }
}

/* ── Panel de texto — barra inferior (todos los slides) ── */
.hero-content {
  position: absolute;
  z-index: 2;
  bottom: 24px;
  left: 50%;
  top: auto;
  transform: translateX(-50%);
  width: 90%;
  max-width: 1100px;
  color: #fff;
  background: rgba(4, 28, 35, 0.52);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(142, 231, 241, 0.15);
  border-radius: 14px;
  padding: 18px 28px;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

/* ── Slide 1: panel lateral izquierdo ── */
.slide-video-texto .hero-content {
  left: 40px !important;
  right: auto !important;
  bottom: auto !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: auto !important;
  max-width: 480px !important;
  display: block !important;
}

.hero-kicker {
  display: inline-block;
  margin-bottom: 14px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(142,231,241,0.10);
  border: 1px solid rgba(142,231,241,0.22);
  color: #8ee7f1;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.hero-content h3 {
  font-size: 2.15rem;
  line-height: 1.15;
  font-weight: 700;
  margin: 0 0 16px;
  color: #ffffff;
  text-shadow: 0 3px 18px rgba(0,0,0,0.35);
}

.hero-content p {
  font-size: 1rem;
  line-height: 1.75;
  color: rgba(255,255,255,0.88);
  margin-bottom: 24px;
  max-width: 520px;
}

.hero-btn {
  display: inline-block;
  padding: 12px 22px;
  border-radius: 10px;
  background: linear-gradient(135deg, #0aa9c0, #0c6f88);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.35s ease;
  box-shadow: 0 10px 24px rgba(0,0,0,0.28);
  flex-shrink: 0;
}

.hero-link-slide:hover .hero-btn {
  transform: translateY(-2px);
  color: #fff;
  box-shadow: 0 16px 32px rgba(0,0,0,0.35);
}

/* ── Flechas navegación ── */
.mySwiper .swiper-button-next,
.mySwiper .swiper-button-prev {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  color: #8ee7f1;
  width: 44px;
  height: 44px;
  background: rgba(4, 28, 35, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 50%;
  border: 1px solid rgba(142, 231, 241, 0.25);
  transition: all 0.3s ease;
}

.mySwiper .swiper-button-prev { left: 16px; }
.mySwiper .swiper-button-next { right: 16px; }

.mySwiper .swiper-button-next:hover,
.mySwiper .swiper-button-prev:hover {
  background: rgba(4, 28, 35, 0.80);
  border-color: rgba(142, 231, 241, 0.6);
  color: #ffffff;
  transform: translateY(-50%) scale(1.08);
}

.mySwiper .swiper-button-next::after,
.mySwiper .swiper-button-prev::after {
  font-size: 16px;
  font-weight: 700;
}

/* ── Paginación ── */
.mySwiper .swiper-pagination-bullet {
  width: 14px;
  height: 14px;
  background: #0be0f8;
  opacity: 0.4;
  margin: 0 6px !important;
  transition: all 0.3s ease;
}

.mySwiper .swiper-pagination-bullet-active {
  background: #ffffff;
  opacity: 1;
  transform: scale(1.2);
  box-shadow: 0 0 10px rgba(255,255,255,0.35);
}

/* ── Responsive 991px ── */
@media (max-width: 991px) {
  .mySwiper {
    height: 520px;
  }

  .hero-content {
    width: 94%;
    padding: 16px 20px;
  }

  .hero-content h3 {
    font-size: 1.8rem;
  }

  .slide-video-texto .hero-content {
    left: 30px !important;
    max-width: 420px !important;
  }
}

/* ── Responsive 768px ── */
@media (max-width: 768px) {
  .mySwiper {
    height: 460px;
    border-radius: 14px;
  }

  .hero-content {
    bottom: 12px;
    width: 94%;
    padding: 14px 16px;
    gap: 12px;
  }

  .hero-content h3 {
    font-size: 1.35rem;
    margin-bottom: 10px;
  }

  .hero-content p {
    font-size: 0.92rem;
    line-height: 1.55;
    margin-bottom: 18px;
  }

  .hero-btn {
    padding: 10px 18px;
    font-size: 0.92rem;
  }

  .hero-kicker {
    font-size: 0.75rem;
    margin-bottom: 10px;
  }

  .slide-video-texto .hero-content {
    left: 16px !important;
    right: 16px !important;
    max-width: 100% !important;
    top: auto !important;
    bottom: 12px !important;
    transform: none !important;
    display: flex !important;
  }

  .mySwiper .swiper-button-next,
  .mySwiper .swiper-button-prev {
    width: 36px;
    height: 36px;
  }

  .mySwiper .swiper-button-next::after,
  .mySwiper .swiper-button-prev::after {
    font-size: 13px;
  }
}

.mySwiper .swiper-button-next,
.mySwiper .swiper-button-prev,
.mySwiper .swiper-pagination-bullet {
    user-select: none;
    -webkit-user-select: none;
    cursor: pointer;
}


/*animaciones flecha*/
.arrow-hover {
  display: inline-flex;
  align-items: center;
  font-weight: 500;
  cursor: pointer;
  transition: color 0.3s ease;
}

.arrow-hover i {
  transition: transform 0.3s ease;
}

.arrow-hover:hover i {
  transform: translateX(5px);
}



.main-nav .sub-menu a.active {
  background-color: #0cb1bd !important;
  color: #fff !important;
  font-weight: bold;
  padding-left: 16px;
  transition: background 0.3s ease;

}

.main-nav .sub-menu li a.active,
.main-nav .sub-menu li a.active:hover {
  color: #fff !important;
}

/**home banner*/
/*.marcaservicios{
  /color:#84e2e9
}*/

/**next y prev***/
/*.swiper-button-next, .swiper-button-prev{
  color:#037d86 !important;
}*/

/*modulo geodesia imagen*/
.tab-image {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 6px 15px rgba(0,0,0,0.2);
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.fondo-esquinas {
  background-image: url('assets/images/fondo-decorativo.png');
  background-repeat: no-repeat;
  background-position: top left, bottom right;
  background-size: 200px auto, 200px auto; /* ajusta tamaño */
  background-color: #fff; /* fondo blanco en el centro */
  padding: 60px 30px; /* espacio interno para que no choque con las esquinas */
  border-radius: 15px;
}


.tab-content-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  align-items: center;
  justify-content: space-between;
}

.tab-image-container {
  flex: 1 1 40%;
  text-align: center;
}

.tab-image {
  max-width: 100%;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  transition: transform 0.3s ease;
}

.tab-image:hover {
  transform: scale(1.03);
}

.tab-text {
  flex: 1 1 55%;
}

.tab-text p {
  font-size: 1.1rem;
  line-height: 1.8;
  color: #333;
  font-family: 'Segoe UI', 'Roboto', sans-serif;
  text-align: justify;
  background:#909fa11f;
  padding: 1rem 1.5rem;
  border-left: 20px solid #0cb1bd7a;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
  margin-bottom: 1.5rem;
}



/*galeria directores*/
#hcg-slider-1 .hcg-slide-container {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  position: relative;
  border-radius: 12px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
  overflow: hidden;
}

.hcg-slider {
  text-align: center;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  padding: 20px 0;
}

.hcg-slides {
  display: none;
  justify-content: center;
  align-items: center;
  border-radius: 0;
  border: none;
}

.hcg-slides img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
}

.hcg-slide-text {
  color: #fff;
  font-size: 14px;
  padding: 5px 10px;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 0, 0, 0.4);
  text-shadow: 0 1px 3px #000;
  border-radius: 0 0 8px 8px;
}

#hcg-slide-prev,
#hcg-slide-next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  font-weight: bold;
  font-size: 30px;
  padding: 10px 15px;
  background-color: #0cb1bd;
  border-radius: 50%;
  z-index: 2;
  text-decoration: none;
  transition: background 0.3s ease;
}

#hcg-slide-prev:hover,
#hcg-slide-next:hover {
  background-color: #077c85;
}

#hcg-slide-prev {
  left: 15px;
}

#hcg-slide-next {
  right: 15px;
}

.hcg-slide-dot-control {
  text-align: center;
  margin-top: 10px;
}

.hcg-slide-dot {
  cursor: pointer;
  height: 14px;
  width: 14px;
  margin: 0 4px;
  background-color: #ccc;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.3s ease;
}

.hcg-slide-dot.dot-active {
  background-color: #0cb1bd;
}

.hcg-slide-number {
  color: #fff;
  font-size: 12px;
  padding: 4px 7px;
  position: absolute;
  top: 5px;
  left: 5px;
  background-color: rgba(0, 0, 0, 0.4);
  border-radius: 5px;
}

/************ Animaciones ***********/
.animated {
  animation-name: fadeIn;
  animation-duration: 1s;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}


/***parrafos paginas*****/

/* Estilo elegante para párrafos introductorios */
.intro-parrafo {
  font-size: 1.05rem;
  line-height: 1.8;
  color: #333;
  font-weight: 400;
  margin-bottom: 1.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  border-left: 10px solid #0cb1bd;
  background-color: rgb(25 59 66 / 36%);
  border-radius: 6px;
  transition: background-color 0.3s ease-in-out;
}

.intro-parrafo:hover {
  background-color: #0428396e; /* azul claro suave */
}
.subtitulo-historia {
  font-size: 1.2rem;
  font-weight: 600;
  color: #4ad2e9 !important;
  margin-top: 2rem;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 8px;
}

.bloque-historia {
  margin-bottom: 1.8rem;
}

.lista-igm{
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0 0 2rem 0 !important;
}

.lista-igm li{
  list-style: none !important;
  display: flex;
  align-items: flex-start;      /* icono arriba, no centrado */
  gap: 12px;                    /* separación icono-texto */

  margin: 0 0 12px 0;
  padding: 14px 16px;           /* aire uniforme */

 
  line-height: 1.7;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  transition: background-color .3s ease;
}

.lista-igm li:hover{
  background-color: rgb(9 64 67);
}

.lista-igm li i{
  position: static;             /* QUITA absolute */
  transform: none;              /* QUITA translateY */
  margin-top: 2px;              /* ajuste fino */
  color: #0cb1bd;
  font-size: 18px;
  flex: 0 0 22px;               /* ancho fijo del icono */
  width: 22px;
  text-align: center;
}



.galeria-igm {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}

.galeria-img {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  height: 230px;
  width: 100%;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); /* sombra base un poco más visible */
}

.galeria-img:hover {
  transform: scale(1.03);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.25) !important;
}



.imagen-destacada-igm {
  width: 100%;
  max-height: 1260px;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  display: block;
}

.imagen-destacada-igm:hover {
  transform: scale(1.03);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.25) !important;
}







/* ==== REPRESENTACIONES INTERNACIONALES (GLASS) ==== */
.representaciones-internacionales{
  padding: 40px 20px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(8, 28, 34, 0.45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 14px 34px rgba(0,0,0,0.35);
}

.logo-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
  justify-items: center;
}

.logo-card{
  width: 100%;
  max-width: 280px;

  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(142,231,241,0.12);
  border-radius: 16px;
  padding: 22px 20px;

  box-shadow: 0 10px 22px rgba(0,0,0,0.30);
  transition: transform .35s cubic-bezier(.4,0,.2,1),
              box-shadow .35s ease,
              background-color .35s ease,
              border-color .35s ease;

  text-decoration: none;
  color: rgba(255,255,255,0.88);
}

.logo-card:hover{
  transform: translateY(-6px);
  background: rgba(255,255,255,0.08);
  border-color: rgba(142,231,241,0.22);
  box-shadow: 0 16px 40px rgba(0,0,0,0.42);
}

.logo-card img{
  width: 100px;
  height: 100px;
  object-fit: contain;

  padding: 18px;

  background: rgb(255 255 255);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;

  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  box-shadow: 0 10px 25px rgba(0,0,0,0.30);

  transition: transform .4s cubic-bezier(.4,0,.2,1),
              box-shadow .4s ease,
              background-color .4s ease;
}

.logo-card:hover img{
  transform: translateY(-3px) scale(1.05);
  background: rgba(255,255,255,0.12);
  box-shadow: 0 14px 35px rgba(0,0,0,0.40);
}

.logo-card p{
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0;
  text-align: left;
  line-height: 1.45;
  color: rgba(255,255,255,0.85);
}


.logo-card{
  display: flex;
  flex-direction: column;
  align-items: center;       /* centra el logo horizontalmente */
  gap: 14px;                 /* separación logo/texto */
}

/* Mantener el texto como está (izquierda) */
.logo-card p{
  width: 100%;
  text-align: left;
}

/* Asegurar que el logo quede centrado (por si algún estilo externo lo afecta) */
.logo-card img{
  display: block;
  margin: 0 auto 6px;
}


/***complemento de seccion banner***/

/* Reglas base */
.main-banner .caption {
  position: relative !important;  /* forzamos sobre el template */
  top: auto !important;
  transform: none !important;

  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;              
  margin-top: 100px;
  padding-top: 20px;
}

.main-banner .caption .col-lg-5 {
  flex: 0 0 auto;
  max-width: 40%;         
}

.main-banner .caption img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Tablet */
@media (max-width: 991px) {
  .main-banner .caption {
    margin-top: 70px;
    padding-top: 15px;
  }
}

/* Móvil */
@media (max-width: 576px) {
  .main-banner .caption {
    margin-top: 30px !important;  /* forzamos */
    padding-top: 10px;
  }
}


/* Base */
.main-banner .video-overlay .caption {
  position: relative !important;
  top: auto !important;
  transform: none !important;

  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;
  margin-top: 100px;
  padding-top: 20px;
}

/* Tablet */
@media (max-width: 991px) {
  .main-banner .video-overlay .caption {
    margin-top: 70px !important;
    padding-top: 15px;
  }
}

/* Móvil */
@media (max-width: 576px) {
  .main-banner .video-overlay .caption {
    margin-top: 20px !important; /* mucho más arriba */
    padding-top: 10px;
  }
}

/* Imagen base */
.main-banner .caption img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* En móvil ocupa todo el ancho */
@media (max-width: 576px) {
  .main-banner .caption .col-lg-5,
  .main-banner .caption .col-lg-6 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    text-align: center;
    margin-top: 20px;
  }

  .main-banner .caption img {
    max-width: 80%; /* más controlado en móvil */
  }
}

/* En escritorio: imagen más grande sin que baje */
@media (min-width: 992px) {
  .main-banner .video-overlay .caption {
    flex-wrap: nowrap;   /* evita que baje */
    align-items: center; /* centra verticalmente */
  }

  .main-banner .caption .col-lg-5 img,
  .main-banner .caption .col-lg-6 img {
    max-width: 115%;   /* la agrandas un 15% más */
    margin-left: -7%;  /* la compensas para centrarla */
  }
}

@media (max-width: 576px) {
  .main-banner .caption h6 {
    font-size: 13px;
  }
  .main-banner .caption p {
    font-size: 15px; /* se mantiene más grande que el h6 */
  }
}





/* ===============================
   FIX FINAL MÓVIL
   Menú alineado a la izquierda
   + colores institucionales
   + soporte nivel 1, 2 y 3
=============================== */
@media (max-width: 767px) {

  .header-area {
    text-align: left !important;
  }

  /* UL principal */
  .header-area .main-nav .nav {
    display: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 100px 0 0 0 !important;
    list-style: none !important;
    box-sizing: border-box !important;
    background: #00475d !important;
  }

  .header-area .main-nav .nav.show {
    display: block !important;
  }

  /* Items principales */
  .header-area .main-nav .nav > li {
    display: block !important;
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    background: #00475d !important;
    border-bottom: 1px solid #165a6e !important;
    position: relative !important;
  }

  .header-area .main-nav .nav > li:first-child {
    border-top: 1px solid #165a6e !important;
  }

  /* Links principales */
  .header-area .main-nav .nav > li > a {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: left !important;
    padding: 0 42px 0 20px !important;
    min-height: 50px !important;
    line-height: 50px !important;
    background: #00475d !important;
    color: #fff !important;
    border: none !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    position: relative !important;
    white-space: normal !important;
  }

  .header-area .main-nav .nav > li > a * {
    margin: 0 !important;
    text-align: left !important;
    align-self: center !important;
  }

  /* Quitar centrados heredados */
  .header-area .main-nav .nav .text-center,
  .header-area .main-nav .nav .justify-content-center,
  .header-area .main-nav .nav .mx-auto,
  .header-area .main-nav .nav .ml-auto,
  .header-area .main-nav .nav .mx-sm-auto {
    text-align: left !important;
    justify-content: flex-start !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Hover / active principal */
  .header-area .main-nav .nav > li > a:hover,
  .header-area .main-nav .nav > li > a.active,
  .header-area .main-nav .nav > li.active > a {
    background: #0cb1bd !important;
    color: #fff !important;
  }

  /* Flechas */
  .header-area .main-nav .nav li.has-sub > a .arrow-icon,
  .header-area .main-nav .nav li.has-sub-child > a .child-arrow {
    position: absolute !important;
    right: 18px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin-left: 0 !important;
    font-size: 12px !important;
    color: #fff !important;
    transition: transform .25s ease !important;
  }

  .header-area .main-nav .nav li.has-sub.open > a .arrow-icon,
  .header-area .main-nav .nav li.has-sub-child.open > a .child-arrow {
    transform: translateY(-50%) rotate(90deg) !important;
  }

  /* =========================
     NIVEL 1
  ========================= */
  .header-area .main-nav .nav li.has-sub > ul.sub-menu {
    position: static !important;
    width: 100% !important;
    display: none !important;
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height .35s ease !important;
    background: #00475d !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }

.header-area .main-nav .nav li.has-sub.open > ul.sub-menu {
  display: block !important;
  max-height: 2000px !important;
}

  .header-area .main-nav .nav li.has-sub > ul.sub-menu > li {
    display: block !important;
    width: 100% !important;
    list-style: none !important;
    background: #00475d !important;
    position: relative !important;
  }

  .header-area .main-nav .nav li.has-sub > ul.sub-menu > li > a {
    display: block !important;
    width: 100% !important;
    padding: 0 42px 0 30px !important;
    min-height: 45px !important;
    line-height: 45px !important;
    color: #fff !important;
    background: #00475d !important;
    border-bottom: 1px solid #165a6e !important;
    text-transform: none !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    white-space: normal !important;
  }

  /* =========================
     NIVEL 2
  ========================= */
  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child {
    position: static !important;
    width: 100% !important;
    display: none !important;
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height .35s ease !important;
    background: #00475d !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }

.header-area .main-nav .nav li.has-sub-child.open > ul.sub-menu-child {
  display: block !important;
  max-height: 2000px !important;
}

  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li {
    display: block !important;
    width: 100% !important;
    list-style: none !important;
    background: #00475d !important;
    position: relative !important;
  }

  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li > a {
    display: block !important;
    width: 100% !important;
    padding: 0 42px 0 45px !important;
    min-height: 44px !important;
    line-height: 44px !important;
    color: #fff !important;
    background: #00475d !important;
    border-bottom: 1px solid #165a6e !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    white-space: normal !important;
  }

  /* =========================
     NIVEL 3
  ========================= */
  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li.has-sub-child > ul.sub-menu-child {
    position: static !important;
    width: 100% !important;
    display: none !important;
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height .35s ease !important;
    background: #00475d !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li.has-sub-child.open > ul.sub-menu-child,
  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li.has-sub-child.active > ul.sub-menu-child,
  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li.has-sub-child.show > ul.sub-menu-child {
    display: block !important;
    max-height: 2000px !important;
  }

  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li.has-sub-child > ul.sub-menu-child > li > a {
    display: block !important;
    width: 100% !important;
    padding: 0 42px 0 60px !important;
    min-height: 42px !important;
    line-height: 42px !important;
    color: #fff !important;
    background: #00475d !important;
    border-bottom: 1px solid #165a6e !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    white-space: normal !important;
  }

  /* Hover / active internos */
  .header-area .main-nav .nav li.has-sub > ul.sub-menu > li > a:hover,
  .header-area .main-nav .nav li.has-sub > ul.sub-menu > li > a.active,
  .header-area .main-nav .nav li.has-sub > ul.sub-menu > li.active > a,
  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li > a:hover,
  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li > a.active,
  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li.active > a,
  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li.has-sub-child > ul.sub-menu-child > li > a:hover,
  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li.has-sub-child > ul.sub-menu-child > li > a.active,
  .header-area .main-nav .nav li.has-sub-child > ul.sub-menu-child > li.has-sub-child > ul.sub-menu-child > li.active > a {
    background: #0cb1bd !important;
    color: #fff !important;
  }
}



/* Solo escritorio: mostrar menú como flex */
@media (min-width: 768px) {
  .header-area .main-nav .nav {
    display: flex !important;
  }
}

/* Solo móvil: menú oculto por defecto */
@media (max-width: 767px) {
  .header-area .main-nav .nav {
    display: none; /* oculto hasta que lo active el trigger */
    flex-direction: column; /* lista vertical */
    width: 100%;
  }

  /* Cuando el trigger agrega la clase 'active', se muestra */
  .header-area .main-nav.active .nav {
    display: block;
  }
}


/* ===============================
   Móvil: menú oculto por defecto
   =============================== */
@media (max-width: 767px) {
  /* El UL principal del menú siempre oculto hasta que el trigger lo abra */
  .header-area .main-nav .nav {
    display: none !important;  /* oculto por defecto */
    flex-direction: column;    /* vertical */
    width: 100%;
  }

  /* Cuando el menú se abre, se añade la clase .active al contenedor .main-nav */
  .header-area .main-nav.active .nav {
    display: block !important;
  }
}

@media (max-width: 767px) {
  /* Cuando el menú se abre, baja un poco para no tapar el botón ni el logo */
  .header-area .main-nav.active .nav {
    display: block !important;
    margin-top: 50px; /* ajusta según la altura de tu header y botón */
    z-index: 10;      /* asegura que quede encima del resto del contenido */
  }
}


.menu-trigger {
  display: inline-block;
  cursor: pointer;
  width: 30px;
  height: 25px;
  position: relative;
  z-index: 9999; /* encima del menú */
}

.menu-trigger span {
  display: block;
  position: absolute;
  height: 4px;
  width: 100%;
  background-color: #01b0dd !important; /* azul siempre */
  border-radius: 2px;
  left: 0;
  transition: all 0.3s ease-in-out;
}

.menu-trigger span:nth-child(1) { top: 0; }
.menu-trigger span:nth-child(2) { top: 10px; }
.menu-trigger span:nth-child(3) { top: 20px; }

.menu-trigger.active span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px) !important;
  top: 10px !important;
}
.menu-trigger.active span:nth-child(2) {
  opacity: 0 !important; /* desaparece */
}
.menu-trigger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px) !important;
  top: 10px !important;
}
.menu-trigger span {
  background-color: #044867 !important; /* azul siempre */
}

.menu-trigger.active span:nth-child(1),
.menu-trigger.active span:nth-child(2),
.menu-trigger.active span:nth-child(3) {
  background-color: #044867 !important; /* azul al transformarse en X */
}

.header-area .main-nav .menu-trigger span,
.header-area .main-nav .menu-trigger span:before,
.header-area .main-nav .menu-trigger span:after {
  background-color: #72b2b7 !important; /* azul siempre */
  transition: all 0.4s;
}

/* Animación cuando el trigger está activo */
.menu-trigger.active span {
  background-color: #044867 !important;
}

.menu-trigger.active span:before,
.menu-trigger.active span:after {
  background-color: #044867 !important;
}


/***********ESTILOS PARA IMAGENES SECCION CONTACTOS PAGINA WEB**********/
.img-col {
  border-collapse: separate;
  border-spacing: 16px; /* espacio entre filas */
  margin: 0 auto;
}
.img-col img {
  width: 100%;
  height: auto;
  max-width: 600px;
  border-radius: 8px;
  display: block;
}

.table-elegant {
  width: 100%;
  max-width: 800px;
  margin: 20px auto;
  border-collapse: collapse;
  background: #0e9fb5;          /* azul más claro que el fondo */
  border-radius: 10px;
  overflow: hidden;
  color: #fff;                  /* texto blanco */
  font-family: Arial, sans-serif;
}

.table-elegant th {
  background: #066b7d;          /* cabecera más oscura */
  padding: 14px 18px;
  text-align: left;
  font-size: 16px;
  font-weight: bold;
}

.table-elegant td {
  padding: 12px 18px;
  border-bottom: 1px solid rgba(255,255,255,0.2); /* línea tenue */
  font-size: 15px;
}

.table-elegant tr:hover td {
  background: rgba(255,255,255,0.08); /* efecto hover */
}

.table-elegant tr:last-child td {
  border-bottom: none;
}








/*** FOOTER IGM — CSS COMPLETO CORREGIDO ***/
.section-footer-igm{
  position: relative;
  margin-top: 150px;              /* separación hacia arriba */
  padding: 60px 0 0;              /* alto del footer (sin afectar copyright) */
  color: #fff;

  background: url(../images/fondo02.jpg) center/cover no-repeat;
}

/* Overlay oscuro con degradado para lectura consistente */
.section-footer-igm::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(
    180deg,
    rgba(0,0,0,0.78),
    rgba(0,0,0,0.72),
    rgba(0,0,0,0.86)
  );
}

/* Asegurar que el contenido quede sobre el overlay */
.section-footer-igm > .container,
.section-footer-igm .footer-bottom{
  position: relative;
  z-index: 1;
}

/* Títulos */
.section-footer-igm h5{
  font-weight: 800;
  margin-bottom: 14px;
  color: rgb(98 222 231);     /* azul institucional sobrio */
  letter-spacing: .02em;
  position: relative;
}

/* Línea corta bajo el título (jerarquía premium) */
.section-footer-igm h5::after{
  content:"";
  display:block;
  width: 34px;
  height: 2px;
  margin-top: 8px;
  background: rgb(98 222 231);
  border-radius: 999px;
  box-shadow: 0 0 18px rgba(79,195,247,0.18);
}

/* Texto general */
.section-footer-igm p{
  color: rgba(255,255,255,0.78);
  font-size: 14px;
  line-height: 1.6;
}

/* Links del footer */
.footer-link{
  display: flex;
  align-items: center;
  gap: 8px;

  margin-bottom: 8px;
  text-decoration: none;

  color: rgba(255,255,255,0.82);
  font-size: 14px;

  transition: color .2s ease, transform .2s ease;
}

.footer-link i{
  opacity: .9;
  transition: transform .2s ease, opacity .2s ease;
}

.footer-link:hover{
  color: rgba(79,195,247,0.95);
}

.footer-link:hover i{
  transform: translateX(3px);
  opacity: 1;
}

/* Imágenes y certificaciones: hover elegante */
.section-footer-igm img{
  transition: transform .25s ease, box-shadow .25s ease;
}

.section-footer-igm img:hover{
  transform: scale(1.03);
  box-shadow: 0 10px 30px rgba(0,0,0,0.35);
}

/* Logos/certificaciones: que se vean limpios sobre fondo oscuro */
.section-footer-igm .col-6 a img{
  background: rgba(255,255,255,0.92);
  padding: 8px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.10);
}

/* Reducir sombras de Bootstrap para mantener consistencia */
.section-footer-igm .shadow-sm{
  box-shadow: none !important;
}

/* Footer bottom (copyright) */
.footer-bottom{
  margin-top: 0 !important;                 /* anula mt-4 */
  border-top: 1px solid rgba(255,255,255,0.10) !important;
  background: rgba(0,0,0,0.18);             /* sutil banda para separar */
}

.footer-bottom p{
  color: rgba(255,255,255,0.85);
}

/* Responsive */
@media (max-width: 768px){
  .section-footer-igm{
    margin-top: 80px;
    padding: 40px 0 0;
  }

  .section-footer-igm h5{
    margin-top: 10px;
  }

  .section-footer-igm h5::after{
    width: 28px;
  }

  .footer-link{
    font-size: 14px;
  }
}

.border-secondary{
  
}

/* =========================================
   IGM – ESPACIADO UNIFORME ENTRE SECCIONES
   Pegar al FINAL de styles.css
   ========================================= */

:root{
  --igm-sec-pad-y: 56px;      /* desktop */
  --igm-sec-pad-y-sm: 34px;   /* móvil */
  --igm-sec-title-mb: 16px;
}

/* 1) Repara “rompe-flujo” */
/* =========================================
   AJUSTE FINO: subir videos sobre el banner
   ========================================= */


section.videos-carru#courses{
  position: relative;
  margin-top: -220px !important; /* 🔼 vuelve a subir */
  z-index: 10;
}
.services{
  position: relative !important; /* evita cualquier absolute heredado */
  margin: 0 !important;
  padding-top: var(--igm-sec-pad-y) !important;
  padding-bottom: var(--igm-sec-pad-y) !important;
}





.section-informaciones-igm{

  /*background: url('../images/fondo04.jpg');*/

  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;

  background-attachment: fixed;

  position: relative;
}
/* 2) Normaliza TODAS las secciones de la home */
.section.main-banner,
.videos-carru,
section.services,
section.apply-now,
.section-servicios-geodesia-tabs,
.accesos-institucionales,
.section-informaciones-igm,
.enlaces-interes,
.upcoming-meetings{
  padding-top: var(--igm-sec-pad-y) !important;
  padding-bottom: var(--igm-sec-pad-y) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  clear: both;
}

/* 3) Si tienes py-5 en el SECTION, que no “infle” el alto */
.section-servicios-geodesia-tabs.py-5,
.section-informaciones-igm.py-5{
  padding-top: var(--igm-sec-pad-y) !important;
  padding-bottom: var(--igm-sec-pad-y) !important;
}

/* 4) Si algún container interno trae my-5, lo anulamos */
.section-informaciones-igm .informacion-igm-fondo-color.my-5,
.section-informaciones-igm .informacion-igm-fondo-color{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* 5) Banners internos (títulos) consistentes */
.section-servicios-geodesia-tabs .section-banner,
.section-informaciones-igm .section-banner,
.accesos-institucionales .section-banner2,
.services .services-header{
  margin-bottom: var(--igm-sec-title-mb) !important;
  padding: 12px !important;
}

/* 6) Evita aire extra por <br><br> dentro de tabs */
.section-servicios-geodesia-tabs br{
  display: none;
}


/* =========================================
   FIX REAL: quitar el gap arriba/abajo en Informaciones
   ========================================= */

/* 1) Mata el my-5 dentro de ESTA sección (Bootstrap trae !important) */
section#informaciones.section-informaciones-igm .my-5{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* 2) Por si tu div no es exactamente .container... igual lo cubre */
section#informaciones.section-informaciones-igm .informacion-igm-fondo-color{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* 3) Compactar el banner del título (mb-4 + p-3) */
section#informaciones.section-informaciones-igm .section-banner{
  margin-bottom: 12px !important;
  padding: 12px !important;
}

/* 4) Asegurar que el SECTION no agregue “aire” extra */
section#informaciones.section-informaciones-igm{
  padding-top: 40px !important;
  padding-bottom: 40px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}


/* ======================
   MÓVIL
   ====================== */
@media (max-width: 768px){
  .section.main-banner,
  .videos-carru,
  section.services,
  section.apply-now,
  .section-servicios-geodesia-tabs,
  .accesos-institucionales,
  .section-informaciones-igm,
  .enlaces-interes,
  .upcoming-meetings{
    padding-top: var(--igm-sec-pad-y-sm) !important;
    padding-bottom: var(--igm-sec-pad-y-sm) !important;
  }

  /* parallax suele “tironear” en móvil */
  .section-servicios-geodesia-tabs,
  .accesos-institucionales,
  .section-informaciones-igm,
  section.apply-now{
    background-attachment: scroll !important;
    background-position: center top;
  }
}

@media (max-width: 768px){
  section.videos-carru#courses{
    margin-top: -200px !important;
  }
}


/* ===== FIX: Banner video NO debe quedar bajo el header (mobile) ===== */
@media (max-width: 991.98px){

  /* Ajusta aquí según tu header real */
  :root{ --mobileHeaderH: 110px; }  /* 90 + margen/aire */

  /* Header fijo arriba */
  .header-area,
  .background-header{
    position: fixed !important;
    top: 0 !important;        /* OJO: 0 para evitar solapes raros */
    left: 0 !important;
    right: 0 !important;
    height: 90px !important;
    z-index: 2000 !important;
  }

  /* El banner/video reserva espacio para que NO lo tape el menú */
  .section.main-banner{
    margin-top: 0 !important;
    padding-top: var(--mobileHeaderH) !important;
  }

  /* El overlay no debe arrancar pegado arriba */
  .video-overlay.header-text{
    padding-top: 20px !important;
  }

  /* Quita el empuje por margin-top (esto suele romper) */
  .video-overlay.header-text .caption{
    margin-top: 0 !important;         /* <-- clave */
  }

  /* Tip: baja un poco el bloque de texto si aún queda justo */
  .texto-intro{
    padding-top: 10px !important;
  }
}



/* ===== FIX: Banner video NO debe quedar bajo el header (mobile) ===== */
@media (max-width: 991.98px){

  /* Ajusta aquí según tu header real */
  :root{ --mobileHeaderH: 110px; }  /* 90 + margen/aire */

  /* Header fijo arriba */
  .header-area,
  .background-header{
    position: fixed !important;
    top: 0 !important;        /* OJO: 0 para evitar solapes raros */
    left: 0 !important;
    right: 0 !important;
    height: 90px !important;
    z-index: 2000 !important;
  }

  /* El banner/video reserva espacio para que NO lo tape el menú */
  .section.main-banner{
    margin-top: 0 !important;
    padding-top: var(--mobileHeaderH) !important;
  }

  /* El overlay no debe arrancar pegado arriba */
  .video-overlay.header-text{
    padding-top: 20px !important;
  }

  /* Quita el empuje por margin-top (esto suele romper) */
  .video-overlay.header-text .caption{
    margin-top: 0 !important;         /* <-- clave */
  }

  /* Tip: baja un poco el bloque de texto si aún queda justo */
  .texto-intro{
    padding-top: 10px !important;
  }
}



/* ===== TÍTULOS (H2) – AJUSTE MOBILE GLOBAL ===== */
@media (max-width: 576px){

  /* Todos los h2 dentro de secciones */
  section h2{
    font-size: 22px !important;   /* prueba 20–24 */
    line-height: 1.2 !important;
    text-align: center !important;
  }

  /* Íconos dentro de h2 (FontAwesome) */
  section h2 i{
    font-size: 18px !important;
    margin-right: 6px !important;
  }
}


/* ===== APPLY-NOW: TÍTULO h3 – AJUSTE MOBILE ===== */
@media (max-width: 576px){
  section.apply-now .item h3{
    font-size: 18px !important;   /* antes 24px */
    line-height: 1.25 !important;
    margin-bottom: 12px !important;
    text-align: center !important;
  }
}


/* ===== SERVICIOS GEODESIA: h4 – AJUSTE MOBILE ===== */
@media (max-width: 576px){
  .section-servicios-geodesia-tabs .tab-pane h4{
    font-size: 17px !important;   /* antes ~20px */
    line-height: 1.25 !important;
    margin-bottom: 10px !important;
    text-align: center !important;
  }
}

/* ===== SECTION-HEADING h2 – AJUSTE MOBILE ===== */
@media (max-width: 576px){
  .section-heading h2{
    font-size: 17px !important;    /* antes 22px */
    line-height: 1.25 !important;  /* antes 40px */
    margin-bottom: 20px !important;/* antes 50px */
    padding-bottom: 10px !important;
    text-align: center !important;
  }
}


/*decora tus espacios*/
@media (max-width: 576px){
  .explora{
    color: white;
    font-size:17px;
  }
}


/*subtitulo red de atencion*/
@media (max-width: 576px){
  .informacion-igm-datos-insti {
    color: white !important;
    font-size:17px;
  }
}


@media (max-width: 576px){
  .subtitulo-enlaces {
    font-size:17px;
    color:white !important;
    text-align:center;
  }
}


/*margen footer*/
@media (max-width: 576px){
  .footer-bottom{
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  .footer-bottom p{
    font-size: 13px;        /* un pelín más chico */
    line-height: 1.4;
  }
}


/* ===== FIX: ALINEAR LOGO + MENU EN SCROLL (background-header) ===== */
.background-header .main-nav{
  min-height: 80px !important; /* calza con height del header */
}

.background-header .main-nav .logo{
  padding-top: 0 !important;     /* quita empuje */
  line-height: 80px !important;  /* centra vertical exacto */
}

.background-header .main-nav .nav{
  margin-top: 0 !important;      /* evita que el menú baje */
}




/* ===== Igualar altura visual + alinear imágenes (sin angostar cards) ===== */
.modern-cards{
  /* NO tocamos columnas acá (para no angostar). Solo dejamos el layout como esté. */
}

.modern-card{
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* Evita que el padding “infle” demasiado y desordene la card */
.modern-card p{
  margin: 0 0 12px;
}

/* La lista no debe “romper” el flow */
.modern-card ul{
  margin: 0 0 12px;
  padding-left: 22px;   /* ajusta si quieres */
}

/* === Imagen uniforme en todas las cards === */
.modern-card img{
  width: 100%;
  height: 220px;        /* AJUSTA: 200/220/240 según te guste */
  object-fit: cover;    /* recorta parejo sin deformar */
  border-radius: 12px;
  display: block;
  margin-top: auto;     /* empuja la imagen al final de la card */
}

/* (Opcional) Si algunas imágenes vienen dentro de <p> */
.modern-card img{
  object-fit: contain;
  background: #f1f1f1; /* para que no quede “vacío” feo */
}



/* ===== Foto equipo directivo: tamaño controlado (no 100% columna) ===== */
.thumbnail .bordefoto{
  width: 450px;              /* ajusta: 160/180/200 */
  height: 450px;
  max-width: 100%;
  border-radius: 50%;
  object-fit: cover;         /* recorta centrado, mantiene "avatar" */
  display: block;
  margin: 0 auto;

  /* tu marco (puedes mantenerlo) */
  background: #fff;
  padding: 8px;
  border: 1px solid #fff;
  box-shadow: 0px 5px 12px 0px rgba(141, 132, 132, 0.45);
}

/* En móviles, un poco más chico */
@media (max-width: 576px){
  .thumbnail .bordefoto{
    width: 140px;
    height: 140px;
    padding: 6px;
  }
}

.separador-cargo {
  width: 70%;
  margin: 18px auto;
  border: none;
  height: 2px;
  background-color: #646666;
  box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}




.igm-breadcrumb{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 10px 0 18px;
  padding: 8px 14px;
  border-radius: 10px;
  background: #05252f;
  backdrop-filter: blur(4px);
}

.igm-breadcrumb__link{
  color: #ffffff !important;
  font-weight: 600;
  text-decoration: none !important;
  opacity: 0.95;
}

.igm-breadcrumb__link:hover{
  opacity: 1;
  text-decoration: underline !important;
}

.igm-breadcrumb__sep{
  color: rgba(255,255,255,0.55);
}

.igm-breadcrumb__section{
  color: rgba(255,255,255,0.75);
  font-weight: 600;
}

.igm-breadcrumb__current{
  color: #79dbf4;
  font-weight: 600;
  cursor: default;
}

/* móvil */
@media (max-width: 767px){
  .igm-breadcrumb{
    margin: 8px 0 14px;
    padding: 8px 12px;
    font-size: 13px;
  }
}


/*enlace al qr*/
.link-qr-scroll {
  color: #0fa5ad;
  font-weight: 600;
  text-decoration: underline;
  transition: all 0.3s ease;
}

.link-qr-scroll:hover {
  color: #046997;
  text-decoration: none;
}
html {
  scroll-behavior: smooth;
}


/* 1) Normaliza el párrafo de descripción en todas las cards del carrusel */
.owl-carousel .item p,
.post-slide11 p,
.card-slider p {
  margin: 0;
  line-height: 1.6;
}

/* 2) Fuerza “misma altura” visual de la descripción (ajusta el valor) */
.owl-carousel .item p {
  min-height: 78px;   /* prueba 70–90 según tu diseño */
}

/* 3) Estilo del link dentro del párrafo SIN desalinear */
.owl-carousel .item p a.link-qr-scroll {
  display: inline;             /* clave: no lo conviertas en block */
  font-weight: 600;
  color: #0fa5ad;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
}

.owl-carousel .item p a.link-qr-scroll:hover {
  color: #046997;
}




/* Botón subir arriba */
.btn-top{
  position: fixed;
  right: 18px;
  bottom: 18px;
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: #0288a7;      /* ajusta a tu color */
  color: #fff !important;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  box-shadow: 0 10px 25px rgba(0,0,0,.25);
    right: auto !important;
  left: 20px !important;
  bottom: 20px !important;
  z-index: 9999;

  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: all .25s ease;
}

.btn-top:hover{
  background: #046997;
  transform: translateY(0);
}

/* visible */
.btn-top.show{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* opcional: más chico en móvil */
@media (max-width: 767px){
  .btn-top{
    width: 42px;
    height: 42px;
    right: 14px;
    bottom: 14px;
  }
}



@media (max-width: 576px){
  #btn-top{ left: 14px !important; bottom: 14px !important; }
}



/*modal para mostrar la ubicacion del igm*/
  .modal-ubicacion{
    border-radius: 16px;
    overflow: hidden;
  }
  .modal-ubicacion .modal-header{
    background: linear-gradient(90deg, #0b78a7, #0aa2c2);
    color: #fff;
    border: 0;
  }
  .modal-ubicacion .btn-close{
    filter: invert(1);
    opacity: .9;
  }


.lista-igm li strong {
  white-space: nowrap;
}



/**PARA FOTOS INTERNAS PAGINAS**/

:root{
  --igm-overlay: rgba(10, 60, 85, 0.32); /* azul/teal institucional */
}

/* Wrapper para poder aplicar overlay + máscara sin que se note el "cuadro" */
.igm-photo-wrap{
  position: relative;
  width: min(420px, 92%);
  margin: 0 auto 24px;
  isolation: isolate; /* mezcla aislada */
}

/* La foto */
.igm-photo{
  display: block;
  width: 100%;
  height: auto;

  /* Integración cromática con el sitio (menos cálido / menos saturado) */
  filter: saturate(0.78) contrast(0.95) brightness(0.99) hue-rotate(-10deg);

  /* Bordes esfumados (NO se ve cuadrada) */
  -webkit-mask-image: radial-gradient(ellipse at center,
    rgba(0,0,0,1) 58%,
    rgba(0,0,0,0.70) 72%,
    rgba(0,0,0,0) 100%
  );
  mask-image: radial-gradient(ellipse at center,
    rgba(0,0,0,1) 58%,
    rgba(0,0,0,0.70) 72%,
    rgba(0,0,0,0) 100%
  );

  /* suavidad mínima, no "tarjeta" */
  border-radius: 10px;
}

/* Capa azul institucional encima (para amarrarla al fondo) */
.igm-photo-wrap::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;

  background: radial-gradient(ellipse at center,
    var(--igm-overlay) 0%,
    rgba(10,60,85,0.18) 55%,
    rgba(10,60,85,0) 100%
  );

  mix-blend-mode: multiply;  /* prueba también: overlay o soft-light */
  opacity: 0.95;

  /* esfumado del overlay también (para que no haya bordes) */
  -webkit-mask-image: radial-gradient(ellipse at center,
    rgba(0,0,0,1) 60%,
    rgba(0,0,0,0.35) 78%,
    rgba(0,0,0,0) 100%
  );
  mask-image: radial-gradient(ellipse at center,
    rgba(0,0,0,1) 60%,
    rgba(0,0,0,0.35) 78%,
    rgba(0,0,0,0) 100%
  );
}

/* Fallback si mask-image no está soportado */
@supports not (mask-image: radial-gradient(circle, #000, transparent)){
  .igm-photo-wrap{ overflow:hidden; border-radius: 14px; }
  .igm-photo{ border-radius: 14px; }
}


.nav-tabs{
  border-bottom:0px solid #dee2e6 !important;
}


/****quiero cambiar el atributo color de la flecha del carrusel que esta ne recursos***/
.swiper-button-next, .swiper-button-prev{
color:#0cb1bd !important;
}


/****VIDETOS TIENDA*****/
.subtitulo-comercial {
  font-size: 1.3rem;
  color: rgba(255,255,255,0.75) !important;
  margin-bottom: 0;
  text-align:center;
}





/* ===== SALUDO DIRECTOR IGM ===== */

.saludo-director-igm .card-saludo {
  max-width: 950px;
  margin: 0 auto;
  padding: 40px 45px;
  background: rgba(8, 34, 46, 0.55);
  backdrop-filter: blur(8px);
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 20px 45px rgba(0,0,0,0.35);
}

/* Imagen */
.saludo-director-igm .foto-director {
  display: block;
  margin: 0 auto 30px;
  width: min(650px, 95%);
  border-radius: 16px;
  box-shadow: 0 18px 35px rgba(0,0,0,0.35);
  border: 1px solid rgba(255,255,255,0.08);
}

/* Texto */
.saludo-director-igm .texto-saludo {
  font-size: 1.05rem;
  line-height: 1.9;
  color: rgba(255,255,255,0.88);
  text-align: left;
  letter-spacing: 0.2px;
}

/* Separación entre párrafos */
.saludo-director-igm .texto-saludo p {
  margin-bottom: 18px;
}

/* Primera letra estilo editorial (opcional elegante) */
.saludo-director-igm .texto-saludo p:first-child::first-letter {
  font-size: 2.6rem;
  font-weight: 700;
  float: left;
  line-height: 1;
  padding-right: 8px;
  color: #8ee7f1;
}

/* Firma */
.saludo-director-igm .firma-director {
  margin-top: 35px;
  text-align: center;
  font-weight: 600;
  color: rgba(255,255,255,0.95);
}

/* Línea decorativa superior */
.saludo-director-igm .card-saludo::before {
  content: "";
  display: block;
  width: 80px;
  height: 4px;
  margin: 0 auto 25px;
  border-radius: 50px;
  background: linear-gradient(90deg, #1cb5c4, #0d7377);
  opacity: 0.7;
}




/* ===== MISIÓN IGM ===== */
.page-mision-igm .modern1-card p{
  max-width: 70ch;
  margin: 10px auto 0;
  font-size: 1.25rem;
  line-height: 1.95;
  letter-spacing: .15px;
  text-align: justify;
}

/* líneas elegantes arriba/abajo del texto */
/*.page-mision-igm .modern1-card p::before,
.page-mision-igm .modern1-card p::after{
  content:"";
  display:block;
  width: 90px;
  height: 3px;
  margin: 18px auto;
  border-radius: 50px;
  background: linear-gradient(90deg,#1cb5c4,#0d7377);
  opacity: .75;
}*/

/* ===== VISIÓN IGM ===== */
.page-vision-igm p:first-of-type{
  max-width: 90ch;
  margin: 20px auto 24px;
  padding: 0 0 0 18px;
  line-height: 2;
  font-size: 1.25rem;

  border-left: 4px solid rgba(46,196,199,.75);
  background: none;
  border-radius: 0;
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
}




/* ===== LISTA VALORES VISIÓN IGM ===== */

/* primera frase más fuerte */
.page-vision-igm p:first-of-type strong{
  color: #66bbcf;
  font-size: 1.12rem;
}

/* ===== LISTA VISIÓN IGM (corregida) ===== */

/* ===== LISTA VISIÓN IGM (corregida) ===== */

.page-vision-igm .modern1-card{
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Contenedor UL */
.page-vision-igm .lista-igm{
  width: 100%;
  max-width: 680px;
  margin: 30px auto 0 !important;
  padding-left: 0;
  list-style: none;
}

/* Cada LI como tarjeta */
.page-vision-igm .lista-igm li{
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 14px;
  align-items: start;

  padding: 18px 22px;
  margin-bottom: 16px;

  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 16px;

  /* transición suave (hover) */
  transition:
    transform 0.45s cubic-bezier(.22,1,.36,1),
    background-color 0.45s cubic-bezier(.22,1,.36,1),
    box-shadow 0.45s cubic-bezier(.22,1,.36,1),
    border-color 0.45s cubic-bezier(.22,1,.36,1);
  will-change: transform;
}

/* Hover elegante */
.page-vision-igm .lista-igm li:hover{
  transform: translateY(-4px);
  background-color: rgba(255,255,255,0.10);
  border-color: rgba(142,231,241,.28);
  box-shadow: 0 16px 34px rgba(0,0,0,0.32);
}

/* Icono */
.page-vision-igm .lista-igm li i{
  grid-column: 1;
  margin-top: 3px;
  font-size: 1.15rem;
  color: rgba(142,231,241,.95);
}

/* Texto completo del item */
.page-vision-igm .lista-igm li{
  color: rgba(255,255,255,0.92);
  line-height: 1.65;
}

/* ✅ Título dentro del li (evita el “texto en columna”) */
.page-vision-igm .lista-igm li strong{
  display: inline-block;         /* o block si lo quieres en línea aparte */
  color: #8ee7f1;
  font-weight: 700;
  margin-right: 6px;             /* separa del texto */
  white-space: normal;           /* por si el título es largo */
}

/* Si estás usando <br> dentro del li, que no deje un salto gigante */
.page-vision-igm .lista-igm li br{
  display: none;                 /* opcional: quita el <br> visualmente */
}

/* (Opcional) Si quieres que el texto comience “debajo” del título */
.page-vision-igm .lista-igm li strong{
  display: block;                /* descomenta si lo prefieres así */
  margin: 0 0 6px 0;
}


/* ===== SALUDO DIRECTOR ===== */
.page-saludo-director p{
  max-width: 85ch;
  margin: 0 auto 14px;
  line-height: 2.05;
  letter-spacing: .15px;
  text-align: justify;
  hyphens: auto;
}

/* dropcap solo al primer párrafo */
.page-saludo-director p:first-of-type::first-letter{
  float: left;
  font-size: 3.2rem;
  line-height: .9;
  padding: 10px 10px 0 0;
  font-weight: 800;
  color: rgba(142,231,241,.95);
}

/* firma */
.page-saludo-director .firma-director{
  text-align:center;
  margin-top: 26px;
  opacity: .95;
}

.page-saludo-director .firma-director::before{
  content:"";
  display:block;
  width: 220px;
  height: 3px;
  margin: 0 auto 18px;
  border-radius: 50px;
  background: linear-gradient(90deg,#1cb5c4,#0d7377);
  opacity: .85;
}

/*.seccion-interna-igm a{
  color: #4ad2e9 !important;
  text-decoration: underline;
}*/



/* CONTENEDOR “FLOAT / GLASS” PARA IMÁGENES DESTACADAS SOLO POSICIONAMIENTO SIN BORDE*/
/*.igm-media{


  position: relative;
  width: min(920px, 92%);
  margin: 0 auto;

  padding: 16px;

  border-radius:10px;



}

.igm-media__img{
  display:block;
  width: 100%;
  height: auto;
  border-radius: calc(var(--r) - 10px);

 
}*/


/* CONTENEDOR “FLOAT / GLASS” PARA IMÁGENES DESTACADAS CON BORDES Y BACKGROUND TRANSPARENTES*/
.igm-media{
  position: relative;
  width: min(920px, 92%);
  margin: 0 auto 26px;
  padding: 14px;
  border-radius: 22px;

  /* base glass */
  background: rgba(10, 34, 40, 0.35);
  border: 1px solid rgba(142,231,241,0.16);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);

  /* sombra para que “flote” */
  box-shadow:
    0 18px 45px rgba(0,0,0,0.45),
    inset 0 1px 0 rgba(255,255,255,0.06);
  overflow: hidden;
}

/* Glow suave (integración con el verde/agua) */
.igm-media::before{
  content:"";
  position:absolute;
  inset:-40px;
  background: radial-gradient(60% 60% at 30% 20%,
      rgba(142,231,241,0.22),
      rgba(142,231,241,0.06) 45%,
      rgba(0,0,0,0) 70%);
  pointer-events:none;
}

/* Overlay topográfico MUY sutil (sin moverse) */
.igm-media::after{
  content:"";
  position:absolute;
  inset:0;
  background-image: url("assets/images/ui/topo-lines.png"); /* tu patrón topográfico PNG/SVG */
  background-size: cover;
  background-position: center;
  opacity: 0.14;              /* clave: bajito */
  mix-blend-mode: screen;     /* se fusiona con el fondo */
  pointer-events:none;
}

/* IMAGEN */
.igm-media__img{
  display:block;
  width:100%;
  height:auto;
  border-radius: 16px;

  /* sutil “profundidad” */
  box-shadow: 0 12px 30px rgba(0,0,0,0.35);
  border: 1px solid rgba(255,255,255,0.10);

  /* leve integración de color */
  filter: saturate(1.02) contrast(1.03);
}

/* viñeta suave para que no se vea “pegada” */
.igm-media .igm-media__img{
  -webkit-mask-image: radial-gradient(circle at 50% 45%,
    rgba(0,0,0,1) 70%,
    rgba(0,0,0,0.92) 82%,
    rgba(0,0,0,0.75) 92%,
    rgba(0,0,0,0.0) 100%);
  mask-image: radial-gradient(circle at 50% 45%,
    rgba(0,0,0,1) 70%,
    rgba(0,0,0,0.92) 82%,
    rgba(0,0,0,0.75) 92%,
    rgba(0,0,0,0.0) 100%);
}


.borde-fotos-peq{
  padding:10px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgb(71, 166, 177);
  border-radius: 16px;
   box-shadow: 0 16px 34px rgba(0,0,0,0.32);
  
}


.fecha-historica{
  color: #8ee7f1;   /* tu turquesa institucional */
  font-weight: 700;
}
.referente{
  color: #8ee7f1;   /* tu turquesa institucional */
  font-weight: 700;
  font-size:22px !important;
}





/***equipo directivo***/

/* ===  EQUIPO DIRECTIVO === */

.EquipoDirectivo{
  
  /*background: url('../images/fondo04.jpg');

  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;

  background-attachment: fixed;*/

  padding-top: 40px;
  padding-bottom: 60px;
  margin-top: 150px;
}

/* Swiper */
.EquipoDirectivo .EquipoDirectivo__swiper{
  width: 100%;
  max-width: 1300px;
  margin: auto;
  padding-bottom: 48px;
  /* ✅ un poco más alto para que no “muerda” la paginación */
  height: clamp(585px, 74vh, 760px);
}

/* Flechas */
.EquipoDirectivo .swiper-button-next,
.EquipoDirectivo .swiper-button-prev{
  color: #2bbec7;
  z-index: 20;
  width: 60px;
  height: 60px;
}

/* tamaño del icono */
.EquipoDirectivo .swiper-button-next:after,
.EquipoDirectivo .swiper-button-prev:after{
  font-size: 42px; /* más grande */
  font-weight: bold;
}

/* separarlas de las cards */
.EquipoDirectivo .swiper-button-prev{
  left: -17px;
}

.EquipoDirectivo .swiper-button-next{
  right: -17px;
}

/* ===== Color bullets personalizado ===== */
.EquipoDirectivo .bullets-color .swiper-pagination-bullet{
  background: rgba(255,255,255,0.35); /* bullets normales */
}

.EquipoDirectivo .bullets-color .swiper-pagination-bullet-active{
  background: #5ad0d8; /* bullet activo */
  opacity: 1;
  transform: scale(1.15);
}

/* Bullets */
.EquipoDirectivo .swiper-pagination{
  /* ✅ BAJAR 10px: antes estaba en 10px, ahora lo bajamos 10px */
  bottom: 0px !important;

  /* ✅ por si algún contenedor los estaba recortando */
  z-index: 30;
}

.EquipoDirectivo .swiper-pagination-bullet{
  width: 12px;
  height: 12px;
  opacity: .55;
}
.EquipoDirectivo .swiper-pagination-bullet-active{
  opacity: 1;
}

/* ===== Tarjeta ===== */
.EquipoDirectivo .ed-card{
  width: 100%;
  max-width: 360px;
  margin: 0 auto;
  border-radius: 10px;
  background: #012c3b82;
  box-shadow: 0 12px 30px rgba(0,0,0,0.18);
  overflow: hidden;
  padding: 18px 18px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.EquipoDirectivo .ed-card{
  position: relative; /* clave para el overlay */
}

/* Fondo decorativo dentro de la card */
.EquipoDirectivo .ed-card::before{
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("assets/images/equipo-directivo/avatar_cmd.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: .90;            /* ajusta intensidad */
  pointer-events: none;
  z-index: 0;
}

/* Todo el contenido arriba del fondo */
.EquipoDirectivo .ed-card > *{
  position: relative;
  z-index: 1;
}

/* ===== ÓVALO ===== */
.EquipoDirectivo .ed-avatar{
  width: 92%;
  max-width: 320px;
  height: 390px;
  margin-top: 4px;
  background: #fff;
  border: 10px solid #fff;
  border-radius: 50%;
  box-shadow: 0 16px 28px rgba(0,0,0,0.18);
  overflow: hidden;
  position: relative;
}

/* imagen recortada */
.EquipoDirectivo .ed-avatar img{
  position: absolute;
  left: 50%;
  top: 52%;
  transform: translate(-50%, -50%);
  width: 118%;
  height: 118%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* ===== Textos ===== */
.EquipoDirectivo .ed-body{
  width: 100%;
  text-align: center;
  padding: 14px 18px 0;
}

.EquipoDirectivo .ed-nombre{
  margin: 10px 0 10px;
  font-size: clamp(0.95rem, 1vw, 1.15rem); /* un poco más chico */
  font-weight: 800;
  color: #5ad0d8;
  white-space: nowrap;        /* siempre una línea */
  text-align: center;         /* centrado */
  width: 100%;                /* centra correctamente */
  text-shadow: 0 2px 6px rgba(0,0,0,0.45);
}

/* ✅ cards iguales aunque el puesto sea largo */
.EquipoDirectivo .ed-cargo{
  padding: 6px 0 12px;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  min-height: 96px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.EquipoDirectivo .ed-grado{
  font-size: 1.05rem;
  font-weight: 800;
  color: #ffffff;
  margin-bottom: 4px;
  line-height: 1.15;
}

/* ✅ puesto máximo 3 líneas */
.EquipoDirectivo .ed-puesto{
  font-size: 0.95rem;
  color: #ffffff;
  line-height: 1.2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

/* ====  MAIL FULL WIDTH (caja entera a ambos costados) ==== */

.EquipoDirectivo .ed-mails{
  width: calc(100% + 36px);
  margin: 14px -18px 0;
  /* ✅ más “alto” el bloque mail (como tu maqueta) */
  padding: 16px 12px 18px;
  background: #012c3b;
  border-top: 1px solid rgba(0,0,0,0.06);
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 64px;
}

.EquipoDirectivo .ed-mail{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.80rem;
  color: #83dde3;
  font-size:16px;
  padding: 6px 10px;
  border-radius: 8px;
  cursor: default;
  user-select: text;
}

.EquipoDirectivo .ed-mail span{
  word-break: break-word;
  line-height: 1.1;
}

/* Responsive */
@media (max-width: 576px){
  .EquipoDirectivo .ed-card{ max-width: 340px; }
  .EquipoDirectivo .ed-avatar{ height: 380px; }
}

.EquipoDirectivo .swiper-pagination-bullet{
  transition: all .25s ease;
}

.EquipoDirectivo .ed-card{
  transition: transform .25s ease, box-shadow .25s ease;
}

.EquipoDirectivo .ed-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.25);
}

.actualiza{
  color: #d3ab10
}


/******formulario de contacto**********/
/* Estilo general del formulario */

/* Inputs y textarea: estado normal */
#contact input.form-control,
#contact textarea.form-control,
#contact .form-select {
  background-color: #f0f2f5 !important;        /* gris suave */
  color: #222 !important;                      /* texto negro */
  border: 2px solid #d2dadc !important;       /* borde gris */
  border-radius: 10px !important;
  padding: 10px 12px !important;
  font-size: 0.95rem !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important; /* sombra tenue */
  outline: none !important;
  appearance: none !important;
  background-clip: padding-box !important;
  transition: all 0.3s ease !important;
}

/* Placeholder negro */
#contact input.form-control::placeholder,
#contact textarea.form-control::placeholder,
#contact .form-select option:disabled {
  color: #222 !important;
  opacity: 1 !important;
}

/* Focus: sombra y borde más pronunciados */
#contact input.form-control:focus,
#contact textarea.form-control:focus,
#contact .form-select:focus {
  border-color: #555 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}

/* Botones con sombra */
#contact button {
  background-color: #059aa7 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 10px 18px !important;
  font-size: 0.95rem !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
}

#contact button:hover {
  box-shadow: 0 6px 16px rgba(0,0,0,0.2) !important;
  transform: translateY(-1px) !important;
  background-color: #06c4df !important;
}
/* Opción por defecto deshabilitada */
#contact .form-select option:disabled {
  background-color: #cce0ff !important; /* azul tenue */
  color: #000 !important;               /* texto negro */
}

#contact .text-muted-form{
  color:#63e7dc !important;
}


/***contacto oficina de partes*******/
/* Estilo general del formulario */

/* Inputs y textarea: estado normal */
#contact_ofpartes input.form-control,
#contact_ofpartes textarea.form-control,
#contact_ofpartes .form-select {
  background-color: #f0f2f5 !important;        /* gris suave */
  color: #222 !important;                      /* texto negro */
  border: 2px solid #d2dadc !important;       /* borde gris */
  border-radius: 10px !important;
  padding: 10px 12px !important;
  font-size: 0.95rem !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important; /* sombra tenue */
  outline: none !important;
  appearance: none !important;
  background-clip: padding-box !important;
  transition: all 0.3s ease !important;
}

/* Placeholder negro */
#contact_ofpartes input.form-control::placeholder,
#contact_ofpartes textarea.form-control::placeholder,
#contact_ofpartes .form-select option:disabled {
  color: #222 !important;
  opacity: 1 !important;
}

/* Focus: sombra y borde más pronunciados */
#contact_ofpartes input.form-control:focus,
#contact_ofpartes textarea.form-control:focus,
#contact_ofpartes .form-select:focus {
  border-color: #555 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}

/* Botones con sombra */
#contact_ofpartes button {
  background-color: #059aa7 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 10px 18px !important;
  font-size: 0.95rem !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
}

#contact_ofpartes button:hover {
  box-shadow: 0 6px 16px rgba(0,0,0,0.2) !important;
  transform: translateY(-1px) !important;
  background-color: #06c4df !important;
}
/* Opción por defecto deshabilitada */
#contact_ofpartes .form-select option:disabled {
  background-color: #cce0ff !important; /* azul tenue */
  color: #000 !important;               /* texto negro */
}
#contact_ofpartes .text-muted-form{
  color:#63e7dc !important;
}




/******formulario de contacto**********/
/* Estilo general del formulario */

/* Inputs y textarea: estado normal */
#contact input.form-control,
#contact textarea.form-control,
#contact .form-select {
  background-color: #f0f2f5 !important;        /* gris suave */
  color: #222 !important;                      /* texto negro */
  border: 2px solid #d2dadc !important;       /* borde gris */
  border-radius: 10px !important;
  padding: 10px 12px !important;
  font-size: 0.95rem !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important; /* sombra tenue */
  outline: none !important;
  appearance: none !important;
  background-clip: padding-box !important;
  transition: all 0.3s ease !important;
}

/* Placeholder negro */
#contact input.form-control::placeholder,
#contact textarea.form-control::placeholder,
#contact .form-select option:disabled {
  color: #222 !important;
  opacity: 1 !important;
}

/* Focus: sombra y borde más pronunciados */
#contact input.form-control:focus,
#contact textarea.form-control:focus,
#contact .form-select:focus {
  border-color: #555 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}

/* Botones con sombra */
#contact button {
  background-color: #059aa7 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 10px 18px !important;
  font-size: 0.95rem !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
}

#contact button:hover {
  box-shadow: 0 6px 16px rgba(0,0,0,0.2) !important;
  transform: translateY(-1px) !important;
  background-color: #06c4df !important;
}
/* Opción por defecto deshabilitada */
#contact .form-select option:disabled {
  background-color: #cce0ff !important; /* azul tenue */
  color: #000 !important;               /* texto negro */
}

#contact .text-muted-form{
  color:#63e7dc !important;
}


/***contacto oficina de partes*******/
/* Estilo general del formulario */

/* Inputs y textarea: estado normal */
#contact_ofpartes input.form-control,
#contact_ofpartes textarea.form-control,
#contact_ofpartes .form-select {
  background-color: #f0f2f5 !important;        /* gris suave */
  color: #222 !important;                      /* texto negro */
  border: 2px solid #d2dadc !important;       /* borde gris */
  border-radius: 10px !important;
  padding: 10px 12px !important;
  font-size: 0.95rem !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important; /* sombra tenue */
  outline: none !important;
  appearance: none !important;
  background-clip: padding-box !important;
  transition: all 0.3s ease !important;
}

/* Placeholder negro */
#contact_ofpartes input.form-control::placeholder,
#contact_ofpartes textarea.form-control::placeholder,
#contact_ofpartes .form-select option:disabled {
  color: #222 !important;
  opacity: 1 !important;
}

/* Focus: sombra y borde más pronunciados */
#contact_ofpartes input.form-control:focus,
#contact_ofpartes textarea.form-control:focus,
#contact_ofpartes .form-select:focus {
  border-color: #555 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}

/* Botones con sombra */
#contact_ofpartes button {
  background-color: #059aa7 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 10px 18px !important;
  font-size: 0.95rem !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
}

#contact_ofpartes button:hover {
  box-shadow: 0 6px 16px rgba(0,0,0,0.2) !important;
  transform: translateY(-1px) !important;
  background-color: #06c4df !important;
}
/* Opción por defecto deshabilitada */
#contact_ofpartes .form-select option:disabled {
  background-color: #cce0ff !important; /* azul tenue */
  color: #000 !important;               /* texto negro */
}
#contact_ofpartes .text-muted-form{
  color:#63e7dc !important;
}



/***contacto sugerencias y reclamos*******/
/* Estilo general del formulario */

/* Inputs y textarea: estado normal */
#contact_sug input.form-control,
#contact_sug textarea.form-control,
#contact_sug .form-select {
  background-color: #f0f2f5 !important;        /* gris suave */
  color: #222 !important;                      /* texto negro */
  border: 2px solid #d2dadc !important;       /* borde gris */
  border-radius: 10px !important;
  padding: 10px 12px !important;
  font-size: 0.95rem !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important; /* sombra tenue */
  outline: none !important;
  appearance: none !important;
  background-clip: padding-box !important;
  transition: all 0.3s ease !important;
}

/* Placeholder negro */
#contact_sug input.form-control::placeholder,
#contact_sug textarea.form-control::placeholder,
#contact_sug .form-select option:disabled {
  color: #222 !important;
  opacity: 1 !important;
}

/* Focus: sombra y borde más pronunciados */
#contact_sug input.form-control:focus,
#contact_sug textarea.form-control:focus,
#contact_sug .form-select:focus {
  border-color: #555 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}

/* Botones con sombra */
#contact_sug button {
  background-color: #059aa7 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 10px 18px !important;
  font-size: 0.95rem !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
}

#contact_sug button:hover {
  box-shadow: 0 6px 16px rgba(0,0,0,0.2) !important;
  transform: translateY(-1px) !important;
  background-color: #06c4df !important;
}
/* Opción por defecto deshabilitada */
#contact_sug .form-select option:disabled {
  background-color: #cce0ff !important; /* azul tenue */
  color: #000 !important;               /* texto negro */
}
#contact_sug .text-muted-form{
  color:#63e7dc !important;
}



/*******descargas gratuitas*******/
.list-group-item {
  /*border: 1px solid #dcdee0ff;*/
  color: #0d6efd;
  background-color: #0d5b69;
  transition: background-color 0.4s ease, color 0.4s ease, transform 0.2s ease;
}

.list-group-item:hover {
  background-color: #0e9da7 !important;
  color: #fff !important;
  transform: translateY(-2px); /* pequeño efecto de levantar */
  box-shadow: 0 4px 8px #0e9da7; /* sombra sutil */
}

.custom-tabs .nav-link {
  border-radius: 8px;
  padding: 10px 25px;
  margin: 0 8px;
  color: #0d6efd;
  background-color: #fff;
  border: 1px solid #0d6efd;
  transition: all 0.3s ease;
  font-weight: 500;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

.custom-tabs .nav-link:hover {
  background-color: #0d6efd;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(13, 110, 253, 0.3);
}

.custom-tabs .nav-link.active {
  background-color: #0d6efd;
  color: #fff;
  box-shadow: 0 4px 12px rgba(13, 110, 253, 0.4);
  font-weight: 600;
}
.custom-tabs .nav-item {
    list-style: none; /* Quita los puntos */
}
.mapas{
    font-size:18px !important
}





/***************************************************
ACTIVIDADES DEL IGM - ESTILOS EXCLUSIVOS
prefijo: igm-act-
***************************************************/


/***************************************************
PRELOADER ACTIVIDADES IGM
***************************************************/
.igm-act-preloader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(180deg, rgba(2,27,35,0.82), rgba(3,39,50,0.92)),
        rgba(0,0,0,0.45);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    opacity: 1;
    visibility: visible;
    transition: opacity .45s ease, visibility .45s ease;
}

.igm-act-preloader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.igm-act-preloader__box {
    width: min(92vw, 440px);
    padding: 34px 28px;
    text-align: center;
    border-radius: 24px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(142,231,241,0.14);
    box-shadow:
        0 24px 60px rgba(0,0,0,0.35),
        0 0 24px rgba(28,167,199,0.12);
    position: relative;
    overflow: hidden;
}

.igm-act-preloader__box::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at top left, rgba(142,231,241,0.12), transparent 35%),
        radial-gradient(circle at bottom right, rgba(28,167,199,0.10), transparent 35%);
    pointer-events: none;
}

/* ── Anillos con ícono centrado dentro ── */
.igm-act-preloader__rings {
    position: relative;
    width: 110px;
    height: 110px;
    margin: 0 auto 20px;
}

.igm-act-preloader__rings span {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(142,231,241,0.18);
    animation: igmActPulse 2.2s infinite ease-in-out;
}

.igm-act-preloader__rings span:nth-child(2) {
    inset: 10px;
    animation-delay: .25s;
    border-color: rgba(28,167,199,0.24);
}

.igm-act-preloader__rings span:nth-child(3) {
    inset: 22px;
    animation-delay: .5s;
    border-color: rgba(255,255,255,0.16);
}

/* ── Ícono centrado dentro de los anillos ── */
.igm-act-preloader__icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 54px;
    height: 54px;
    margin: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1ca7c7, #0b6a85);
    color: #fff;
    font-size: 1.2rem;
    box-shadow: 0 8px 22px rgba(0,0,0,0.22);
}

.igm-act-preloader__title {
    margin: 0 0 10px;
    color: #ffffff;
    font-size: 1.3rem;
    font-weight: 700;
}

.igm-act-preloader__text {
    margin: 0 0 18px;
    color: rgba(255,255,255,0.82);
    line-height: 1.7;
    font-size: 0.96rem;
}

.igm-act-preloader__bar {
    width: 100%;
    height: 8px;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.06);
}

.igm-act-preloader__bar-fill {
    width: 42%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #1ca7c7, #8ee7f1, #1ca7c7);
    background-size: 200% 100%;
    animation: igmActBarMove 1.6s linear infinite;
}

@keyframes igmActPulse {
    0%, 100% {
        transform: scale(1);
        opacity: .9;
    }
    50% {
        transform: scale(1.06);
        opacity: .45;
    }
}

@keyframes igmActBarMove {
    0% {
        transform: translateX(-20%);
        background-position: 0% 50%;
    }
    100% {
        transform: translateX(140%);
        background-position: 100% 50%;
    }
}

@media (max-width: 768px) {
    .igm-act-preloader__box {
        padding: 26px 18px;
        border-radius: 18px;
        width: min(92vw, 360px);
    }

    .igm-act-preloader__rings {
        width: 84px;
        height: 84px;
        margin: 0 auto 16px;
    }

    .igm-act-preloader__icon {
        width: 46px;
        height: 46px;
        font-size: 1rem;
    }

    .igm-act-preloader__title {
        font-size: 1.08rem;
        line-height: 1.35;
        margin-bottom: 8px;
    }

    .igm-act-preloader__text {
        font-size: 0.9rem;
        line-height: 1.6;
        margin-bottom: 16px;
    }

    .igm-act-preloader__bar {
        height: 7px;
    }
}
/***end preloader*****************/

.igm-act-wrapper{
  padding: 10px 0;
}

/* INTRO TEXTO */

.igm-act-intro-box{
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  padding: 22px 26px;
  color: rgba(255,255,255,0.90);
  line-height: 1.8;
  box-shadow: 0 8px 22px rgba(0,0,0,0.18);
}

/* CONTENEDOR TABLA */

.igm-act-table-container{
  margin-top: 20px;
  background: rgba(4,28,36,0.45);
  border: 1px solid rgba(142,231,241,0.08);
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 14px 34px rgba(0,0,0,0.28);
}

/* TABLA */

.igm-act-table{
  color: #fff;
  border-collapse: separate !important;
  border-spacing: 0 12px !important;
}

/* HEADER TABLA */

.igm-act-table thead th{
  background: rgba(10,93,115,0.95);
  border: none !important;
  font-size: 14px;
  font-weight: 600;
  padding: 16px 14px !important;
  text-align: center;
  color: #fff;
}

/* FILAS */

/* base más refinada */
.igm-act-table tbody tr{
  position: relative;
  background: rgba(255,255,255,0.04);
  transition:
    transform .35s cubic-bezier(.4,0,.2,1),
    box-shadow .35s ease,
    background-color .35s ease,
    border-color .35s ease;
}
/* glow institucional de fondo */
.igm-act-table tbody tr::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 16px;
  pointer-events: none;
  opacity: 0;
  background:
    linear-gradient(
      90deg,
      rgba(142,231,241,0.10) 0%,
      rgba(142,231,241,0.03) 45%,
      rgba(142,231,241,0.00) 100%
    );
  transition: opacity .35s ease;
}

/* hover principal */
.igm-act-table tbody tr:hover{
  transform: translateY(-4px) scale(1.005);
  background: rgba(255,255,255,0.08);
  box-shadow:
    0 14px 28px rgba(0,0,0,0.24),
    0 0 18px rgba(28,167,199,0.12);
}

.igm-act-table tbody tr:hover::after{
  opacity: 1;
}

.igm-act-table tbody td{
  border: none !important;
  padding: 18px 12px !important;
  text-align: center;
}

/* IMAGEN NOTICIA */

.igm-act-thumb-box{
  transition:
    transform .35s cubic-bezier(.4,0,.2,1),
    box-shadow .35s ease,
    border-color .35s ease;
}

.igm-act-table tbody tr:hover .igm-act-thumb-box{
  transform: scale(1.06);
  border-color: rgba(142,231,241,0.35);
  box-shadow:
    0 10px 22px rgba(0,0,0,0.25),
    0 0 12px rgba(142,231,241,0.18);
}

.igm-act-thumb-img{
  transition: transform .45s ease;
}

.igm-act-table tbody tr:hover .igm-act-thumb-img{
  transform: scale(1.08);
}




/***************************************************
TÍTULO
***************************************************/

.igm-act-title-link{
  transition:
    color .25s ease,
    text-shadow .25s ease;
}

.igm-act-table tbody tr:hover .igm-act-title-link{
  color: #dffcff;
  text-shadow: 0 0 10px rgba(142,231,241,0.18);
}


/***************************************************
FECHA
***************************************************/

.igm-act-date{
  transition: color .25s ease, transform .25s ease;
}

.igm-act-table tbody tr:hover .igm-act-date{
  color: #baf6ff;
}
/* BOTON VER NOTICIA */

.igm-act-btn-view{
  background: linear-gradient(135deg,#1ca7c7,#0b6a85);
  border: none;
  color: #fff;
  padding: 9px 16px;
  border-radius: 10px;
  font-weight: 600;
  transition: all .2s ease;
}

.igm-act-btn-view:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.25);
}

/***************************************************
DATATABLE PERSONALIZADO
***************************************************/

/***************************************************
PAGINADOR DATATABLE - FIX VISUAL
***************************************************/

/* contenedor del paginador */
.dataTables_wrapper .dataTables_paginate {
  float: none !important;
  text-align: center !important;
  margin-top: 16px;
}

/* lista del paginador */
.dataTables_wrapper .dataTables_paginate ul.pagination {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none !important;
}

/* quitar puntos / viñetas */
.dataTables_wrapper .dataTables_paginate ul.pagination li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.dataTables_wrapper .dataTables_paginate ul.pagination li::marker {
  content: "" !important;
}

/* links/botones */
.dataTables_wrapper .dataTables_paginate .page-item .page-link {
  min-width: 42px;
  height: 42px;
  padding: 0 14px;
  border: 0 !important;
  border-radius: 10px !important;
  background: rgba(255,255,255,0.08) !important;
  color: #ffffff !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  box-shadow: none !important;
  transition: all .25s ease;
}

/* hover */
.dataTables_wrapper .dataTables_paginate .page-item .page-link:hover {
  background: rgba(255,255,255,0.14) !important;
  color: #ffffff !important;
  transform: translateY(-1px);
}

/* activo */
.dataTables_wrapper .dataTables_paginate .page-item.active .page-link {
  background: linear-gradient(135deg, #1ca7c7, #0b6a85) !important;
  color: #ffffff !important;
  box-shadow: 0 8px 18px rgba(0,0,0,0.22);
}

/* deshabilitado */
.dataTables_wrapper .dataTables_paginate .page-item.disabled .page-link {
  background: rgba(255,255,255,0.04) !important;
  color: rgba(255,255,255,0.38) !important;
  opacity: 1;
  cursor: not-allowed;
}

/* móvil */
@media (max-width: 768px) {
  .dataTables_wrapper .dataTables_paginate ul.pagination {
    gap: 6px;
    flex-wrap: wrap;
  }

  .dataTables_wrapper .dataTables_paginate .page-item .page-link {
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    font-size: 14px;
  }
}


/***************************************************
RIPPLE EFFECT PAGINADOR
***************************************************/

.dataTables_wrapper .dataTables_paginate .page-link{
  position: relative;
  overflow: hidden;
}

/* onda ripple */

.igm-ripple-effect{
  position:absolute;
  border-radius:50%;
  transform:scale(0);
  animation:igmRippleAnim 0.6s linear;
  background:rgba(255,255,255,0.5);
  pointer-events:none;
}

@keyframes igmRippleAnim{

  to{
    transform:scale(4);
    opacity:0;
  }

}




/***************************************************
MODAL PDF - ACTIVIDADES IGM
***************************************************/

.igm-act-modal-dialog{
  width: min(96vw, 1400px);
  max-width: min(96vw, 1400px);
  height: 92vh;
  margin: 4vh auto;
}

.igm-act-modal-content{
  height: 92vh;
  border: 0;
  border-radius: 16px;
  overflow: hidden;
  background: #f2f2f2;
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 60px rgba(0,0,0,0.30);
}

.igm-act-modal-header{
  background: #f3f3f3;
  border-bottom: 1px solid rgba(0,0,0,0.10);
  padding: 14px 18px;
  flex: 0 0 auto;
}

.igm-act-modal-body{
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  background: #e9e9e9;
}

.igm-act-modal-footer{
  background: #f3f3f3;
  border-top: 1px solid rgba(0,0,0,0.08);
  justify-content: center;
  padding: 14px;
  flex: 0 0 auto;
}

.igm-act-pdf-frame{
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #e9e9e9;
}

/* Botones */
.igm-act-modal-actions button{
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.igm-act-btn-control{
  background: #5d5d5d;
  color: #fff;
}

.igm-act-btn-close{
  background: #e9424b;
  color: #fff;
}

/* Maximizado */
.igm-act-modal.igm-act-modal-maximized .igm-act-modal-dialog{
  width: 100vw;
  max-width: 100vw;
  height: 100vh;
  margin: 0;
}

.igm-act-modal.igm-act-modal-maximized .igm-act-modal-content{
  height: 100vh;
  border-radius: 0;
}

/* Minimizado */
.igm-act-modal.igm-act-modal-minimized .igm-act-modal-body,
.igm-act-modal.igm-act-modal-minimized .igm-act-modal-footer{
  display: none;
}

.igm-act-modal.igm-act-modal-minimized .igm-act-modal-dialog{
  width: min(520px, calc(100vw - 24px));
  max-width: min(520px, calc(100vw - 24px));
  height: auto;
  margin: auto;
}

.igm-act-modal.igm-act-modal-minimized .igm-act-modal-content{
  height: auto;
}

/* móvil */
@media (max-width: 768px){
  .igm-act-modal-dialog{
    width: 100vw;
    max-width: 100vw;
    height: 100vh;
    margin: 0;
  }

  .igm-act-modal-content{
    height: 100vh;
    border-radius: 0;
  }

  .igm-act-modal-actions button{
    width: 38px;
    height: 38px;
  }

  .igm-act-modal.igm-act-modal-minimized .igm-act-modal-dialog{
    width: 94vw;
    max-width: 94vw;
  }
}





/***************************************************
ARTÍCULOS DE PRENSA - LISTADO LIMPIO + MODAL
***************************************************/
.page-prensa-igm .prensa-igm-list-wrap{
  padding: 28px;
}

.prensa-igm-intro-box{
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px;
  padding: 22px 24px;
  color: rgba(255,255,255,0.9);
  line-height: 1.9;
  box-shadow: 0 10px 24px rgba(0,0,0,0.16);
}

.prensa-igm-tools{
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
}

.prensa-igm-search{
  position: relative;
  flex: 1 1 auto;
  min-width: 320px;
}

.prensa-igm-search i{
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255,255,255,0.6);
  pointer-events: none;
}

.prensa-igm-search input{
  width: 100%;
  height: 48px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.05);
  color: #fff;
  padding: 0 16px 0 42px;
  outline: none;
}

.prensa-igm-search input::placeholder{
  color: rgba(255,255,255,0.55);
}

.prensa-igm-filters{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.prensa-igm-chip{
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.05);
  color: rgba(255,255,255,0.84);
  border-radius: 999px;
  padding: 10px 16px;
  font-weight: 600;
  transition: all .25s ease;
}

.prensa-igm-chip:hover,
.prensa-igm-chip.is-active{
  background: linear-gradient(135deg, #1ca7c7, #0b6a85);
  color: #fff;
  border-color: transparent;
}

.prensa-igm-list{
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.prensa-igm-item{
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(0,0,0,0.18);
  transition: all .35s ease;
}

.prensa-igm-item:hover{
  transform: translateY(-3px);
  box-shadow: 0 18px 34px rgba(0,0,0,0.24);
  border-color: rgba(142,231,241,0.18);
}

.prensa-igm-item__head{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 22px;
  align-items: center;
  padding: 22px 24px;
}

.prensa-igm-item__content--full{
  min-width: 0;
}

.prensa-igm-item__meta{
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  color: rgba(255,255,255,0.68);
  font-size: 0.92rem;
  margin-bottom: 12px;
}

.prensa-igm-item__content h3{
  color: #fff;
  font-size: 1.18rem;
  line-height: 1.55;
  margin: 0;
}

.prensa-igm-item__actions{
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 190px;
}

.prensa-igm-toggle,
.prensa-igm-link-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 14px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 600;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.08);
  color: #fff;
  transition: all .25s ease;
}

.prensa-igm-toggle{
  cursor: pointer;
}

.prensa-igm-toggle:hover,
.prensa-igm-link-btn:hover{
  color: #fff;
  background: linear-gradient(135deg, #1ca7c7, #0b6a85);
}

.prensa-igm-link-btn--alt{
  background: rgba(142,231,241,0.08);
}

.prensa-igm-empty{
  min-height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 12px;
  border-radius: 18px;
  background: rgba(255,255,255,0.04);
  border: 1px dashed rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.78);
}

.prensa-igm-empty i{
  font-size: 2rem;
  color: #8ee7f1;
}

.prensa-igm-item.is-hidden-initial{
  display: none;
}

/***************************************************
MODAL RECORTE PRENSA
***************************************************/
.prensa-igm-modal .modal-content{
  background: rgba(8, 28, 34, 0.96);
  border: 1px solid rgba(142,231,241,0.12);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0,0,0,0.32);
}

.prensa-igm-modal__dialog{
  max-width: min(1100px, 94vw);
}

.prensa-igm-modal__header{
  padding: 16px 20px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.04);
}

.prensa-igm-modal__title{
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.4;
  padding-right: 14px;
  padding-top:20px;
}

.prensa-igm-modal__close{
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 12px;
  background: rgba(255,255,255,0.08);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all .25s ease;
}

.prensa-igm-modal__close:hover{
  background: linear-gradient(135deg, #1ca7c7, #0b6a85);
}

.prensa-igm-modal__body{
  padding: 18px;
}

.prensa-igm-modal__imagebox{
  width: 100%;
  border-radius: 16px;
  overflow: auto;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  padding: 14px;
  max-height: 78vh;
}

.prensa-igm-modal__imagebox img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  background: #fff;
}

@media (max-width: 991px){
  .prensa-igm-item__head{
    grid-template-columns: 1fr;
  }

  .prensa-igm-item__actions{
    flex-direction: row;
    flex-wrap: wrap;
    min-width: 0;
  }
}

@media (max-width: 768px){
  .page-prensa-igm .prensa-igm-list-wrap{
    padding: 18px;
  }

  .prensa-igm-tools{
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }

  .prensa-igm-search{
    flex: 0 0 auto !important;
    min-width: 100%;
    width: 100%;
  }

  .prensa-igm-filters{
    width: 100%;
    justify-content: flex-start;
  }

  .prensa-igm-item__head{
    padding: 18px;
    gap: 16px;
  }

  .prensa-igm-item__content h3{
    font-size: 1.02rem;
  }

  .prensa-igm-item__actions{
    flex-direction: column;
  }

  .prensa-igm-modal__dialog{
    max-width: 96vw;
    margin: 0.8rem auto;
  }

  .prensa-igm-modal__header{
    padding: 14px 16px;
  }

  .prensa-igm-modal__body{
    padding: 12px;
  }

  .prensa-igm-modal__imagebox{
    padding: 8px;
    max-height: 72vh;
  }
}


/************/
/***************************************************
LIGHTBOX GLOBAL IGM
***************************************************/
.js-igm-lightbox {
  cursor: zoom-in;
  transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease;
}

.js-igm-lightbox:hover {
  transform: translateY(-4px) scale(1.015);
  box-shadow: 0 18px 30px rgba(0,0,0,0.22);
}

.igm-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .3s ease, visibility .3s ease;
}

.igm-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.igm-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(2, 22, 26, 0.82), rgba(2, 22, 26, 0.9)),
    rgba(0,0,0,0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.igm-lightbox__dialog {
  position: relative;
  z-index: 2;
  width: min(92vw, 1200px);
  height: min(88vh, 900px);
  display: grid;
  grid-template-columns: 64px 1fr 64px;
  align-items: center;
  gap: 18px;
  transform: scale(.94);
  transition: transform .3s ease;
}

.igm-lightbox.is-open .igm-lightbox__dialog {
  transform: scale(1);
}

.igm-lightbox__figure-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 22px;
  overflow: hidden;
  background: rgba(9, 36, 43, 0.88);
  border: 1px solid rgba(142, 231, 241, 0.16);
  box-shadow: 0 28px 70px rgba(0,0,0,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}

.igm-lightbox__img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  border-radius: 14px;
  background: #fff;
  opacity: 1;
  transform: scale(1);
  transition:
    opacity .46s ease,
  transform .50s ease;
  will-change: opacity, transform;
}

.igm-lightbox__img.is-changing {
  opacity: 0;
  transform: scale(0.985);
}

.igm-lightbox__caption {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  padding: 14px 16px;
  border-radius: 14px;
  background: rgba(0, 71, 93, 0.78);
  border: 1px solid rgba(142, 231, 241, 0.14);
  color: #fff;
  font-size: 0.98rem;
  line-height: 1.5;
  box-shadow: 0 10px 24px rgba(0,0,0,0.18);
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity .34s ease,
  transform .34s ease;
}
.igm-lightbox__caption.is-changing {
  opacity: 0;
  transform: translateY(8px);
}

.igm-lightbox__close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 5;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 14px;
  background: rgba(255,255,255,0.10);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  transition: all .25s ease;
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
}

.igm-lightbox__close:hover {
  background: linear-gradient(135deg, #1ca7c7, #0b6a85);
  color: #fff;
}

.igm-lightbox__nav {
  width: 54px;
  height: 54px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,0.10);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  transition: all .25s ease;
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
}

.igm-lightbox__nav:hover {
  background: linear-gradient(135deg, #1ca7c7, #0b6a85);
  color: #fff;
  transform: scale(1.06);
}

.igm-lightbox__nav.is-hidden {
  opacity: 0;
  pointer-events: none;
}

body.igm-lightbox-open {
  overflow: hidden;
}

@media (max-width: 768px) {
  .igm-lightbox__dialog {
    width: min(96vw, 96vw);
    height: min(84vh, 84vh);
    grid-template-columns: 44px 1fr 44px;
    gap: 8px;
  }

  .igm-lightbox__figure-wrap {
    padding: 10px;
    border-radius: 16px;
  }

  .igm-lightbox__caption {
    left: 10px;
    right: 10px;
    bottom: 10px;
    padding: 10px 12px;
    font-size: 0.9rem;
  }

  .igm-lightbox__close {
    top: 10px;
    right: 10px;
    width: 42px;
    height: 42px;
    border-radius: 12px;
  }

  .igm-lightbox__nav {
    width: 40px;
    height: 40px;
    font-size: 0.95rem;
  }
}


/***************************************************
ESTRUCTURA ADMINISTRATIVA / ORGANIGRAMA
Solo para esta imagen
***************************************************/
.img-estructura-admin {
  display: block;
  width: 100%;
  max-width: 980px;
  height: auto !important;
  object-fit: contain !important;
  margin: 0 auto;
  border-radius: 10px;
}

/* Contenedor opcional para centrar mejor la imagen */
.igm-media--estructura {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 14px;
}

/* Si quieres que la miniatura no se vea tan pequeña */
.igm-media--estructura .img-estructura-admin {
  max-height: 520px;
}

/* Ajuste responsive */
@media (max-width: 768px) {
  .igm-media--estructura {
    padding: 8px;
  }

  .igm-media--estructura .img-estructura-admin {
    max-height: none;
    width: 100%;
    height: auto !important;
  }
}


/***************************************************
ESTRUCTURA ADMINISTRATIVA / ORGANIGRAMA
Miniatura + lightbox sin fondo blanco
***************************************************/

/* Miniatura */
.igm-media--estructura {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 14px;
}

.img-estructura-admin {
  display: block;
  width: 100%;
  max-width: 980px;
  height: auto !important;
  object-fit: contain !important;
  margin: 0 auto;
  border-radius: 10px;
}

/* Cuando el lightbox está mostrando una imagen marcada como "sin fondo" */
.igm-lightbox.lightbox-sin-fondo .igm-lightbox__img {
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* También quita el panel inferior blanco percibido alrededor de la imagen */
.igm-lightbox.lightbox-sin-fondo .igm-lightbox__figure-wrap {
  background: rgba(9, 36, 43, 0.72);
}

/* Opcional: si quieres que el organigrama se vea más limpio dentro del visor */
.igm-lightbox.lightbox-sin-fondo .igm-lightbox__caption {
  background: rgba(0, 71, 93, 0.82);
}

@media (max-width: 768px) {
  .igm-media--estructura {
    padding: 8px;
  }

  .img-estructura-admin {
    max-width: 100%;
    height: auto !important;
  }
}
.img-estructura-admin {
  width: auto !important;
  max-width: 90%;
  display: block;
  margin-left: auto;
  margin-right: auto;
}


/***************************************************
BLOQUE FLOTANTE - ESTRUCTURA ADMINISTRATIVA (FINAL)
***************************************************/
.estructura-admin-note {
  max-width: 720px;
  margin: 0 auto;
  padding: 18px 22px;

  display: flex;
  align-items: center;
  gap: 16px;

  /* Glass effect */
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(98, 222, 231, 0.18);
  border-radius: 18px;

  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);

  /* Sombra elegante */
  box-shadow:
    0 14px 30px rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(255,255,255,0.04);

  /* Efecto flotante */
  transform: translateY(6px);

  transition: all .3s ease;
}

/* Hover elegante */
.estructura-admin-note:hover {
  border-color: rgba(98, 222, 231, 0.35);
  transform: translateY(2px);
}

/* ICONO */
.estructura-admin-note__icon {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;

  border-radius: 14px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: linear-gradient(
    135deg,
    rgba(98, 222, 231, 0.18),
    rgba(12, 177, 189, 0.12)
  );

  border: 1px solid rgba(98, 222, 231, 0.22);

  color: #62dee7;
  font-size: 1.3rem;

  box-shadow: 0 8px 18px rgba(0,0,0,0.12);
}

/* CONTENIDO */
.estructura-admin-note__content {
  text-align: left;
}

/* TÍTULO */
.estructura-admin-note__content h5 {
  margin: 0 0 4px;
  color: #62dee7;
  font-size: 1rem;
  font-weight: 700;
  text-align: left;
}

/* TEXTO */
.estructura-admin-note__content p {
  margin: 0;
  color: rgba(255,255,255,0.88);
  line-height: 1.6;
  font-size: 0.95rem;
}

/***************************************************
RESPONSIVE
***************************************************/
@media (max-width: 768px) {
  .estructura-admin-note {
    flex-direction: column;
    text-align: center;
    padding: 16px 18px;
    gap: 12px;
  }

  .estructura-admin-note__icon {
    width: 46px;
    height: 46px;
    font-size: 1.05rem;
  }

  .estructura-admin-note__content h5 {
    font-size: 0.96rem;
    text-align: center;
  }

  .estructura-admin-note__content p {
    font-size: 0.9rem;
    text-align: center;
  }
}


/***noticias home******/
.color_fecha{
color:#62dee7;
font-weight:bold;
}








/*
  Bloque completo para la pestaña "Mapas IGM" de Descargas Gratuitas.
  Incluye:
  - Menú de categorías elegante
  - Tarjetas con miniatura
  - Integración con el lightbox global existente (.js-igm-lightbox)
  - Botón para abrir tamaño real

  Nota:
  - No modifica la pestaña de Grillas IGM.
  - Requiere que ya exista el lightbox global del sitio.
*/



/***************************************************
DESCARGAS GRATUITAS - NAVEGACIÓN DE CATEGORÍAS
***************************************************/
.descargas-mapas-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
}

.descargas-mapas-nav__btn {
  appearance: none;
  border: 1px solid rgba(98, 222, 231, 0.18);
  background: linear-gradient(180deg, rgba(6, 84, 96, 0.72), rgba(3, 42, 52, 0.86));
  color: #e8fdff;
  padding: 12px 16px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.25;
  box-shadow: 0 10px 18px rgba(0,0,0,0.14), inset 0 0 0 1px rgba(255,255,255,0.03);
  transition: all .25s ease;
  cursor: pointer;
}

.descargas-mapas-nav__btn:hover {
  transform: translateY(-2px);
  border-color: rgba(98, 222, 231, 0.30);
  box-shadow: 0 16px 26px rgba(0,0,0,0.18), inset 0 0 0 1px rgba(255,255,255,0.04);
}

.descargas-mapas-nav__btn.is-active {
  background: linear-gradient(180deg, rgba(16, 155, 169, 0.95), rgba(6, 97, 108, 0.95));
  color: #fff;
  border-color: rgba(98, 222, 231, 0.45);
  box-shadow: 0 16px 30px rgba(0,0,0,0.22), 0 0 12px rgba(98, 222, 231, 0.14);
}

/***************************************************
DESCARGAS GRATUITAS - MAPAS EN TARJETAS
***************************************************/
.mapa-bloque {
  margin-bottom: 2.6rem;
}

.mapa-bloque.is-hidden {
  display: none;
}

.mapa-titulo-bloque {
  color: #7feaf2;
  font-weight: 700;
  margin-bottom: 1rem;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(98, 222, 231, 0.18);
}

.mapa-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 22px;
}

.mapa-card {
  background: linear-gradient(180deg, rgba(4, 65, 79, 0.88), rgba(3, 42, 52, 0.92));
  border: 1px solid rgba(98, 222, 231, 0.14);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(0,0,0,0.16);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.mapa-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 34px rgba(0,0,0,0.22);
  border-color: rgba(98, 222, 231, 0.26);
}

.mapa-card__thumb-wrap {
  position: relative;
  padding: 12px 12px 0 12px;
}

.mapa-card__thumb {
  width: 100%;
  height: 260px;
  object-fit: cover;
  object-position: center top;
  border-radius: 12px;
  display: block;
  cursor: zoom-in;
  border: 1px solid rgba(98, 222, 231, 0.14);
  box-shadow: 0 8px 18px rgba(0,0,0,0.16);
  transition: transform .25s ease, box-shadow .25s ease;
}

.mapa-card:hover .mapa-card__thumb {
  transform: scale(1.01);
  box-shadow: 0 12px 22px rgba(0,0,0,0.2);
}

.mapa-card__body {
  padding: 14px 14px 16px;
}

.mapa-card__title {
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 12px;
  min-height: 44px;
}

.mapa-card__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.mapa-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.92rem;
  transition: all .25s ease;
  cursor: pointer;
}

.mapa-btn--preview {
  background: linear-gradient(135deg, #1db7c7, #128ea4);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.08);
}

.mapa-btn--preview:hover {
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.18);
}

.mapa-btn--full {
  background: rgba(255,255,255,0.06);
  color: #dffcff;
  border: 1px solid rgba(98, 222, 231, 0.18);
}

.mapa-btn--full:hover {
  color: #fff;
  background: rgba(255,255,255,0.1);
  border-color: rgba(98, 222, 231, 0.32);
}

.mapa-btn i {
  font-size: 0.9rem;
}

@media (max-width: 768px) {
  .mapa-card__thumb {
    height: 220px;
  }

  .mapa-card__title {
    min-height: auto;
  }

  .mapa-card__actions {
    flex-direction: column;
  }

  .mapa-btn {
    width: 100%;
  }
}





    /**************codigo para noticias modal***************/

  /* Estilo exclusivo para el modal de noticias */
  #noticias_index .btn-close-modal {
    all: unset;
    position: absolute;
    top: 12px;
    right: 15px;
    font-size: 28px;
    font-weight: bold;
    color: #fff !important;
    background-color: #dc3545;
    border-radius: 50%;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 1060;
    box-shadow: 0 2px 6px rgba(0,0,0,0.4);
    line-height: 1;
    text-align: center;
  }

  #noticias_index .btn-close-modal:hover {
    background-color: #c82333;
    transform: scale(1.05);
  }





  /* ===  CSS EQUIPO DIRECTIVO === */

.EquipoDirectivo{
  margin-top: 150px;
}

/* Swiper */
.EquipoDirectivo .EquipoDirectivo__swiper{
  width: 100%;
  max-width: 1300px;
  margin: auto;
  padding-bottom: 48px;
  /* ✅ un poco más alto para que no “muerda” la paginación */
  height: clamp(585px, 74vh, 760px);
}

/* Flechas */
.EquipoDirectivo .swiper-button-next,
.EquipoDirectivo .swiper-button-prev{
  color: #2bbec7;
  z-index: 20;
  width: 60px;
  height: 60px;
}

/* tamaño del icono */
.EquipoDirectivo .swiper-button-next:after,
.EquipoDirectivo .swiper-button-prev:after{
  font-size: 42px; /* más grande */
  font-weight: bold;
}

/* separarlas de las cards */
.EquipoDirectivo .swiper-button-prev{
  left: -17px;
}

.EquipoDirectivo .swiper-button-next{
  right: -17px;
}

/* ===== Color bullets personalizado ===== */
.EquipoDirectivo .bullets-color .swiper-pagination-bullet{
  background: rgba(255,255,255,0.35); /* bullets normales */
}

.EquipoDirectivo .bullets-color .swiper-pagination-bullet-active{
  background: #5ad0d8; /* bullet activo */
  opacity: 1;
  transform: scale(1.15);
}

/* Bullets */
.EquipoDirectivo .swiper-pagination{
  /* ✅ BAJAR 10px: antes estaba en 10px, ahora lo bajamos 10px */
  bottom: 0px !important;

  /* ✅ por si algún contenedor los estaba recortando */
  z-index: 30;
}

.EquipoDirectivo .swiper-pagination-bullet{
  width: 12px;
  height: 12px;
  opacity: .55;
}
.EquipoDirectivo .swiper-pagination-bullet-active{
  opacity: 1;
}

/* ===== Tarjeta ===== */
.EquipoDirectivo .ed-card{
  width: 100%;
  max-width: 360px;
  margin: 0 auto;
  border-radius: 10px;
  background: #012c3b82;
  box-shadow: 0 12px 30px rgba(0,0,0,0.18);
  overflow: hidden;
  padding: 18px 18px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.EquipoDirectivo .ed-card{
  position: relative; /* clave para el overlay */
}

/* Fondo decorativo dentro de la card */
.EquipoDirectivo .ed-card::before{
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("assets/images/secciones/pages/equipo-directivo/avatar_cmd.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: .90;            /* ajusta intensidad */
  pointer-events: none;
  z-index: 0;
}

/* Todo el contenido arriba del fondo */
.EquipoDirectivo .ed-card > *{
  position: relative;
  z-index: 1;
}

/* ===== ÓVALO ===== */
.EquipoDirectivo .ed-avatar{
  width: 92%;
  max-width: 320px;
  height: 390px;
  margin-top: 4px;
  background: #fff;
  border: 10px solid #fff;
  border-radius: 50%;
  box-shadow: 0 16px 28px rgba(0,0,0,0.18);
  overflow: hidden;
  position: relative;
}

/* imagen recortada */
.EquipoDirectivo .ed-avatar img{
  position: absolute;
  left: 50%;
  top: 52%;
  transform: translate(-50%, -50%);
  width: 118%;
  height: 118%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* ===== Textos ===== */
.EquipoDirectivo .ed-body{
  width: 100%;
  text-align: center;
  padding: 14px 18px 0;
}

.EquipoDirectivo .ed-nombre{
  margin: 10px 0 10px;
  font-size: clamp(0.95rem, 1vw, 1.15rem); /* un poco más chico */
  font-weight: 800;
  color: #5ad0d8;
  white-space: nowrap;        /* siempre una línea */
  text-align: center;         /* centrado */
  width: 100%;                /* centra correctamente */
  text-shadow: 0 2px 6px rgba(0,0,0,0.45);
}

/* ✅ cards iguales aunque el puesto sea largo */
.EquipoDirectivo .ed-cargo{
  padding: 6px 0 12px;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  min-height: 96px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.EquipoDirectivo .ed-grado{
  font-size: 1.05rem;
  font-weight: 800;
  color: #ffffff;
  margin-bottom: 4px;
  line-height: 1.15;
}

/* ✅ puesto máximo 3 líneas */
.EquipoDirectivo .ed-puesto{
  font-size: 0.95rem;
  color: #ffffff;
  line-height: 1.2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

/* ====  MAIL FULL WIDTH (caja entera a ambos costados) ==== */

.EquipoDirectivo .ed-mails{
  width: calc(100% + 36px);
  margin: 14px -18px 0;
  /* ✅ más “alto” el bloque mail (como tu maqueta) */
  padding: 16px 12px 18px;
  background: #012c3b;
  border-top: 1px solid rgba(0,0,0,0.06);
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 64px;
}

.EquipoDirectivo .ed-mail{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.80rem;
  color: #83dde3;
  font-size:16px;
  padding: 6px 10px;
  border-radius: 8px;
  cursor: default;
  user-select: text;
}

.EquipoDirectivo .ed-mail span{
  word-break: break-word;
  line-height: 1.1;
}

/* Responsive */
@media (max-width: 576px){
  .EquipoDirectivo .ed-card{ max-width: 340px; }
  .EquipoDirectivo .ed-avatar{ height: 380px; }
}

.EquipoDirectivo .swiper-pagination-bullet{
  transition: all .25s ease;
}

.EquipoDirectivo .ed-card{
  transition: transform .25s ease, box-shadow .25s ease;
}

.EquipoDirectivo .ed-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.25);
}






  /***************************************************
                    DESCARGAS GRATUITAS - MAPAS IGM REFACTOR
  ***************************************************/
                    .mapas-layout {
                      display: grid;
                      grid-template-columns: 290px 1fr;
                      gap: 28px;
                      align-items: start;
                      margin-top: 28px;
                    }

                    .mapas-sidebar {
                      position: sticky;
                      top: 120px;
                      background: linear-gradient(180deg, rgba(4, 53, 68, 0.88), rgba(2, 34, 42, 0.94));
                      border: 1px solid rgba(98, 222, 231, 0.14);
                      border-radius: 18px;
                      padding: 18px;
                      box-shadow: 0 14px 30px rgba(0,0,0,0.18);
                    }

                    .mapas-sidebar__title {
                      color: #8ff4fb;
                      font-size: 1rem;
                      font-weight: 700;
                      margin-bottom: 14px;
                      padding-bottom: 10px;
                      border-bottom: 1px solid rgba(98, 222, 231, 0.18);
                    }

                    .mapas-sidebar__list {
                      display: flex;
                      flex-direction: column;
                      gap: 10px;
                    }

                    .mapas-sidebar__btn {
                      appearance: none;
                      width: 100%;
                      border: 1px solid rgba(98, 222, 231, 0.12);
                      background: linear-gradient(180deg, rgba(7, 94, 109, 0.58), rgba(3, 48, 59, 0.84));
                      color: #eefeff;
                      text-align: left;
                      padding: 13px 14px;
                      border-radius: 12px;
                      font-weight: 600;
                      font-size: 0.95rem;
                      line-height: 1.35;
                      transition: all .28s ease;
                      box-shadow: 0 8px 16px rgba(0,0,0,0.10), inset 0 0 0 1px rgba(255,255,255,0.02);
                    }

                    .mapas-sidebar__btn:hover {
                      transform: translateX(3px);
                      border-color: rgba(98, 222, 231, 0.24);
                      box-shadow: 0 12px 20px rgba(0,0,0,0.16), inset 0 0 0 1px rgba(255,255,255,0.03);
                    }

                    .mapas-sidebar__btn.is-active {
                      background: linear-gradient(180deg, rgba(19, 178, 192, 0.95), rgba(7, 112, 124, 0.95));
                      color: #fff;
                      border-color: rgba(98, 222, 231, 0.40);
                      box-shadow: 0 14px 24px rgba(0,0,0,0.20), 0 0 10px rgba(98,222,231,0.18);
                    }

                    .mapas-panel-wrap {
                      min-width: 0;
                    }

                    .mapa-bloque {
                      display: none;
                      opacity: 0;
                      transform: translateY(10px);
                      transition: opacity .38s ease, transform .38s ease;
                    }

                    .mapa-bloque.is-active {
                      display: block;
                      opacity: 1;
                      transform: translateY(0);
                      animation: mapasFadeIn .38s ease;
                    }

                    @keyframes mapasFadeIn {
                      from { opacity: 0; transform: translateY(14px); }
                      to { opacity: 1; transform: translateY(0); }
                    }

                    .mapa-titulo-bloque {
                      color: #7feaf2;
                      font-weight: 700;
                      margin-bottom: 1rem;
                      padding-bottom: 10px;
                      border-bottom: 1px solid rgba(98, 222, 231, 0.18);
                    }

                    .mapa-grid {
                      display: grid;
                      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
                      gap: 22px;
                    }

                    .mapa-card {
                      background: linear-gradient(180deg, rgba(4, 65, 79, 0.88), rgba(3, 42, 52, 0.92));
                      border: 1px solid rgba(98, 222, 231, 0.14);
                      border-radius: 16px;
                      overflow: hidden;
                      box-shadow: 0 12px 28px rgba(0,0,0,0.16);
                      transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
                    }

                    .mapa-card:hover {
                      transform: translateY(-4px);
                      box-shadow: 0 18px 34px rgba(0,0,0,0.22);
                      border-color: rgba(98, 222, 231, 0.26);
                    }

                    .mapa-card__thumb-wrap {
                      position: relative;
                      padding: 12px 12px 0 12px;
                    }

                    .mapa-card__thumb {
                      width: 100%;
                      height: 260px;
                      object-fit: cover;
                      object-position: center top;
                      border-radius: 12px;
                      display: block;
                      cursor: zoom-in;
                      border: 1px solid rgba(98, 222, 231, 0.14);
                      box-shadow: 0 8px 18px rgba(0,0,0,0.16);
                      transition: transform .25s ease, box-shadow .25s ease;
                    }

                    .mapa-card:hover .mapa-card__thumb {
                      transform: scale(1.01);
                      box-shadow: 0 12px 22px rgba(0,0,0,0.2);
                    }

                    .mapa-card__body {
                      padding: 14px 14px 16px;
                    }

                    .mapa-card__title {
                      color: #fff;
                      font-size: 1rem;
                      font-weight: 700;
                      line-height: 1.4;
                      margin-bottom: 12px;
                      min-height: 44px;
                    }

                    .mapa-card__actions {
                      display: flex;
                      gap: 10px;
                      flex-wrap: wrap;
                    }

                    .mapa-btn {
                      display: inline-flex;
                      align-items: center;
                      justify-content: center;
                      gap: 8px;
                      padding: 10px 14px;
                      border-radius: 10px;
                      text-decoration: none;
                      font-weight: 600;
                      font-size: 0.92rem;
                      transition: all .25s ease;
                      cursor: pointer;
                    }

                    .mapa-btn--preview {
                      background: linear-gradient(135deg, #1db7c7, #128ea4);
                      color: #fff;
                      border: 1px solid rgba(255,255,255,0.08);
                    }

                    .mapa-btn--preview:hover {
                      color: #fff;
                      transform: translateY(-1px);
                      box-shadow: 0 8px 18px rgba(0,0,0,0.18);
                    }

                    .mapa-btn--full {
                      background: rgba(255,255,255,0.06);
                      color: #dffcff;
                      border: 1px solid rgba(98, 222, 231, 0.18);
                    }

                    .mapa-btn--full:hover {
                      color: #fff;
                      background: rgba(255,255,255,0.1);
                      border-color: rgba(98, 222, 231, 0.32);
                    }

                    .mapa-btn i {
                      font-size: 0.9rem;
                    }

                    @media (max-width: 991px) {
                      .mapas-layout {
                        grid-template-columns: 1fr;
                      }

                      .mapas-sidebar {
                        position: static;
                      }
                    }

                    @media (max-width: 768px) {
                      .mapa-card__thumb {
                        height: 220px;
                      }

                      .mapa-card__title {
                        min-height: auto;
                      }

                      .mapa-card__actions {
                        flex-direction: column;
                      }

                      .mapa-btn {
                        width: 100%;
                      }
                    }





.modal-responsive .modal-content {
    width: 100% !important;
    max-width: 100% !important;
}

.modal-responsive .modal-body {
    padding: 0 !important;
    width: 100% !important;
    flex: 1 !important;
}

.modal-responsive .modal-body img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 80vh !important;
    object-fit: contain !important;
    overflow: visible !important;
    display: block !important;
}

.modal-responsive {
    max-width: min(800px, 95vw) !important;
    width: min(800px, 95vw) !important;
    margin: 50px auto !important;  /* 80px = altura aproximada de tu menú */
}





.terra-top-btn{
    display:inline-flex !important;
    align-items:center;
    gap:8px;

    padding:6px 12px;

    background:#0c7080;
    color:#ffffff !important;

    border:1px solid rgba(255,255,255,.30);
    border-radius:4px; /* o 5px */

    font-size:12px;
    font-weight:600;

    text-decoration:none;
}

.terra-top-btn:hover{
    background:#29c4d8;
    color:#fff !important;
}







