			.pl-root,
			.pl-root * {
				box-sizing: border-box;
				font-family: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
			}

			.pl-root {
				--pl-surface: #f7f9fb;
				--pl-surface-low: #f2f4f6;
				--pl-surface-lowest: #ffffff;
				--pl-surface-highest: #e0e3e5;
				--pl-text: #191c1e;
				--pl-muted: #424752;
				--pl-outline: #c2c6d4;
				--pl-primary: #00488d;
				--pl-primary-2: #005fb8;
				--pl-primary-soft: #d6e3ff;
				--pl-secondary: #006c47;
				--pl-secondary-soft: #9af5c4;
				--pl-tertiary: #006a78;
				--pl-tertiary-soft: #a1efff;
				--pl-offer-bg: #ffdad6;
				--pl-offer-fg: #93000a;

				width: 100vw;
				max-width: 100vw;
				margin-left: calc(50% - 50vw);
				margin-right: calc(50% - 50vw);
				padding: 12px;
				background: var(--pl-surface);
			}

			.is-layout-constrained > .pl-root,
			.is-layout-constrained > :where(.pl-root),
			.is-layout-flow > .pl-root,
			.is-layout-flow > :where(.pl-root) {
				max-width: none !important;
				margin-left: calc(50% - 50vw) !important;
				margin-right: calc(50% - 50vw) !important;
			}

			.pl-shell {
				max-width: 1750px;
				margin: 0 auto;
				padding: 16px;
				border-radius: 16px;
				background: #edf1f5;
				display: grid;
				grid-template-columns: 248px minmax(0, 1fr);
				gap: 16px;
			}

			.pl-sidebar {
				background: var(--pl-surface-lowest);
				border-radius: 14px;
				padding: 14px;
				box-shadow: 0 20px 40px -30px rgba(25, 28, 30, 0.28);
				border: 1px solid rgba(194, 198, 212, 0.6);
				position: sticky;
				top: 12px;
				height: fit-content;
			}

			.pl-chip {
				display: inline-flex;
				align-items: center;
				justify-content: center;
				padding: 4px 10px;
				font-size: 10px;
				font-weight: 800;
				letter-spacing: 0.08em;
				text-transform: uppercase;
				border-radius: 999px;
				background: var(--pl-secondary-soft);
				color: var(--pl-secondary);
			}

			.pl-categories-help {
				margin: 10px 2px 2px;
				color: #667184;
				font-size: 12px;
				line-height: 1.35;
				font-weight: 600;
			}

			.pl-categories {
				list-style: none;
				margin: 10px 0 0;
				padding: 0;
				display: grid;
				gap: 8px;
				max-height: calc(100vh - 220px);
				overflow: auto;
				padding-right: 4px;
			}

			.pl-categories::-webkit-scrollbar {
				width: 7px;
			}

			.pl-categories::-webkit-scrollbar-track {
				background: #edf1f5;
				border-radius: 999px;
			}

			.pl-categories::-webkit-scrollbar-thumb {
				background: #c5cfdb;
				border-radius: 999px;
			}

			.pl-categories a {
				text-decoration: none;
				display: flex;
				align-items: center;
				justify-content: flex-start;
				gap: 10px;
				padding: 11px 12px;
				background: #f4f7fb;
				color: #324256;
				border-radius: 12px;
				font-size: 14px;
				font-weight: 700;
				transition: background .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
				box-shadow: inset 0 0 0 1px rgba(194, 198, 212, 0.42);
			}

			.pl-categories a:hover {
				background: #eaf1f9;
				transform: translateX(2px);
				box-shadow: inset 0 0 0 1px rgba(168, 200, 255, 0.55);
			}

			.pl-categories a > span:first-child {
				overflow: hidden;
				text-overflow: ellipsis;
				white-space: nowrap;
			}

			.pl-categories li.is-active a {
				background: linear-gradient(135deg, #dce9fb 0%, #cfe1fa 100%);
				color: #154d88;
				box-shadow: inset 0 0 0 1px rgba(21, 77, 136, 0.2);
			}

			.pl-main {
				min-width: 0;
			}

			.pl-mobile-filter-wrap {
				display: none;
				margin-bottom: 10px;
			}

			.pl-mobile-filter-btn {
				width: 100%;
				border: 0;
				border-radius: 999px;
				padding: 12px 14px;
				background: var(--pl-surface-lowest);
				color: var(--pl-text);
				font-weight: 800;
				font-size: 13px;
				display: flex;
				align-items: center;
				justify-content: space-between;
				gap: 8px;
				cursor: pointer;
			}

			.pl-mobile-filter-btn strong {
				color: var(--pl-primary);
			}

			.pl-header {
				padding: 2px 2px 10px;
			}

			.pl-header h1 {
				margin: 8px 0 4px;
				color: var(--pl-text);
				font-size: clamp(1.8rem, 2.2vw, 3rem);
				line-height: 1.1;
				letter-spacing: 0;
				font-weight: 800;
			}

			.pl-header p {
				margin: 0;
				max-width: 850px;
				color: var(--pl-muted);
				font-size: 15px;
				line-height: 1.45;
			}

			.pl-search {
				margin-top: 14px;
				width: min(720px, 100%);
				display: flex;
				align-items: center;
				gap: 8px;
				padding: 6px;
				border-radius: 999px;
				background: var(--pl-surface-lowest);
				box-shadow: inset 0 0 0 1px rgba(194, 198, 212, 0.62);
			}

			.pl-search-input {
				min-width: 0;
				flex: 1 1 auto;
				border: 0;
				border-radius: 999px;
				background: #f4f7fb;
				color: var(--pl-text);
				font-size: 14px;
				font-weight: 700;
				line-height: 1;
				padding: 12px 14px;
			}

			.pl-search-input:focus {
				outline: 2px solid rgba(0, 95, 184, 0.22);
				background: #ffffff;
			}

			.pl-search-input::placeholder {
				color: #7a8796;
			}

			.pl-search-submit,
			.pl-search-clear {
				border: 0;
				border-radius: 999px;
				display: inline-flex;
				align-items: center;
				justify-content: center;
				min-height: 40px;
				padding: 10px 16px;
				font-size: 12px;
				font-weight: 800;
				text-decoration: none;
				white-space: nowrap;
			}

			.pl-search-submit {
				background: var(--pl-primary);
				color: #ffffff;
				cursor: pointer;
			}

			.pl-search-submit:hover {
				background: var(--pl-primary-2);
			}

			.pl-search-clear {
				background: #dfe5ec;
				color: #334154;
			}

			.pl-search-clear:hover {
				background: #d3dbe4;
			}

			.pl-breadcrumb {
				margin-bottom: 6px;
				display: flex;
				align-items: center;
				gap: 8px;
				font-size: 10px;
				font-weight: 700;
				text-transform: uppercase;
				letter-spacing: 0.08em;
				color: #7c8797;
			}

			.pl-breadcrumb .is-current {
				color: var(--pl-primary);
			}

			.pl-grid {
				display: grid;
				grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
				gap: 14px;
				transition: opacity .18s ease;
			}

			.pl-main.is-searching .pl-grid,
			.pl-main.is-searching .pl-pagination {
				opacity: 0.48;
				pointer-events: none;
			}

			.pl-card {
				background: var(--pl-surface-lowest);
				border-radius: 14px;
				padding: 12px;
				display: flex;
				flex-direction: column;
				gap: 10px;
				min-height: 100%;
				box-shadow: 0 18px 40px -28px rgba(25, 28, 30, 0.3);
				cursor: default;
				overflow: hidden;
			}

			.pl-card-cat {
				display: inline-flex;
				align-items: center;
				width: fit-content;
				font-size: 10.5px;
				font-weight: 800;
				text-transform: uppercase;
				letter-spacing: 0.05em;
				border-radius: 999px;
				padding: 5px 11px;
				background: linear-gradient(135deg, #ccf6dd 0%, #b7efcf 100%);
				color: #056a46;
				box-shadow: inset 0 0 0 1px rgba(5, 106, 70, 0.12);
			}

			.pl-media {
				position: relative;
				aspect-ratio: 1 / 1;
				border-radius: 12px;
				background: #e8ecf1;
				overflow: hidden;
				display: flex;
				align-items: center;
				justify-content: center;
			}

			.pl-off-badge {
				position: absolute;
				top: 10px;
				left: 10px;
				z-index: 2;
				padding: 5px 9px;
				border-radius: 8px;
				background: var(--pl-offer-bg);
				color: var(--pl-offer-fg);
				font-size: 12px;
				font-weight: 800;
				letter-spacing: 0.02em;
			}

			.pl-off-badge.is-hidden {
				display: none;
			}

			.pl-media-rate {
				position: absolute;
				left: 10px;
				bottom: 10px;
				z-index: 2;
				display: inline-flex;
				align-items: center;
				gap: 4px;
				padding: 4px 9px;
				border-radius: 999px;
				background: rgba(255, 255, 255, 0.92);
				color: #27384d;
				font-size: 12px;
				font-weight: 800;
				line-height: 1;
				backdrop-filter: blur(6px);
				box-shadow: 0 8px 20px -16px rgba(25, 28, 30, 0.5);
			}

			.pl-media::after {
				content: attr(data-placeholder);
				position: absolute;
				inset: 0;
				display: flex;
				align-items: center;
				justify-content: center;
				font-size: 12px;
				color: #798392;
				pointer-events: none;
			}

			.pl-carousel-btn {
				position: absolute;
				top: 50%;
				transform: translateY(-50%);
				z-index: 3;
				width: 28px;
				height: 28px;
				border: 0;
				border-radius: 999px;
				background: rgba(255, 255, 255, 0.92);
				color: #304156;
				font-size: 16px;
				font-weight: 700;
				line-height: 1;
				display: inline-flex;
				align-items: center;
				justify-content: center;
				cursor: pointer;
				box-shadow: 0 8px 18px -12px rgba(25, 28, 30, 0.42);
			}

			.pl-carousel-btn:hover {
				background: #ffffff;
			}

			.pl-carousel-btn.is-prev {
				left: 8px;
			}

			.pl-carousel-btn.is-next {
				right: 8px;
			}

			.pl-carousel-count {
				position: absolute;
				left: 50%;
				bottom: 8px;
				transform: translateX(-50%);
				z-index: 3;
				padding: 2px 8px;
				border-radius: 999px;
				background: rgba(34, 46, 62, 0.74);
				color: #fff;
				font-size: 11px;
				font-weight: 700;
				line-height: 1.3;
			}

			.pl-product-main-image.is-switching {
				animation: pl-carousel-image-swap 240ms ease;
			}

			.pl-carousel-count.is-updating {
				animation: pl-carousel-count-pop 240ms ease;
			}

			@keyframes pl-carousel-image-swap {
				0% {
					opacity: 0.32;
					filter: blur(1.2px);
				}

				100% {
					opacity: 1;
					filter: blur(0);
				}
			}

			@keyframes pl-carousel-count-pop {
				0% {
					transform: translateX(-50%) scale(0.86);
					opacity: 0.82;
				}

				100% {
					transform: translateX(-50%) scale(1);
					opacity: 1;
				}
			}

			@media (prefers-reduced-motion: reduce) {
				.pl-product-main-image.is-switching,
				.pl-carousel-count.is-updating,
				.pl-btn.is-loading .pl-btn-icon svg,
				.pl-btn.is-added .pl-btn-check {
					animation: none;
				}

				.pl-btn,
				.pl-btn-label,
				.pl-btn-icon svg,
				.pl-btn-check {
					transition: none;
				}
			}

			/* Zoom-out para normalizar imagenes de diferentes proporciones */
			.pl-product-image {
				width: 100% !important;
				height: 100% !important;
				max-width: 100% !important;
				max-height: 100% !important;
				object-fit: contain !important;
				transform: scale(0.84);
				transform-origin: center center;
				transition: transform .24s ease;
				will-change: transform;
				position: relative;
				z-index: 1;
			}

			.pl-card:hover .pl-product-image {
				transform: scale(0.9);
			}

			.pl-top-meta {
				display: flex;
				align-items: center;
				justify-content: flex-start;
				gap: 8px;
			}

			.pl-title {
				margin: 0;
				color: #162737;
				font-size: 18px;
				line-height: 1.18;
				font-weight: 800;
				letter-spacing: 0;
			}

			.pl-desc {
				margin: 0;
				font-size: 13px;
				line-height: 1.35;
				color: #6b7483;
				min-height: 34px;
			}

			.pl-price-wrap {
				margin-top: auto;
				padding-top: 9px;
				border-top: 1px solid #dde3ea;
				display: flex;
				flex-direction: column;
				align-items: flex-start;
				gap: 3px;
			}

			.pl-price-wrap .woocommerce-Price-amount,
			.pl-price-wrap .amount,
			.pl-price-wrap bdi {
				line-height: 1;
			}

			.pl-price-wrap br {
				display: none;
			}

			.pl-price-old {
				font-size: 12px;
				font-weight: 700;
				text-decoration: line-through;
				color: rgba(20, 29, 42, 0.58);
				line-height: 1;
				margin: 0;
			}

			.pl-price {
				font-size: 34px;
				font-weight: 800;
				line-height: 0.9;
				letter-spacing: 0;
				color: #11263f;
				margin: 0;
			}

			.pl-actions {
				display: flex;
				flex-direction: column;
				align-items: center;
				gap: 8px;
				margin-top: 4px;
				width: 100%;
			}

			.pl-qty {
				display: flex;
				align-items: center;
				border-radius: 999px;
				background: #f6f9fc;
				box-shadow: inset 0 0 0 1px rgba(182, 195, 212, 0.8);
				overflow: hidden;
				min-height: 40px;
				height: 40px;
				width: 102px;
				flex: 0 0 auto;
			}

			.pl-qty-btn {
				border: 0;
				background: transparent;
				color: #23435f;
				font-size: 16px;
				font-weight: 800;
				line-height: 1;
				height: 100%;
				width: 28px;
				flex: 0 0 28px;
				cursor: pointer;
				transition: background .16s ease, color .16s ease;
				display: inline-flex;
				align-items: center;
				justify-content: center;
			}

			.pl-qty-btn:hover {
				background: rgba(0, 72, 141, 0.08);
				color: #00488d;
			}

			.pl-qty-btn:disabled {
				opacity: 0.4;
				cursor: default;
			}

			.pl-qty-input {
				width: 100%;
				height: 100%;
				flex: 1 1 auto;
				min-width: 0;
				border: 0;
				background: transparent;
				text-align: center;
				color: #18334b;
				font-size: 14px;
				font-weight: 800;
				line-height: 1;
				padding: 0;
			}

			.pl-qty-input:focus {
				outline: none;
			}

			.pl-qty-input::-webkit-outer-spin-button,
			.pl-qty-input::-webkit-inner-spin-button {
				-webkit-appearance: none;
				margin: 0;
			}

			.pl-qty-input[type='number'] {
				-moz-appearance: textfield;
			}

			.pl-btn {
				display: inline-flex;
				align-items: center;
				justify-content: center;
				gap: 8px;
				width: 100%;
				flex: 0 0 auto;
				min-width: 0;
				text-decoration: none;
				padding: 10px 12px;
				min-height: 40px;
				border-radius: 999px;
				border: 0;
				background: linear-gradient(135deg, #0b63bf 0%, #0056ad 55%, #00488d 100%);
				color: #fff;
				font-size: 12px;
				font-weight: 800;
				letter-spacing: 0;
				box-shadow: 0 12px 24px -16px rgba(0, 72, 141, 0.85);
				transition: filter .16s ease, transform .12s ease, box-shadow .16s ease;
				position: relative;
				overflow: hidden;
				white-space: nowrap;
			}

			.pl-btn:hover {
				filter: brightness(1.03);
				box-shadow: 0 14px 28px -16px rgba(0, 72, 141, 0.95);
			}

			.pl-btn:active {
				transform: scale(0.985);
			}

			.pl-btn-icon {
				flex: 0 0 auto;
				width: 18px;
				height: 18px;
				display: inline-flex;
				align-items: center;
				justify-content: center;
				border-radius: 999px;
				background: rgba(255, 255, 255, 0.18);
			}

			.pl-btn-icon svg {
				width: 12px;
				height: 12px;
				display: block;
				transition: opacity .2s ease, transform .25s ease;
			}

			.pl-btn-label {
				transition: opacity .22s ease, transform .22s ease;
				white-space: nowrap;
				overflow: hidden;
				text-overflow: ellipsis;
				max-width: 100%;
			}

			.pl-btn-check {
				position: absolute;
				left: 50%;
				top: 50%;
				transform: translate(-50%, -50%) scale(0.5);
				opacity: 0;
				font-size: 17px;
				font-weight: 900;
				line-height: 1;
				pointer-events: none;
				transition: opacity .2s ease, transform .22s ease;
			}

			.pl-btn.is-loading {
				pointer-events: none;
			}

			.pl-btn.is-loading .pl-btn-icon svg {
				animation: pl-cart-spin .8s linear infinite;
			}

			.pl-btn.is-added {
				background: linear-gradient(135deg, #0f8b67 0%, #0b7f5f 55%, #07734c 100%);
				box-shadow: 0 12px 24px -16px rgba(7, 115, 76, 0.78);
			}

			.pl-btn.is-added .pl-btn-icon,
			.pl-btn.is-added .pl-btn-label {
				opacity: 0;
				transform: translateY(5px) scale(0.96);
			}

			.pl-btn.is-added .pl-btn-check {
				opacity: 1;
				transform: translate(-50%, -50%) scale(1);
				animation: pl-check-pop .36s ease;
			}

			@keyframes pl-cart-spin {
				from {
					transform: rotate(0deg);
				}

				to {
					transform: rotate(360deg);
				}
			}

			@keyframes pl-check-pop {
				0% {
					transform: translate(-50%, -50%) scale(0.45);
					opacity: 0;
				}

				65% {
					transform: translate(-50%, -50%) scale(1.14);
					opacity: 1;
				}

				100% {
					transform: translate(-50%, -50%) scale(1);
					opacity: 1;
				}
			}

			.pl-root a.added_to_cart {
				display: none !important;
			}

			.pl-pagination {
				margin-top: 24px;
				display: flex;
				flex-direction: column;
				align-items: center;
				gap: 12px;
			}

			.pl-pagination p {
				margin: 0;
				font-size: 12px;
				color: #6e7785;
				font-weight: 700;
			}

			.pl-progress {
				width: min(310px, 100%);
				height: 6px;
				border-radius: 999px;
				background: var(--pl-surface-highest);
				overflow: hidden;
			}

			.pl-progress-fill {
				height: 100%;
				background: linear-gradient(135deg, var(--pl-primary-2) 0%, var(--pl-primary) 100%);
			}

			.pl-more-btn {
				display: inline-flex;
				align-items: center;
				justify-content: center;
				min-width: 220px;
				padding: 10px 18px;
				border-radius: 999px;
				font-size: 13px;
				font-weight: 800;
				text-decoration: none;
				border: 0;
				color: #2f3e50;
				background: #dfe5ec;
			}

			.pl-more-btn:hover {
				background: #d3dbe4;
			}

			.pl-more-btn[aria-disabled="true"] {
				opacity: 0.62;
				cursor: default;
				pointer-events: none;
			}

			.pl-mobile-drawer {
				position: fixed;
				inset: 0;
				background: rgba(25, 28, 30, 0.45);
				display: none;
				z-index: 9998;
			}

			.pl-mobile-drawer.is-open {
				display: block;
			}

			.pl-mobile-sheet {
				position: absolute;
				left: 0;
				right: 0;
				bottom: 0;
				max-height: 82vh;
				overflow: auto;
				padding: 14px;
				background: #fff;
				border-radius: 16px 16px 0 0;
				box-shadow: 0 -24px 44px -28px rgba(25, 28, 30, 0.45);
			}

			.pl-mobile-sheet-top {
				display: flex;
				align-items: center;
				justify-content: space-between;
				gap: 8px;
				margin-bottom: 10px;
				position: sticky;
				top: 0;
				z-index: 2;
				background: #fff;
				padding-bottom: 8px;
			}

			.pl-mobile-close {
				border: 0;
				border-radius: 999px;
				padding: 8px 12px;
				background: #edf1f5;
				color: #334154;
				font-size: 12px;
				font-weight: 800;
				cursor: pointer;
			}

			.pl-mobile-sheet .pl-categories {
				margin-top: 8px;
				gap: 9px;
				padding-right: 0;
			}

			.pl-mobile-sheet .pl-categories a {
				padding: 12px 13px;
				font-size: 15px;
			}

			body.pl-no-scroll {
				overflow: hidden;
			}

			@media (max-width: 1280px) {
				.pl-grid {
					grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
				}
			}

			@media (max-width: 940px) {
				.pl-shell {
					grid-template-columns: 1fr;
					padding: 12px;
				}

				.pl-sidebar {
					display: none;
				}

				.pl-mobile-filter-wrap {
					display: block;
				}

				.pl-grid {
					grid-template-columns: repeat(2, minmax(0, 1fr));
					gap: 10px;
				}

				.pl-title {
					font-size: 17px;
				}

				.pl-price {
					font-size: 31px;
				}
			}

			@media (max-width: 640px) {
				.pl-root {
					padding: 8px;
				}

				.pl-shell {
					border-radius: 12px;
					gap: 10px;
					padding: 10px;
				}

				.pl-header h1 {
					font-size: clamp(1.45rem, 6.2vw, 2.1rem);
				}

				.pl-header p {
					font-size: 13px;
				}

				.pl-search {
					margin-top: 12px;
					display: grid;
					grid-template-columns: minmax(0, 1fr) auto;
					width: 100%;
					border-radius: 0;
					align-items: center;
					gap: 8px;
					padding: 0;
					background: transparent;
					box-shadow: none;
				}

				.pl-search-input {
					min-height: 42px;
					padding: 0 12px;
					font-size: 13px;
					background: #ffffff;
					box-shadow: inset 0 0 0 1px rgba(194, 198, 212, 0.58);
				}

				.pl-search-submit {
					width: auto;
					min-width: 86px;
					min-height: 42px;
					padding: 0 14px;
				}

				.pl-search-clear {
					grid-column: 1 / -1;
					justify-self: end;
					width: auto;
					min-height: auto;
					padding: 2px 4px;
					background: transparent;
					color: var(--pl-primary);
				}

				.pl-search-clear:hover {
					background: transparent;
					color: var(--pl-primary-2);
				}

				.pl-grid {
					grid-template-columns: repeat(2, minmax(0, 1fr));
					gap: 10px;
				}

				.pl-card {
					padding: 10px;
					gap: 8px;
				}

				.pl-qty {
					min-height: 38px;
					height: 38px;
					width: 86px;
				}

				.pl-qty-btn {
					font-size: 15px;
					width: 26px;
					flex-basis: 26px;
				}

				.pl-qty-input {
					font-size: 13px;
				}

				.pl-btn {
					font-size: 11px;
					font-weight: 800;
					padding: 10px 9px;
					min-height: 38px;
					gap: 6px;
					box-shadow: 0 10px 24px -14px rgba(0, 72, 141, 0.82);
				}

				.pl-btn-label {
					font-size: 0;
				}

				.pl-btn-label::before {
					content: 'Agregar';
					font-size: 11px;
				}

				.pl-btn-icon {
					width: 16px;
					height: 16px;
					background: rgba(255, 255, 255, 0.2);
				}

				.pl-btn-icon svg {
					width: 11px;
					height: 11px;
				}

				.pl-price {
					font-size: 24px;
				}

				.pl-price-old {
					font-size: 12px;
				}

				.pl-title {
					font-size: 16px;
				}

				.pl-carousel-btn {
					width: 24px;
					height: 24px;
					font-size: 14px;
				}
			}
