*,
*:after,
*:before {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

:root {
	--color-primary: rgb(1, 86, 145);
	--color-button-border: #9b59b6;
	/* Purple */
	--color-button-text: #9b59b6;
	--color-button-hover: #8e44ad;
}

body {
	font-family: "Roboto Condensed", sans-serif;
	background-color: rgb(241, 241, 241);
	user-select: none;
	-moz-user-select: none;
}

.contenido {
	margin-left: 5px;
	width: 97vw;
	width: 95vw;
	margin: 0 auto;
}

.button,
.btn-outline {
	background-color: transparent;
	color: var(--color-button-text);
	border: 1px solid var(--color-button-border);
	padding: 8px 32px;
	text-align: center;
	text-decoration: none;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	font-size: 22px;
	margin: 0 auto;
	cursor: pointer;
	border-radius: 50px;
	/* Pill shape */
	transition: all 0.3s ease;
	width: 100%;
	letter-spacing: 1px;
}

.button:hover,
.btn-outline:hover {
	background-color: rgba(155, 89, 182, 0.1);
	border-color: var(--color-button-hover);
	color: var(--color-button-hover);
}

/* New Header Styles */
.app-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 20px;
	background-color: #f5f5f5;
	/* Light grey background */
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
	margin-bottom: 20px;
	gap: 20px;
	width: 100%;
}

.header-left {
	display: flex;
	align-items: center;
	gap: 20px;
}

.header-logo {
	height: 50px;
	/* Adjust based on logo aspect ratio */
	object-fit: contain;
}

.menu-trigger {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: bold;
	color: #333;
	cursor: pointer;
}

.menu-trigger svg {
	width: 34px;
	height: 34px;
}

.header-center {
	flex: 1;
	max-width: 400px;
	/* Limit search bar width */
}

.search-bar-container {
	display: flex;
	align-items: center;
	background-color: white;
	border: 1px solid #ccc;
	border-radius: 50px;
	/* Pill shape */
	padding: 5px 15px;
	width: 100%;
}

.search-input {
	border: none;
	background: transparent;
	flex: 1;
	padding: 10px;
	font-size: 16px;
	outline: none;
	font-style: italic;
	/* "What are you looking for?" style */
	color: #666;
}

.search-icon-btn {
	background: none;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.btn-clear-search {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 10px;
	color: #999;
	transition: color 0.2s;
	text-decoration: none;
}

.btn-clear-search:hover {
	color: #e74c3c;
	/* Red for delete/clear action */
}

.header-right {
	display: flex;
	align-items: center;
	gap: 15px;
}

.btn-outline-header {
	display: flex;
	align-items: center;
	gap: 10px;
	color: #AB8DE3;
	/* User provided purple */
	border: 1px solid #AB8DE3;
	padding: 10px 25px;
	border-radius: 12px;
	/* Soft rounded corners */
	text-decoration: none;
	font-weight: 500;
	/* Medium weight */
	font-size: 18px;
	/* User provided size */
	font-family: Roboto, "Helvetica Neue", sans-serif;
	/* User provided font */
	background: white;
	transition: all 0.2s;
	min-width: fit-content;
}

.btn-outline-header:hover {
	background-color: rgba(171, 141, 227, 0.1);
	/* #AB8DE3 with opacity */
	color: #9b59b6;
	border-color: #9b59b6;
}

.btn-square-header {
	padding: 10px 12px;
	/* Square-ish for icon */
	border-radius: 12px;
	min-width: auto !important;
}

.btn-square-header:hover {
	color: #e74c3c !important;
	border-color: #e74c3c !important;
	background-color: rgba(231, 76, 60, 0.1) !important;
}

/* Hide old elements referencing these classes if they exist, or clean up later */
.buscador {
	display: none;
}

.combo-rubros {
	display: none;
}

.frm-buscar {
	display: none;
}

/* Puedes quitar el contorno predeterminado si lo deseas */

.btn-buscar {
	height: 50px;
	width: 150px;
	border: 1px solid black;
	border-radius: 5px;
	transition: transform 0.1s ease;
}

.btn-buscar:hover {
	color: white;
	background-color: rgb(013, 110, 253);
	border: none;
}

/* Estilos cuando se presiona el botón */
/* Vertical Dropdown Styles */
.menu-trigger {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: bold;
	color: #333;
	cursor: pointer;
	position: relative;
	padding: 10px 0;
}

.dropdown-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	width: 300px;
	/* Standard dropdown width */
	background-color: white;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 10px 0;
	z-index: 1000;
}

.menu-trigger:hover .dropdown-menu {
	display: block;
}

.dropdown-search-container {
	margin: 0 10px 10px 10px;
	border-bottom: 1px solid #f0f0f0;
	padding-bottom: 10px;
}

.dropdown-search-input {
	width: 100%;
	padding: 8px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
	outline: none;
}

.dropdown-search-input:focus {
	border-color: #9b59b6;
}

