.text-transform-uppercase{
	text-transform: uppercase !important;
}

.rounded-3 {
    border-radius: 0.5rem !important; /* Ajusta el valor si prefieres bordes más o menos redondeados */
}

/* shadow-lg */
.shadow-lg {
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
}

.shadow {
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.175) !important;
}

/* g-4 (gap utility) */
.g-4 {
    --bs-gutter-x: 1.5rem; /* Espacio horizontal entre columnas */
    --bs-gutter-y: 1.5rem; /* Espacio vertical entre filas */
}


.row-cols-1 > * {
    flex: 0 0 auto;
    width: 100%;
}

@media (min-width: 768px) { /* md breakpoint */
    .row-cols-md-2 > * {
        flex: 0 0 auto;
        width: 50%;
    }
}

@media (min-width: 992px) { /* lg breakpoint */
    .row-cols-lg-3 > * {
        flex: 0 0 auto;
        width: 33.3333333333%;
    }
}


.text-truncate{
	display: inline-block; /* O 'block'. Necesita ser un elemento de bloque o en línea-bloque */
	max-width: 100%; /* Asegura que el enlace no exceda el ancho de su padre */
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}


/* ========================================================================== */
/* CSS ESENCIAL PARA ALERTAS DE BOOTSTRAP (EXTRAÍDO)              */
/* ========================================================================== */

/* -------------------------------------------------------------------------- */
/* 1. Estilos Personalizados para Barky.Notify (de tu JS)                     */
/* -------------------------------------------------------------------------- */

/* Contenedor de notificaciones */
#notifications {
    position: fixed; /* Fija el contenedor en la pantalla */
    top: 20px;       /* Distancia desde la parte superior */
    right: 20px;     /* Distancia desde la parte derecha */
    z-index: 1050;   /* Asegura que esté por encima de la mayoría de los otros elementos (ej. modales de Bootstrap) */
    width: 300px;    /* Ancho fijo para las notificaciones */
    max-width: 90%;  /* Ancho máximo para pantallas pequeñas */
}
#notifications.bottom {
    bottom: 20px;
	top: auto;
}

/* Clase 'hide' usada en tu JavaScript para ocultar inicialmente las alertas */
.hide {
    display: none !important; /* Asegura que se oculte, sobrescribiendo otras reglas */
}

/* -------------------------------------------------------------------------- */
/* 2. Estilos Base de Bootstrap para Alertas (.alert)                         */
/* -------------------------------------------------------------------------- */

.alert {
  position: relative;
  padding: 1rem 1rem; /* Padding vertical y horizontal */
  margin-bottom: 1rem; /* Margen inferior para separar alertas apiladas */
  border: 1px solid transparent; /* Borde base, el color lo da la variante */
  border-radius: 0.375rem; /* Bordes ligeramente redondeados (6px) */
}

/* Estilo para el caso de alertas con botón de cierre (dismissible) */
.alert-dismissible {
  padding-right: 3rem; /* Deja espacio para el botón de cierre */
}

/* -------------------------------------------------------------------------- */
/* 3. Estilos de Color para las Variantes de Alerta (Bootstrap 5 Colores)    */
/* Estos son los colores directos compilados, sin usar variables CSS       */
/* -------------------------------------------------------------------------- */

/* Alerta Primaria (Azul) */
.alert-primary {
  color: #084298;           /* Color del texto */
  background-color: #cfe2ff; /* Color de fondo */
  border-color: #b6d4fe;    /* Color del borde */
}
.alert-primary .alert-link {
  color: #063e8a;
}

/* Alerta Secundaria (Gris) */
.alert-secondary {
  color: #41464b;
  background-color: #e2e3e5;
  border-color: #d3d6d8;
}
.alert-secondary .alert-link {
  color: #34383c;
}

/* Alerta de Éxito (Verde) */
.alert-success {
  color: #0f5132;
  background-color: #d1e7dd;
  border-color: #badbcc;
}
.alert-success .alert-link {
  color: #0c4128;
}

/* Alerta de Información (Cian/Azul Claro) */
.alert-info {
  color: #055160;
  background-color: #cff4fc;
  border-color: #b6effb;
}
.alert-info .alert-link {
  color: #04414d;
}

/* Alerta de Advertencia (Naranja/Amarillo) */
.alert-warning {
  color: #664d03;
  background-color: #fff3cd;
  border-color: #ffecb5;
}
.alert-warning .alert-link {
  color: #523e02;
}

/* Alerta de Peligro (Rojo) */
.alert-danger {
  color: #842029;
  background-color: #f8d7da;
  border-color: #f5c2c7;
}
.alert-danger .alert-link {
  color: #6a1a21;
}

/* Alerta Clara (Gris Muy Claro) */
.alert-light {
  color: #636468;
  background-color: #fefefe;
  border-color: #fdfdfe;
}
.alert-light .alert-link {
  color: #4f5053;
}

/* Alerta Oscura (Gris Oscuro) */
.alert-dark {
  color: #141619;
  background-color: #d3d3d4;
  border-color: #bcbebf;
}
.alert-dark .alert-link {
  color: #101214;
}

