/* =========================================================================
   rl-shop.css — shop / category / tag / search archive layout.

   Layout only. The two WooCommerce traps are ALREADY neutralised sitewide in
   rl-base.css and must NOT be duplicated here:
     (1) ul.products::before/::after clearfix -> content:none  (rl-base.css:334)
     (2) .rl-card-cta tripled-selector button skin             (rl-base.css:304)
   /cart/ loads rl-base but NOT this sheet, so a copy here would leave the
   cart's cross-sell cards repainted grey.
   ====================================================================== */

.rl-shop{padding:clamp(1.5rem,4vw,3rem) 0 clamp(3rem,7vw,5rem)}

.rl-shop__inner{
	width:min(1900px,100% - 2rem);
	margin-inline:auto;
	display:grid;
	grid-template-columns:minmax(0,1fr);
	gap:clamp(1.5rem,3vw,2.5rem);
}
@media (min-width:1024px){
	.rl-shop__inner{grid-template-columns:250px minmax(0,1fr)}
}

/* ---------- left rail ---------- */
.rl-shop__rail{min-width:0}
.rl-shop__railtitle{
	font-family:var(--font-heading);
	font-weight:900;
	text-transform:uppercase;
	letter-spacing:.1em;
	font-size:1.25rem;
	margin:0 0 1.25rem;
	color:hsl(var(--foreground));
}
.rl-shop__block{margin-bottom:2rem}
.rl-shop__blocktitle{
	font-family:var(--font-body);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.18em;
	font-size:.6875rem;
	margin:0 0 .625rem;
	color:hsl(var(--muted-foreground));
}

.rl-shop__search{display:flex;flex-direction:column;gap:.5rem}
.rl-shop__search input[type=search]{
	width:100%;
	border:2px solid hsl(var(--foreground));
	background:hsl(var(--background));
	color:hsl(var(--foreground));
	padding:.5rem .625rem;
	font-family:var(--font-body);
	font-size:.875rem;
	border-radius:0;
}
.rl-shop__find{
	border:2px solid hsl(var(--foreground));
	background:hsl(var(--muted));
	color:hsl(var(--foreground));
	font-family:var(--font-button);
	text-transform:uppercase;
	letter-spacing:.18em;
	font-size:.6875rem;
	padding:.5rem .75rem;
	cursor:pointer;
	border-radius:0;
	transition:background .15s ease,color .15s ease;
}
.rl-shop__find:hover{background:hsl(var(--foreground));color:hsl(var(--background))}

.rl-shop__list{list-style:none;margin:0;padding:0;border:2px solid hsl(var(--foreground))}
.rl-shop__item + .rl-shop__item{border-top:2px solid hsl(var(--foreground))}
.rl-shop__item a{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:.5rem;
	padding:.5rem .625rem;
	text-decoration:none;
	color:hsl(var(--foreground));
	font-family:var(--font-body);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:.08em;
	font-size:.6875rem;
	line-height:1.3;
}
.rl-shop__item a:hover{background:hsl(var(--muted))}
/* Selected state is the source's own inverted treatment, not a colour. */
.rl-shop__item.is-active a{background:hsl(var(--foreground));color:hsl(var(--background))}
.rl-shop__label{
	min-width:0;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.rl-shop__ord{
	flex:none;
	font-variant-numeric:tabular-nums;
	opacity:.55;
	font-size:.625rem;
}

/* Woo's ordering select, restyled into the house system. */
.rl-shop__block .woocommerce-ordering{margin:0}
.rl-shop__block .woocommerce-ordering select{
	width:100%;
	border:2px solid hsl(var(--foreground));
	background:hsl(var(--background));
	color:hsl(var(--foreground));
	padding:.5rem .625rem;
	font-family:var(--font-body);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:.08em;
	font-size:.6875rem;
	border-radius:0;
}

/* ---------- main column ---------- */
.rl-shop__main{min-width:0}
.rl-shop__head{
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:1rem;
	flex-wrap:wrap;
	margin-bottom:clamp(1.25rem,3vw,2rem);
}
.rl-shop__title{
	font-family:var(--font-heading);
	font-weight:900;
	text-transform:uppercase;
	letter-spacing:.02em;
	font-size:clamp(1.75rem,4vw,2.75rem);
	line-height:1.05;
	margin:0;
	color:hsl(var(--foreground));
}
.rl-shop__count{
	margin:0;
	font-family:var(--font-body);
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:.18em;
	font-size:.6875rem;
	font-variant-numeric:tabular-nums;
	color:hsl(var(--muted-foreground));
}

/* ---------- the grid ----------
   ⚠ The ::before/::after clearfix that would occupy cell 1 is killed in
   rl-base.css. If a card ever appears one cell to the right with an empty
   top-left slot, that rule has been lost — assert firstCell.offsetLeft === 0.
   -------------------------------------------------------------------- */
.rl-shop__main ul.products{
	list-style:none;
	margin:0;
	padding:0;
	display:grid;
	grid-template-columns:repeat(1,minmax(0,1fr));
	gap:clamp(1rem,2vw,1.5rem);
}
@media (min-width:640px){
	.rl-shop__main ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){
	.rl-shop__main ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.rl-shop__main ul.products li.product,
.rl-shop__cell{
	list-style:none;
	margin:0;
	padding:0;
	width:auto;
	float:none;   /* Woo ships float:left + width:22.05% at some breakpoints */
	clear:none;
	min-width:0;
}
.rl-shop__cell::before,
.rl-shop__cell::after{content:none;display:none}

/* ---------- empty state (bulk-special is empty at source, by design) ---- */
.rl-shop__empty{
	border:2px solid hsl(var(--foreground));
	box-shadow:6px 6px 0 0 rgba(0,0,0,1);
	padding:clamp(1.5rem,4vw,2.5rem);
	background:hsl(var(--background));
}
.rl-shop__empty h2{
	font-family:var(--font-heading);
	font-weight:900;
	text-transform:uppercase;
	letter-spacing:.02em;
	margin:0 0 .5rem;
	font-size:1.375rem;
}
.rl-shop__empty p{margin:0 0 1.25rem;color:hsl(var(--muted-foreground))}

/* ---------- pagination ---------- */
.rl-shop__main .woocommerce-pagination{margin:clamp(2rem,5vw,3rem) 0 0;text-align:center}
.rl-shop__main .woocommerce-pagination ul{
	display:inline-flex;
	flex-wrap:wrap;
	gap:.5rem;
	list-style:none;
	margin:0;
	padding:0;
	border:0;
}
.rl-shop__main .woocommerce-pagination ul li{border:0;margin:0;overflow:visible}
.rl-shop__main .woocommerce-pagination a.page-numbers,
.rl-shop__main .woocommerce-pagination span.page-numbers{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:2.25rem;
	height:2.25rem;
	padding:0 .5rem;
	border:2px solid hsl(var(--foreground));
	background:hsl(var(--background));
	color:hsl(var(--foreground));
	font-family:var(--font-body);
	font-weight:700;
	font-size:.8125rem;
	font-variant-numeric:tabular-nums;
	text-decoration:none;
	border-radius:0;
}
.rl-shop__main .woocommerce-pagination a.page-numbers:hover{background:hsl(var(--muted))}
.rl-shop__main .woocommerce-pagination span.page-numbers.current{
	background:hsl(var(--foreground));
	color:hsl(var(--background));
}

/* Woo's own "showing x of y" is rebuilt in .rl-shop__head. */
.rl-shop__main .woocommerce-result-count{display:none}

.rl-sr-only{
	position:absolute;width:1px;height:1px;padding:0;margin:-1px;
	overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
