/* GLOBALES */
:root {
  --color-black: #000000;
  --color-grey: #ececf0;
  --color-white: #ffffff;
  --color-link: #d30017;
  --color-intense: #f44054;
  --color-yellow: #ffc107;
}
body {
  font-family: "Nunito", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-size: 1.1rem;
  line-height: 1.5;
}
a {
  cursor: pointer;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
  color: inherit;
}
.bg-light {
  background-color: var(--color-grey) !important;
}

/* botones */

.btn-ciclo {
  border: 2px solid #fff;
  color: #fff;
  background: transparent;
  font-size: 0.9rem;
  padding: 0.375rem 1rem;
  border-radius: 20px;
  transition: background 0.3s, color 0.3s;
}
.btn-ciclo:hover,
.btn-cta:focus {
  background: #fff;
  color: #e83044;
  text-decoration: none;
}
.btn-ciclo-bg-white {
  border: 2px solid var(--color-link);
  color: var(--color-link);
  background: var(--color-white);
  font-size: 1rem;
  padding: 0.15rem 1rem;
  border-radius: 20px;
  transition: background 0.3s, color 0.3s;
}
.btn-ciclo-bg-white:hover {
  background: var(--color-link);
  color: #fff;
  text-decoration: none;
}

.btn.btn-light {
  background-color: #e8e8e8 !important;
  border: none;
}
.btn.btn-light:hover {
  background-color: #dedede !important;
  border: none;
  text-decoration: none;
}
/* /Breadcrumb */
.breadcrumb-item + .breadcrumb-item::before {
  color: var(--color-intense);
}

/* /GLOBALES */

/* MENU TOP */
.nav-link {
  font-size: 17px;
  text-align: center;
  color: var(--color-black);
}
@media only screen and (max-width: 768px) {
  .nav-link {
    font-size: 20px;
    text-align: left;
    border-bottom: 1px solid #ccc;
  }
  ul.navbar-nav {
    padding: 1.5rem 0;
  }
}
.input-group.buscar {
  background-color: var(--color-grey);
  border-radius: 15px;
  flex: 1;
  margin: 0 24px;
}
@media only screen and (max-width: 768px) {
  .input-group.buscar {
    flex: 1 1 100%;
    width: 100%;
    margin: 12px 0;
  }
}
.input-group.buscar .input-group-text {
  padding: 0;
}
.redes {
  margin: 1.5rem 0;
}
.redes i {
  font-size: 25px;
  color: var(--color-black);
}
.nav-item a {
  color: var(--color-black);
  transition: all 0.3s ease;
}
.nav-item a:hover {
  color: var(--color-intense);
}
.navbar-nav .nav-link.active,
.navbar-nav .nav-link.show {
  color: var(--color-link);
}
/* menu top filtros */

.filtros .btn-outline-dark {
  background-color: var(--color-white);
  border-radius: 15px;
  border: none;
  color: var(--color-black);
  text-align: left;
}
.filtros .form-select {
  border-radius: 15px;
}
.filtros .btn-outline-secondary {
  background-color: var(--color-white);
  border: none;
  border-radius: 15px;
}
nav.filtros .container-fluid {
  display: flex;
  justify-content: flex-start;
}
.filtros .btn {
  color: var(--color-black);
}

@media only screen and (max-width: 768px) {
  .filtros .div-filtros {
    width: 100%;
  }
}
/* MENU TOP */

/* CARRUSEL BANNER DESTACADO */
.carousel {
  background-color: var(--color-intense);
}
.carousel-control-next,
.carousel-control-prev {
  width: 2%;
}
.carrusel-home {
  min-height: 350px;
  display: flex;
  flex-flow: wrap;
}
.carousel .title a {
  font-size: 2.3rem;
  text-transform: uppercase;
  text-decoration: none;
  transition: all 1s ease;
  color: var(--color-white);
}
.carousel .title a:hover {
  text-decoration: underline;
}
.carousel p {
  font-size: 1.3rem;
}
.carousel p.fecha {
  font-size: 18px;
}
.carousel .badge,
#ciclosCarousel.carousel .badge {
  background-color: var(--color-link);
  font-size: 22px;
  color: var(--color-white);
  border-radius: 20px;
  transition: all 1s ease;
}
.carousel .badge:hover {
  text-decoration: none;
}
/* Centrar flechas en el círculo de los controles del carrusel */
.carousel-control-prev-icon.custom-carousel-arrow,
.carousel-control-next-icon.custom-carousel-arrow {
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  transition: background 0.2s;
}