/* -------------------------------------------------------------------------- */
/* 4. Estilos para el Botón de Cierre ('x')                                   */
/* -------------------------------------------------------------------------- */

/* Este estilo es para la clase 'close' que Bootstrap usa para el botón 'x' */
/* de cerrar, y que tu JS está aplicando. */
.close {
  float: right; /* Lo posiciona a la derecha */
  font-size: 1.5rem; /* Tamaño de la 'x' */
  font-weight: 700; /* Negrita */
  line-height: 1;
  color: #000; /* Color de la 'x' (negro) */
  text-shadow: 0 1px 0 #fff; /* Pequeña sombra para que se vea en fondos oscuros */
  opacity: .5; /* Transparencia por defecto */
  cursor: pointer;
  padding: 0;
  background-color: transparent;
  border: 0;
  -webkit-appearance: none; /* Resetea estilos de navegador */
  -moz-appearance: none;
  appearance: none;
}
.close:hover {
  color: #000;
  text-decoration: none;
  opacity: .75; /* Más opaco al pasar el ratón */
}

/* Posicionamiento del botón de cierre dentro de una alerta dismissible */
/* Esto asegura que el 'x' esté bien posicionado en la esquina superior derecha */
.alert-dismissible .close {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  padding: 0.75rem 1.25rem; /* Ajusta el área de clic y la posición */
  color: inherit; /* Hereda el color del texto de la alerta para contraste */
}
.alert-dismissible .close:focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); /* Focus ring, puedes cambiar el color si entra en conflicto */
}

.position-relative{
	position: relative;
}

/* ========================================================================== */
/* FIN DEL CSS ESENCIAL                                   */
/* ========================================================================== */

