* {
	padding: 0;
	margin: 0;
	font-family: 'Montserrat', sans-serif;
}

@font-face {
	font-family: Inter;
	src: url(../resources/typo/Inter/Inter-VariableFont_slnt\,wght.ttf);
}

.violeta {
	color: #5C48CE;
}

.rojo {
	color: #ED3A50;
}

.plomo {
	color: #272727;
}

header .header__top-bar {
	background-color: #5C48CE;
	padding: 8px 32px 8px 32px;
}

header .header__top-bar h6 {
	margin-bottom: 0;
}

header .header__top-bar .header__top-bar-contacto {
	width: max-content;
	display: flex;
}

header .header__top-bar .header__top-bar-contacto .header__top-bar-contacto-telefono {
	display: flex;
	align-items: center;
	margin-right: 16px;
}

header .header__top-bar .header__top-bar-contacto .header__top-bar-contacto-telefono img {
	height: 18px;
	padding-right: 8px;
}

header .header__top-bar .header__top-bar-contacto .header__top-bar-contacto-mail {
	display: flex;
	align-items: center;
	margin-right: 16px;
}

header .header__top-bar .header__top-bar-contacto .header__top-bar-contacto-mail img {
	height: 18px;
	padding-right: 8px;
}

header .header__top-bar .header__top-bar-contacto .header__top-bar-contacto-rrss {
	display: flex;
	align-items: center;
}

header .header__top-bar .header__top-bar-contacto .header__top-bar-contacto-rrss small {
	padding-right: 8px;
}

header .header__top-bar .header__top-bar-contacto .header__top-bar-contacto-rrss img {
	padding-right: 4px;
}

header .header__top-bar .header__top-bar-usuario {
	display: flex;
	align-items: center;
	width: max-content;
}

header .header__top-bar .header__top-bar-usuario a {
	text-decoration: none;
}

header .header__top-bar .header__top-bar-usuario a img {
	height: 18px;
	padding-right: 8px;
}

header .header__navbar .header__navbar-button {
	border: none;
	background-color: transparent;
}

@media (min-width: 992px) {
	.header__navbar-sidebar-body-list {
		display: flex;
		justify-content: center;
	}
}

.carousel-inner {
	display: flex;
}

.btn-primary {
	background-color: #ED3A50;
	border: none;
}

.btn-primary:hover {
	background-color: #C63647;
}

.btn-primary:active {
	background-color: #4f4f4f !important;
}

.btn {
	font-size: 14px;
}

.carousel-control-next {
	color: #272727;
}

.productos .card .card-body h4 {
	color: #5C48CE;
}

@media (min-width: 768px) {
	.productos .productos__titular h2 {
		margin: 0;
	}
}

.categorias {
	padding: 0px;
}

.categorias .categorias__cards {
	width: max-content;
	display: flex;
}

.categorias .categorias__cards .card {
	stroke: none;
	width: 180px;
}

.categorias .categorias__cards .card .card-img-overlay {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.categorias .categorias__cards .card .card-img-overlay a {
	color: white;
}

.slider {
	height: auto;
	margin: auto;
	overflow: hidden;
}

.slider .slider__track {
	display: flex;
	align-items: center;
	animation: scroll 40s linear infinite;
	width: calc(200px * 14);
	/* Ajustar según la cantidad de marcas */
}

.slider .slider__track .slider__logo {
	margin: 0px 12px;
	width: 100px;
}

.slider .slider__track .slider__logo img {
	width: 100%;
}

@keyframes scroll {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(calc(-100px * 7));
		/* Ajustar según la cantidad de logos visibles */
	}
}

@media (min-width: 768px) {
	.categorias__titular h2 {
		margin: 0;
	}
}

@media (min-width: 1200px) {
	.categorias__titular {
		padding: 32px 0px 0px 0px;
	}

	.categorias .categorias__cards {
		width: 100%;
		display: flex;
		/*justify-content: space-between;*/
	}

	.categorias .categorias__cards .card {
		margin-left: 0px;
		margin-right: 0px;
	}
}