.rubros-grid {
	display: flex;
	flex-direction: column;
	/* Vertical list */
	max-height: 400px;
	overflow-y: auto;
}

.dropdown-item {
	display: flex;
	/* Allow icon alignment */
	justify-content: space-between;
	align-items: center;
	font-size: 14px;
	/* Clean, readable size */
	color: #333;
	text-decoration: none;
	padding: 10px 20px;
	font-weight: normal;
	text-transform: none;
	/* Normal case */
	border-bottom: 1px solid #f9f9f9;
}

.dropdown-item:hover {
	background-color: rgba(155, 89, 182, 0.1);
	/* Light purple background */
	color: #9b59b6;
	/* Theme purple text */
	text-decoration: none;
}

/* Default state for accordion toggle (hidden on desktop) */
.accordion-toggle {
	display: none;
}

.dropdown-item svg {
	color: #ccc;
	transition: color 0.2s;
	width: 16px;
	height: 16px;
}

.dropdown-item:hover svg {
	color: #9b59b6;
}

/* Scrollbar styling for the grid */
.rubros-grid::-webkit-scrollbar {
	width: 6px;
}

.rubros-grid::-webkit-scrollbar-track {
	background: #f1f1f1;
}

.rubros-grid::-webkit-scrollbar-thumb {
	background: #ccc;
	border-radius: 3px;
}

/* Nested Submenu Styles */
.dropdown-item-wrapper {
	position: relative;
	/* To position the submenu */
}

.submenu {
	display: none;
	position: absolute;
	top: 0;
	left: 100%;
	/* Position to the right of the parent */
	width: 250px;
	background-color: white;
	box-shadow: 4px 4px 12px rgba(0, 0, 0, 0.15);
	border: 1px solid #ddd;
	border-radius: 0 4px 4px 0;
	/* Rounded only on right */
	padding: 10px 0;
	z-index: 1001;
	max-height: 400px;
	overflow-y: auto;
}

/* CSS Hover removed to allow JS positioning to avoid overflow clipping */
/* .dropdown-item-wrapper:hover .submenu {
    display: block;
} */

/* Hover effect for the wrapper to keep the main item highlighted */
.dropdown-item-wrapper:hover>.dropdown-item {
	background-color: rgba(171, 141, 227, 0.1);
	color: #9b59b6;
}

.submenu-item-wrapper {
	position: relative;
	/* For tertiary menu positioning */
}

/* Hover effect on the wrapper for 2nd level */
.submenu-item-wrapper:hover>.submenu-item {
	background-color: #f9f9f9;
	color: #9b59b6;
	padding-left: 25px;
}

.submenu-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px 20px;
	color: #555;
	text-decoration: none;
	font-size: 14px;
	transition: all 0.2s;
}

.submenu-item:hover {
	background-color: #f9f9f9;
	color: #9b59b6;
	text-decoration: none;
	padding-left: 25px;
	/* Slight indentation effect on hover */
}

.tertiary-menu {
	display: none;
	position: absolute;
	top: 0;
	left: 100%;
	/* To the right of submenu */
	width: 250px;
	background-color: white;
	box-shadow: 4px 4px 12px rgba(0, 0, 0, 0.15);
	border: 1px solid #ddd;
	border-radius: 0 4px 4px 0;
	padding: 10px 0;
	z-index: 1002;
	max-height: 400px;
	overflow-y: auto;
}

.tertiary-item {
	display: block;
	padding: 8px 20px;
	color: #555;
	text-decoration: none;
	font-size: 13px;
	/* Slightly smaller for 3rd level */
	transition: all 0.2s;
}

.tertiary-item:hover {
	background-color: #f9f9f9;
	color: #9b59b6;
	text-decoration: none;
	padding-left: 25px;
}

/* Scrollbar for tertiary */
.tertiary-menu::-webkit-scrollbar {
	width: 6px;
}

.tertiary-menu::-webkit-scrollbar-track {
	background: #f1f1f1;
}

.tertiary-menu::-webkit-scrollbar-thumb {
	background: #ccc;
	border-radius: 3px;
}

/* Scrollbar for submenu */
.submenu::-webkit-scrollbar {
	width: 6px;
}

.submenu::-webkit-scrollbar-track {
	background: #f1f1f1;
}

.submenu::-webkit-scrollbar-thumb {
	background: #ccc;
	border-radius: 3px;
}

/* Fix for long text in tertiary menu */
.tertiary-item {
	display: block;
	padding: 8px 20px;
	color: #555;
	text-decoration: none;
	font-size: 13px;
	/* Slightly smaller for 3rd level */
	transition: all 0.2s;
	/* Prevent wrapping and show ellipsis for long names */
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 100%;
}

/* Adjust width of tertiary menu to accommodate longer names if needed */
.tertiary-menu {
	width: 300px;
	/* Wider for 3rd level items */
}