.bg-danger{background-color: #dc3545 !important;}
.border-danger{border-color: #dc3545 !important;}
.bg-success{background-color: #198754 !important;}
.border-success{border-color: #198754 !important;}
.bg-info{background-color: #0dcaf0 !important;}
.border-info{border-color: #0dcaf0 !important;}
.bg-warning{background-color: #ffc107 !important;}
.border-warning{border-color: #ffc107 !important;}
.bg-primary{background-color: #8f8aff !important;}
.border-primary{border-color: #8f8aff !important;}
.bg-secondary{background-color: #7a70e6 !important;}
.border-secondary{border-color: #7a70e6 !important;}
.bg-light-primary{background-color: #E8E8FF !important;}
.border-light-primary{border-color: #E8E8FF !important;}

/* Estilos para desktop (md y arriba) */

.h1 {
  font-size: 2.5rem;
}

.h2 {
  font-size: 2rem;
}

.h3 {
  font-size: 1.75rem;
}

.h4 {
  font-size: 1.5rem;
}

.h5 {
  font-size: 1.25rem;
}

.h6 {
  font-size: 1rem;
}

.flex-fill {
  flex: 1 1 0% !important;
}

/* Simula 'gap-2' (espacio entre elementos de ~8px) */
.gap-2 {
  gap: 0.5rem; /* 8px */
}

/* Puedes agregar más si las necesitas */
.gap-1 { gap: 0.25rem !important; }
.gap-3 { gap: 1rem !important; }
.gap-2 > * + * {
  margin-left: 0.5rem; /* Puedes ajustar el espacio entre botones */
}

.row-align-items { align-items: stretch; }
.row-align {
  display: flex;
  flex-wrap: wrap;
}
.row-align > [class*="col-"]{
	display: flex;
	align-items: center;
}
.align-items-center { align-items: center !important; }
.justify-content-center { justify-content: center !important; }
.align-items-stretch { align-items: stretch !important; }
.w-100{ width: 100%; }
.h-100 { height: 100% !important; }
.h-150 { height: 150px !important; }
.h-200 { height: 200px !important; }
.h-250 { height: 250px !important; }
.h-300 { height: 300px !important; }
.h-350 { height: 350px !important; }

.text-white{
	color: #FFF !important;
}

.text-primary{
	color: #8f8aff !important;
}
.text-secondary {
    color: #7a70e6!important;
}
.text-danger {
    color: #dc3545!important;
}

.text-left,.text-start{
	text-align: left !important;
}
.text-right,.text-end{
	text-align: right !important;
}

.cursor-pointer{
	cursor: pointer;
}


.input-group {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
}

.input-group-prepend {
    margin-right: -1px;
}
.input-group-prepend, .input-group-append {
    display: flex;
}
.input-group > .input-group-prepend > .btn, .input-group > .input-group-prepend > .input-group-text, .input-group > .input-group-append:not(:last-child) > .btn, .input-group > .input-group-append:not(:last-child) > .input-group-text, .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group > .form-control:not(:first-child), .input-group > .custom-select:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
.input-group > .form-control, .input-group > .form-control-plaintext, .input-group > .custom-select, .input-group > .custom-file {
    position: relative;
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
    margin-bottom: 0;
}
.form-group {
    margin-bottom: 1rem;
}
.form-control:not(select) {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.form-control + .input-group-addon:not(:first-child) {
    border-radius: 0px 10px 10px 0px;
    border-left: 0;
}
.input-group > .form-control:not(:last-child), .input-group > .custom-select:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.input-group .input-group-addon {
    border-radius: 10px 0px 0px 10px;
    border-color: #ced4da;
    background-color: #ffffff;
}
.input-group-addon {
    font-weight: 300;
    padding: .425rem .75rem;
    border: 1px solid #ced4da;
    line-height: 1.25;
    color: #475F7B;
    text-align: center;
    margin-bottom: 0;
    font-size: 1rem;
}
.input-group-addon, .input-group-btn {
    white-space: nowrap;
    vertical-align: middle;
}
.form-control {
	border-radius: 10px;
    box-shadow: none;
    height: auto;
    display: block;
    flex-grow: 1;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.input-group-text {
    display: flex;
    align-items: center;
    padding: 0.375rem 0.75rem;
    margin-bottom: 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    text-align: center;
    white-space: nowrap;
    background-color: #e9ecef;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
}

.input-group .input-group-text {
    padding: .425rem .75rem;
    background-color: #ffffff;
    border-color: #ced4da;
    border-radius: 10px;
}
.input-group-prepend select, .input-group-prepend input {
    border-bottom-right-radius: 0 !important;
    border-top-right-radius: 0 !important;
}





@media (min-width: 768px) {
  .row.equal-height-row .col-md-8 {
    flex: 0 0 66.6666%;
    max-width: 66.6666%;
  }
  
  .row.equal-height-row .col-md-4 {
    flex: 0 0 33.3333%;
    max-width: 33.3333%;
    position: relative;
  }
  
}

/* Estilos para mobile (menos de 768px) */
@media (max-width: 767px) {
  .row.equal-height-row > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
  }
  
  .sticky-content {
    position: static; /* Desactiva sticky en mobile */
  }
}
/* Padding */
.p-0 { padding: 0 !important; }
.p-1 { padding: 0.25rem !important; }
.p-2 { padding: 0.5rem !important; }
.p-3 { padding: 1rem !important; }
.p-4 { padding: 1.5rem !important; }

.px-0 { padding-left: 0 !important; padding-right: 0 !important; }
.px-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; }
.px-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; }
.px-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
.px-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }

.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; }
.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
.py-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }

.pt-0 { padding-top: 0 !important; }
.pt-1 { padding-top: 0.25rem !important; }
.pt-2 { padding-top: 0.5rem !important; }
.pt-3 { padding-top: 1rem !important; }
.pt-4 { padding-top: 1.5rem !important; }

.pb-0 { padding-bottom: 0 !important; }
.pb-1 { padding-bottom: 0.25rem !important; }
.pb-2 { padding-bottom: 0.5rem !important; }
.pb-3 { padding-bottom: 1rem !important; }
.pb-4 { padding-bottom: 1.5rem !important; }

.pl-0 { padding-left: 0 !important; }
.pl-1 { padding-left: 0.25rem !important; }
.pl-2 { padding-left: 0.5rem !important; }
.pl-3 { padding-left: 1rem !important; }
.pl-4 { padding-left: 1.5rem !important; }

.pr-0 { padding-right: 0 !important; }
.pr-1 { padding-right: 0.25rem !important; }
.pr-2 { padding-right: 0.5rem !important; }
.pr-3 { padding-right: 1rem !important; }
.pr-4 { padding-right: 1.5rem !important; }
@media (max-width: 575px) { /* SM */
  .p-sm-0 { padding: 0 !important; }
  .p-sm-1 { padding: 0.25rem !important; }
  .p-sm-2 { padding: 0.5rem !important; }
  .p-sm-3 { padding: 1rem !important; }
  .p-sm-4 { padding: 1.5rem !important; }

  .px-sm-0 { padding-left: 0 !important; padding-right: 0 !important; }
  .px-sm-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; }
  .px-sm-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; }
  .px-sm-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
  .px-sm-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }

  .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
  .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; }
  .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
  .py-sm-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
  .py-sm-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }

  .pt-sm-0 { padding-top: 0 !important; }
  .pt-sm-1 { padding-top: 0.25rem !important; }
  .pt-sm-2 { padding-top: 0.5rem !important; }
  .pt-sm-3 { padding-top: 1rem !important; }
  .pt-sm-4 { padding-top: 1.5rem !important; }

  .pb-sm-0 { padding-bottom: 0 !important; }
  .pb-sm-1 { padding-bottom: 0.25rem !important; }
  .pb-sm-2 { padding-bottom: 0.5rem !important; }
  .pb-sm-3 { padding-bottom: 1rem !important; }
  .pb-sm-4 { padding-bottom: 1.5rem !important; }

  .pl-sm-0 { padding-left: 0 !important; }
  .pl-sm-1 { padding-left: 0.25rem !important; }
  .pl-sm-2 { padding-left: 0.5rem !important; }
  .pl-sm-3 { padding-left: 1rem !important; }
  .pl-sm-4 { padding-left: 1.5rem !important; }

  .pr-sm-0 { padding-right: 0 !important; }
  .pr-sm-1 { padding-right: 0.25rem !important; }
  .pr-sm-2 { padding-right: 0.5rem !important; }
  .pr-sm-3 { padding-right: 1rem !important; }
  .pr-sm-4 { padding-right: 1.5rem !important; }
}

/* Medium Devices (MD) */
@media (min-width: 576px) and (max-width: 991px) {
  .p-md-0 { padding: 0 !important; }
  .p-md-1 { padding: 0.25rem !important; }
  .p-md-2 { padding: 0.5rem !important; }
  .p-md-3 { padding: 1rem !important; }
  .p-md-4 { padding: 1.5rem !important; }

  .px-md-0 { padding-left: 0 !important; padding-right: 0 !important; }
  .px-md-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; }
  .px-md-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; }
  .px-md-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
  .px-md-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }

  .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
  .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; }
  .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
  .py-md-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
  .py-md-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }

  .pt-md-0 { padding-top: 0 !important; }
  .pt-md-1 { padding-top: 0.25rem !important; }
  .pt-md-2 { padding-top: 0.5rem !important; }
  .pt-md-3 { padding-top: 1rem !important; }
  .pt-md-4 { padding-top: 1.5rem !important; }

  .pb-md-0 { padding-bottom: 0 !important; }
  .pb-md-1 { padding-bottom: 0.25rem !important; }
  .pb-md-2 { padding-bottom: 0.5rem !important; }
  .pb-md-3 { padding-bottom: 1rem !important; }
  .pb-md-4 { padding-bottom: 1.5rem !important; }

  .pl-md-0 { padding-left: 0 !important; }
  .pl-md-1 { padding-left: 0.25rem !important; }
  .pl-md-2 { padding-left: 0.5rem !important; }
  .pl-md-3 { padding-left: 1rem !important; }
  .pl-md-4 { padding-left: 1.5rem !important; }

  .pr-md-0 { padding-right: 0 !important; }
  .pr-md-1 { padding-right: 0.25rem !important; }
  .pr-md-2 { padding-right: 0.5rem !important; }
  .pr-md-3 { padding-right: 1rem !important; }
  .pr-md-4 { padding-right: 1.5rem !important; }
}