.login {
	padding: 100px 72px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.login .login__form {
	width: 100%;
}

.login .login__form .login__form--btn {
	margin-bottom: 12px;
	margin-top: 20px;
}

.login .login__titular {
	text-align: center;
	width: 280px;
	margin-bottom: 32px;
}

.login .login__form--anchor {
	margin-top: 32px;
	text-align: center;
}

@media (min-width: 768px) {
	.login {
		padding: 100px 120px;
	}

	.login .login__titular {
		width: 320px;
	}
}

@media (min-width: 992px) {
	.login {
		padding: 100px 220px;
	}

	.login .login__titular {
		width: 360px;
	}
}

@media (min-width: 1200px) {
	.login {
		padding: 100px 420px;
	}

	.login .login__titular {
		width: 380px;
	}
}

.checkout__pricing {
	display: flex;
	justify-content: center;
}

.checkout__pricing .checkout__detail {
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	background-color: white;
	width: 100%;
	border-radius: 8px;
	border: 1px solid #272727;
	padding: 16px;
	margin-bottom: 32px;
}

.checkout__pricing .checkout__detail .checkout__detail--subtotal {
	display: flex;
	justify-content: space-between;
}

.checkout__pricing .checkout__detail .checkout__detail--total {
	display: flex;
	justify-content: space-between;
}

/* 🟢 Estilos generales */
.carousel-custom {
	position: relative;
	max-width: 100%;
	margin: auto;
}

/* 🔘 Estilos para los bullets (negros) */
.carousel-custom .carousel-indicators {
	bottom: -30px;
	/* Más separación */
}

.carousel-custom .carousel-indicators button {
	width: 12px;
	height: 12px;
	margin: 0 5px;
	background-color: black;
	/* Color negro */
	border-radius: 50%;
	border: none;
	transition: transform 0.2s, opacity 0.3s;
	opacity: 0.5;
}

.carousel-custom .carousel-indicators .active {
	opacity: 1;
	transform: scale(1.2);
}

	.custom-arrow-carousel {
		width: 45px;
		height: 45px;
		background-color: rgba(179, 164, 164, 0.7); /* color verde pastel semitransparente */
		border: none;
		border-radius: 12px;
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		z-index: 10;
		opacity: 0.9;
		transition: opacity 0.3s ease, transform 0.2s ease;
	}
	.img-contain-full {
		height: 100%;
		width: 100%;
		object-fit: contain;
	}

	.custom-arrow-carousel:hover {
		opacity: 1;
		transform: translateY(-50%) scale(1.1);
	}
	

	.carousel-control-next-carousel.custom-arrow-carousel {
		right: 0%;
	}
   /* 🔁 Estilo general de botones de flechas */
	.custom-arrow {
		width: 45px;
		height: 45px;
		background-color: rgba(179, 164, 164, 0.7); /* color verde pastel semitransparente */
		border: none;
		border-radius: 12px;
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		z-index: 10;
		opacity: 0.9;
		transition: opacity 0.3s ease, transform 0.2s ease;
	}

	.custom-arrow:hover {
		opacity: 1;
		transform: translateY(-50%) scale(1.1);
	}


	/* Posicionamiento a los lados del carrusel */
	.carousel-control-prev.custom-arrow {
		left: 10px;
	}

	.carousel-control-next.custom-arrow {
		right: 10px;
	}

.carousel-control-prev {
	left: 0px !important;
	/* Mantener ubicación */
}

.carousel-control-next {
	right: 10px !important;
	/* Mantener ubicación */
}

/* Flechas negras con íconos SVG */
.custom-prev-icon,
.custom-next-icon {
	display: inline-block;
	width: 24px;
	height: 24px;
	background-size: contain;
	background-repeat: no-repeat;
}

.custom-prev-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 16 16'%3E%3Cpath d='M11.354 1.354a.5.5 0 0 1 0 .708L5.707 8l5.647 5.938a.5.5 0 1 1-.708.707l-6-6.354a.5.5 0 0 1 0-.708l6-6.354a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E");
}

.custom-next-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 1.354a.5.5 0 0 0 0 .708L10.293 8l-5.647 5.938a.5.5 0 1 0 .708.707l6-6.354a.5.5 0 0 0 0-.708l-6-6.354a.5.5 0 0 0-.708 0z'/%3E%3C/svg%3E");
}


.placeholder-image {
	height: 120px;
	width: 100%;
	background-color: #f0f0f0;
	border: 1px solid #ddd;
	display: flex;
	align-items: center;
	justify-content: center;
}

.placeholder-image i {
	color: #aaa;
}

/* 📱 Ajustes responsivos */
@media (max-width: 768px) {
	.custom-arrow {
		width: 50px;
		height: 50px;
	}

	.carousel-control-prev {
		left: -50px;
	}

	.carousel-control-next {
		right: -50px;
	}
}


.loading-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(255, 255, 255, 0.9);
	/* Fondo blanco con opacidad */
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9999;
	/* Asegura que esté en la parte superior */
}

.loading-wave {
	display: flex;
	align-items: center;
}

