/* =========================================================================
   Crucial Lab: storefront styling for CrucialPeptides.com
   Edit this file to change the look. Tokens come from the Crucial Lab design system.
   ========================================================================= */

:root {
	--white: #FFFFFF;
	--mist: #F5F7FA;
	--slate-100: #F2F5F9;
	--slate-150: #EEF1F5;
	--slate-200: #E3E8EF;
	--slate-300: #C9D2DE;
	--slate-350: #D3DEEE;
	--slate-500: #6B778A;
	--slate-600: #5B6678;
	--slate-700: #4A5568;
	--slate-800: #3A4A63;
	--navy-950: #071426;
	--navy-900: #0B1B33;
	--navy-800: #12284A;
	--navy-700: #1B3A66;
	--cobalt: #1F5BFF;
	--cobalt-600: #1747D1;
	--cobalt-100: #E8EEFF;
	--blue-tint: #EEF4FF;
	--cyan: #00C2E0;
	--footer-bg: #071426;
	--footer-bar: #13243D;
	--footer-bar-over: #1A2E4B;
	--footer-accent: #00C2E0;
	--footer-accent-light: #4FD8F0;
	--footer-accent-tint: rgba(0, 194, 224, 0.2);
	--cyan-600: #00A3BF;
	--red: #E5243B;
	--red-600: #C41A2F;
	--red-100: #FDE8EB;
	--red-50: #FDF0F2;
	--mint: #13B88E;
	--mint-700: #0E9474;
	--mint-100: #E3F7F0;
	--violet: #7A5CFA;
	--copper: #C8743A;

	--font-display: "Sora", system-ui, sans-serif;
	--font-body: "IBM Plex Sans", system-ui, sans-serif;
	--font-data: "IBM Plex Mono", ui-monospace, monospace;

	--radius-sm: 6px;
	--radius-md: 8px;
	--radius-lg: 12px;
	--radius-xl: 14px;
	--radius-2xl: 18px;
	--radius-3xl: 20px;
	--radius-hero: 24px;
	--pill: 999px;

	--shadow-sm: 0 1px 2px rgba(11, 27, 51, 0.08);
	--shadow-md: 0 14px 34px rgba(11, 27, 51, 0.10);
	--shadow-lg: 0 24px 50px rgba(11, 27, 51, 0.16);
	--shadow-cta: 0 10px 24px rgba(229, 36, 59, 0.28);

	--container: calc(1240px + 2 * var(--gutter)); /* 1240px of content plus side padding, as in the mockup */
	--gutter: clamp(20px, 4vw, 48px);
	--admin-offset: var(--wp-admin--admin-bar--height, 0px);
}

/* ---------- Base ---------- */

body.cl-theme {
	background: var(--white);
	color: var(--navy-900);
	font-family: var(--font-body);
	font-size: 15.5px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-wrap: pretty;
}

.cl-theme h1, .cl-theme h2, .cl-theme h3, .cl-theme h4, .cl-theme h5, .cl-theme h6 {
	font-family: var(--font-display);
	color: var(--navy-900);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.12;
	text-wrap: balance;
}

.cl-theme h1 { font-size: clamp(36px, 4.4vw, 56px); letter-spacing: -0.035em; }
.cl-theme h2 { font-size: clamp(28px, 3.2vw, 40px); }
.cl-theme h3 { font-size: 20px; font-weight: 600; letter-spacing: -0.02em; }

.cl-theme a { color: var(--cobalt); text-decoration: none; }
.cl-theme a:hover { color: var(--cobalt-600); }
.cl-theme a:focus { outline: none; }
.cl-theme :focus-visible { outline: 2px solid var(--cobalt); outline-offset: 2px; }
::selection { background: #CFE0FF; }

.cl-theme .col-full {
	max-width: var(--container);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--gutter);
	padding-right: var(--gutter);
	box-sizing: border-box;
}

.cl-kicker {
	display: inline-block;
	font: 500 13px var(--font-data);
	letter-spacing: 0.08em;
	color: var(--cobalt);
	text-transform: uppercase;
}

/* ---------- Buttons (every button is a pill) ---------- */

.cl-theme button,
.cl-theme input[type="button"],
.cl-theme input[type="reset"],
.cl-theme input[type="submit"],
.cl-theme .button,
.cl-theme .wc-block-components-button:not(.is-link) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 0;
	border-radius: var(--pill);
	background: var(--cobalt);
	color: var(--white);
	font: 600 15px/1.2 var(--font-body);
	padding: 13px 22px;
	text-shadow: none;
	box-shadow: none;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, filter .15s ease;
}

.cl-theme button:hover,
.cl-theme input[type="submit"]:hover,
.cl-theme .button:hover,
.cl-theme .wc-block-components-button:not(.is-link):hover {
	background: var(--cobalt-600);
	color: var(--white);
}

.cl-theme button:disabled,
.cl-theme .button.disabled,
.cl-theme .button:disabled {
	opacity: .45;
	cursor: not-allowed;
}

/* The one red primary action per view. */
.cl-theme .single_add_to_cart_button,
.cl-theme .checkout-button,
.cl-theme #place_order,
.cl-theme .wc-block-cart__submit-button,
.cl-theme .wc-block-components-checkout-place-order-button,
.cl-theme .wc-block-components-button.contained {
	background: var(--red);
	box-shadow: var(--shadow-cta);
}

.cl-theme .single_add_to_cart_button:hover,
.cl-theme .checkout-button:hover,
.cl-theme #place_order:hover,
.cl-theme .wc-block-cart__submit-button:hover,
.cl-theme .wc-block-components-checkout-place-order-button:hover,
.cl-theme .wc-block-components-button.contained:hover {
	background: var(--red-600);
}

.cl-theme .button.alt.disabled { background: var(--red); }

/* ---------- Forms ---------- */

