@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');
@font-face {
  font-family: 'BebasRegular';
  src: url('../fonts/BebasNeue-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

body{
  font-family: "Montserrat", sans-serif;
}
.fc-event {
  cursor: pointer;
}
#loading {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.top-bar {
  background-color: #f8f9fa;
  padding: 5px 0;
  font-size: 0.9rem;
}
.navbar {
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
 
}

.btn-bd{
  color: #243265;
  border-color: #243265;
  border-radius: 50px;
  font-weight: bold;
  padding: 5px 20px;
  margin-left: auto;
  display: block;
  margin-top: 3%;
}

.btn-bd:hover{
  color: white;
  background: #243265;
}

.navbar-brand img {
  width: 230px;
}

.nav-link{
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  color: #000000;
}

.active-nav {
  color: #45B8AB!important; 
}

.btn-sesea{
  background-color: #45B8AB!important;
  border-color: #45B8AB!important;
  border-radius: 70px;
  padding: 13px 40px;
  transition: transform 0.3s ease-in-out, background-color 0.3s ease;
}

.btn-sesea:hover{
  background-color: #243265!important;
   transform: scaleX(1.05);
  transform-origin: left center;
}

.topbar-btn-blue{
  border:1px solid #243265;
  border-radius: 50px;
  font-weight: 500;
  padding: 10px 20px;
}

.topbar-btn-green{
  border:1px solid #45B8AB;
  border-radius: 50px;
  font-weight: 500;
  padding: 10px 20px;
}

.custom-search {
  display: flex;
  align-items: center;
  border: 2px solid #ddd;
  border-radius: 50px;
  background-color: #f9f9f9;
  width: 200px;
  overflow: hidden;
}

.search-icon {
  background-color: #3fb0ac;
  border: none;
  color: white;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
  font-size: 16px;
  flex-shrink: 0;
}

.search-input {
  border: none;
  background: transparent;
  outline: none;
  flex-grow: 1;
  font-size: 16px;
  color: #333;
}


.topbar-icon{
  width: 17px;
}

/* EFECTO DE SUBRAYADO PERMANENTE CON ANIMACIÓN */
.navbar-nav .nav-link {
  position: relative;
  padding-bottom: 5px;
  color: #333;
  margin: 0 10px;
  overflow: hidden; /* Para contener el pseudo-elemento */
}

.navbar-nav .nav-link::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 3px;
  bottom: 0;
  left: 0;
  background-color: #243265; /* Color normal */
  transform-origin: left center;
  transition: transform 0.3s ease-in-out;
}

.navbar-nav .nav-link::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 3px;
  bottom: 0;
  left: 0;
  background-color: #45B8AB; /* Color hover */
  transform: scaleX(0); /* Inicialmente oculto */
  transform-origin: right center;
  transition: transform 0.3s ease-in-out;
}

.navbar-nav .nav-link:hover::before {
  transform: scaleX(0); /* Desaparece el subrayado normal */
}

.navbar-nav .nav-link:hover::after {
  transform: scaleX(1); /* Aparece el subrayado hover */
}

/* Estilo para enlace activo */
.navbar-nav .nav-link.active::before,
.navbar-nav .nav-link.active::after {
  background-color: #243265; /* Color normal para activo */
  transform: scaleX(1); /* Siempre visible */
}

/* Offcanvas styles */
.offcanvas-body .nav-link {
  margin: 8px 0;
}
.offcanvas-body .nav-link::before {
  background-color: #243265;
}
.offcanvas-body .nav-link::after {
  background-color: #45B8AB;
}



/* Desktop y Tablet - Logo centrado */
@media (min-width: 992px) {
  .navbar-brand {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }
  .nav-left {
    margin-right: auto;
  }
  .nav-right {
    margin-left: auto;
  }
  .navbar {
    height: 150px!important;
  }
}

@media (max-width: 767px) {
  .navbar-brand{
    left: 20%!important;
  }
  .section{
    padding: 10% 0%!important;
    max-width: 100%;
  }
  .slide-title {
    font-size: 65px!important;
  }
  
}

/* Móvil - Logo a la izquierda */
@media (max-width: 991.98px) {
  .offcanvas-btn {
    order: 2;
    margin-left: auto;
    border: none;
    background: none;
    font-size: 1.5rem;
    color: #3fb0ac!important;
  }
  .navbar-brand {
    order: 1;
    margin-right: auto;
  }
  .navbar {
    height: 80px!important;
  }
  .navbar-brand img {
    width: 170px !important;
    padding: 15px;
    margin-top: 10%;
  }
}

/* Estilos personalizados para el offcanvas */
.offcanvas-start {
  width: 280px;
}
.offcanvas-header {
  border-bottom: 1px solid #dee2e6;
}
.offcanvas-body .nav-item {
  margin-bottom: 10px;
}
.offcanvas-body .nav-link {
  font-size: 1.1rem;
  padding: 10px 15px;
  border-radius: 5px;
}
.offcanvas-body .nav-link:hover {
  background-color: #f8f9fa;
}