.carousel-control-prev-icon.custom-carousel-arrow i,
.carousel-control-next-icon.custom-carousel-arrow i {
  color: #5a5a2a;
  font-size: 1.5rem;
  margin: 0;
  padding: 0;
}
.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-image: none !important;
}
.carousel-control-next-icon.custom-carousel-arrow::after {
  transform: translate(-40%, -50%) rotate(45deg);
}
.carousel-control-prev,
.carousel-control-next {
  width: 70px;
  height: 70px;
  top: 50%;
  transform: translateY(-50%);
  opacity: 1;
}
.carousel-control-prev:hover .custom-carousel-arrow,
.carousel-control-next:hover .custom-carousel-arrow {
  background-color: rgba(255, 255, 255, 0.5);
}
/* /CARRUSEL BANNER DESTACADO */

/* CARRUSEL CICLOS */
#ciclosCarousel.carousel {
  background-color: var(--color-grey);
}
#ciclosCarousel.carousel .title a {
  font-size: 2.3rem;
  text-transform: uppercase;
  text-decoration: none;
  transition: all 1s ease;
  color: var(--color-black);
}
#ciclosCarousel.carousel .title a:hover {
  text-decoration: underline;
}
/* /CARRUSEL CICLOS */


/* LISTA CICLOS */
.lista-ciclos {
  background-color: var(--color-grey);
}
.lista-ciclos p {
  font-size: 1.3rem;
}
.lista-ciclos .title a {
  font-size: 2.3rem;
  text-transform: uppercase;
  text-decoration: none;
  transition: all 1s ease;
  color: var(--color-black);
}
.lista-ciclos .title a:hover {
  text-decoration: underline;
}
/* /LISTA CICLOS */

/* CARDS ACTIVIDADES  */