.cl-theme input[type="text"],
.cl-theme input[type="email"],
.cl-theme input[type="tel"],
.cl-theme input[type="url"],
.cl-theme input[type="password"],
.cl-theme input[type="number"],
.cl-theme input[type="search"],
.cl-theme textarea,
.cl-theme select,
.cl-theme .input-text {
	background: var(--white);
	border: 1px solid var(--slate-350);
	border-radius: var(--radius-lg);
	box-shadow: none;
	color: var(--navy-900);
	font: 15px/1.4 var(--font-body);
	padding: 12px 14px;
}

.cl-theme input:focus,
.cl-theme textarea:focus,
.cl-theme select:focus,
.cl-theme .input-text:focus {
	border-color: var(--cobalt);
	background: var(--white);
	outline: none;
	box-shadow: 0 0 0 3px rgba(31, 91, 255, 0.12);
}

.cl-theme label { font-weight: 600; color: var(--navy-900); }

/* ---------- Top bar ---------- */

.cl-topbar {
	background: var(--red-50);
	color: #8E1B2A;
	border-bottom: 1px solid #F7D4DA;
	font-size: 13px;
	font-weight: 500;
	line-height: 18px;
	padding: 9px var(--gutter);
	display: flex;
	justify-content: center;
	gap: 6px 28px;
	flex-wrap: wrap;
	text-align: center;
}

.cl-topbar span { display: inline-flex; align-items: center; gap: 8px; }
.cl-topbar i { color: var(--red); font-size: 15px; }

/* ---------- Header ---------- */

.cl-theme .site-header {
	position: sticky;
	top: var(--admin-offset);
	z-index: 100;
	padding: 0;
	margin: 0;
	background: rgba(255, 255, 255, 0.9);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--slate-200);
	background-image: none !important;
}

.cl-theme .site-header .skip-link { position: absolute; }

.cl-header__row {
	max-width: var(--container);
	margin: 0 auto;
	padding: 14px var(--gutter);
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: nowrap;
	box-sizing: border-box;
}

.cl-brand {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--navy-900);
	text-decoration: none;
}

.cl-brand:hover { color: var(--navy-900); }
.cl-theme a.cl-brand, .cl-theme a.cl-brand:visited, .cl-theme a.cl-brand:hover { color: var(--navy-900); }
.cl-theme a.cl-brand.cl-brand--dark, .cl-theme a.cl-brand.cl-brand--dark:hover { color: var(--white); }
.cl-brand .cl-logo-mark { display: block; flex: none; }

.cl-brand__word {
	font: 700 19px var(--font-display);
	letter-spacing: -0.02em;
	white-space: nowrap;
}

.cl-brand__word span { color: var(--cobalt); }
.cl-header__row .custom-logo-link img { max-height: 40px; width: auto; }

.cl-nav { flex: none; }

.cl-nav__list {
	display: flex;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cl-nav__list li { margin: 0; }

.cl-nav__list a {
	display: block;
	padding: 8px 9px;
	border-radius: var(--radius-md);
	font-size: 15px;
	font-weight: 500;
	color: var(--slate-800);
	white-space: nowrap;
	transition: background-color .15s ease, color .15s ease;
}

.cl-nav__list a:hover { background: var(--slate-100); color: var(--navy-900); }

.cl-nav__list .current-menu-item > a,
.cl-nav__list .current_page_item > a,
.cl-nav__list .current-menu-ancestor > a {
	background: var(--cobalt-100);
	color: var(--cobalt-600);
}

.cl-nav-toggle { display: none !important; }

.cl-search {
	position: relative;
	margin-left: auto;
	flex: 1 1 auto;
	max-width: 520px;
	min-width: 170px;
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--mist);
	border: 1px solid var(--slate-200);
	border-radius: var(--pill);
	padding: 4px 4px 4px 16px;
	transition: border-color .15s ease, background-color .15s ease;
}

.cl-search:focus-within { border-color: var(--cobalt); background: var(--white); }
.cl-search > i { color: var(--slate-500); font-size: 17px; flex: none; }

.cl-theme .cl-search input[type="search"] {
	flex: 1;
	min-width: 80px;
	border: 0;
	outline: none;
	background: transparent;
	box-shadow: none;
	padding: 7px 0;
	font-size: 14.5px;
}

.cl-theme .cl-search button {
	flex: none;
	padding: 8px 18px;
	font-size: 14px;
}

.cl-account,
.cl-cart-link {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 8px;
	border-radius: 10px;
	font: 600 14.5px var(--font-body);
	color: var(--navy-900);
	white-space: nowrap;
	transition: background-color .15s ease, color .15s ease;
}

.cl-theme .cl-account { color: var(--navy-900); }
.cl-account:hover, .cl-cart-link:hover { background: var(--slate-100); color: var(--cobalt); }
.cl-account i { font-size: 20px; color: var(--cobalt); }

.cl-theme .cl-cart-link { gap: 8px; padding: 10px 14px; color: var(--navy-900); }
.cl-cart-link i { font-size: 22px; color: var(--cobalt); }

.cl-cart-count {
	display: inline-block;
	color: var(--red);
	font-weight: 700;
	font-size: 19px;
	line-height: 1;
}

.cl-cart-link.is-bumped .cl-cart-count { animation: cl-bump .45s ease; }

@media (max-width: 1080px) {
	.cl-account span { display: none; }
}

/* One row: brand + menu, search filling the space up to account + cart. */
.cl-theme .cl-header__row { display: flex; flex-wrap: nowrap; gap: 16px; }
.cl-header__left,
.cl-header__right { flex: none; display: flex; align-items: center; gap: 12px; }
.cl-header__right { gap: 4px; }
.cl-theme .cl-search { flex: 1 1 auto; width: auto; min-width: 150px; max-width: none; margin: 0; box-sizing: border-box; }