/* Large Devices (LG) */
@media (min-width: 992px) and (max-width: 1199px) {
  .p-lg-0 { padding: 0 !important; }
  .p-lg-1 { padding: 0.25rem !important; }
  .p-lg-2 { padding: 0.5rem !important; }
  .p-lg-3 { padding: 1rem !important; }
  .p-lg-4 { padding: 1.5rem !important; }

  .px-lg-0 { padding-left: 0 !important; padding-right: 0 !important; }
  .px-lg-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; }
  .px-lg-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; }
  .px-lg-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
  .px-lg-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }

  .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
  .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; }
  .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
  .py-lg-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
  .py-lg-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }

  .pt-lg-0 { padding-top: 0 !important; }
  .pt-lg-1 { padding-top: 0.25rem !important; }
  .pt-lg-2 { padding-top: 0.5rem !important; }
  .pt-lg-3 { padding-top: 1rem !important; }
  .pt-lg-4 { padding-top: 1.5rem !important; }

  .pb-lg-0 { padding-bottom: 0 !important; }
  .pb-lg-1 { padding-bottom: 0.25rem !important; }
  .pb-lg-2 { padding-bottom: 0.5rem !important; }
  .pb-lg-3 { padding-bottom: 1rem !important; }
  .pb-lg-4 { padding-bottom: 1.5rem !important; }

  .pl-lg-0 { padding-left: 0 !important; }
  .pl-lg-1 { padding-left: 0.25rem !important; }
  .pl-lg-2 { padding-left: 0.5rem !important; }
  .pl-lg-3 { padding-left: 1rem !important; }
  .pl-lg-4 { padding-left: 1.5rem !important; }

  .pr-lg-0 { padding-right: 0 !important; }
  .pr-lg-1 { padding-right: 0.25rem !important; }
  .pr-lg-2 { padding-right: 0.5rem !important; }
  .pr-lg-3 { padding-right: 1rem !important; }
  .pr-lg-4 { padding-right: 1.5rem !important; }
}

