/* ===================================   REUNION KING - PRODUCTS PAGE CSS   Extends main.css   =================================== *//* ===================================   BREADCRUMB   =================================== */.breadcrumb {	display: flex;	align-items: center;	gap: 0.5rem;	font-size: 0.875rem;	margin-bottom: var(--spacing-md);	flex-wrap: wrap;}.breadcrumb a {	color: var(--color-gray-400);	transition: color var(--transition-fast);}.breadcrumb a:hover {	color: var(--color-accent);}.breadcrumb-sep {	color: var(--color-gray-300);	font-size: 0.75rem;}.breadcrumb-current {	color: var(--color-white);	font-weight: 600;}/* ===================================   CATEGORY HERO   =================================== */.category-hero {	background: linear-gradient(135deg, var(--color-primary) 0%, #0f2557 100%);	color: var(--color-white);	padding: var(--spacing-xl) 0 var(--spacing-lg);	position: relative;	overflow: hidden;}.category-hero::before {	content: "";	position: absolute;	top: -50%;	right: -10%;	width: 500px;	height: 500px;	background: radial-gradient(circle, rgba(220, 38, 38, 0.1) 0%, transparent 70%);	pointer-events: none;}.category-hero::after {	content: "";	position: absolute;	bottom: -30%;	left: -5%;	width: 400px;	height: 400px;	background: radial-gradient(circle, rgba(59, 130, 246, 0.08) 0%, transparent 70%);	pointer-events: none;}.category-title {	font-size: 2.75rem;	font-weight: 800;	color: var(--color-white);	margin-bottom: var(--spacing-sm);	position: relative;	z-index: 1;}.category-description {	font-size: 1.1rem;	color: rgba(255, 255, 255, 0.8);	max-width: 700px;	line-height: 1.7;	position: relative;	z-index: 1;	margin-bottom: 0;}/* ===================================   CATEGORY TABS   =================================== */.category-tabs-wrapper {	background-color: var(--color-white);	border-bottom: 2px solid var(--color-gray-200);	position: sticky;	top: 72px; /* Below header */	z-index: 900;}.category-tabs {	display: flex;	gap: 0;	overflow-x: auto;	scrollbar-width: none;	-ms-overflow-style: none;}.category-tabs::-webkit-scrollbar {	display: none;}.category-tab {	display: flex;	align-items: center;	gap: 0.5rem;	padding: 1rem 1.5rem;	color: var(--color-gray-600);	font-weight: 600;	font-family: var(--font-heading);	font-size: 0.9375rem;	white-space: nowrap;	border-bottom: 3px solid transparent;	transition: all var(--transition-fast);	text-decoration: none;}.category-tab:hover {	color: var(--color-primary);	background-color: var(--color-gray-50);}.category-tab.active {	color: var(--color-accent);	border-bottom-color: var(--color-accent);}.category-tab svg {	opacity: 0.6;}.category-tab.active svg {	opacity: 1;}/* ===================================   PRODUCTS TOOLBAR   =================================== */.products-section {	padding: var(--spacing-xl) 0;	background-color: var(--color-gray-50);	min-height: 60vh;}.products-toolbar {	display: flex;	justify-content: space-between;	align-items: center;	margin-bottom: var(--spacing-lg);	padding: var(--spacing-sm) 0;	flex-wrap: wrap;	gap: var(--spacing-sm);}.product-count {	color: var(--color-gray-600);	font-size: 0.9375rem;}.product-count span {	font-weight: 700;	color: var(--color-primary);}.toolbar-controls {	display: flex;	align-items: center;	gap: var(--spacing-md);}.sort-control {	display: flex;	align-items: center;	gap: 0.5rem;}.sort-control label {	font-size: 0.875rem;	color: var(--color-gray-600);	white-space: nowrap;}.sort-select {	padding: 0.5rem 2rem 0.5rem 0.75rem;	border: 1px solid var(--color-gray-300);	border-radius: var(--radius-md);	font-size: 0.875rem;	color: var(--color-gray-700);	background-color: var(--color-white);	cursor: pointer;	appearance: none;	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%234B5563'/%3E%3C/svg%3E");	background-repeat: no-repeat;	background-position: right 0.75rem center;}.sort-select:focus {	outline: none;	border-color: var(--color-primary);	box-shadow: 0 0 0 3px rgba(30, 58, 138, 0.1);}/* ===================================   PRODUCTS GRID   =================================== */.products-grid {	display: grid;	grid-template-columns: repeat(4, 1fr);	gap: var(--spacing-lg);}/* ===================================   PRODUCT LISTING CARD (plc-)   =================================== */.product-listing-card {	background-color: var(--color-white);	border-radius: var(--radius-lg);	overflow: hidden;	box-shadow: var(--shadow-md);	transition: all var(--transition-base);	display: flex;	flex-direction: column;}.product-listing-card:hover {	transform: translateY(-4px);	box-shadow: var(--shadow-xl);}/* Image Section */.plc-image-wrapper {	position: relative;	aspect-ratio: 5 / 6;	overflow: hidden;	background-color: var(--color-gray-100);}.plc-image {	width: 100%;	height: 100%;	object-fit: cover;	transition: transform var(--transition-slow);}.product-listing-card:hover .plc-image {	transform: scale(1.04);}/* Badges */.plc-badges {	position: absolute;	top: var(--spacing-sm);	left: var(--spacing-sm);	display: flex;	flex-direction: column;	gap: 0.375rem;	z-index: 2;}.plc-badge {	padding: 0.3rem 0.7rem;	border-radius: 50px;	font-size: 0.7rem;	font-weight: 700;	font-family: var(--font-heading);	text-transform: uppercase;	letter-spacing: 0.5px;}.plc-badge-bestseller {	background-color: var(--color-accent);	color: var(--color-white);}.plc-badge-new {	background-color: var(--color-success);	color: var(--color-white);}.plc-badge-premium {	background-color: var(--color-primary);	color: var(--color-white);}.plc-badge-value {	background-color: var(--color-warning);	color: var(--color-gray-900);}/* Quick View Button - Upper Right */.plc-quickview-btn {	position: absolute;	top: var(--spacing-sm);	right: var(--spacing-sm);	display: flex;	align-items: center;	gap: 0.375rem;	padding: 0.4rem 0.75rem;	background-color: rgba(255, 255, 255, 0.95);	color: var(--color-primary);	border: none;	border-radius: 50px;	font-size: 0.75rem;	font-weight: 600;	font-family: var(--font-heading);	cursor: pointer;	opacity: 0;	transform: translateY(-5px);	transition: all var(--transition-base);	z-index: 3;	box-shadow: var(--shadow-md);}.product-listing-card:hover .plc-quickview-btn {	opacity: 1;	transform: translateY(0);}.plc-quickview-btn:hover {	background-color: var(--color-accent);	color: var(--color-white);}/* Color Count - Bottom Left of Image */.plc-color-count {	position: absolute;	bottom: var(--spacing-sm);	left: var(--spacing-sm);	background-color: rgba(0, 0, 0, 0.7);	color: var(--color-white);	padding: 0.25rem 0.625rem;	border-radius: 50px;	font-size: 0.7rem;	font-weight: 600;	font-family: var(--font-heading);	z-index: 2;}/* Info Section */.plc-info {	padding: var(--spacing-md);	display: flex;	flex-direction: column;	flex: 1;}.plc-manufacturer {	font-size: 0.75rem;	font-weight: 600;	color: var(--color-accent);	text-transform: uppercase;	letter-spacing: 0.75px;	margin-bottom: 0.25rem;	font-family: var(--font-heading);}.plc-name {	font-size: 1.2rem;	font-weight: 700;	color: var(--color-primary);	margin-bottom: 0.25rem;	line-height: 1.3;}.plc-model {	font-size: 1.1rem;	color: var(--color-gray-400);	margin-bottom: 0.5rem;}.plc-description {	font-size: 0.85rem;	color: var(--color-gray-600);	line-height: 1.5;	margin-bottom: var(--spacing-sm);}/* Color Swatches */.plc-swatches {	display: flex;	align-items: center;	gap: 0.375rem;	margin-bottom: var(--spacing-sm);	flex-wrap: wrap;}.plc-swatch {	width: 18px;	height: 18px;	border-radius: 50%;	display: inline-block;	cursor: pointer;	transition: transform var(--transition-fast);	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);}.plc-swatch:hover {	transform: scale(1.3);}.plc-swatch-more {	font-size: 0.7rem;	font-weight: 600;	color: var(--color-gray-500);	padding-left: 0.25rem;}/* Pricing */.plc-pricing {	margin-bottom: var(--spacing-sm);}.plc-price-main {	display: flex;	align-items: baseline;	gap: 0.25rem;}.plc-price-label {	font-size: 0.75rem;	color: var(--color-gray-400);}.plc-price {	font-size: 1.5rem;	font-weight: 800;	color: var(--color-accent);	font-family: var(--font-heading);}.plc-price-unit {	font-size: 0.8rem;	color: var(--color-gray-500);}.plc-price-bulk {	font-size: 0.75rem;	color: var(--color-success);	font-weight: 600;	margin-top: 0.125rem;}/* Sizes */.plc-sizes {	font-size: 0.8rem;	color: var(--color-gray-500);	margin-bottom: var(--spacing-md);}.plc-size-label {	font-weight: 600;	color: var(--color-gray-600);}/* CTA */.plc-cta {	margin-top: auto;	font-size: 0.9375rem;}/* ===================================   BULK PRICING BANNER   =================================== */.bulk-pricing-banner {	background: linear-gradient(135deg, #0f2557 0%, var(--color-primary) 100%);	padding: var(--spacing-xl) 0;	color: var(--color-white);}.bulk-pricing-content {	display: grid;	grid-template-columns: 1fr 1fr;	gap: var(--spacing-xl);	align-items: center;}.bulk-pricing-text h2 {	color: var(--color-white);	font-size: 2rem;	margin-bottom: var(--spacing-sm);}.bulk-pricing-text p {	color: rgba(255, 255, 255, 0.7);	font-size: 1.1rem;	margin-bottom: 0;}.bulk-pricing-tiers {	display: grid;	grid-template-columns: repeat(4, 1fr);	gap: var(--spacing-sm);}.bulk-tier {	background-color: rgba(255, 255, 255, 0.08);	border: 1px solid rgba(255, 255, 255, 0.15);	border-radius: var(--radius-md);	padding: var(--spacing-md) var(--spacing-sm);	text-align: center;	display: flex;	flex-direction: column;	gap: 0.25rem;	transition: all var(--transition-base);}.bulk-tier:hover {	background-color: rgba(255, 255, 255, 0.12);	transform: translateY(-2px);}.bulk-tier-best {	background-color: rgba(220, 38, 38, 0.2);	border-color: var(--color-accent);}.bulk-tier-qty {	font-size: 1.5rem;	font-weight: 800;	font-family: var(--font-heading);	color: var(--color-white);}.bulk-tier-label {	font-size: 0.75rem;	color: rgba(255, 255, 255, 0.5);	text-transform: uppercase;	letter-spacing: 0.5px;}.bulk-tier-discount {	font-size: 0.9rem;	font-weight: 700;	color: var(--color-accent-light);	margin-top: 0.25rem;}.bulk-tier-best .bulk-tier-discount {	color: #fca5a5;}/* ===================================   QUICK VIEW MODAL   =================================== */.modal-overlay {	position: fixed;	top: 0;	left: 0;	width: 100%;	height: 100%;	background-color: rgba(0, 0, 0, 0.6);	z-index: 2000;	display: flex;	align-items: center;	justify-content: center;	padding: var(--spacing-md);	opacity: 0;	visibility: hidden;	transition: all var(--transition-base);	backdrop-filter: blur(4px);}.modal-overlay.active {	opacity: 1;	visibility: visible;}.modal-container {	background-color: var(--color-white);	border-radius: var(--radius-xl);	max-width: 900px;	width: 100%;	max-height: 90vh;	overflow-y: auto;	position: relative;	transform: scale(0.95) translateY(20px);	transition: all var(--transition-base);	box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);}.modal-overlay.active .modal-container {	transform: scale(1) translateY(0);}/* Modal Loading Spinner */.modal-loading {	display: flex;	flex-direction: column;	align-items: center;	justify-content: center;	padding: var(--spacing-2xl);	gap: var(--spacing-md);	min-height: 300px;}.modal-spinner {	width: 40px;	height: 40px;	border: 3px solid var(--color-gray-200);	border-top-color: var(--color-accent);	border-radius: 50%;	animation: spin 0.8s linear infinite;}@keyframes spin {	to {		transform: rotate(360deg);	}}.modal-loading p {	font-size: 0.9rem;	color: var(--color-gray-500);	margin: 0;}.modal-close {	position: absolute;	top: var(--spacing-sm);	right: var(--spacing-sm);	background: var(--color-gray-100);	border: none;	border-radius: 50%;	width: 40px;	height: 40px;	display: flex;	align-items: center;	justify-content: center;	cursor: pointer;	z-index: 10;	transition: all var(--transition-fast);	color: var(--color-gray-600);}.modal-close:hover {	background-color: var(--color-accent);	color: var(--color-white);}.modal-body {	display: grid;	grid-template-columns: 1fr 1fr;	gap: 0;}/* Modal Image Section */.modal-image-section {	padding: var(--spacing-lg);	background-color: var(--color-gray-50);	border-radius: var(--radius-xl) 0 0 var(--radius-xl);}.modal-main-image {	aspect-ratio: 1 / 1;	border-radius: var(--radius-md);	overflow: hidden;	margin-bottom: var(--spacing-sm);	background-color: var(--color-gray-200);}.modal-main-image img {	width: 100%;	height: 100%;	object-fit: cover;}.modal-sub-images {	display: grid;	grid-template-columns: repeat(4, 1fr);	gap: 0.5rem;}.modal-sub-images img {	aspect-ratio: 1 / 1;	border-radius: var(--radius-sm);	object-fit: cover;	cursor: pointer;	border: 2px solid transparent;	transition: all var(--transition-fast);	width: 100%;}.modal-sub-images img:hover,.modal-sub-images img.active {	border-color: var(--color-accent);}/* Modal Details Section */.modal-details-section {	padding: var(--spacing-lg);	overflow-y: auto;	max-height: 90vh;}.modal-manufacturer {	font-size: 0.8rem;	font-weight: 700;	color: var(--color-accent);	text-transform: uppercase;	letter-spacing: 1px;	margin-bottom: 0.25rem;}.modal-product-name {	font-size: 1.75rem;	color: var(--color-primary);	margin-bottom: 0.375rem;}.modal-model {	font-size: 0.875rem;	color: var(--color-gray-500);	margin-bottom: var(--spacing-sm);}.modal-rating {	display: flex;	align-items: center;	gap: 0.5rem;	margin-bottom: var(--spacing-md);	padding-bottom: var(--spacing-md);	border-bottom: 1px solid var(--color-gray-200);}.modal-stars {	color: #fbbf24;	font-size: 1rem;}.modal-rating-text {	font-size: 0.8rem;	color: var(--color-gray-500);	font-weight: 500;}/* Highlights */.modal-highlights {	margin-bottom: var(--spacing-md);}.modal-highlights h4 {	font-size: 0.9rem;	font-weight: 700;	color: var(--color-primary);	margin-bottom: 0.75rem;}.modal-highlights ul {	list-style: none;	padding: 0;	display: grid;	grid-template-columns: 1fr 1fr;	gap: 0.375rem;}.modal-highlights ul li {	font-size: 0.8rem;	color: var(--color-gray-600);	padding-left: 1.25rem;	position: relative;	line-height: 1.5;}.modal-highlights ul li::before {	content: "✓";	position: absolute;	left: 0;	color: var(--color-success);	font-weight: 700;}/* Pricing Table */.modal-pricing {	margin-bottom: var(--spacing-md);}.modal-pricing h4 {	font-size: 0.9rem;	font-weight: 700;	color: var(--color-primary);	margin-bottom: 0.75rem;}.modal-pricing-table {	width: 100%;	border-collapse: collapse;	font-size: 0.8rem;}.modal-pricing-table th {	background-color: var(--color-primary);	color: var(--color-white);	padding: 0.5rem 0.625rem;	text-align: center;	font-weight: 600;	font-family: var(--font-heading);	font-size: 0.75rem;}.modal-pricing-table th:first-child {	border-radius: var(--radius-sm) 0 0 0;	text-align: left;}.modal-pricing-table th:last-child {	border-radius: 0 var(--radius-sm) 0 0;}.modal-pricing-table td {	padding: 0.5rem 0.625rem;	text-align: center;	border-bottom: 1px solid var(--color-gray-200);	color: var(--color-gray-700);}.modal-pricing-table td:first-child {	text-align: left;	font-weight: 600;	color: var(--color-gray-600);	font-size: 0.75rem;}.modal-pricing-table tbody tr:last-child td {	border-bottom: none;	font-weight: 700;	color: var(--color-accent);}.modal-pricing-table tbody tr:hover {	background-color: var(--color-gray-50);}/* Colors */.modal-colors {	margin-bottom: var(--spacing-md);}.modal-colors h4 {	font-size: 0.9rem;	font-weight: 700;	color: var(--color-primary);	margin-bottom: 0.75rem;}.modal-color-count {	font-weight: 400;	color: var(--color-gray-500);}.modal-color-swatches {	display: flex;	flex-wrap: wrap;	gap: 0.5rem;}.modal-color-swatch {	width: 26px;	height: 26px;	border-radius: 50%;	border: 2px solid transparent;	cursor: default;	position: relative;	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);	transition: all var(--transition-fast);}.modal-color-swatch:hover {	transform: scale(1.2);}.modal-color-swatch[title]::after {	content: attr(title);	position: absolute;	bottom: calc(100% + 6px);	left: 50%;	transform: translateX(-50%);	background-color: var(--color-gray-900);	color: var(--color-white);	padding: 0.25rem 0.5rem;	border-radius: 4px;	font-size: 0.65rem;	white-space: nowrap;	opacity: 0;	pointer-events: none;	transition: opacity var(--transition-fast);}.modal-color-swatch:hover::after {	opacity: 1;}/* Sizes Info */.modal-sizes-info {	margin-bottom: var(--spacing-md);}.modal-sizes-info h4 {	font-size: 0.9rem;	font-weight: 700;	color: var(--color-primary);	margin-bottom: 0.5rem;}.modal-sizes-info p {	font-size: 0.8rem;	color: var(--color-gray-600);	margin-bottom: 0;}/* Downloads */.modal-downloads {	display: flex;	gap: var(--spacing-md);	margin-bottom: var(--spacing-lg);	padding-bottom: var(--spacing-md);	border-bottom: 1px solid var(--color-gray-200);}.modal-download-link {	display: flex;	align-items: center;	gap: 0.375rem;	font-size: 0.8rem;	font-weight: 600;	color: var(--color-primary);	transition: color var(--transition-fast);}.modal-download-link:hover {	color: var(--color-accent);}/* Modal CTA */.modal-cta {	text-align: center;	font-size: 1.0625rem;	padding: 0.875rem 2rem;}/* ===================================   RESPONSIVE - PRODUCTS PAGE   =================================== */@media (max-width: 1024px) {	.products-grid {		grid-template-columns: repeat(2, 1fr);	}	.bulk-pricing-content {		grid-template-columns: 1fr;		text-align: center;	}	.bulk-pricing-tiers {		grid-template-columns: repeat(4, 1fr);	}	.modal-body {		grid-template-columns: 1fr;	}	.modal-image-section {		border-radius: var(--radius-xl) var(--radius-xl) 0 0;	}	.modal-container {		max-width: 600px;	}}@media (max-width: 768px) {	.category-title {		font-size: 2rem;	}	.category-description {		font-size: 1rem;	}	.category-tabs-wrapper {		top: 60px;	}	.category-tab {		padding: 0.75rem 1rem;		font-size: 0.85rem;	}	.products-grid {		grid-template-columns: repeat(2, 1fr);		gap: var(--spacing-md);	}	.plc-name {		font-size: 1.05rem;	}	.plc-description {		font-size: 0.8rem;	}	.bulk-pricing-tiers {		grid-template-columns: repeat(2, 1fr);	}	.bulk-pricing-text h2 {		font-size: 1.5rem;	}	.modal-highlights ul {		grid-template-columns: 1fr;	}	.modal-downloads {		flex-direction: column;		gap: var(--spacing-sm);	}	.modal-product-name {		font-size: 1.375rem;	}}@media (max-width: 480px) {	.category-hero {		padding: var(--spacing-lg) 0 var(--spacing-md);	}	.category-title {		font-size: 1.75rem;	}	.products-grid {		grid-template-columns: 1fr;		gap: var(--spacing-md);	}	.products-toolbar {		flex-direction: column;		align-items: flex-start;	}	.bulk-pricing-tiers {		grid-template-columns: repeat(2, 1fr);	}	.modal-container {		max-height: 95vh;		margin: var(--spacing-xs);		border-radius: var(--radius-lg);	}	.modal-image-section {		padding: var(--spacing-md);		border-radius: var(--radius-lg) var(--radius-lg) 0 0;	}	.modal-details-section {		padding: var(--spacing-md);	}	.modal-product-name {		font-size: 1.25rem;	}	.modal-pricing-table {		font-size: 0.7rem;	}	.modal-pricing-table th,	.modal-pricing-table td {		padding: 0.375rem 0.5rem;	}	.plc-swatch-img {		width: 24px;		height: 24px;		border-radius: 50%;		object-fit: cover;		border: 1px solid #e5e7eb;	}}/* ===================================   FITS — Adult / Youth / Ladies (October 2026)   =================================== */.plc-fits {	font-size: 0.8rem;	font-weight: 600;	color: var(--color-primary);	margin-bottom: 0.5rem;}.modal-fits {	margin-bottom: var(--spacing-md);}.modal-fits h4 {	font-size: 0.9rem;	font-weight: 700;	color: var(--color-primary);	margin-bottom: 0.75rem;}.modal-fit-buttons {	display: flex;	flex-wrap: wrap;	gap: 0.5rem;}.modal-fit-btn {	padding: 0.45rem 1.1rem;	border: 2px solid var(--color-gray-300);	border-radius: 50px;	background: var(--color-white);	color: var(--color-gray-700);	font-weight: 600;	font-size: 0.85rem;	cursor: pointer;	transition: all var(--transition-fast);}.modal-fit-btn:hover {	border-color: var(--color-primary);	color: var(--color-primary);}.modal-fit-btn.active {	background: var(--color-primary);	border-color: var(--color-primary);	color: var(--color-white);}