@media (max-width: 900px) {
	.cl-header__left, .cl-header__right { display: contents; }
	.cl-theme .cl-header__row { flex-wrap: wrap; row-gap: 10px; gap: 10px; }
	.cl-nav-toggle {
		display: inline-flex !important;
		order: 5;
		background: var(--mist) !important;
		color: var(--navy-900) !important;
		padding: 10px 12px !important;
		font-size: 20px !important;
	}
	.cl-nav { order: 10; flex: 1 0 100%; display: none; }
	.cl-nav.is-open { display: block; }
	.cl-nav__list { flex-direction: column; padding: 6px 0 4px; border-top: 1px solid var(--slate-200); }
	.cl-nav__list a { padding: 12px 8px; font-size: 16px; }
	.cl-theme .cl-search { order: 1; }
	.cl-account { order: 2; }
	.cl-cart-link { order: 3; }
}

/* Phones: not enough room, so search gets its own row. */
@media (max-width: 600px) {
	.cl-theme .cl-search { order: 9; flex: 1 0 100%; }
	.cl-account { margin-left: auto; }
}

/* ---------- Content area ---------- */

.cl-theme .site-content { padding-top: 0; }
.cl-theme .site-main { margin-bottom: 96px; }
.cl-theme .content-area { width: 100%; float: none; margin: 0; }

.cl-theme .woocommerce-breadcrumb {
	margin: 0 0 8px;
	padding: 24px 0 0;
	background: transparent;
	font: 500 13px var(--font-data);
	color: var(--slate-500);
}

.cl-theme .woocommerce-breadcrumb a { color: var(--cobalt); }
.cl-theme .woocommerce-breadcrumb .breadcrumb-separator { padding: 0 6px; }
.cl-theme .woocommerce-breadcrumb a:first-of-type::before { display: none; }

.cl-theme .entry-header .entry-title,
.cl-theme .page .entry-title {
	font-size: clamp(32px, 3.6vw, 48px);
	margin: 40px 0 8px;
}

.cl-theme .hentry { margin-bottom: 0; padding-bottom: 0; border: 0; }
.cl-theme .entry-content { color: var(--slate-700); }

/* ---------- Shop banner ---------- */

.cl-banner {
	position: relative;
	background: var(--blue-tint);
	overflow: hidden;
}

.cl-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../img/pep-light.svg") 0 0 / 420px auto;
	pointer-events: none;
}

.cl-banner__inner {
	position: relative;
	max-width: var(--container);
	margin: 0 auto;
	padding: 64px var(--gutter);
	box-sizing: border-box;
}

.cl-banner h1 { margin: 12px 0 0; }

.cl-banner p {
	font-size: 17px;
	line-height: 27px;
	color: var(--slate-700);
	margin: 14px 0 0;
	max-width: 56ch;
}

.cl-theme .woocommerce-products-header { display: none; }

/* ---------- Shop bar: category pills + sort ---------- */

.cl-theme .storefront-sorting.cl-shopbar {
	display: flex;
	align-items: center;
	gap: 8px 12px;
	flex-wrap: wrap;
	margin: 32px 0 0;
	padding: 0;
	border: 0;
	font-size: 14px;
}

.cl-pills { display: flex; gap: 8px; flex-wrap: wrap; flex: 1 1 auto; }

.cl-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
	border-radius: var(--pill);
	padding: 8px 14px;
	font: 500 14px var(--font-body);
	background: var(--c-tint, var(--slate-150));
	color: var(--c, var(--slate-800));
	border: 1px solid transparent;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.cl-theme .cl-pill { color: var(--c, var(--slate-800)); }
.cl-theme .cl-pill:hover { border-color: var(--cobalt); color: var(--c, var(--slate-800)); }
.cl-theme .cl-pill.is-active { background: var(--c, var(--navy-900)); color: var(--white); }
.cl-pill--all { --c: var(--navy-900); --c-tint: var(--slate-150); }

.cl-theme .woocommerce-ordering {
	margin: 0 0 0 auto;
	float: none;
	position: relative;
}

.cl-theme .woocommerce-ordering::before {
	content: "\e444";
	font-family: "Phosphor";
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--slate-800);
	pointer-events: none;
}

.cl-theme .woocommerce-ordering select {
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid var(--slate-300);
	border-radius: var(--pill);
	background: transparent;
	color: var(--slate-800);
	font: 500 14px var(--font-body);
	padding: 8px 34px 8px 36px;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233A4A63' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}

.cl-theme .woocommerce-ordering select:hover { border-color: var(--cobalt); }

/* ---------- Product grid + cards ---------- */

.cl-theme ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
	margin: 32px 0 0;
	padding: 0;
}

.cl-theme ul.products::before,
.cl-theme ul.products::after { display: none; }

.cl-theme ul.products li.product,
.cl-theme .site-main ul.products li.product,
.cl-theme .site-main ul.products[class*="columns-"] li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	clear: none !important;
	padding: 0;
	text-align: left;
	display: flex;
	flex-direction: column;
	background: var(--white);
	border: 1px solid var(--slate-200);
	border-radius: var(--radius-2xl);
	overflow: hidden;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.cl-theme ul.products li.product:hover {
	border-color: var(--c, var(--cobalt));
	box-shadow: 0 0 0 1px var(--c, var(--cobalt));
}

.cl-theme ul.products li.product .woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex: 1;
	color: var(--navy-900);
}

.cl-media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--slate-100) url("../img/hex.svg") 0 0 / 42px auto;
	padding: 14px;
	box-sizing: border-box;
	overflow: hidden;
}

.cl-media::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	height: 4px;
	background: var(--c, var(--cobalt));
	z-index: 2;
}

.cl-media__top {
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.cl-cat-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--white);
	border-radius: var(--pill);
	padding: 5px 10px;
	font: 500 12px var(--font-body);
	color: var(--slate-800);
	box-shadow: var(--shadow-sm);
}

.cl-cat-chip i { color: var(--c, var(--cobalt)); }

.cl-coa {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font: 500 11.5px var(--font-data);
	color: var(--mint-700);
}

.cl-theme ul.products li.product .cl-media img {
	position: absolute;
	left: 50%;
	bottom: -2%;
	height: 92%;
	width: auto;
	max-width: none;
	margin: 0;
	transform: translateX(-50%);
	object-fit: contain;
	filter: drop-shadow(0 10px 14px rgba(11, 27, 51, 0.12));
	transition: transform .3s ease;
}