/* Extra Large Devices (XL) */
@media (min-width: 1200px) {
  .p-xl-0 { padding: 0 !important; }
  .p-xl-1 { padding: 0.25rem !important; }
  .p-xl-2 { padding: 0.5rem !important; }
  .p-xl-3 { padding: 1rem !important; }
  .p-xl-4 { padding: 1.5rem !important; }

  .px-xl-0 { padding-left: 0 !important; padding-right: 0 !important; }
  .px-xl-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; }
  .px-xl-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; }
  .px-xl-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
  .px-xl-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }

  .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
  .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; }
  .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
  .py-xl-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
  .py-xl-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }

  .pt-xl-0 { padding-top: 0 !important; }
  .pt-xl-1 { padding-top: 0.25rem !important; }
  .pt-xl-2 { padding-top: 0.5rem !important; }
  .pt-xl-3 { padding-top: 1rem !important; }
  .pt-xl-4 { padding-top: 1.5rem !important; }

  .pb-xl-0 { padding-bottom: 0 !important; }
  .pb-xl-1 { padding-bottom: 0.25rem !important; }
  .pb-xl-2 { padding-bottom: 0.5rem !important; }
  .pb-xl-3 { padding-bottom: 1rem !important; }
  .pb-xl-4 { padding-bottom: 1.5rem !important; }

  .pl-xl-0 { padding-left: 0 !important; }
  .pl-xl-1 { padding-left: 0.25rem !important; }
  .pl-xl-2 { padding-left: 0.5rem !important; }
  .pl-xl-3 { padding-left: 1rem !important; }
  .pl-xl-4 { padding-left: 1.5rem !important; }

  .pr-xl-0 { padding-right: 0 !important; }
  .pr-xl-1 { padding-right: 0.25rem !important; }
  .pr-xl-2 { padding-right: 0.5rem !important; }
  .pr-xl-3 { padding-right: 1rem !important; }
  .pr-xl-4 { padding-right: 1.5rem !important; }
}

/* Margin for small screens (sm) */
.m-0 { margin: 0 !important; }
.m-1 { margin: 0.25rem !important; }
.m-2 { margin: 0.5rem !important; }
.m-3 { margin: 1rem !important; }
.m-4 { margin: 1.5rem !important; }

.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: 0.25rem !important; }
.mt-2 { margin-top: 0.5rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-4 { margin-top: 1.5rem !important; }

.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: 0.25rem !important; }
.mb-2 { margin-bottom: 0.5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }

.ml-0 { margin-left: 0 !important; }
.ml-1 { margin-left: 0.25rem !important; }
.ml-2 { margin-left: 0.5rem !important; }
.ml-3 { margin-left: 1rem !important; }
.ml-4 { margin-left: 1.5rem !important; }

.mr-0 { margin-right: 0 !important; }
.mr-1 { margin-right: 0.25rem !important; }
.mr-2 { margin-right: 0.5rem !important; }
.mr-3 { margin-right: 1rem !important; }
.mr-4 { margin-right: 1.5rem !important; }

.mx-0 { margin-left: 0 !important; margin-right: 0 !important; }
.mx-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; }
.mx-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; }
.mx-3 { margin-left: 1rem !important; margin-right: 1rem !important; }
.mx-4 { margin-left: 1.5rem !important; margin-right: 1.5rem !important; }

.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; }
.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; }
.my-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
.my-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
@media (min-width: 576px) {
  .m-sm-0 { margin: 0 !important; }
  .m-sm-1 { margin: 0.25rem !important; }
  .m-sm-2 { margin: 0.5rem !important; }
  .m-sm-3 { margin: 1rem !important; }
  .m-sm-4 { margin: 1.5rem !important; }

  .mt-sm-0 { margin-top: 0 !important; }
  .mt-sm-1 { margin-top: 0.25rem !important; }
  .mt-sm-2 { margin-top: 0.5rem !important; }
  .mt-sm-3 { margin-top: 1rem !important; }
  .mt-sm-4 { margin-top: 1.5rem !important; }

  .mb-sm-0 { margin-bottom: 0 !important; }
  .mb-sm-1 { margin-bottom: 0.25rem !important; }
  .mb-sm-2 { margin-bottom: 0.5rem !important; }
  .mb-sm-3 { margin-bottom: 1rem !important; }
  .mb-sm-4 { margin-bottom: 1.5rem !important; }

  .ml-sm-0 { margin-left: 0 !important; }
  .ml-sm-1 { margin-left: 0.25rem !important; }
  .ml-sm-2 { margin-left: 0.5rem !important; }
  .ml-sm-3 { margin-left: 1rem !important; }
  .ml-sm-4 { margin-left: 1.5rem !important; }

  .mr-sm-0 { margin-right: 0 !important; }
  .mr-sm-1 { margin-right: 0.25rem !important; }
  .mr-sm-2 { margin-right: 0.5rem !important; }
  .mr-sm-3 { margin-right: 1rem !important; }
  .mr-sm-4 { margin-right: 1.5rem !important; }

  .mx-sm-0 { margin-left: 0 !important; margin-right: 0 !important; }
  .mx-sm-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; }
  .mx-sm-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; }
  .mx-sm-3 { margin-left: 1rem !important; margin-right: 1rem !important; }
  .mx-sm-4 { margin-left: 1.5rem !important; margin-right: 1.5rem !important; }

  .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
  .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; }
  .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; }
  .my-sm-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
  .my-sm-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
}

