@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&display=swap');

@font-face {
  font-family: 'Jost';
  src: url(../external-libraries/fonts/jost/Jost-Regular.ttf);
}

p, h1, h2, h3, h4, h5, h6, a, .btn, th, td, li, ul, ol {
  font-family: 'Jost', sans-serif;
}

/* Forzar la tipografía Jost en el contenido de texto enriquecido (rich-text) */
.benefit-description,
.benefit-description *,
.benefit-description p,
.benefit-description span,
.benefit-description div,
.benefit-description li,
.benefit-description ul,
.benefit-description ol,
.benefit-description table,
.benefit-description td,
.benefit-description th {
  font-family: 'Jost', sans-serif !important;
}

.nav-image div{
    z-index: 2;
}
.primary-background {
    background-color: #003A60 !important;
    color: white;
}
.warning-background {
    background-color: #ffc100 !important;
    color: white;
}
.pink-background {
    background-color: #8d2266 !important;
    color: white;
}
.grey-background {
    background-color: #6c757d !important;
    color: white;
}

.primary-title {
    color:#003A60 !important;
    font-weight:700!important;
}
.primary-text {
    color:#003A60 !important;
}
.primary-button {
    background-color: #003A60 !important;
    color: white;
    border: 1px solid #003A60;
}

.info-title {
    color:#00ccc2 !important;
    font-weight:700!important;
}
.info-text {
    color:#00ccc2 !important;
}
.info-button {
    background-color: #00ccc2 !important;
    color: white;
}

.warning-title {
    color:#ffc100 !important;
    font-weight:700!important;
}
.warning-text {
    color:#ffc100 !important;
}
.warning-button {
    background-color: #ffc100 !important;
    color: white;
}

.danger-title {
    color:#ff0014 !important;
    font-weight:700!important;
}
.danger-text {
    color:#ff0014 !important;
}
.danger-button {
    background-color: #ff0014 !important;
    color: white;
}
.star-rating .btn {
    font-size: 4.5rem;
    text-decoration: none;
    box-shadow: none !important;
}
/* Efecto de escala al pasar el mouse */
.star-rating .btn:hover {
    transform: scale(1.1);
    transition: transform 0.2s;
}

/* Select2 + Bootstrap 5 Floating Label Workaround */
.form-floating > .select2-container {
    padding-top: 1px;
    width: 100% !important;
}

.form-floating > .select2-container .select2-selection {
    height: 58px !important;
    padding: 1.8rem 0.75rem 0.2rem 0.75rem !important;
    border: 1px solid #dee2e6 !important;
    background-color: #fff !important;
}

.form-floating > .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered {
    padding: 0 !important;
    line-height: normal !important;
    margin-top: 0 !important; /* Removed 6px margin to center text better */
    color: #212529 !important;
}

.form-floating > label {
    z-index: 5 !important;
    pointer-events: none;
    transform: scale(.85) translateY(-0.75rem) translateX(0.15rem);
    opacity: .65;
}

/* Ocultar placeholder de select2 para que no choque con el label de bootstrap */
.form-floating .select2-selection__placeholder {
    opacity: 0 !important;
}

.fc-event { 
    cursor: pointer; 
    border: none !important; 
    padding: 0 !important; 
    margin: 2px 4px !important;
    border-radius: 6px !important;
    font-family: 'Jost', sans-serif !important;
    font-size: 0.85rem !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
    border-left: none !important;
    color: #fff !important;
}
.fc-event-time, .fc-event-title {
    color: #fff !important;
}
.fc-event:hover {
    transform: scale(1.02);
    box-shadow: 0 4px 8px rgba(0,0,0,0.12) !important;
    z-index: 5 !important;
    filter: brightness(1.1);
}
.fc-daygrid-event {
    white-space: normal !important;
    background-color: transparent !important;
    border: none !important;
}
.fc-daygrid-event-harness, .fc-timegrid-event-harness {
    margin: 2px 4px !important;
    border-radius: 6px !important;
    border-left: none !important;
    overflow: hidden !important;
    transition: all 0.2s ease !important;
}
/* Forzar el fondo incluso en vista semanal/diaria (timeGrid) */
.fc-timegrid-event {
    background-color: inherit !important;
    border: none !important;
    border-radius: 6px !important;
}
.fc-v-event .fc-event-main {
    color: #fff !important;
    background-color: inherit !important;
}
/* Garantizar color blanco del texto en el harness */
.fc-daygrid-event-harness * {
    color: #fff !important;
}
.fc-v-event { 
    background-color: inherit !important; 
}
.fc-daygrid-event-dot { border-width: 4px; }
.fc-day-today { background-color: rgba(0, 58, 96, 0.05) !important; }