.cl-theme ul.products li.product:hover .cl-media img { transform: translateX(-50%) translateY(-4px); }

.cl-card-body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 18px 18px 0;
	flex: 1;
}

.cl-theme ul.products li.product .woocommerce-loop-product__title {
	font: 700 21px/1.2 var(--font-display);
	letter-spacing: -0.02em;
	color: var(--navy-900);
	margin: 0;
	padding: 0;
}

.cl-aka {
	font: 500 12.5px var(--font-body);
	color: var(--cobalt);
	margin-top: -6px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cl-aka b { color: var(--slate-500); font-weight: 600; }

.cl-sizes { display: flex; flex-wrap: nowrap; gap: 5px; overflow: hidden; }

.cl-size {
	flex: none;
	background: var(--white);
	border: 1.5px solid var(--slate-350);
	border-radius: var(--radius-md);
	padding: 3px 7px;
	font: 600 12px var(--font-display);
	color: var(--navy-900);
	white-space: nowrap;
}

.cl-size--more { border-color: transparent; color: var(--slate-500); }

.cl-desc { font-size: 14px; line-height: 21px; color: var(--slate-600); }

.cl-card-foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	padding: 14px 18px 18px;
}

.cl-price { display: flex; flex-direction: column; }

.cl-price small {
	font: 500 11.5px var(--font-data);
	color: var(--slate-500);
	letter-spacing: 0.02em;
}

.cl-price,
.cl-price .amount {
	font: 700 22px/1.2 var(--font-display);
	letter-spacing: -0.02em;
	color: var(--navy-900);
}

.cl-price del { font-size: 14px; color: var(--slate-500); }
.cl-price ins { text-decoration: none; }

.cl-theme ul.products li.product .button {
	margin: 0;
	padding: 10px 18px;
	font-size: 14px;
	display: inline-flex;
}

.cl-theme ul.products li.product .button::before {
	font-family: "Phosphor";
	content: "\e3d4";
	font-weight: normal;
	font-size: 15px;
	margin: 0;
}

.cl-theme ul.products li.product .button.product_type_variable::before { content: "\e136"; }
.cl-theme ul.products li.product .button.added::before { content: "\e182"; }

.cl-theme ul.products li.product .button.added {
	background: var(--mint);
	animation: cl-pop .45s ease;
}

.cl-theme ul.products li.product .added_to_cart { display: none; }

.cl-theme ul.products li.product .onsale {
	position: absolute;
	top: 46px;
	left: 14px;
	z-index: 3;
	border: 0;
	background: var(--red);
	color: var(--white);
	border-radius: var(--radius-sm);
	font: 700 11px var(--font-data);
	padding: 2px 7px;
}

/* ---------- Pagination ---------- */

.cl-theme .storefront-sorting { border: 0; margin-bottom: 0; }
.cl-theme .woocommerce-pagination { margin-top: 40px; float: none; text-align: center; }

.cl-theme .woocommerce-pagination .page-numbers li .page-numbers {
	border-radius: var(--pill);
	min-width: 40px;
	padding: 8px 14px;
	background: var(--mist);
	color: var(--navy-900);
	font-weight: 600;
}

.cl-theme .woocommerce-pagination .page-numbers li .page-numbers.current {
	background: var(--navy-900);
	color: var(--white);
}

/* ---------- Single product ---------- */

.cl-theme.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 32px 56px;
	align-items: start;
	margin-top: 8px;
}

.cl-theme.single-product div.product > * { grid-column: 1 / -1; }

.cl-theme.single-product div.product .woocommerce-product-gallery,
.cl-theme.single-product div.product .summary {
	width: auto;
	float: none;
	margin: 0;
}

.cl-theme.single-product div.product .woocommerce-product-gallery { grid-column: 1; }
.cl-theme.single-product div.product .summary { grid-column: 2; }

@media (max-width: 860px) {
	.cl-theme.single-product div.product { grid-template-columns: minmax(0, 1fr); }
	.cl-theme.single-product div.product .woocommerce-product-gallery,
	.cl-theme.single-product div.product .summary { grid-column: 1; }
}

.cl-theme.single-product div.product .woocommerce-product-gallery {
	position: relative;
	border: 1px solid var(--slate-200);
	border-radius: var(--radius-3xl);
	background: var(--slate-100) url("../img/hex.svg") 0 0 / 52px auto;
	overflow: hidden;
	padding: 24px;
	box-sizing: border-box;
}

.cl-theme.single-product div.product .woocommerce-product-gallery::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	height: 5px;
	background: var(--c, var(--cobalt));
	z-index: 3;
}

.cl-theme.single-product div.product .woocommerce-product-gallery img {
	border-radius: 0;
	background: transparent;
	filter: drop-shadow(0 14px 20px rgba(11, 27, 51, 0.14));
}

.cl-theme.single-product .woocommerce-product-gallery .flex-control-thumbs { margin-top: 16px; }
.cl-theme.single-product .woocommerce-product-gallery .flex-control-thumbs li img { border-radius: var(--radius-md); background: var(--white); }
.cl-theme.single-product .woocommerce-product-gallery__trigger { border-radius: var(--pill); background: var(--white); box-shadow: var(--shadow-sm); }

.cl-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }

.cl-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border-radius: var(--pill);
	padding: 5px 12px;
	font: 500 13px var(--font-body);
	background: var(--slate-150);
	color: var(--slate-800);
}

.cl-chip--cat { background: var(--c-tint, var(--slate-150)); color: var(--c, var(--slate-800)); }
.cl-chip--data { font-family: var(--font-data); background: var(--cobalt-100); color: var(--cobalt-600); }
.cl-chip--form { font-family: var(--font-data); background: #E0F8FC; color: #00788C; }

.cl-theme.single-product .product_title {
	font-size: clamp(36px, 4vw, 56px);
	letter-spacing: -0.035em;
	margin: 0;
}

.cl-sku {
	margin: 8px 0 0;
	font: 500 13px var(--font-data);
	color: var(--slate-500);
}

.cl-theme.single-product .summary .woocommerce-product-details__short-description {
	color: var(--slate-700);
	font-size: 16px;
	line-height: 27px;
	margin: 18px 0 0;
	max-width: 52ch;
}

.cl-theme.single-product .summary > .price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 18px 0 0;
	font: 700 40px/1.1 var(--font-display);
	letter-spacing: -0.03em;
	color: var(--navy-900);
}