.loading-dot {
	width: 20px;
	/* Tamaño más grande de los puntos */
	height: 20px;
	/* Tamaño más grande de los puntos */
	background-color: #333;
	/* Color de los puntos grises */
	border-radius: 50%;
	margin: 0 5px;
	animation: wave 1s infinite alternate ease-in-out;
	/* Animación de onda con aceleración y desaceleración */
}

.dot-1 {
	animation-delay: -0.4s;
	/* Retraso de animación para el primer punto */
}

.dot-2 {
	animation-delay: -0.2s;
	/* Retraso de animación para el segundo punto */
}

@keyframes wave {
	0% {
		transform: translateY(0);
	}

	100% {
		transform: translateY(-35px);
		/* Aumenta la amplitud del movimiento */
	}
}

.skeleton {
	background-color: #e0e0e0;
	border-radius: 4px;
	animation: shimmer 1.5s infinite;
}

.skeleton-text {
	height: 16px;
	margin-bottom: 8px;
}

.skeleton-title {
	width: 60%;
	height: 20px;
}

.skeleton-line {
	width: 80%;
}

.skeleton-btn {
	height: 40px;
	border-radius: 4px;
}

@keyframes shimmer {
	0% {
		background-position: -1000px 0;
	}

	100% {
		background-position: 1000px 0;
	}
}

.skeleton {
	background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
	background-size: 2000px 100%;
}

.skeleton-productos-image-wrapper {
	height: 200px;
}

.skeleton-productos-image {
	background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
	background-size: 200% 100%;
	animation: skeleton-shimmer 1.5s infinite ease-in-out;
	width: 100%;
	height: 100%;
	border-radius: 4px;
}

.skeleton-productos-text,
.skeleton-productos-btn {
	background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
	background-size: 200% 100%;
	animation: skeleton-shimmer 1.5s infinite ease-in-out;
	border-radius: 4px;
}

.skeleton-productos-title {
	height: 20px;
	width: 80%;
	margin-top: 5px;
}

.skeleton-productos-line {
	height: 10px;
	width: 100%;
	margin: 5px 0;
}

.skeleton-productos-price {
	height: 20px;
	width: 60%;
	margin-top: 5px;
}

.skeleton-productos-btn {
	height: 36px;
	border-radius: 4px;
	width: 100%;
	margin-top: auto;
}

@keyframes skeleton-shimmer {
	0% {
		background-position: -200% 0;
	}

	100% {
		background-position: 200% 0;
	}
}

.fixed-navbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 3000;
    background-color: white; /* O usa tu color de fondo */
    /* box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); */
}

/* Para evitar que el contenido quede tapado */
.body-content {
    margin-top: 230px; /* Ajusta esto según la altura de tu navbar */
}

@media (max-width: 768px) {
	.body-content {
		margin-top: 120px !important; /* Ajusta esto según la altura de tu navbar */
	}
}

.categories-aside {
	position: fixed;
	top: 222px;
	left: -100%; /* 👈 En lugar de right */
	width: 70%;
	max-width: 70%;
	height: 100vh;
	background-color: #fff;
	padding: 20px;
	z-index: 1050;
	overflow-y: auto;
	transition: left 0.3s ease-in-out; /* 👈 transición en left ahora */
	display: flex;
	flex-direction: column;
	justify-content: space-between;
  }

.categories-aside ul {
	direction: ltr;
	/* Restablecer la dirección de texto al interior */
}

.categories-aside.show {
	left: 0;
	/* Ajustar posición visible al lado derecho */
}

.categories-aside.hide {
	left: -100%;
	/* Mantener fuera de la pantalla desde la derecha */
}

.categories-aside h5 {
	margin-bottom: 15px;
	color: #333;
}

.categories-aside ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.categories-aside ul li {
	margin-bottom: 10px;
}

.categories-aside ul li a {
	text-decoration: none;
	color: #007bff;
	transition: color 0.3s ease;
}

.categories-aside ul li a:hover {
	color: #0056b3;
}

.offcanvas-title {
	color: #111111 !important;
}

.categories-aside-mobile {
	position: fixed;
	top: 0;
	left: -100%;
	width: 300px;
	height: 100vh;
	background: #f8f9fa;
	padding: 20px;
	box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1);
	overflow-y: auto;
	z-index: 1050;
	transition: left 0.3s ease-in-out;
}

.categories-aside-mobile.show {
	left: 0;
}

.categories-aside-mobile.hide {
	left: -100%;
}

.categories-aside-mobile h5 {
	margin-bottom: 15px;
	color: #333;
}