.section{
  padding: 4% 0% 2% 0%;
  max-width: 100%;
}

.seccion{
  padding-top: 5%;
  padding-bottom: 5%;
}

.slide{
  width: 100%;
}
.slide-text{
  padding-left: 8%;
}
.slide-subtitle{
  color: #45B8AB;
  font-weight: 500;
}
.text-green{
  color: #45B8AB;
}
.slide-title{
  font-family: "BebasRegular", sans-serif;
  color: #171717;
  font-weight: 300;
  text-transform: uppercase;
  font-size: 95px;
  line-height: 90px;
}

.btn-solid-blue{
  background-color: #243265;
  color:white;
  font-weight: 700;
  text-decoration: none;
  border-radius: 70px;
  padding: 13px 60px;
  font-size: 12px;
  font-family: "Montserrat", sans-serif;
  transition: transform 0.3s ease-in-out, background-color 0.3s ease;
}

.btn-solid-blue:hover{
  background-color: #45B8AB;
   transform: scaleX(1.05);
  transform-origin: left center;
}

.calendar-title{
  font-family: "BebasRegular", sans-serif;
  text-transform: uppercase;
  font-weight: 700;
  color: #243265;
  font-size: 55px;
}

.fc .fc-button-primary {
    color: #2C3E50!important;
    background-color: transparent!important;
    border-color: transparent!important;
}

.fc-view a{
  color: #2C3E50!important;
}

/*VISOR*/
.panel {
  border: 1px solid #ddd;
  border-radius: 12px;
  padding: 1rem;
  min-height: 300px;
}
.category-btn {
  border: 1px solid #ddd;
  border-radius: 12px;
  padding: 12px;
  background-color: white;
  text-align: left;
  width: 100%;
  font-weight: 500;
}
.category-btn.active {
  background-color: #3fb0ac;
  color: white!important;
}
.link-list button {
  background: none;
  border: none;
  padding: 5px 0;
  text-align: left;
  width: 100%;
  color: black;
}
.link-list button.active {
  font-weight: bold;
  color: #3fb0ac;
}
.subcat-group,
.detalle-group {
  transition: opacity 0.3s ease, transform 0.3s ease;
  opacity: 0;
  transform: translateX(10px);
  position: absolute;
  width: 100%;
  color: black;
}
.subcat-group.show,
.detalle-group.show {
  opacity: 1;
  transform: translateX(0);
  position: static;
}
.panel {
  position: relative;
  overflow: hidden;
  min-height: 300px;
}
#panel-detalles li:hover {
  color: #45B8AB;
}
#panel-subcat,
#panel-detalles {
  max-height: 70vh;
  overflow-y: auto;
  padding-right: 8px;
}

/* Scrollbar estilizado (opcional, solo navegadores Webkit/Chromium) */
#panel-subcat::-webkit-scrollbar,
#panel-detalles::-webkit-scrollbar {
  width: 6px;
}

#panel-subcat::-webkit-scrollbar-thumb,
#panel-detalles::-webkit-scrollbar-thumb {
  background-color: #ccc;
  border-radius: 3px;
}

#panel-subcat::-webkit-scrollbar-track,
#panel-detalles::-webkit-scrollbar-track {
  background-color: transparent;
}
/* Solo aplicar scroll cuando pantalla sea al menos "md" (≥768px) */
@media (min-width: 768px) {
  #panel-subcat,
  #panel-detalles {
    max-height: 70vh;
    overflow-y: auto;
    padding-right: 8px;
  }
  
  #panel-subcat::-webkit-scrollbar,
  #panel-detalles::-webkit-scrollbar {
    width: 6px;
  }

  #panel-subcat::-webkit-scrollbar-thumb,
  #panel-detalles::-webkit-scrollbar-thumb {
    background-color: #ccc;
    border-radius: 3px;
  }

  #panel-subcat::-webkit-scrollbar-track,
  #panel-detalles::-webkit-scrollbar-track {
    background-color: transparent;
  }
}
/*VISOR*/

footer{
  width: 100%;
  background-color: #243265; 
  padding: 30px 0px;
  
}
footer a{
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  color:white;
  text-decoration: none;
}
footer p svg{
  color: #45B8AB!important;
}
footer p{
  margin-bottom: 0px!important;
}
.logo-footer{
  width: 86px;
  margin-left: auto;
  margin-right: auto;
  display: block;
}


.popup-nombre{
  color: #243265!important;
  font-weight: 600;
  font-size: 20px;
}

.popup-subtitulo{
  color: #45B8AB!important;
  font-weight: 400;
  font-size: 20px;
}

.popuplist{
  color:#000000;
  font-weight: 400;
}


/*mapa*/

.municipio-hover {
  fill: #45B8AB !important; /* Iluminación hover */
  cursor: pointer;
  transition: fill 0.3s ease;
}