.cl-theme.single-product .summary > .price .amount { color: var(--navy-900); }
.cl-from { font: 500 15px var(--font-body); color: var(--slate-500); letter-spacing: 0; }
.cl-per { font: 500 15px var(--font-body); color: var(--slate-500); letter-spacing: 0; }

.cl-theme.single-product form.cart { margin: 24px 0 0; padding: 0; border: 0; }
.cl-theme.single-product form.cart::before,
.cl-theme.single-product form.cart::after { display: none; }

.cl-theme.single-product table.variations { margin: 0 0 8px; border: 0; }
.cl-theme.single-product table.variations th,
.cl-theme.single-product table.variations td { display: block; padding: 0; background: transparent; border: 0; text-align: left; }

.cl-theme.single-product table.variations th.label label,
.cl-theme.single-product table.variations .label label {
	font: 600 12.5px var(--font-data);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--slate-800);
}

.cl-theme.single-product table.variations td.value { margin: 10px 0 0; }
.cl-theme.single-product .reset_variations { display: none !important; }

/* Size chips built by crucial.js from the variation <select>. */
.cl-var-select.is-enhanced { position: absolute !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

.cl-var-chips { display: flex; flex-wrap: wrap; gap: 8px; }

.cl-theme .cl-var-chip {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	min-width: 92px;
	padding: 10px 18px;
	border-radius: var(--radius-lg);
	background: var(--white);
	border: 1.5px solid var(--slate-350);
	color: var(--navy-900);
	font: 700 15px var(--font-display);
	box-shadow: none;
}

.cl-theme .cl-var-chip small { font: 500 12px var(--font-data); color: var(--slate-500); }
.cl-theme .cl-var-chip:hover { border-color: var(--cobalt); background: var(--white); color: var(--navy-900); }
.cl-theme .cl-var-chip.is-selected { background: var(--navy-900); border-color: var(--navy-900); color: var(--white); }
.cl-theme .cl-var-chip.is-selected small { color: #B8C4D6; }
.cl-theme .cl-var-chip:disabled { opacity: .4; }

.cl-theme.single-product .woocommerce-variation-price .price {
	font: 700 26px var(--font-display);
	color: var(--navy-900);
	margin: 12px 0 0;
	display: block;
}

.cl-theme.single-product .woocommerce-variation-add-to-cart,
.cl-theme.single-product form.cart:not(.variations_form) {
	display: flex;
	align-items: stretch;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 16px;
}

.cl-theme.single-product .single_add_to_cart_button {
	flex: 1 1 220px;
	height: 54px;
	padding: 0 24px;
	font-size: 16px;
	float: none;
	margin: 0;
}

.cl-theme.single-product .single_add_to_cart_button::before {
	font-family: "Phosphor-Duotone";
	content: "\e420";
	font-weight: normal;
	font-size: 20px;
}

/* Quantity ladder (pill). crucial.js adds the - / + buttons. */
.cl-theme .quantity {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--slate-300);
	border-radius: var(--pill);
	overflow: hidden;
	background: var(--white);
	float: none;
	margin: 0;
}

.cl-theme .quantity .qty {
	width: 46px;
	border: 0;
	border-radius: 0;
	background: transparent;
	text-align: center;
	font: 600 16px var(--font-data);
	padding: 0;
	-moz-appearance: textfield;
}

.cl-theme .quantity .qty::-webkit-outer-spin-button,
.cl-theme .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cl-theme .quantity .qty:focus { box-shadow: none; }

.cl-theme .cl-qty-btn {
	width: 44px;
	padding: 0;
	border-radius: 0;
	background: var(--mist);
	color: var(--navy-900);
	font-size: 16px;
}

.cl-theme .cl-qty-btn:hover { background: var(--slate-200); color: var(--navy-900); }
.cl-theme.single-product .quantity { height: 54px; }

.cl-notice {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 20px 0 0;
	padding: 14px 16px;
	border-radius: 16px;
	border: 1px dashed var(--slate-350);
	background: #F5F8FF;
	font-size: 14px;
	line-height: 21px;
	color: var(--slate-700);
}

.cl-notice i { font-size: 22px; color: var(--cobalt); flex: none; }
.cl-notice p { margin: 0; }
.cl-notice--research { background: var(--red-50); border-color: #F7D4DA; color: #8E1B2A; }
.cl-notice--research i { color: var(--red); }

.cl-theme.single-product .summary .stock { font: 600 13px var(--font-data); color: var(--mint-700); margin: 12px 0 0; }
.cl-theme.single-product .summary .stock.out-of-stock { color: var(--red-600); }

/* Tabs */
.cl-theme .woocommerce-tabs {
	padding: 40px 0 0;
	border-top: 1px solid var(--slate-200);
	margin-top: 24px;
}

.cl-theme .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	width: auto;
	float: none;
	margin: 0 0 24px;
	border: 0;
}

.cl-theme .woocommerce-tabs ul.tabs li {
	border: 0;
	margin: 0;
	padding: 0;
}

.cl-theme .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 9px 16px;
	border-radius: var(--pill);
	background: var(--mist);
	color: var(--slate-800);
	font: 600 14px var(--font-body);
}

.cl-theme .woocommerce-tabs ul.tabs li.active a { background: var(--navy-900); color: var(--white); }
.cl-theme .woocommerce-tabs ul.tabs li::after,
.cl-theme .woocommerce-tabs ul.tabs li.active::after { display: none; }

.cl-theme .woocommerce-tabs .panel {
	width: auto;
	float: none;
	margin: 0;
	color: var(--slate-700);
	max-width: 76ch;
}