.btn-limpiar {
	margin-left: 25px;
	width: 200px;
	height: 50px;
	border: 1px solid black;
	border-radius: 5px;
	transition: transform 0.1s ease;
}

.btn-limpiar:hover {
	color: white;
	background-color: orangered;
	border: none;
}

.productos {
	display: grid;
	grid-template-rows: 1fr;
	grid-template-columns: repeat(5, 1fr);
	/* 5 Columns per user request */
	grid-gap: 20px;
	/* Reduced gap slightly for 5 cols */
	margin: 0 auto;
	width: 95vw;
	/* Increased width slightly to fit 5 cols better */
}


.oferta {
	color: orangered;
}

.oferta__concepto {
	margin-top: 5px;
}

/*-------------------------------------------*/
.navPag {
	margin: 0 auto;
	margin-top: 3px;
	height: 45px;
	width: 100%;
}

ul.pagination {
	list-style-type: none;
	text-align: center;
}

ul.pagination li {
	display: inline-block;
	/* Hace que los elementos se muestren en línea */
	margin-right: -1px;
	/* Añade un espacio entre los elementos */
	border: 1px solid #333;
	width: 42px;
	height: 42px;
}

.active {
	background-color: #007bff;
	color: white;
}

ul.pagination li:last-child {
	margin-right: 0;
	/* Elimina el margen del último elemento */
}

ul.pagination li a {
	display: block;
	text-decoration: none;
	color: #333;
	padding: 0px;
	line-height: 42px;
	font-size: 1.1em;
}

ul.pagination li a:hover {
	background-color: #ddd;
}

/*-------------------------------------------*/
/* NEW DESKTOP CARD DESIGN (Refined: Subtle, Rounded, Clean) */
.grid-item-prg {
	border: 1px solid #e0e0e0;
	/* Subtle gray border */
	border-radius: 20px;
	/* Very rounded corners */
	display: flex;
	flex-direction: column;
	padding: 0;
	padding-bottom: 20px;
	background-color: white;
	/* Soft shadow for depth, similar to reference */
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
	overflow: hidden;
	height: 100%;
	transition: transform 0.2s, box-shadow 0.2s;
}

.grid-item-prg:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

/* 1. Image at TOP */
.imgproducto {
	order: -1;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 20px;
	/* Removed heavy black border, kept clean */
	border-bottom: 1px solid #f9f9f9;
	background: #fff;
	min-height: 200px;
	/* Ensure space for image */
}

.imgproducto img {
	height: 160px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
}

/* 2. Content Stack */
.codigoproducto,
.rubros,
.detalles {
	padding: 0 20px;
	text-align: left;
}

.codigoproducto {
	margin-top: 15px;
	font-weight: 600;
	color: #888;
	font-size: 14px;
	width: 100%;
	text-align: center;
	/* Centered Code as requested */
	letter-spacing: 0.5px;
}

/* Rubros vertical stack */
.rubros {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	margin-bottom: 10px;
	margin-top: 5px;
}

.rubros__grpsuprub,
.rubros__suprub {
	/* display: none; */
	/* Restored per user request */
	display: block;
	font-size: 14px;
	color: #999;
	line-height: 1.2;
}

/* User might want to see them contextually, but card needs to be clean. Let's keep Rubro prominently. */
.rubros__rubro {
	font-size: 14px;
	font-weight: bold;
	color: #aaa;
	text-transform: uppercase;
}

.detalles {
	display: flex;
	flex-direction: column;
	margin-bottom: auto;
}