/* Botones del Calendario */
.fc-button { 
    background-color: #003A60 !important; 
    border-color: #003A60 !important; 
    color: white !important;
    border-radius: 8px !important;
    margin: 0 4px !important; /* Espacio entre botones */
    font-family: 'Jost', sans-serif !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
    text-transform: capitalize !important;
}
.fc-button:hover {
    background-color: #002a45 !important;
    border-color: #002a45 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 6px rgba(0,0,0,0.15) !important;
}
.fc-button-active {
    background-color: #002a45 !important;
    border-color: #ffc100 !important;
    border-width: 2px !important;
}
/* Quitar el pegado de los botones en grupos */
.fc-button-group {
    background: none !important;
    border: none !important;
    gap: 5px;
}
.fc-button-group > .fc-button {
    border-radius: 8px !important; /* Forzar redondeado incluso en grupo */
}

.fc-header-toolbar { margin-bottom: 2rem !important; }
.fc-toolbar-title { 
    font-weight: 700 !important; 
    color: #000 !important; 
    font-family: 'Jost', sans-serif; 
    text-transform: lowercase !important; 
    font-size: 1.5rem !important;
}
.fc-toolbar-title::first-letter {
    text-transform: uppercase !important;
}

/* Cabecera de días (Domingo, Lunes, etc.) */
.fc-col-header-cell a {
    color: #003A60 !important;
    text-decoration: none !important;
    text-transform: capitalize !important;
    font-weight: 600 !important;
}

/* Números de los días */
.fc-daygrid-day-top a {
    color: #000 !important;
    text-decoration: none !important;
    font-weight: 500 !important;
}

/* Estilos para vista de lista */
.fc-list-event {
    border-radius: 8px !important;
    overflow: hidden !important;
    transition: all 0.2s ease !important;
}
.fc-list-event:hover {
    filter: brightness(1.1);
    cursor: pointer;
}
.fc-list-event-title a {
    color: #fff !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}
.fc-list-event-time {
    color: #fff !important;
    font-weight: 500 !important;
}
/* Quitar el circulito por defecto en lista ya que usamos fondo de color */
.fc-list-event-dot {
    display: none !important;
}
.fc-list-day-cushion {
    background-color: #f8f9fa !important;
}

.btn-outline-cultura {
  color: #e02b82;
  border-color: #e02b82;
}
.btn-outline-cultura:hover {
  background-color: #e02b82;
  color: #fff;
}
.btn-check:checked + .btn-outline-cultura {
  background-color: #e02b82;
  border-color: #e02b82;
  color: #fff;
}

.btn-outline-deportes {
  color: #f17701;
  border-color: #f17701;
}
.btn-outline-deportes:hover {
  background-color: #f17701;
  color: #fff;
}
.btn-check:checked + .btn-outline-deportes {
  background-color: #f17701;
  border-color: #f17701;
  color: #fff;
}

.btn-outline-cmpa {
  color: #003A60;
  border-color: #003A60;
}

.btn-outline-cmpa:hover {
  background-color: #003A60;
  color: #fff;
}

.btn-check:checked + .btn-outline-cmpa {
  background-color: #003A60;
  border-color: #003A60;
  color: #fff;
}
.btn-outline-pueblito {
  color: #4caf50;
  border-color: #4caf50;
}
.btn-outline-pueblito:hover {
  background-color: #4caf50;
  color: #fff;
}
.btn-check:checked + .btn-outline-pueblito {
  background-color: #4caf50;
  border-color: #4caf50;
  color: #fff;
}

.btn-outline-municipal {
  color: #003A60;
  border-color: #003A60;
}

.btn-outline-municipal:hover {
  background-color: #003A60;
  color: #fff;
}

.btn-check:checked + .btn-outline-municipal {
  background-color: #003A60;
  border-color: #003A60;
  color: #fff;
}

/* Estilo para input file normal con la misma altura de los text inputs (58px) */
input[type="file"].form-control-custom-file {
  height: 58px !important;
  padding: 0.85rem 0.75rem !important;
  border-radius: 8px !important;
  line-height: 1.5 !important;
}

input[type="file"].form-control-custom-file::file-selector-button {
  padding: 0.375rem 1rem !important;
  margin-top: -0.15rem !important;
  margin-right: 0.75rem !important;
  border-radius: 6px !important;
  border: 1px solid #dee2e6 !important;
  background-color: #f8f9fa !important;
  color: #212529 !important;
  font-size: 0.9rem !important;
  font-family: 'Jost', sans-serif !important;
  font-weight: 500 !important;
  transition: all 0.2s ease !important;
}

input[type="file"].form-control-custom-file:hover::file-selector-button {
  background-color: #e9ecef !important;
  border-color: #ced4da !important;
}

/* Estilo para los botones de subir/actualizar archivo adaptados al mismo tamaño */
.btn-custom-upload {
  height: 58px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 8px !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  padding: 0.375rem 1.5rem !important;
  transition: all 0.2s ease !important;
}