.cl-theme .woocommerce-tabs .panel h2:first-of-type { font-size: 24px; margin-bottom: 12px; }

.cl-theme table.shop_attributes { border: 1px solid var(--slate-200); border-radius: var(--radius-xl); overflow: hidden; }
.cl-theme table.shop_attributes th,
.cl-theme table.shop_attributes td { padding: 12px 16px; border-color: var(--slate-150); background: var(--white); font-style: normal; }
.cl-theme table.shop_attributes th { font: 600 13px var(--font-data); color: var(--slate-800); width: 180px; }

.cl-theme .related.products > h2,
.cl-theme .upsells.products > h2 {
	font-size: clamp(26px, 3vw, 36px);
	margin: 56px 0 0;
}

/* ---------- WooCommerce notices ---------- */

.cl-theme .woocommerce-message,
.cl-theme .woocommerce-info,
.cl-theme .woocommerce-error,
.cl-theme .woocommerce-noreviews,
.cl-theme p.no-comments {
	border-radius: var(--radius-xl);
	background: var(--mint-100);
	color: var(--navy-900);
	border: 1px solid #BCEBDB;
	border-left-width: 1px;
	padding: 14px 18px 14px 50px;
	font-size: 15px;
}

.cl-theme .woocommerce-message::before { color: var(--mint-700); }
.cl-theme .woocommerce-info { background: var(--blue-tint); border-color: var(--slate-350); }
.cl-theme .woocommerce-info::before { color: var(--cobalt); }
.cl-theme .woocommerce-error { background: var(--red-100); border-color: #F7C9CF; }
.cl-theme .woocommerce-error::before { color: var(--red); }
.cl-theme .woocommerce-message a,
.cl-theme .woocommerce-info a { color: var(--cobalt); text-decoration: none; }
.cl-theme .woocommerce-message .button,
.cl-theme .woocommerce-info .button { float: right; padding: 8px 16px; font-size: 14px; color: var(--white); }

/* ---------- Cart + checkout (block-based) ---------- */

.cl-theme .wc-block-cart,
.cl-theme .wc-block-checkout { font-family: var(--font-body); color: var(--navy-900); }

.cl-theme .wc-block-cart .wc-block-cart__totals-title,
.cl-theme .wc-block-components-title,
.cl-theme .wc-block-components-checkout-step__title {
	font: 700 18px var(--font-display);
	letter-spacing: -0.02em;
	text-transform: none;
}

.cl-theme .wc-block-components-sidebar-layout .wc-block-components-main,
.cl-theme .wc-block-components-sidebar {
	box-sizing: border-box;
}

.cl-theme .wc-block-components-sidebar .wc-block-components-panel,
.cl-theme .wc-block-components-sidebar .wp-block-woocommerce-cart-order-summary-block,
.cl-theme .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	border-radius: var(--radius-3xl);
}

.cl-theme .wc-block-cart__sidebar,
.cl-theme .wc-block-checkout__sidebar {
	background: var(--mist);
	border: 1px solid var(--slate-200);
	border-radius: var(--radius-3xl);
	padding: 24px !important;
}

.cl-theme .wc-block-cart-items { border-color: var(--slate-150); }
.cl-theme .wc-block-cart-items th { font: 500 12.5px var(--font-data); letter-spacing: 0.06em; color: var(--slate-500); }
.cl-theme .wc-block-cart-item__image img { border-radius: var(--radius-lg); background: var(--slate-100); }
.cl-theme .wc-block-components-product-name { font: 700 17px var(--font-display); color: var(--navy-900); letter-spacing: -0.01em; }
.cl-theme .wc-block-cart-item__remove-link { color: var(--red) !important; }
.cl-theme .wc-block-components-product-badge { border-radius: var(--radius-sm); font-family: var(--font-data); }
.cl-theme .wc-block-components-totals-item__label { font-weight: 500; }
.cl-theme .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.cl-theme .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font: 700 20px var(--font-display); }

.cl-theme .wc-block-components-quantity-selector {
	border-radius: var(--pill) !important;
	border-color: var(--slate-300) !important;
	overflow: hidden;
}

.cl-theme .wc-block-components-quantity-selector::after { border-radius: var(--pill) !important; border-color: var(--slate-300) !important; }
.cl-theme .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { background: var(--mist); color: var(--navy-900); border-radius: 0; padding: 0; min-width: 34px; box-shadow: none; }
.cl-theme .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input { font-family: var(--font-data); font-weight: 600; border: 0; }

.cl-theme .wc-block-components-text-input input,
.cl-theme .wc-block-components-combobox .components-combobox-control input,
.cl-theme .wc-block-components-form .wc-block-components-text-input input,
.cl-theme .wc-blocks-components-select .wc-blocks-components-select__select,
.cl-theme .wc-block-components-textarea {
	border-radius: var(--radius-lg) !important;
	border-color: var(--slate-350) !important;
	font-family: var(--font-body) !important;
}

.cl-theme .wc-block-components-text-input.is-active input,
.cl-theme .wc-block-components-text-input input:focus { border-color: var(--cobalt) !important; box-shadow: 0 0 0 1px var(--cobalt) !important; }

.cl-theme .wc-block-components-radio-control__option,
.cl-theme .wc-block-components-radio-control-accordion-option { border-radius: var(--radius-xl); }
.cl-theme .wc-block-components-radio-control__input:checked { border-color: var(--cobalt); }
.cl-theme .wc-block-components-radio-control__input:checked::before { background: var(--cobalt); }
.cl-theme .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--cobalt); border-color: var(--cobalt); }
.cl-theme .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--white); }

.cl-theme .wc-block-cart__submit-button,
.cl-theme .wc-block-components-checkout-place-order-button {
	width: 100%;
	min-height: 54px;
	font-size: 16px !important;
}

.cl-theme .wc-block-components-notice-banner { border-radius: var(--radius-xl); }

