/* =========================================================================
   rl-product.css — single product page.

   ⚠ TRAP: `.woocommerce div.product div.summary{float:right;width:48%}` from
   woocommerce-layout.css squeezes the info column to ~269px inside its own
   560px grid track. A FLOAT is ignored inside grid but the PERCENTAGE is not,
   so the column silently collapses while the markup stays perfect. Same defect
   class as the account sidebar collapsing to 78px from
   `.woocommerce-MyAccount-navigation{width:30%}`. Neutralised below and
   MEASURED in tools/verify-product.py — never assumed.
   ====================================================================== */

.rl-pdp{padding:clamp(1.5rem,4vw,3rem) 0 clamp(3rem,7vw,5rem)}
.rl-pdp__inner{width:min(1900px,100% - 2rem);margin-inline:auto}

/* ---------- breadcrumb ---------- */
.rl-pdp__crumbs{
	display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;
	font-family:var(--font-body);font-weight:600;
	text-transform:uppercase;letter-spacing:.14em;font-size:.625rem;
	color:hsl(var(--muted-foreground));
	margin-bottom:clamp(1rem,3vw,2rem);
}
.rl-pdp__crumbs a{color:inherit;text-decoration:none}
.rl-pdp__crumbs a:hover{color:hsl(var(--foreground));text-decoration:underline}
.rl-pdp__crumbcur{color:hsl(var(--foreground))}

/* ---------- layout ---------- */
.rl-pdp__grid{
	display:grid;
	grid-template-columns:minmax(0,1fr);
	gap:clamp(1.5rem,4vw,3rem);
	align-items:start;
}
@media (min-width:900px){
	.rl-pdp__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}

/* ⚠ THE FIX. float:none alone is not enough — the 48% width is what actually
   collapses the column inside a grid track. Both must go, and the selector has
   to outrank `.woocommerce div.product div.summary` (0,3,0). */
.woocommerce div.product .rl-pdp__summary,
.rl-pdp .rl-pdp__summary,
.rl-pdp__grid > .rl-pdp__summary{
	float:none;
	width:auto;
	max-width:none;
	min-width:0;
	margin:0;
	clear:none;
}
.woocommerce div.product .rl-pdp__media,
.rl-pdp .rl-pdp__media{float:none;width:auto;margin:0;min-width:0}

/* Kill the clearfix-as-grid-item on the PDP wrapper too — this pseudo-element
   pattern has already occupied cell 1 twice on this build. */
.rl-pdp__grid::before,.rl-pdp__grid::after,
.rl-pdp::before,.rl-pdp::after{content:none;display:none}

/* ---------- media ---------- */
.rl-pdp__media{border:2px solid hsl(var(--foreground));background:hsl(var(--background));padding:1rem}
.rl-pdp__img{display:block;width:100%;height:auto;max-width:100%}
.rl-pdp__img--placeholder{
	display:grid;place-items:center;aspect-ratio:1;
	background:hsl(var(--muted));
	font-family:var(--font-body);text-transform:uppercase;
	letter-spacing:.18em;font-size:.6875rem;color:hsl(var(--muted-foreground));
}
.rl-pdp__thumbs{
	list-style:none;margin:1rem 0 0;padding:0;
	display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;
}
.rl-pdp__thumbs::before,.rl-pdp__thumbs::after{content:none;display:none}
.rl-pdp__thumbs img{display:block;width:100%;height:auto;border:2px solid hsl(var(--foreground))}

/* ---------- summary ---------- */
.rl-pdp__entry{
	margin:0 0 .5rem;
	font-family:var(--font-body);font-weight:600;
	text-transform:uppercase;letter-spacing:.14em;font-size:.625rem;
	color:hsl(var(--muted-foreground));
	font-variant-numeric:tabular-nums;
}
.rl-pdp__title{
	font-family:var(--font-heading);font-weight:900;
	text-transform:uppercase;letter-spacing:.01em;
	font-size:clamp(1.75rem,4vw,3rem);line-height:1.02;
	margin:0 0 .75rem;color:hsl(var(--foreground));
}
.rl-pdp__collection{margin:0 0 1rem;font-size:.8125rem}
.rl-pdp__collection a{color:hsl(var(--foreground));text-decoration:underline}
.rl-pdp__price{
	font-family:var(--font-heading);font-weight:900;
	font-size:clamp(1.5rem,3vw,2.25rem);
	font-variant-numeric:tabular-nums;
	margin:0 0 1.25rem;color:hsl(var(--foreground));
}
.rl-pdp__price .woocommerce-Price-amount{white-space:nowrap}
.rl-pdp__desc{margin:0 0 1.5rem;line-height:1.6;color:hsl(var(--foreground))}
.rl-pdp__desc p{margin:0 0 .75rem}