.detalles__descripcion {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	color: #333;
	margin-bottom: 5px;
	/* Limit lines if too long? */
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.detalles__marca {
	font-size: 15px;
	font-weight: 600;
	color: #9b59b6;
	/* Brand color match */
	text-transform: uppercase;
	margin-bottom: 10px;
}

/* 3. Prices & Button at Bottom */
.preciossindescuento,
.precioscondescuento {
	padding: 0 20px;
	display: flex;
	justify-content: center;
	/* Center prices */
	width: 100%;
}

.preciossindescuento {
	text-decoration: line-through;
	color: #bbb;
	font-size: 14px;
	margin-top: 5px;
}

.precioscondescuento {
	font-size: 22px;
	font-weight: 800;
	color: #333;
	margin-bottom: 15px;
}

/* Button */
.grid-item-prg .btn-pedir {
	margin: 0 20px;
	width: calc(100% - 40px);
	/* Full width minus margin */
	align-self: center;
	padding: 12px 0;
	border-radius: 12px;
	/* Rounded button */
	background-color: #ab8de3;
	/* Reference purple */
	border: none;
	font-weight: bold;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: background-color 0.2s;
}

.grid-item-prg .btn-pedir:hover {
	background-color: #9b59b6;
}

.grid-item-prg .btn-pedir:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.grid-item-prg .btn-pedir:disabled:hover {
	background-color: #ab8de3;
}

.preciossindescuento__lista1,
.preciossindescuento__lista2,
.preciossindescuento__lista3,
.preciossindescuento__lista4,
.preciossindescuento__lista5 {
	font-family: "Roboto Condensed", sans-serif;
	padding-right: 10px;
	text-align: right;
	height: 25px;
	line-height: 25px;
	text-decoration: line-through;
}

.precioscondescuento__lista1,
.precioscondescuento__lista2,
.precioscondescuento__lista3,
.precioscondescuento__lista4,
.precioscondescuento__lista5 {
	font-family: "Roboto Condensed", sans-serif;
	padding-right: 10px;
	text-align: right;
	height: 25px;
	line-height: 25px;
}

.preciossindescuento__lista1,
.preciossindescuento__lista2,
.preciossindescuento__lista3,
.preciossindescuento__lista4,
.preciossindescuento__lista5,
.precioscondescuento__lista1,
.precioscondescuento__lista2,
.precioscondescuento__lista3,
.precioscondescuento__lista4,
.precioscondescuento__lista5 {
	display: none;
}

button {
	font-family: "Roboto Condensed", sans-serif;
	width: 100%;
	height: 40px;
	font-size: 1.1em;
	letter-spacing: 3px;
	font-weight: bolder;
	cursor: pointer;
	border: none;
}

button:hover {
	font-size: 1.1em;
	font-weight: bolder;
	color: white;
	background-color: black;
}

.cantidad {
	display: flex;
	flex-direction: row;
	justify-content: space-around;
	padding-top: 10px;

	display: none;
	/* temporal */

	#lbl_cantidad {
		font-style: italic;
		font-size: 1.2em;
		letter-spacing: 1.25px;
		color: rgba(0, 0, 0, 0.5);
	}
}

#cantidad {
	width: 35%;
	text-align: center;
}

#cantidad:focus {
	#lbl_cantidad {
		color: black;
	}
}

#pedir {
	display: none;
	/* temporal */
}

.floating-button {
	position: fixed;
	bottom: 0px;
	right: 10px;
	z-index: 999;

	/* background-color: #4caf50;
	color: white; */
	/* border-radius: 5%; */
	/* padding: 15px; */
	/* box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.3); */
	text-decoration: none;
	background: white;
}

button {
	width: 38px;
	height: 38px;
	background: white;
	color: inherit;
}

button:focus {
	outline: none;
	background: white;
}

/* footer {
	position: absolute;
	bottom: 0;
	width: 100%;
	border-top: 5px solid rgb(252, 173, 060);
	color: rgb(000, 077, 139);
	font-family: "Roboto Condensed", sans-serif;
	font-size: 1.5em;
	font-weight: bolder;
	padding: 10px;
	background-color: rgb(240, 240, 240);
} */

/* Utility classes for responsive visibility */
.mobile-only {
	display: none !important;
}

.desktop-only {
	display: inline-block;
	/* Or flex depending on context */
}

@media screen and (min-width: 769px) {
	.desktop-only {
		display: inline-flex !important;
	}
}