/* Classic cart/checkout fallbacks */
.cl-theme table.cart td, .cl-theme table.cart th { border-color: var(--slate-150); }
.cl-theme .cart-collaterals .cart_totals,
.cl-theme #order_review { background: var(--mist); border-radius: var(--radius-3xl); padding: 24px; }

/* ---------- My account ---------- */

.cl-theme .woocommerce-MyAccount-navigation ul {
	border: 1px solid var(--slate-200);
	border-radius: var(--radius-3xl);
	padding: 8px;
	margin: 0;
	background: var(--white);
}

.cl-theme .woocommerce-MyAccount-navigation ul li { border: 0; padding: 0; }

.cl-theme .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 10px 14px;
	border-radius: var(--radius-lg);
	color: var(--slate-800);
	font-weight: 500;
}

.cl-theme .woocommerce-MyAccount-navigation ul li a::before { display: none; }
.cl-theme .woocommerce-MyAccount-navigation ul li a:hover { background: var(--slate-100); color: var(--navy-900); }
.cl-theme .woocommerce-MyAccount-navigation ul li.is-active a { background: var(--cobalt-100); color: var(--cobalt-600); }

.cl-theme .woocommerce-form-login,
.cl-theme .woocommerce-form-register {
	border: 1px solid var(--slate-200);
	border-radius: var(--radius-3xl);
	padding: 28px;
	background: var(--white);
}

.cl-theme table.shop_table,
.cl-theme table.woocommerce-orders-table { border-collapse: separate; border-spacing: 0; border: 1px solid var(--slate-200); border-radius: var(--radius-xl); overflow: hidden; }
.cl-theme table.shop_table th { font: 600 12.5px var(--font-data); letter-spacing: 0.04em; color: var(--slate-800); background: var(--mist); }
.cl-theme table.shop_table td,
.cl-theme table.shop_table th { padding: 12px 16px; border-color: var(--slate-150); }
.cl-theme table.shop_table tbody tr:nth-child(2n) td { background: transparent; }

/* ---------- Footer ---------- */

.cl-theme .site-footer {
	position: relative;
	background: var(--footer-bg);
	color: #B8C4D6;
	padding: 0;
	margin: 0;
	overflow: hidden;
	font-size: 14.5px;
}

.cl-theme .site-footer::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../img/pep-dark.svg") 0 0 / 460px auto;
	opacity: 0.18;
	pointer-events: none;
}

.cl-theme .site-footer .col-full { position: relative; }
.cl-theme .site-footer a { color: #B8C4D6; text-decoration: none; }
.cl-theme .site-footer a:hover { color: var(--white); }
.cl-theme .site-footer h1, .cl-theme .site-footer h2, .cl-theme .site-footer h3,
.cl-theme .site-footer h4, .cl-theme .site-footer h5, .cl-theme .site-footer h6,
.cl-theme .site-footer .widget-title { color: var(--white); border: 0; }

.cl-footer { padding: 72px 0 36px; }

.cl-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 28px;
	padding-bottom: 40px;
}

.cl-footer__brand p { margin: 12px 0 0; line-height: 23px; max-width: 34ch; }
.cl-footer__email { font: 13px var(--font-data); }

.cl-brand--dark { color: var(--white); }
.cl-brand--dark .cl-logo-mark { width: 28px; height: 28px; }
.cl-brand--dark .cl-brand__word span { color: var(--footer-accent-light); }

.cl-footer__col strong { display: block; color: var(--white); font-family: var(--font-display); margin-bottom: 10px; }
.cl-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cl-footer__list li { margin: 0; }

.cl-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: 24px;
	display: flex;
	justify-content: space-between;
	gap: 12px 32px;
	flex-wrap: wrap;
	font-size: 13px;
}

.cl-footer__bottom p { margin: 0; }

.cl-footer__compliance {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	max-width: 70ch;
	color: #D6DEEA;
}