/* Margin for medium screens (md) */
@media (min-width: 768px) {
  .m-md-0 { margin: 0 !important; }
  .m-md-1 { margin: 0.25rem !important; }
  .m-md-2 { margin: 0.5rem !important; }
  .m-md-3 { margin: 1rem !important; }
  .m-md-4 { margin: 1.5rem !important; }

  .mt-md-0 { margin-top: 0 !important; }
  .mt-md-1 { margin-top: 0.25rem !important; }
  .mt-md-2 { margin-top: 0.5rem !important; }
  .mt-md-3 { margin-top: 1rem !important; }
  .mt-md-4 { margin-top: 1.5rem !important; }

  .mb-md-0 { margin-bottom: 0 !important; }
  .mb-md-1 { margin-bottom: 0.25rem !important; }
  .mb-md-2 { margin-bottom: 0.5rem !important; }
  .mb-md-3 { margin-bottom: 1rem !important; }
  .mb-md-4 { margin-bottom: 1.5rem !important; }

  .ml-md-0 { margin-left: 0 !important; }
  .ml-md-1 { margin-left: 0.25rem !important; }
  .ml-md-2 { margin-left: 0.5rem !important; }
  .ml-md-3 { margin-left: 1rem !important; }
  .ml-md-4 { margin-left: 1.5rem !important; }

  .mr-md-0 { margin-right: 0 !important; }
  .mr-md-1 { margin-right: 0.25rem !important; }
  .mr-md-2 { margin-right: 0.5rem !important; }
  .mr-md-3 { margin-right: 1rem !important; }
  .mr-md-4 { margin-right: 1.5rem !important; }

  .mx-md-0 { margin-left: 0 !important; margin-right: 0 !important; }
  .mx-md-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; }
  .mx-md-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; }
  .mx-md-3 { margin-left: 1rem !important; margin-right: 1rem !important; }
  .mx-md-4 { margin-left: 1.5rem !important; margin-right: 1.5rem !important; }

  .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
  .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; }
  .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; }
  .my-md-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
  .my-md-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
}

/* Margin for large screens (lg) */
@media (min-width: 992px) {
  .m-lg-0 { margin: 0 !important; }
  .m-lg-1 { margin: 0.25rem !important; }
  .m-lg-2 { margin: 0.5rem !important; }
  .m-lg-3 { margin: 1rem !important; }
  .m-lg-4 { margin: 1.5rem !important; }

  .mt-lg-0 { margin-top: 0 !important; }
  .mt-lg-1 { margin-top: 0.25rem !important; }
  .mt-lg-2 { margin-top: 0.5rem !important; }
  .mt-lg-3 { margin-top: 1rem !important; }
  .mt-lg-4 { margin-top: 1.5rem !important; }

  .mb-lg-0 { margin-bottom: 0 !important; }
  .mb-lg-1 { margin-bottom: 0.25rem !important; }
  .mb-lg-2 { margin-bottom: 0.5rem !important; }
  .mb-lg-3 { margin-bottom: 1rem !important; }
  .mb-lg-4 { margin-bottom: 1.5rem !important; }

  .ml-lg-0 { margin-left: 0 !important; }
  .ml-lg-1 { margin-left: 0.25rem !important; }
  .ml-lg-2 { margin-left: 0.5rem !important; }
  .ml-lg-3 { margin-left: 1rem !important; }
  .ml-lg-4 { margin-left: 1.5rem !important; }

  .mr-lg-0 { margin-right: 0 !important; }
  .mr-lg-1 { margin-right: 0.25rem !important; }
  .mr-lg-2 { margin-right: 0.5rem !important; }
  .mr-lg-3 { margin-right: 1rem !important; }
  .mr-lg-4 { margin-right: 1.5rem !important; }

  .mx-lg-0 { margin-left: 0 !important; margin-right: 0 !important; }
  .mx-lg-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; }
  .mx-lg-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; }
  .mx-lg-3 { margin-left: 1rem !important; margin-right: 1rem !important; }
  .mx-lg-4 { margin-left: 1.5rem !important; margin-right: 1.5rem !important; }

  .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
  .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; }
  .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; }
  .my-lg-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
  .my-lg-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
}