/* Evita desbordes en las cards de actividades */
.card .position-relative {
  max-height: 360px;
  overflow: hidden;
  height: 360px;
  overflow: hidden;
}
.card .position-absolute {
  max-width: 92%;
  /* Ajusta el porcentaje si necesitas más espacio */
}
.card .badge {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  max-width: 100%;
}
.card-title,
.card-body p,
.card-body span {
  word-break: break-word;
}
.card-title a,
.card .badge,
.card .badge a {
  transition: color 0.2s, text-decoration-color 0.2s;
}
.card-title a:hover,
.card .badge:hover,
.card .badge a:hover {
  color: var(--color-link, #d30017);
  text-decoration: none;
  background-color: rgba(255, 255, 255, 0.8) !important;
}
.card .position-relative a img {
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.card-img-top {
  width: 100%;
  height: 360px;
  max-height: 360px;
  object-fit: cover;
  object-position: top center;
  overflow: hidden;
}
.card .position-relative:hover a img {
  transform: scale(1.07);
}
.card-body .card-title a {
  transition: color 0.2s, text-decoration-color 0.2s;
  text-decoration: none;
  color: var(--color-black);
}
.card-body .card-title a:hover {
  color: var(--color-link, #d30017);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
}
/* BADGES */
.badge {
  font-weight: 400;
}
span.badge.categoria {
  background: var(--color-link);
  color: var(--color-white);
  border: 2px solid transparent;
}
span.badge.categoria:hover,
span.badge.categoria:focus {
  color: var(--color-link, #d30017) !important;
  border: 2px solid var(--color-link);
  background-color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
  transition: color 0.2s, background-color 0.2s;
}
span.badge.categoria2 {
  background: var(--color-grey);
  color: var(--color-black);
  border: 2px solid transparent;
}
span.badge.categoria2:hover,
span.badge.categoria2:focus {
  color: var(--color-link, #d30017) !important;
  border: 2px solid var(--color-link);
  background-color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
  transition: color 0.2s, background-color 0.2s;
}

span.badge.gratis span.badge,
span.badge.gratis {
  background-color: var(--color-yellow);
  border: 2px solid transparent;
  color: var(--color-black);
}
span.badge.gratis span.badge:hover,
span.badge.gratis:hover {
  color: var(--color-link, #d30017) !important;
  border: 2px solid var(--color-link);
  background-color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
  transition: color 0.2s, background-color 0.2s;
}
.link-hover-danger {
  transition: color 0.2s, background-color 0.2s;
  text-decoration: none;
}
.link-hover-danger:hover,
.link-hover-danger:focus {
  text-decoration: underline;
  color: var(--color-link);
}
.link-hover-black {
  transition: color 0.2s, background-color 0.2s;
  text-decoration: none;
}
.link-hover-black:hover,
.link-hover-black:focus {
  text-decoration: underline;
  color: var(--color-black);
}
/* /CARDS ACTIVIDADES  */

/* FOOTER */
.footer-mex {
  background: var(--color-intense, #f44054);
  color: #fff;
  font-size: 1rem;
}
.footer-mex .footer-link {
  color: #fff;
  text-decoration: none;
  transition: color 0.2s;
  font-size: 1rem;
}
.footer-mex .footer-link:hover {
  color: #ececf0;
  text-decoration: underline;
}
.footer-mex .footer-social {
  color: #fff;
  font-size: 1.5rem;
  transition: color 0.2s;
}
.footer-mex .footer-social:hover {
  color: #ececf0;
}
@media (max-width: 767px) {
  .footer-mex .row > div {
    text-align: left !important;
    align-items: center !important;
  }
  .footer-mex .footer-social {
    font-size: 1.8rem;
  }
}
/* /FOOTER */

/* DETALLE ACTIVIDAD */

.banner-detalle img {
  width: 100%;
  height: auto;
  /*max-height: 450px;*/
  object-fit: cover;
  object-position: top center;
}
.ficha {
  word-break: break-all;
}
/* /DETALLE ACTIVIDAD */

/* SECCIONES PRINCIPALES  */

.header-section {
  height: 350px;
  overflow: hidden;
}
.header-section img{
  object-fit: cover; 
  min-height: 220px;
}
.header-section .titulo{
  letter-spacing:1px;
}
/* AGREGAR PARA EL SIDEBAR DE ACTIVIDAD */

:root {
  --text: #222;
}
.event-card {
  background: #fff;
  border: 1px solid var(--color-black);
  border-radius: 4px;
  padding: 24px;
 
}
.event-card .event-date {
  color: var(--color-intense);
  font-weight: 600;
  margin-bottom: 12px;
  line-height: 1.15;
}
.event-card .event-date .day {
  display: block;
}
.event-card .event-date .time {
  display: block;
  color: var(--color-black);
  font-weight: 600;
  margin-top: 6px;
}
.event-card .meta {
  color: var(--text);
  /*font-size: 15px;*/
  margin-top: 6px;
}
.event-card .meta b {
  color: var(--text);
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
}
.event-card .prices {
  color: var(--text);
  font-weight: 600;
  line-height: 1.5;
  margin-top: 6px;
}
.event-card .price {
  display: block;
  font-weight: 600;
}
.event-card .venue-link {
  color: var(--color-intense);
  font-weight: 700;
  text-decoration: none;
}
.event-card .address {
  white-space: pre-line;
  color: var(--color-black);
  margin-top: 6px;
}

.event-date ul {
  margin-top: 12px;
  list-style: none;
  padding: 0;
}
.event-date ul li {
  margin-bottom: 5px;
}
.event-date ul li:before {
  font-family: 'bootstrap-icons';
  content: '\F1E6';
  color: var(--text);
}

.event-date ul li a {
  color: var(--color-black);
  font-weight: 300;
}