.rl-pdp__lab{margin:0 0 1.5rem}

/* ---------- add to cart ---------- */
.rl-pdp__cart{
	border:2px solid hsl(var(--foreground));
	box-shadow:6px 6px 0 0 rgba(0,0,0,1);
	padding:clamp(1rem,2.5vw,1.5rem);
	background:hsl(var(--background));
	margin-bottom:1.5rem;
}
.rl-pdp__cart form.cart{margin:0;display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}
.rl-pdp__cart form.cart::before,.rl-pdp__cart form.cart::after{content:none;display:none}
.rl-pdp__cart .quantity{display:flex;align-items:center}
.rl-pdp__cart .quantity input.qty{
	width:5rem;padding:.625rem .5rem;text-align:center;
	border:2px solid hsl(var(--foreground));border-radius:0;
	background:hsl(var(--background));color:hsl(var(--foreground));
	font-family:var(--font-body);font-weight:700;font-variant-numeric:tabular-nums;
}
.rl-pdp__cart button.single_add_to_cart_button{
	flex:1 1 12rem;
	border:2px solid hsl(var(--foreground));
	background:hsl(var(--foreground));
	color:hsl(var(--background));
	font-family:var(--font-button);
	text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;
	padding:.75rem 1.25rem;border-radius:0;cursor:pointer;
	box-shadow:4px 4px 0 0 rgba(0,0,0,1);
	transition:transform .12s ease,box-shadow .12s ease;
}
.rl-pdp__cart button.single_add_to_cart_button:hover{box-shadow:6px 6px 0 0 rgba(0,0,0,1)}
.rl-pdp__cart button.single_add_to_cart_button:active{transform:translate(4px,4px);box-shadow:none}

/* variation selects */
.rl-pdp__cart table.variations{width:100%;margin:0 0 1rem;border:0;border-collapse:collapse}
.rl-pdp__cart table.variations th,
.rl-pdp__cart table.variations td{border:0;padding:0 0 .625rem;text-align:left;vertical-align:middle}
.rl-pdp__cart table.variations th.label label{
	font-family:var(--font-body);font-weight:700;
	text-transform:uppercase;letter-spacing:.14em;font-size:.625rem;
	color:hsl(var(--muted-foreground));
}
.rl-pdp__cart table.variations select{
	width:100%;padding:.5rem .625rem;border-radius:0;
	border:2px solid hsl(var(--foreground));
	background:hsl(var(--background));color:hsl(var(--foreground));
	font-family:var(--font-body);font-weight:600;font-size:.8125rem;
}
.rl-pdp__cart .woocommerce-variation-price{
	font-family:var(--font-heading);font-weight:900;
	font-size:1.25rem;font-variant-numeric:tabular-nums;
	margin-bottom:.75rem;
}
.rl-pdp__cart .reset_variations{
	font-size:.625rem;text-transform:uppercase;letter-spacing:.14em;
	color:hsl(var(--muted-foreground));
}
/* HARD RULE 10: nothing here may render an out-of-stock state. */
.rl-pdp__cart .stock.out-of-stock,
.rl-pdp__cart .wc-no-matching-variations{display:none}

/* ---------- meta ---------- */
.rl-pdp__meta{
	margin:0;display:grid;grid-template-columns:auto 1fr;
	gap:.375rem 1rem;font-size:.75rem;
}
.rl-pdp__meta dt{
	font-family:var(--font-body);font-weight:700;
	text-transform:uppercase;letter-spacing:.14em;font-size:.625rem;
	color:hsl(var(--muted-foreground));
}
.rl-pdp__meta dd{margin:0;color:hsl(var(--foreground))}

/* ---------- related ---------- */
.rl-pdp .related.products{margin-top:clamp(3rem,7vw,5rem)}
.rl-pdp .related.products::before,.rl-pdp .related.products::after{content:none;display:none}
.rl-pdp .related.products > h2{
	font-family:var(--font-heading);font-weight:900;
	text-transform:uppercase;letter-spacing:.02em;
	font-size:clamp(1.25rem,3vw,1.875rem);
	margin:0 0 clamp(1rem,3vw,1.75rem);
}
.rl-pdp .related.products 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-pdp .related.products ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.rl-pdp .related.products ul.products{grid-template-columns:repeat(4,minmax(0,1fr))}}
.rl-pdp .related.products ul.products li.product{float:none;width:auto;margin:0;min-width:0}
.rl-pdp .related.products ul.products::before,
.rl-pdp .related.products ul.products::after{content:none;display:none}