/* Margin for extra large screens (xl) */
@media (min-width: 1200px) {
  .m-xl-0 { margin: 0 !important; }
  .m-xl-1 { margin: 0.25rem !important; }
  .m-xl-2 { margin: 0.5rem !important; }
  .m-xl-3 { margin: 1rem !important; }
  .m-xl-4 { margin: 1.5rem !important; }

  .mt-xl-0 { margin-top: 0 !important; }
  .mt-xl-1 { margin-top: 0.25rem !important; }
  .mt-xl-2 { margin-top: 0.5rem !important; }
  .mt-xl-3 { margin-top: 1rem !important; }
  .mt-xl-4 { margin-top: 1.5rem !important; }

  .mb-xl-0 { margin-bottom: 0 !important; }
  .mb-xl-1 { margin-bottom: 0.25rem !important; }
  .mb-xl-2 { margin-bottom: 0.5rem !important; }
  .mb-xl-3 { margin-bottom: 1rem !important; }
  .mb-xl-4 { margin-bottom: 1.5rem !important; }

  .ml-xl-0 { margin-left: 0 !important; }
  .ml-xl-1 { margin-left: 0.25rem !important; }
  .ml-xl-2 { margin-left: 0.5rem !important; }
  .ml-xl-3 { margin-left: 1rem !important; }
  .ml-xl-4 { margin-left: 1.5rem !important; }

  .mr-xl-0 { margin-right: 0 !important; }
  .mr-xl-1 { margin-right: 0.25rem !important; }
  .mr-xl-2 { margin-right: 0.5rem !important; }
  .mr-xl-3 { margin-right: 1rem !important; }
  .mr-xl-4 { margin-right: 1.5rem !important; }

  .mx-xl-0 { margin-left: 0 !important; margin-right: 0 !important; }
  .mx-xl-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; }
  .mx-xl-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; }
  .mx-xl-3 { margin-left: 1rem !important; margin-right: 1rem !important; }
  .mx-xl-4 { margin-left: 1.5rem !important; margin-right: 1.5rem !important; }

  .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
  .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; }
  .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; }
  .my-xl-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
  .my-xl-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
}


.d-none      { display: none !important; }
.d-inline    { display: inline !important; }
.d-inline-block { display: inline-block !important; }
.d-block     { display: block !important; }
.d-grid      { display: grid !important; }
.d-inline-grid { display: inline-grid !important; }
.d-table     { display: table !important; }
.d-table-row { display: table-row !important; }
.d-table-cell { display: table-cell !important; }
.d-flex      { display: flex !important; }
.d-inline-flex { display: inline-flex !important; }
@media (min-width: 576px) {
  .d-sm-none        { display: none !important; }
  .d-sm-inline      { display: inline !important; }
  .d-sm-inline-block { display: inline-block !important; }
  .d-sm-block       { display: block !important; }
  .d-sm-grid        { display: grid !important; }
  .d-sm-inline-grid { display: inline-grid !important; }
  .d-sm-table       { display: table !important; }
  .d-sm-table-row   { display: table-row !important; }
  .d-sm-table-cell  { display: table-cell !important; }
  .d-sm-flex        { display: flex !important; }
  .d-sm-inline-flex { display: inline-flex !important; }
}

@media (min-width: 768px) {
  .d-md-none        { display: none !important; }
  .d-md-inline      { display: inline !important; }
  .d-md-inline-block { display: inline-block !important; }
  .d-md-block       { display: block !important; }
  .d-md-grid        { display: grid !important; }
  .d-md-inline-grid { display: inline-grid !important; }
  .d-md-table       { display: table !important; }
  .d-md-table-row   { display: table-row !important; }
  .d-md-table-cell  { display: table-cell !important; }
  .d-md-flex        { display: flex !important; }
  .d-md-inline-flex { display: inline-flex !important; }
}
@media (min-width: 992px) {
  .d-lg-none        { display: none !important; }
  .d-lg-inline      { display: inline !important; }
  .d-lg-inline-block { display: inline-block !important; }
  .d-lg-block       { display: block !important; }
  .d-lg-grid        { display: grid !important; }
  .d-lg-inline-grid { display: inline-grid !important; }
  .d-lg-table       { display: table !important; }
  .d-lg-table-row   { display: table-row !important; }
  .d-lg-table-cell  { display: table-cell !important; }
  .d-lg-flex        { display: flex !important; }
  .d-lg-inline-flex { display: inline-flex !important; }
}

@media (min-width: 1200px) {
  .d-xl-none        { display: none !important; }
  .d-xl-inline      { display: inline !important; }
  .d-xl-inline-block { display: inline-block !important; }
  .d-xl-block       { display: block !important; }
  .d-xl-grid        { display: grid !important; }
  .d-xl-inline-grid { display: inline-grid !important; }
  .d-xl-table       { display: table !important; }
  .d-xl-table-row   { display: table-row !important; }
  .d-xl-table-cell  { display: table-cell !important; }
  .d-xl-flex        { display: flex !important; }
  .d-xl-inline-flex { display: inline-flex !important; }
}

.text-start  { text-align: left !important; }
.text-center { text-align: center !important; }
.text-end    { text-align: right !important; }

@media (min-width: 576px) {
  .text-sm-start  { text-align: left !important; }
  .text-sm-center { text-align: center !important; }
  .text-sm-end    { text-align: right !important; }
}
@media (min-width: 768px) {
  .text-md-start  { text-align: left !important; }
  .text-md-center { text-align: center !important; }
  .text-md-end    { text-align: right !important; }
}
@media (min-width: 992px) {
  .text-lg-start  { text-align: left !important; }
  .text-lg-center { text-align: center !important; }
  .text-lg-end    { text-align: right !important; }
}
@media (min-width: 1200px) {
  .text-xl-start  { text-align: left !important; }
  .text-xl-center { text-align: center !important; }
  .text-xl-end    { text-align: right !important; }
}



.col {
  flex: 1 0 0%;
}

