:root {
  --azul-primario: #005387;
  --azul-secundario: #225f78;
  --azul-claro: #0089b6;
  --azul-masclaro: #6093ac;

}

html,
body {
  height: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
}

/* Fondo especial solo para login */
body.login-bg {
  background-color: var(--azul-primario);
}

/* Fondo especial solo para home */
body.home-bg {
  background-color: #fff6f6;
}

/* Letras color azul-primario */
.texto-azul-primario {
  color: var(--azul-primario);
}


main {
  flex: 1;
}


.img-cuadrada {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center;
  border-radius: 0.5rem;
}

.card-altura-fija {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.card-altura-fija .card-body {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.card-altura-fija img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center;
  border-radius: 0.5rem;
}

.card-altura-fija .card-text {
  flex-grow: 1;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-color: transparent;
  filter: invert(27%) sepia(94%) saturate(749%) hue-rotate(182deg) brightness(93%) contrast(85%);
}

/* Reconocer los saltos de linea de descripcion */
.descripcion-con-saltos {
  white-space: pre-line;
}

/* Imagen Ampliable */
.imagen-ampliable {
  cursor: zoom-in;
}

#imagenGrande {
  width: 100%;
  height: 80vh;
  /* Altura máxima visible */
  object-fit: contain;
  object-position: center;
}

.bg-custom {
  background-color: #005387 !important;
}

.text-bg-primary {
  background-color: #005387 !important;
}

/* .card.shadow {
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.25) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card.shadow:hover {
  transform: translateY(-3px);
  box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.35) !important;
} */


/* === Sombras personalizadas para las tarjetas === */
.card.shadow {
  /* sombra azul más grande y suave */
  box-shadow: 0 0.5rem 1.5rem rgba(0, 83, 135, 0.35) !important;
  /* usa --azul-primario con opacidad */
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card.shadow:hover {
  transform: translateY(-3px);
  box-shadow: 0 0.8rem 2rem rgba(0, 83, 135, 0.5) !important;
  /* sombra más intensa al hover */
}

/* === Sombras personalizadas para las tarjetas 2 === */
.card.shadow2 {
  /* sombra azul más grande y suave */
  box-shadow: 0 0.5rem 1.5rem rgba(0, 83, 135, 0.35) !important;
  /* usa --azul-primario con opacidad */
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* === Sombras personalizadas para las tarjeta de login sin movimiento === */
.card.shadow3 {
  /* sombra azul más grande y suave */
  box-shadow: 0 0.5rem 1.5rem rgba(0, 83, 135, 0.5) !important;
  /* usa --azul-primario con opacidad */
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card.shadow3:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.8rem 1rem rgba(0, 83, 255, 0.3) !important;
  /* sombra más intensa al hover */
}

/* === Estilo login personalizado === */

/* Botón de iniciar sesión */
.btn-primary {
  background-color: var(--azul-primario) !important;
  border-color: var(--azul-primario) !important;
}

.btn-primary:hover {
  background-color: var(--azul-claro) !important;
  border-color: var(--azul-claro) !important;
}



/* Link de recuperar contraseña */
a[href*="recuperar-password"] {
  color: var(--azul-primario) !important;
  text-decoration: none;
  font-weight: 500;
}

a[href*="recuperar-password"]:hover {
  color: var(--azul-claro) !important;
  text-decoration: underline;
}


/* === Botones outline con color corporativo === */
.btn-outline-primary {
  color: var(--azul-primario) !important;
  border-color: var(--azul-primario) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background-color: var(--azul-primario) !important;
  color: #fff !important;
  border-color: var(--azul-primario) !important;
}


button[disabled] {
  opacity: .1;
  pointer-events: none;
}

.thumb {
  width: 100%;
  height: 160px;
  object-fit: cover;
  border-radius: .5rem;
}

.thumb-card {
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.thumb-card.active {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .25);
}

/* --azul-primario */
.table thead th {
  white-space: nowrap;
  user-select: none;
}

.th-sortable {
  cursor: pointer;
}

.th-sortable .sort-caret {
  font-size: .9em;
  opacity: .6;
  margin-left: .3rem;
}

.lista-sin-puntos {
  list-style-type: none;
  margin-left: 0;
  padding-left: 0;
}

/* Loader de productos en Home */
#loaderProductos {
  min-height: 120px;
}