/* Media query para estilos específicos en pantallas más pequeñas */
@media screen and (max-width: 768px) {
	.mobile-only {
		display: inline-flex !important;
	}

	.desktop-only {
		display: none !important;
	}

	.app-header {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		padding: 10px;
		height: auto;
		align-items: center;
		position: relative;
		gap: 10px;
	}

	.header-left {
		width: auto;
		gap: 10px;
		justify-content: flex-start;
		flex: 1;
	}

	.header-logo {
		height: 40px;
		/* Smaller logo */
		width: auto;
	}

	.header-right {
		width: auto;
		gap: 10px;
		justify-content: flex-end;
		display: flex;
		align-items: center;
	}

	/* Search Container en segunda línea en móvil */
	#searchContainer {
		display: block !important;
		position: static;
		width: 100%;
		background: transparent;
		padding: 0;
		box-shadow: none;
		z-index: 1;
		order: 2;
		margin-top: 5px;
	}

	.search-bar-container {
		border: 1px solid #ccc;
		border-radius: 20px;
		padding: 5px 15px;
		background: #fff;
		width: 100%;
		display: flex;
		align-items: center;
	}

	.search-input {
		width: 100%;
		height: 30px;
		font-size: 16px;
	}

	/* Styles for Mobile Search Toggle Button */
	.btn-icon-header {
		display: none !important; /* Ocultamos la lupa móvil ya que el buscador está visible */
	}

	/* MENU ACCORDION STYLES */


	/* Mobile Menu Dropdown (Full screen/Side panel) */
	#mobileMenu {
		display: none;
		/* Controlled by JS */
		position: fixed;
		top: 60px;
		/* Header height */
		left: 0;
		width: 100%;
		/* Full width */
		height: calc(100vh - 60px);
		background: white;
		overflow-y: auto;
		/* Scrollable */
		border: none;
		box-shadow: none;
		border-top: 1px solid #eee;
		padding-bottom: 50px;
	}

	#mobileMenu.show {
		display: block;
	}

	/* Reset Rubros Grid for list view */
	.rubros-grid {
		display: flex;
		flex-direction: column;
		max-height: none;
		/* Remove limit */
		overflow-y: visible;
		padding: 0;
	}

	/* List Item Containers */
	.dropdown-item-wrapper,
	.submenu-item-wrapper {
		border-bottom: 1px solid #eee;
		/* Clean separator */
		background: #fff;
	}

	/* Flex header for items (Link + Arrow) */
	.item-header {
		display: flex;
		justify-content: space-between;
		align-items: stretch;
		/* Stretch to fill height */
		width: 100%;
		min-height: 50px;
		/* Touchable height */
	}

	/* The actual link part */
	.link-only {
		flex: 1;
		padding: 15px;
		border: none;
		font-size: 15px;
		/* Matches standard mobile font */
		font-weight: 500;
		color: #333;
		display: flex;
		align-items: center;
		text-transform: uppercase;
		/* Match reference */
	}

	/* The arrow toggle part - Distinct box */
	.accordion-toggle {
		width: 50px;
		/* Square touch target */
		border-left: 1px solid #eee;
		display: flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		background: #fff;
		color: #666;
	}

	.accordion-toggle:active {
		background: #f5f5f5;
	}

	/* Submenu Styling */
	.submenu,
	.tertiary-menu {
		display: none;
		position: static;
		/* Force static to override desktop absolute */
		left: auto;
		top: auto;
		width: 100%;
		background: #fcfcfc;
		/* Slightly off-white for hierarchy */
		box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.02);
	}

	.submenu-item-wrapper {
		border-bottom: 1px solid #f0f0f0;
		padding-left: 0;
	}

	/* Level 2 Links */
	.submenu-item.link-only {
		font-size: 14px;
		color: #555;
		font-weight: normal;
		padding-left: 25px;
		/* Indent Lvl 2 */
		text-transform: none;
		/* Only caps for top level usually */
	}

	/* Level 3 Links */
	.tertiary-item {
		display: block;
		padding: 12px 15px 12px 40px;
		/* Deep Indent Lvl 3 */
		font-size: 13px;
		color: #666;
		border-bottom: 1px solid #f5f5f5;
		text-decoration: none;
	}

	/* Open state controlled by JS */
	.open>.submenu,
	.open>.tertiary-menu {
		display: block !important;
		/* Force display */
	}

	/* Active color for open accordion */
	.dropdown-item-wrapper.open>.item-header .link-only {
		color: #9b59b6;
		font-weight: bold;
	}

	/* Product Grid Adjustments */
	.productos {
		display: grid;
		/* Affirm grid */
		grid-template-columns: 1fr;
		/* One column mobile */
		grid-gap: 15px;
		padding: 10px;
		/* Small padding */
		width: 100%;
		/* Full width mobile */
		margin: 0;
	}

	.open>.item-header>.accordion-toggle svg {
		transform: rotate(90deg);
		/* Rotate DOWN */
		transition: transform 0.3s;
		color: #9b59b6;
	}


	.grid-item-prg {
		display: flex;
		flex-direction: column;
		height: auto;
		grid-template-rows: none;
		grid-template-columns: none;
		grid-template-areas: none;
		padding: 15px;
		gap: 15px;
		box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	}

	.imgproducto {
		align-self: center;
		margin-bottom: 10px;
		grid-area: auto;
	}

	.imgproducto img {
		height: 180px;
		width: 180px;
		object-fit: contain;
	}

	.codigoproducto {
		line-height: normal;
		padding: 0;
		font-weight: bold;
		color: #666;
		width: 100%;
		text-align: left;
		grid-area: auto;
	}

	.rubros {
		display: flex;
		flex-direction: row;
		align-items: center;
		flex-wrap: wrap;
		gap: 5px;
		grid-area: auto;
	}

	.rubros__grpsuprub,
	.rubros__suprub,
	.rubros__rubro {
		height: auto;
		font-size: 13px;
	}

	.detalles {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		grid-area: auto;
	}

	.detalles__descripcion {
		font-size: 18px;
		height: auto;
		margin-bottom: 10px;
	}

	.detalles__marca {
		font-size: 16px;
	}

	.preciossindescuento {
		justify-content: flex-start;
		gap: 15px;
		flex-wrap: wrap;
		grid-area: auto;
		color: crimson;
		font-size: 14px;
	}

	.precioscondescuento {
		justify-content: flex-start;
		gap: 15px;
		flex-wrap: wrap;
		grid-area: auto;
		font-size: 1.2em;
	}

	[class^="preciossindescuento__lista"],
	[class^="precioscondescuento__lista"] {
		text-align: left;
		padding-right: 5px;
	}

	.btn-pedir {
		margin-top: 15px;
		width: 100%;
	}
}