.cl-footer__compliance i { color: #FF6B7D; font-size: 16px; margin-top: 1px; }

/* Storefront footer widgets, if any are added */
.cl-theme .site-footer .footer-widgets { border: 0; padding-top: 56px; }

/* ---------- Motion ---------- */

@keyframes cl-pop { 0% { transform: scale(1); } 35% { transform: scale(1.12); } 70% { transform: scale(.96); } 100% { transform: scale(1); } }
@keyframes cl-bump { 0% { transform: scale(1); } 40% { transform: scale(1.45); } 100% { transform: scale(1); } }

@media (prefers-reduced-motion: reduce) {
	.cl-theme *, .cl-theme *::before, .cl-theme *::after { animation: none !important; transition: none !important; }
}

/* ---------- Live search results (1.4.1) ---------- */
.cl-live { position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 9999; background: var(--white); border: 1px solid var(--slate-200); border-radius: var(--radius-xl); box-shadow: 0 18px 40px rgba(11, 24, 48, .16); padding: 6px; max-height: min(70vh, 520px); overflow-y: auto; min-width: 300px; }
.cl-live[hidden] { display: none; }
.cl-live__item { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: var(--radius-lg); color: var(--navy-900); text-decoration: none; }
.cl-live__item:hover, .cl-live__item.is-active { background: var(--mist); }
.cl-live__thumb { flex: none; width: 44px; height: 44px; border-radius: 10px; background: var(--c-tint, var(--mist)); display: grid; place-items: center; overflow: hidden; }
.cl-live__thumb img { width: 100%; height: 100%; object-fit: cover; }
.cl-live__thumb i { font-size: 22px; color: var(--c, var(--cobalt)); }
.cl-live__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cl-live__main strong { font-size: 15px; font-weight: 700; line-height: 1.25; color: var(--navy-900); }
.cl-live__aka { font-size: 13px; color: var(--slate-600); line-height: 1.3; }
.cl-live__aka b { font: 600 11px var(--font-data); text-transform: uppercase; letter-spacing: .04em; color: var(--slate-500); margin-right: 2px; }
.cl-live__meta { font: 12px var(--font-data); color: var(--slate-500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cl-live__price { flex: none; text-align: right; font-weight: 700; font-size: 14.5px; display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.cl-live__price small { font: 500 11px var(--font-data); color: var(--slate-500); text-transform: uppercase; }
.cl-live__price small.is-out { color: var(--red-600, #C81E30); }
.cl-live mark { background: var(--cobalt-100); color: inherit; border-radius: 3px; padding: 0 1px; }
.cl-live__all { display: block; margin-top: 4px; padding: 11px 10px; border-top: 1px solid var(--slate-150, #E9EDF3); font-size: 14px; font-weight: 600; color: var(--cobalt); text-decoration: none; }
.cl-live__all span { color: var(--slate-500); font-weight: 500; }
.cl-live__all:hover { background: var(--mist); border-radius: var(--radius-lg); }
.cl-live__empty { padding: 14px 12px; font-size: 14px; color: var(--slate-600); }
.cl-live__empty a { color: var(--cobalt); font-weight: 600; white-space: nowrap; }
@media (max-width: 600px) {
	.cl-live { min-width: 0; max-height: 60vh; }
	.cl-live__item { padding: 10px 8px; }
}

/* Phones and tablets: 16px form text, so iPhone Safari doesn't zoom in on tap and stay zoomed (1.4.2). */
@media (max-width: 900px), (pointer: coarse) {
	.cl-theme input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
	.cl-theme select,
	.cl-theme textarea { font-size: 16px !important; }
}

/* Product page: quantity ladder and Add to cart always share one row (1.4.4). */
.cl-theme.single-product .woocommerce-variation-add-to-cart > .quantity,
.cl-theme.single-product form.cart:not(.variations_form) > .quantity { flex: none; }
.cl-theme.single-product .single_add_to_cart_button { flex: 1 1 0; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 600px) {
	.cl-theme.single-product .quantity { height: 52px; }
	.cl-theme.single-product .cl-qty-btn { width: 38px; }
	.cl-theme.single-product .quantity .qty { width: 36px; }
	.cl-theme.single-product .single_add_to_cart_button { height: 52px; padding: 0 14px; font-size: 15.5px; gap: 6px; }
	.cl-theme.single-product .single_add_to_cart_button::before { font-size: 18px; }
}
@media (max-width: 380px) {
	.cl-theme.single-product .single_add_to_cart_button { padding: 0 10px; font-size: 15px; }
	.cl-theme.single-product .single_add_to_cart_button::before { display: none; }
	.cl-theme.single-product .cl-qty-btn { width: 34px; }
	.cl-theme.single-product .quantity .qty { width: 32px; }
}
/* No drop shadow on Add to cart (1.4.4). */
.cl-theme .single_add_to_cart_button,
.cl-theme .single_add_to_cart_button:hover,
.cl-theme .single_add_to_cart_button:focus { box-shadow: none; }

/* Category badges wrap within product cards, including on narrow screens. */
.cl-theme .cl-pill.cl-cat-gh-axis { color: #735500; }
.cl-theme .cl-pill.cl-cat-gh-axis.is-active { color: var(--navy-900); }
.cl-cat-gh-axis .cl-cat-chip { color: #735500; }
.cl-theme .cl-chip--cat[style*="--c:#F2C94C"] { color: #735500; }
.cl-theme .cl-chip--cat[style*="--c:#F2C94C"] i,
.cp-category-badges .cl-cat-chip[style*="--c:#F2C94C"] i { color: #735500; }
.cp-category-badges { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.cl-media__top { gap: 8px; align-items: flex-start; }
.cl-media__top .cl-coa { flex-shrink: 0; }
.cp-category-badges .cl-cat-chip { max-width: 100%; box-sizing: border-box; }

/* Keep category and report labels above the product photo rather than over it. */
.cl-theme ul.products { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.cl-theme ul.products li.product { min-width: 0; }
.cl-media { display: flex; flex-direction: column; aspect-ratio: auto; }
.cl-media__top { flex-wrap: wrap; }
.cp-category-badges { flex: 1 1 170px; }
.cl-cat-chip { white-space: normal; overflow-wrap: anywhere; }
.cl-theme ul.products li.product .cl-media img { position: static; transform: none; height: 200px; width: 100%; max-width: 100%; margin: 8px 0 -14px; object-fit: contain; }
.cl-theme ul.products li.product:hover .cl-media img { transform: none; }
.cl-coa--unavailable { color: var(--slate-600); }
.cl-coa { white-space: normal; }
.cl-coas__status { margin-top: 16px; }
.cl-coas__request { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.cl-lot small { display: block; font: 400 11px/1.4 var(--font-body); color: var(--slate-600); margin-bottom: 3px; }
.cl-lot { white-space: normal; }
.cl-lot > * { min-width: 0; overflow-wrap: anywhere; }
.cl-lot__pdf { min-height: 44px; }
.cl-lot__pdf.is-pending { cursor: default; }
@media (max-width: 600px) {
	.cl-theme .cl-pill { min-height: 44px; box-sizing: border-box; white-space: normal; }
	.cl-shopbar { flex-wrap: wrap; gap: 16px; }
	.cl-pills { flex-basis: 100%; min-width: 0; }
	.cl-theme .woocommerce-ordering { margin-left: 0; max-width: 100%; }
	.cl-theme .woocommerce-ordering select { max-width: 100%; }
	.cl-card-body { padding: 16px 16px 0; }
	.cl-sizes { flex-wrap: wrap; overflow: visible; }
	.cl-aka { white-space: normal; overflow-wrap: anywhere; }
	.cl-theme.single-product .product_title { font-size: clamp(28px, 8vw, 40px); overflow-wrap: anywhere; }
	.cl-theme .cl-chip { white-space: normal; overflow-wrap: anywhere; }
	.cl-pd__main, .cl-pd__side, .cl-coas { min-width: 0; }
	.cl-lot { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
	.cl-lot__date { display: block; }
	.cl-coa-float__name { flex-wrap: wrap; }
	.cl-coa-float__name strong { font-size: 16px; }
	.cl-theme ul.products li.product .button { min-height: 44px; white-space: normal; }
}