.categories-aside-mobile ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.categories-aside-mobile ul li {
	margin-bottom: 10px;
}

.categories-aside-mobile ul li a {
	text-decoration: none;
	color: #007bff;
	transition: color 0.3s ease;
}

.categories-aside-mobile ul li a:hover {
	color: #0056b3;
}

/* Estilo para el hover de los íconos */
.navbar-nav .nav-link i:hover,
.header__navbar-button i:hover,
.hover-class:hover {
	font-weight: bold;
	transform: scale(1.1);
	/* Opcional: aumenta el tamaño ligeramente */
	transition: transform 0.3s, font-weight 0.3s;
	/* Transición suave */
}

/* Clase para hover */
.hover-bold:hover {
	font-weight: bold;
	transform: scale(1.05);
	/* Opcional: efecto de ampliación */
	transition: transform 0.3s, font-weight 0.3s;
	/* Transición suave */
}

/* Estilo global para todos los íconos */
.navbar-nav .nav-link i,
.burger,
.header__navbar-button i,
.dropdown-item i {
	padding-left: 10px;
	padding-right: 10px;
}

/* Define el ancho del dropdown */
.custom-dropdown {
	width: 300px;
	/* Ajusta según necesites */
}

.custom-dropdown input::placeholder {
	color: black;
	/* Cambiar el color del placeholder */
	opacity: 1;
	/* Asegurarte de que sea visible completamente */
}

/* Evita restricciones de ancho predeterminadas */
.dropdown-menu {
	min-width: auto;
}

/* Estilo del ícono de lupa */
.header__navbar-button {
	cursor: pointer;
}

@media (max-width: 768px) {

	/* Ajusta según el breakpoint que defines como responsivo */
	.navbar-brand img {
		height: 80px !important;
		/* Forzar el tamaño del logo en dispositivos móviles */
		width: auto !important;
		/* Mantener proporción */
		margin-right: 0px !important;
	}
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
	filter: brightness(0.8);
	/* Oscurece un poquito */
	opacity: 0.7;
	/* Reduce un poco la transparencia */
	transition: all 0.3s ease-in-out;
	/* Transición suave */
}

.carousel-control-prev-icon:hover,
.carousel-control-next-icon:hover {
	opacity: 1;
	/* Más visible al pasar el mouse */
}

.categories-aside {
	width: 70%;
	max-width: 70%;
	background-color: #fff;
	display: flex;
	flex-direction: column;
	padding: 20px;
	max-height: 100%;
	justify-content: space-between; /* Distribuir espacios */
}

.categories-container {
	display: flex;
	justify-content: center;
	align-items: stretch;
	gap: 30px;
	flex-grow: 1; /* Permitir que crezca */
}

.categories-column {
	width: 30%;
	display: flex;
	flex-direction: column;
	justify-content: start;
	overflow-y: auto;
	overflow-x: hidden;
	min-height: 416px;
}

.subcategories-column {
	width: 70%;
	display: flex;
	flex-direction: column;
	justify-content: start;
	overflow-y: auto;
	overflow-x: hidden;
	min-height: 416px;
}

/* Espaciado entre columnas */
.column-separator {
	width: 30px;
}

.scrollable-column {
	flex-grow: 1;
	overflow-y: auto;
	overflow-x: hidden;
	padding-right: 10px;
}

.categories-column ul, .subcategories-column ul {
	list-style: none;
	padding: 0;
	flex-grow: 1;
}

.categories-column li, .subcategories-column li {
	padding: 8px 0;
}

.category-item {
	display: flex;
	align-items: center;
	cursor: pointer;
}

/* Hover ultra sutil */
.hover-subtle {
	transition: transform 0.15s ease, background-color 0.2s ease;
}

.hover-subtle:hover {
	transform: scale(1.01);
	background-color: rgba(255, 255, 255, 0.03);
}

/* Flecha con animación sutil */
.category-arrow {
	transition: transform 0.15s ease;
}

.category-item:hover .category-arrow {
	transform: translateX(-1px);
}

/* Scroll vertical */
.scrollable-column::-webkit-scrollbar {
	width: 6px;
}

.scrollable-column::-webkit-scrollbar-thumb {
	background-color: rgba(0, 0, 0, 0.2);
	border-radius: 10px;
}

.scrollable-column::-webkit-scrollbar-track {
	background-color: transparent;
}

/* Footer con Logo */
.aside-footer {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 15px 0;
	border-top: 1px solid #ddd;
	margin-top: 15px;
}

.footer-logo {
	height: 60px;
	width: auto;
	max-width: 100%;
}