/* Estilos para la Barra de Categorías Destacadas (Accesos Rápidos Rectangulares) */
.destacados-section {
	width: 95vw;
	max-width: 1200px;
	margin: 15px auto;
	padding: 0 10px;
}

.destacados-container {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 12px;
	padding: 10px 5px;
}

.destacado-item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 8px 16px;
	border-radius: 8px;
	border: 1.5px solid;
	background-color: #ffffff;
	text-decoration: none;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
	transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
	cursor: pointer;
	width: 100%;
}

.destacado-item:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
	text-decoration: none;
}

/* Transición suave para el SVG interno */
.destacado-item svg {
	transition: stroke 0.2s, fill 0.2s;
	flex-shrink: 0;
}

.destacado-label {
	font-family: 'Roboto Condensed', sans-serif;
	font-size: 13.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	white-space: nowrap;
	line-height: 1;
	transition: color 0.2s;
}

/* Ajustes adaptativos para PC medianas */
@media screen and (min-width: 769px) and (max-width: 1024px) {
	.destacados-container {
		gap: 8px;
	}
	.destacado-item {
		padding: 8px 10px;
		gap: 6px;
	}
	.destacado-label {
		font-size: 12px;
	}
}

/* Ajustes adaptativos para pantallas móviles */
@media screen and (max-width: 768px) {
	.destacados-section {
		margin: 10px auto;
		width: 95vw;
		padding: 0;
	}
	.destacados-container {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 8px;
		padding: 5px;
	}
	.destacado-item {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		padding: 8px 10px;
		gap: 6px;
	}
	.destacado-label {
		font-size: 12.5px;
	}
	
	/* Ocultar texto de carrito/inicio en móvil */
	.desktop-only-text {
		display: none !important;
	}
	
	/* Botón compacto para header móvil */
	.btn-cart-mobile {
		padding: 10px 12px !important;
		min-width: auto !important;
	}
}

/* Estilos de Precios Restringidos */
.precios-restringidos {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 12px 15px;
	margin: 10px 20px;
	background-color: #f7f3fd;
	border: 1px dashed #ab8de3;
	border-radius: 12px;
	text-align: center;
	min-height: 50px;
	transition: background-color 0.2s, border-color 0.2s;
}

.precios-restringidos:hover {
	background-color: #f0e6fc;
	border-color: #9b59b6;
}

.msg-restringido {
	font-size: 13.5px;
	font-weight: bold;
	color: #9b59b6;
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
}

.msg-restringido:hover {
	color: #8e44ad;
	text-decoration: underline;
}

/* Modal Login Dinámico con Glassmorphism */
.login-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.45);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 99999;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.login-modal-overlay.active {
	opacity: 1;
	pointer-events: auto;
}