#popup-municipio {
  position: absolute;
  max-width: 90vw;
  max-height: 300px; /* puedes ajustar según diseño */
  overflow-y: auto;
  overflow-x: hidden;
  width: auto;
  box-sizing: border-box;
  z-index: 10;
  padding: 1.5rem 1.5rem 1rem 1rem;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 0.5rem;
  box-shadow: 0 5px 15px rgba(0,0,0,0.1);
  transition: opacity 0.3s ease;
}

@media (max-width: 768px) {
  .slide-subtitle {
    font-size: 16px!important;
  }
  .category-btn {
    display: block!important;
  }
  .btn-bd{
    margin-left: auto;
    margin-right: auto;
    margin-top: 5%;
  }
  .slide-text{
    text-align: center!important;
  }
  .slide-title{
    margin-bottom: 5%;
    line-height: 60px!important;
  }
  .avatars{
    margin-top: 5%;
  }
  #popup-municipio {
    max-height: 400px;
    background: #ffffffb5!important;
  }
  .panel-mapa {
   min-height: 550px;
  }
  .popuplist{
    font-size: 12px!important;
  }
  .popup-subtitulo{
    font-size: 16px!important;
  }
  .popup-nombre{
    font-size: 18px!important;
  }
  .calendar-title {
    font-size: 25px!important;
  }
  .fc .fc-toolbar-title {
    font-size: 23px!important;
  }
  footer{
    text-align: center!important;
    padding: 40px 25px!important;
  }
  .category-buttons {
    /*flex-direction: column !important;*/
  }
  .category-buttons .category-btn {
    min-width: 100%;
    flex: none;
    text-align: center;
    font-size: 13px;
  }
  
}

.category-buttons .category-btn {
  flex: 1 1 25%;
  min-width: 25%;
  margin: 4px;
  color: black;
}

#popup-municipio .btn-close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 11;
  background-color: transparent;
  border: none;
  opacity: 0.7;
  transition: opacity 0.2s ease;
}

#popup-municipio .btn-close:hover {
  opacity: 1;
}

.municipio-esfuerzos{
 
  fill: rgba(69,184,171,0.2)  !important; /* O el color base del municipio activo */
  transition: all 0.3s ease;
}

.municipio-activo {
  stroke: #FFC41EA1 !important; /* Indicador activo */
  stroke-width: 2px !important;
  fill: #45B8AB !important; /* O el color base del municipio activo */
  filter: drop-shadow(0 0 5px rgba(255, 204, 0, 0.8));
  transition: all 0.3s ease;
}

.municipio-indicador {
  fill: #FFD700;
  stroke: #FFC107;
  stroke-width: 2;
  opacity: 0.8;
  animation: pulso 1.5s ease-in-out infinite;
  pointer-events: none;
}

@keyframes pulso {
  0% { r: 6; opacity: 0.8; }
  50% { r: 10; opacity: 0.4; }
  100% { r: 6; opacity: 0.8; }
}

.panel-mapa {

  padding: 4rem 1rem!important;
}

#popup-municipio {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

#popup-municipio.visible {
  opacity: 1;
  transform: translateY(0);
}
.municipio-hover {
  fill: #45B8AB !important;
  cursor: pointer;
}
.municipio-activo {
  fill: #45B8AB !important;
}
.municipio-indicador {
  fill: yellow;
  stroke: orange;
  stroke-width: 2;
  animation: pulse 1.5s infinite;
}
@keyframes pulse {
  0% { r: 6; opacity: 1; }
  50% { r: 10; opacity: 0.5; }
  100% { r: 6; opacity: 1; }
}

.btn-whatsapp {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9999;
  background-color: #25D366;
  color: white;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  text-align: center;
  font-size: 32px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.btn-whatsapp:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.4);
  color: white;
  text-decoration: none;
}

@media (max-width: 768px) {
  .btn-whatsapp {
    width: 55px;
    height: 55px;
    font-size: 28px;
    bottom: 15px;
    right: 15px;
  }
 
}

@media screen and (min-width: 770px) {
   .category-btn {
    display: flex!important;
    align-items: center; 
    gap: 8px;
    padding: 12px 16px;
    border: 1px solid #ccc;
    border-radius: 12px;
    background-color: white;
    max-width: 250px;
    text-align: left; 
  }

  .category-btn .icon {
    flex-shrink: 0;
    font-size: 20px;
  
  }

  .category-btn .text {
    line-height: 1.3;
  }
}

/*
.category-btn {
  display: flex;
  align-items: center; 
  gap: 8px;
  padding: 12px 16px;
  border: 1px solid #ccc;
  border-radius: 12px;
  background-color: white;
  max-width: 250px;
  text-align: left; 
}

.category-btn .icon {
  flex-shrink: 0;
  font-size: 20px;
  
}

.category-btn .text {
  line-height: 1.3;
}
*/

.topbar-btn-green:hover{
  background-color: #45B8AB!important;
  color: white!important;
  fill: white!important;
}

.topbar-btn-blue:hover{
  background-color: #243265!important;
  color: white!important;
  fill: white!important;
}