.row > .col,
.row > [class*="col-"] {
  padding-right: var(--bs-gutter-x, .75rem);
  padding-left: var(--bs-gutter-x, .75rem);
}

.col-auto {
  flex: 0 0 auto;
  width: auto;
}

.col-1 {
  flex: 0 0 auto;
  width: 8.33333333%;
}

.col-2 {
  flex: 0 0 auto;
  width: 16.66666667%;
}

.col-3 {
  flex: 0 0 auto;
  width: 25%;
}

.col-4 {
  flex: 0 0 auto;
  width: 33.33333333%;
}

.col-5 {
  flex: 0 0 auto;
  width: 41.66666667%;
}

.col-6 {
  flex: 0 0 auto;
  width: 50%;
}

.col-7 {
  flex: 0 0 auto;
  width: 58.33333333%;
}

.col-8 {
  flex: 0 0 auto;
  width: 66.66666667%;
}

.col-9 {
  flex: 0 0 auto;
  width: 75%;
}

.col-10 {
  flex: 0 0 auto;
  width: 83.33333333%;
}

.col-11 {
  flex: 0 0 auto;
  width: 91.66666667%;
}

.col-12 {
  flex: 0 0 auto;
  width: 100%;
}

@media (min-width: 576px) {
  .col-sm {
    flex: 1 0 0%;
  }

  .col-sm-auto {
    flex: 0 0 auto;
    width: auto;
  }

  .col-sm-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }

  .col-sm-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }

  .col-sm-3 {
    flex: 0 0 auto;
    width: 25%;
  }

  .col-sm-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }

  .col-sm-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }

  .col-sm-6 {
    flex: 0 0 auto;
    width: 50%;
  }

  .col-sm-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }

  .col-sm-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }

  .col-sm-9 {
    flex: 0 0 auto;
    width: 75%;
  }

  .col-sm-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }

  .col-sm-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }

  .col-sm-12 {
    flex: 0 0 auto;
    width: 100%;
  }
}

@media (min-width: 768px) {
  .col-md {
    flex: 1 0 0%;
  }

  .col-md-auto {
    flex: 0 0 auto;
    width: auto;
  }

  .col-md-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }

  .col-md-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }

  .col-md-3 {
    flex: 0 0 auto;
    width: 25%;
  }

  .col-md-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }

  .col-md-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }

  .col-md-6 {
    flex: 0 0 auto;
    width: 50%;
  }

  .col-md-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }

  .col-md-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }

  .col-md-9 {
    flex: 0 0 auto;
    width: 75%;
  }

  .col-md-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }

  .col-md-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }

  .col-md-12 {
    flex: 0 0 auto;
    width: 100%;
  }
}

@media (min-width: 992px) {
  .col-lg {
    flex: 1 0 0%;
  }

  .col-lg-auto {
    flex: 0 0 auto;
    width: auto;
  }

  .col-lg-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }

  .col-lg-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }

  .col-lg-3 {
    flex: 0 0 auto;
    width: 25%;
  }

  .col-lg-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }

  .col-lg-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }

  .col-lg-6 {
    flex: 0 0 auto;
    width: 50%;
  }

  .col-lg-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }

  .col-lg-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }

  .col-lg-9 {
    flex: 0 0 auto;
    width: 75%;
  }

  .col-lg-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }

  .col-lg-11 {
    flex: 0 0 auto;
    width: 91.666666667%;
  }

  .col-lg-12 {
    flex: 0 0 auto;
    width: 100%;
  }
}

@media (min-width: 1200px) {
  .col-xl {
    flex: 1 0 0%;
  }

  .col-xl-auto {
    flex: 0 0 auto;
    width: auto;
  }

  .col-xl-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }

  .col-xl-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }

  .col-xl-3 {
    flex: 0 0 auto;
    width: 25%;
  }

  .col-xl-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }

  .col-xl-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }

  .col-xl-6 {
    flex: 0 0 auto;
    width: 50%;
  }

  .col-xl-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }

  .col-xl-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }

  .col-xl-9 {
    flex: 0 0 auto;
    width: 75%;
  }

  .col-xl-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }

  .col-xl-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }

  .col-xl-12 {
    flex: 0 0 auto;
    width: 100%;
  }
}

@media (min-width: 1400px) {
  .col-xxl {
    flex: 1 0 0%;
  }

  .col-xxl-auto {
    flex: 0 0 auto;
    width: auto;
  }

  .col-xxl-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }

  .col-xxl-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
  }

  .col-xxl-3 {
    flex: 0 0 auto;
    width: 25%;
  }

  .col-xxl-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
  }

  .col-xxl-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
  }

  .col-xxl-6 {
    flex: 0 0 auto;
    width: 50%;
  }

  .col-xxl-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
  }

  .col-xxl-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
  }

  .col-xxl-9 {
    flex: 0 0 auto;
    width: 75%;
  }

  .col-xxl-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
  }

  .col-xxl-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
  }

  .col-xxl-12 {
    flex: 0 0 auto;
    width: 100%;
  }
}