.login-modal-content {
	background: #ffffff;
	border-radius: 20px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
	width: 90%;
	max-width: 400px;
	padding: 30px;
	position: relative;
	transform: scale(0.9);
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.login-modal-overlay.active .login-modal-content {
	transform: scale(1);
}

.login-modal-close {
	position: absolute;
	top: 15px;
	right: 18px;
	background: none;
	border: none;
	font-size: 24px;
	color: #aaa;
	cursor: pointer;
	transition: color 0.2s;
	width: auto;
	height: auto;
	line-height: 1;
	padding: 5px;
}

.login-modal-close:hover {
	color: #e74c3c;
}

.login-modal-title {
	font-size: 22px;
	font-weight: 700;
	color: #333;
	margin-bottom: 20px;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.login-modal-form .form-group {
	margin-bottom: 18px;
	display: flex;
	flex-direction: column;
	text-align: left;
}

.login-modal-form label {
	font-size: 13.5px;
	font-weight: 600;
	color: #666;
	margin-bottom: 6px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.login-modal-form input {
	border: 1.5px solid #ddd;
	border-radius: 10px;
	padding: 10px 14px;
	font-size: 15px;
	outline: none;
	transition: border-color 0.2s, box-shadow 0.2s;
	width: 100%;
	height: auto;
	background-color: #fafafa;
}

.login-modal-form input:focus {
	border-color: #ab8de3;
	box-shadow: 0 0 0 3px rgba(171, 141, 227, 0.15);
	background-color: #fff;
}

.login-modal-error {
	background-color: #fde8e8;
	border: 1.5px solid #f8b4b4;
	color: #e74c3c;
	padding: 10px 15px;
	border-radius: 10px;
	font-size: 13.5px;
	margin-bottom: 18px;
	display: none;
	text-align: center;
	font-weight: bold;
}

.login-modal-submit {
	background-color: #ab8de3;
	color: white;
	border: none;
	border-radius: 10px;
	padding: 12px;
	font-size: 16px;
	font-weight: bold;
	cursor: pointer;
	transition: background-color 0.2s, transform 0.1s;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.login-modal-submit:hover {
	background-color: #9b59b6;
}

.login-modal-submit:active {
	transform: scale(0.98);
}

.login-spinner {
	display: none;
	width: 18px;
	height: 18px;
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	border-top-color: #fff;
	animation: spin 0.8s linear infinite;
	flex-shrink: 0;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

/* ==========================================================================
   NUEVO DISEÑO CON FILTROS EN SIDEBAR
   ========================================================================== */

/* Layout Principal de Dos Columnas (20% / 80%) */
.catalogo-layout {
   display: flex;
   gap: 25px;
   width: 96vw;
   margin: 0 auto 30px auto;
   align-items: flex-start;
}

.sidebar-filters {
   width: 20%;
   flex: 0 0 20%;
   max-width: 20%;
   background: #ffffff;
   border-radius: 14px;
   padding: 18px;
   box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
   border: 1px solid #e2e8f0;
   position: sticky;
   top: 20px;
   flex-shrink: 0;
   max-height: calc(100vh - 40px);
   overflow-y: auto;
}

/* Custom scrollbar for the entire sidebar filters panel */
.sidebar-filters::-webkit-scrollbar {
   width: 5px;
}

.sidebar-filters::-webkit-scrollbar-track {
   background: transparent;
}

.sidebar-filters::-webkit-scrollbar-thumb {
   background: #cbd5e1;
   border-radius: 3px;
}

.catalogo-main {
   width: 80%;
   flex: 0 0 80%;
   max-width: 80%;
   display: flex;
   flex-direction: column;
}

/* Grilla de Productos de 4 Columnas */
.productos {
   display: grid !important;
   grid-template-rows: 1fr;
   grid-template-columns: repeat(4, 1fr) !important;
   grid-gap: 20px;
   margin: 0 auto;
   width: 100% !important;
}

/* Títulos y Secciones del Sidebar */
.filter-section {
   margin-bottom: 15px;
   border-bottom: 1px solid #e2e8f0;
   padding-bottom: 15px;
}

.filter-section:last-of-type {
   border-bottom: none;
   margin-bottom: 10px;
   padding-bottom: 0;
}

.filter-section-header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   cursor: pointer;
   padding: 5px 0;
   user-select: none;
}

.filter-section h3 {
   font-size: 15px;
   font-weight: 700;
   color: #334155;
   margin: 0;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   font-family: "Roboto Condensed", sans-serif;
}

.section-chevron {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 22px;
   height: 22px;
   color: #64748b;
   transition: transform 0.2s ease;
}

.section-chevron svg {
   transition: transform 0.2s ease;
   transform: rotate(0deg);
}

.section-chevron.collapsed svg {
   transform: rotate(-90deg);
}

.filter-section-content {
   margin-top: 12px;
   transition: all 0.3s ease;
}

.filter-section-content.collapsed,
.scrollable-list.collapsed {
   display: none !important;
}

/* Listas con Scrollbar limitadas a 6 elementos */
.scrollable-list {
   max-height: 200px;
   overflow-y: auto;
   padding-right: 5px;
   display: flex;
   flex-direction: column;
   gap: 6px;
   margin-top: 10px;
}

.filter-item {
   padding: 4px;
   border-radius: 6px;
   transition: background-color 0.2s;
}

.filter-item:hover {
   background-color: #f8fafc;
}

/* Checkboxes Premium Personalizados */
.custom-checkbox {
   display: flex;
   align-items: center;
   cursor: pointer;
   position: relative;
   user-select: none;
   gap: 10px;
   flex: 1;
}

.custom-checkbox input {
   position: absolute;
   opacity: 0;
   cursor: pointer;
   height: 0;
   width: 0;
}

.checkbox-box {
   height: 18px;
   width: 18px;
   background-color: #f1f5f9;
   border: 1.5px solid #cbd5e1;
   border-radius: 4px;
   display: inline-block;
   position: relative;
   transition: all 0.2s;
   flex-shrink: 0;
}

.custom-checkbox:hover input ~ .checkbox-box {
   border-color: #9b59b6;
   background-color: #faf5ff;
}

.custom-checkbox input:checked ~ .checkbox-box {
   background-color: #9b59b6;
   border-color: #9b59b6;
}

.checkbox-box::after {
   content: "";
   position: absolute;
   display: none;
   left: 5px;
   top: 1.5px;
   width: 5px;
   height: 9px;
   border: solid white;
   border-width: 0 2px 2px 0;
   transform: rotate(45deg);
}

.custom-checkbox input:checked ~ .checkbox-box::after {
   display: block;
}

.checkbox-label {
   font-size: 13.5px;
   color: #475569;
   font-weight: 500;
   line-height: 1.3;
}

.custom-checkbox input:checked ~ .checkbox-label {
   color: #1e293b;
   font-weight: 600;
}

/* Buscador de Marcas */
.brand-search-wrapper {
   margin-bottom: 8px;
}

.brand-search-input {
   width: 100%;
   padding: 6px 10px;
   font-size: 13px;
   border: 1.5px solid #cbd5e1;
   border-radius: 6px;
   outline: none;
   transition: all 0.2s;
   background-color: #f8fafc;
}

.brand-search-input:focus {
   border-color: #9b59b6;
   background-color: #ffffff;
}

.brand-list-scroll {
   padding-right: 5px;
}

.brand-item {
   padding: 4px;
   border-radius: 6px;
   transition: background-color 0.2s;
}

.brand-item:hover {
   background-color: #f8fafc;
}

/* Acciones del Sidebar */
.sidebar-actions {
   display: flex;
   flex-direction: column;
   gap: 8px;
   margin-top: 15px;
}

.btn-sidebar-apply {
   background-color: #9b59b6;
   color: #ffffff;
   border: none;
   padding: 9px 16px;
   font-size: 13px;
   font-weight: 700;
   border-radius: 8px;
   cursor: pointer;
   transition: all 0.2s;
   text-align: center;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   width: 100%;
}

.btn-sidebar-apply:hover {
   background-color: #8e44ad;
   transform: translateY(-1px);
   box-shadow: 0 4px 12px rgba(155, 89, 182, 0.25);
}

.btn-sidebar-clear {
   background-color: transparent;
   color: #64748b;
   border: 1.5px solid #cbd5e1;
   padding: 8px 16px;
   font-size: 12.5px;
   font-weight: 700;
   border-radius: 8px;
   cursor: pointer;
   transition: all 0.2s;
   text-align: center;
   text-decoration: none;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   width: 100%;
   display: block;
}

.btn-sidebar-clear:hover {
   background-color: #f1f5f9;
   color: #334155;
}

/* Etiquetas de Filtros Activos */
.active-filters-container {
   background-color: #ffffff;
   border-radius: 10px;
   padding: 10px 16px;
   margin-bottom: 15px;
   border: 1px solid #e2e8f0;
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 8px;
}

.active-filters-title {
   font-size: 13.5px;
   font-weight: 700;
   color: #64748b;
}

.active-filters-list {
   display: flex;
   flex-wrap: wrap;
   gap: 6px;
   align-items: center;
}

.filter-tag {
   background-color: #f3e8ff;
   color: #7e22ce;
   font-size: 12px;
   font-weight: 600;
   padding: 3px 8px;
   border-radius: 6px;
   display: inline-flex;
   align-items: center;
   gap: 5px;
   border: 1px solid #e9d5ff;
}

.remove-tag {
   color: #a855f7;
   font-size: 14px;
   font-weight: 700;
   text-decoration: none;
   line-height: 1;
   cursor: pointer;
}

.clear-all-tag {
   font-size: 12.5px;
   font-weight: 700;
   color: #ef4444;
   text-decoration: none;
   margin-left: 5px;
}

/* Scrollbars */
.scrollable-list::-webkit-scrollbar {
   width: 4px;
}

.scrollable-list::-webkit-scrollbar-track {
   background: #f1f5f9;
}

.scrollable-list::-webkit-scrollbar-thumb {
   background: #cbd5e1;
   border-radius: 2px;
}

/* Clases de Soporte */
.mobile-only {
   display: none !important;
}

.desktop-only {
   display: block !important;
}

/* Botón flotante para abrir filtros en Móvil */
.catalog-mobile-actions {
   margin-bottom: 15px;
   width: 100%;
}

.btn-toggle-filters {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   width: 100%;
   background-color: #ffffff;
   border: 1px solid #cbd5e1;
   border-radius: 12px;
   padding: 12px;
   font-size: 15px;
   font-weight: 700;
   color: #334155;
   cursor: pointer;
   box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Estilos Drawer Móvil */
@media screen and (max-width: 1024px) {
   .catalogo-layout {
      flex-direction: column;
      gap: 15px;
   }
   
   .mobile-only {
      display: flex !important;
   }
   
   .desktop-only {
      display: none !important;
   }
   
   .sidebar-filters {
      position: fixed;
      top: 0;
      left: -100%;
      height: 100%;
      width: 320px;
      z-index: 100000;
      border-radius: 0;
      box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15);
      transition: left 0.3s ease;
      overflow-y: auto;
      margin: 0;
      max-width: 100%;
   }
   
   .sidebar-filters.show-mobile {
      left: 0;
   }
   
   .sidebar-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 20px;
      border-bottom: 1px solid #e2e8f0;
      padding-bottom: 15px;
   }
   
   .sidebar-header h2 {
      font-size: 20px;
      color: #1e293b;
      font-weight: 700;
   }
   
   .btn-close-sidebar {
      background: none;
      border: none;
      font-size: 28px;
      color: #94a3b8;
      cursor: pointer;
      line-height: 1;
      padding: 5px;
   }
   
   .btn-close-sidebar:hover {
      color: #ef4444;
   }
}

@media screen and (max-width: 768px) {
   .active-filters-container {
      flex-direction: column;
      align-items: flex-start;
      padding: 10px;
   }
}