/**
 * METAPEPS — woocommerce.css
 *
 * Shop archive, single product, cart, and checkout styling. Product
 * card base styles live in components.css (site-wide, since cards
 * also render on the homepage and in search results); this file
 * covers everything specific to WooCommerce's own pages.
 */

/* -----------------------------------------------------------------
 * Shop hero + category chips + toolbar
 * --------------------------------------------------------------- */
.shop-hero {
	padding-block: 48px 32px;
	text-align: center;
	background: var(--metapeps-color-surface);
	border-bottom: 1px solid var(--metapeps-color-border);
}

.shop-hero__title {
	font-size: clamp(28px, 4vw, 44px);
	margin-bottom: 8px;
}

.shop-hero__description {
	max-width: 640px;
	margin-inline: auto;
	color: var(--metapeps-color-text-secondary);
}

.shop-hero__count {
	margin-top: 12px;
	color: var(--metapeps-color-text-secondary);
	font-size: 14px;
}

.shop-hero .research-notice {
	margin: 20px auto 0;
	max-width: 480px;
}

.shop-archive__body {
	padding-block: 32px 64px;
}

.category-chips {
	margin-bottom: 24px;
	overflow-x: auto;
}

.category-chips__list {
	display: flex;
	gap: 8px;
	padding-bottom: 4px;
}

.category-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
	padding: 8px 16px;
	border-radius: var(--metapeps-radius-pill);
	border: 1px solid var(--metapeps-color-border);
	font-size: 13px;
	font-weight: 500;
	transition: background var(--metapeps-transition-fast), border-color var(--metapeps-transition-fast), color var(--metapeps-transition-fast);
}

.category-chip:hover {
	border-color: var(--metapeps-color-primary);
}

.category-chip.is-active {
	background: var(--metapeps-color-dark);
	border-color: var(--metapeps-color-dark);
	color: #fff;
}

.category-chip__count {
	opacity: 0.6;
	font-size: 11px;
}

.shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 24px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--metapeps-color-border);
}

.shop-toolbar__count {
	font-size: 13px;
	color: var(--metapeps-color-text-secondary);
}

.shop-toolbar__sort select,
.woocommerce-ordering select {
	border: 1px solid var(--metapeps-color-border);
	border-radius: var(--metapeps-radius-sm);
	padding: 8px 12px;
	font-size: 13px;
	background: var(--metapeps-color-surface);
}

.shop-search {
	max-width: 480px;
	margin: 0 auto 20px;
}

.shop-search__field {
	position: relative;
}

.shop-search__field svg {
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--metapeps-color-text-secondary);
	pointer-events: none;
}

.shop-search__input {
	width: 100%;
	padding: 14px 18px 14px 46px;
	border-radius: var(--metapeps-radius-pill);
	border: 1px solid var(--metapeps-color-border);
	background: var(--metapeps-color-surface);
	font-size: 14.5px;
	font-family: inherit;
	color: var(--metapeps-color-text-primary);
	box-shadow: var(--metapeps-shadow-sm);
}

.shop-search__input:focus {
	outline: none;
	border-color: var(--metapeps-color-primary);
}

/* -----------------------------------------------------------------
 * Product grid (shared shell — used by shop, related, upsells,
 * cross-sells, recently-viewed, and the WooCommerce loop overrides).
 * --------------------------------------------------------------- */
.product-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.product-grid--columns-2 { grid-template-columns: repeat(2, 1fr); }
.product-grid--columns-3 { grid-template-columns: repeat(3, 1fr); }
.product-grid--columns-5 { grid-template-columns: repeat(5, 1fr); }

@media (max-width: 1024px) {
	.product-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
	.product-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
	.product-grid { grid-template-columns: 1fr; }
}

.woocommerce-pagination {
	margin-top: 40px;
}

.woocommerce-pagination .page-numbers {
	display: inline-flex;
	gap: 6px;
	justify-content: center;
	list-style: none;
	padding: 0;
}

.woocommerce-pagination .page-numbers li a,
.woocommerce-pagination .page-numbers li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--metapeps-radius-sm);
	border: 1px solid var(--metapeps-color-border);
	font-size: 13px;
}

.woocommerce-pagination .page-numbers li .current {
	background: var(--metapeps-color-dark);
	border-color: var(--metapeps-color-dark);
	color: #fff;
}

/* -----------------------------------------------------------------
 * Research notice component
 * --------------------------------------------------------------- */
.research-notice {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	border-radius: var(--metapeps-radius-md);
	background: var(--metapeps-color-background);
	border: 1px solid var(--metapeps-color-border);
	padding: 14px 16px;
	color: var(--metapeps-color-text-secondary);
}

.research-notice svg {
	flex-shrink: 0;
	color: var(--metapeps-color-primary);
	margin-top: 2px;
}

.research-notice--compact {
	font-size: 13px;
}

.research-notice--full {
	font-size: 13px;
	line-height: 1.7;
	margin-block: 20px;
}

.research-notice__text {
	margin: 0;
}

/* -----------------------------------------------------------------
 * Single product
 * --------------------------------------------------------------- */
.single-product #primary {
	padding-block: 32px 64px;
}

.woocommerce div.product {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 48px;
	align-items: start;
}

@media (max-width: 900px) {
	.woocommerce div.product {
		grid-template-columns: 1fr;
	}
}

/* Gallery */
.metapeps-gallery {
	display: grid;
	gap: 12px;
}

.metapeps-gallery--thumbnails-bottom .woocommerce-product-gallery__wrapper {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
}

.metapeps-gallery--thumbnails-bottom .woocommerce-product-gallery__wrapper > *:first-child {
	grid-column: 1 / -1;
}

.metapeps-gallery--single-image .woocommerce-product-gallery__wrapper {
	display: block;
}

.woocommerce-product-gallery__image {
	border-radius: var(--metapeps-radius-lg);
	overflow: hidden;
	background: var(--metapeps-color-background);
	display: block;
	width: 100%;
	max-width: 460px;
	margin: 0 auto;
	aspect-ratio: 1 / 1;
}

.woocommerce-product-gallery__wrapper img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.metapeps-gallery--single-image .woocommerce-product-gallery__image {
	max-width: 420px;
}

/* Summary column */
.summary.entry-summary {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.product_title {
	font-size: clamp(26px, 3vw, 36px);
	margin-bottom: 4px;
}

.single-product__meta-row {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}

.single-product__strength {
	font-size: 13px;
	font-weight: 600;
	color: var(--metapeps-color-text-secondary);
	background: var(--metapeps-color-background);
	padding: 4px 10px;
	border-radius: var(--metapeps-radius-pill);
}

/* "View COA" call-to-action (badge + button), shown on single product
 * pages only for products with a real Certificate of Analysis on file. */
.metapeps-coa-cta {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	padding: 14px 18px;
	margin: 4px 0 16px;
	background: var(--metapeps-color-background);
	border: 1px solid var(--metapeps-color-border);
	border-radius: var(--metapeps-radius-lg);
}

.metapeps-coa-cta__badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
	font-size: 13px;
	font-weight: 600;
	color: #fff;
	background: var(--metapeps-color-primary);
	padding: 6px 14px;
	border-radius: var(--metapeps-radius-pill);
	white-space: nowrap;
}

.metapeps-coa-cta__button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--metapeps-color-primary);
	text-decoration: none;
	background: #fff;
	border: 1.5px solid var(--metapeps-color-primary);
	padding: 8px 18px;
	border-radius: var(--metapeps-radius-pill);
	transition: background 0.2s ease, color 0.2s ease;
	white-space: nowrap;
}

.metapeps-coa-cta__button:hover,
.metapeps-coa-cta__button:focus-visible {
	background: var(--metapeps-color-primary);
	color: #fff;
}

.metapeps-coa-cta__icon {
	flex-shrink: 0;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-size: 26px;
	font-weight: 700;
	color: var(--metapeps-color-primary);
}

.woocommerce div.product form.cart {
	margin-top: 16px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 16px;
	padding: 20px 24px;
	border: 1px solid var(--metapeps-color-border);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 10px 25px rgba(17, 17, 17, 0.05);
}

.woocommerce div.product form.cart table.variations {
	margin: 0;
}

\/* Variation picker (wcboost-variation-swatches plugin output) \u2014 brand alignment \u2014
 * the plugin ships only generic grey/black styling by default, so we
 * restyle the pills, the "Size:" label and the Clear link to match
 * the rest of the single-product summary column. *\/
.woocommerce div.product form.cart table.variations,
.woocommerce div.product form.cart table.variations tbody,
.woocommerce div.product form.cart table.variations tr {
	display: block;
	width: 100%;
}

.woocommerce div.product form.cart table.variations td,
.woocommerce div.product form.cart table.variations th {
	display: block;
	width: 100%;
	padding: 0;
	border: none;
	text-align: left;
}

.woocommerce div.product form.cart table.variations th.label {
	padding-bottom: 10px;
}

.woocommerce div.product form.cart table.variations th.label label {
	font-size: 13px;
	font-weight: 700;
	color: var(--metapeps-color-text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	display: inline-flex;
	gap: 4px;
}

.wcboost-variation-swatches__selected-label {
	color: var(--metapeps-color-primary);
	font-weight: 700;
	text-transform: none;
	letter-spacing: normal;
}

.wcboost-variation-swatches__wrapper {
	--wcboost-swatches-item-gap: 10px;
}

.wcboost-variation-swatches__item {
	background: #fff !important;
	box-shadow: none !important;
	border: 1.5px solid var(--metapeps-color-border) !important;
	color: var(--metapeps-color-text-secondary) !important;
	font-weight: 600;
	font-size: 14px;
	transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.wcboost-variation-swatches__item:hover {
	border-color: var(--metapeps-color-primary) !important;
	color: var(--metapeps-color-primary) !important;
}

.wcboost-variation-swatches__item.selected {
	border-color: var(--metapeps-color-primary) !important;
	background: var(--metapeps-color-primary) !important;
	color: #fff !important;
}

a.reset_variations {
	font-size: 13px;
	color: var(--metapeps-color-text-secondary);
	text-decoration: underline;
	text-underline-offset: 2px;
	margin-top: 4px;
	display: inline-block;
}

a.reset_variations:hover {
	color: var(--metapeps-color-primary);
}

.woocommerce div.product form.cart .single_variation_wrap {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.woocommerce div.product form.cart .single_variation {
	display: flex;
	flex-direction: column;
}

.woocommerce div.product form.cart .single_variation .woocommerce-variation-description:empty,
.woocommerce div.product form.cart .single_variation .woocommerce-variation-availability:empty {
	display: none;
}

.woocommerce div.product form.cart .woocommerce-variation-price .price {
	font-size: 30px;
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.quantity-stepper {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--metapeps-color-border);
	border-radius: var(--metapeps-radius-pill);
	overflow: hidden;
}

.quantity-stepper .qty {
	width: 48px;
	text-align: center;
	border: none;
	padding: 10px 0;
	-moz-appearance: textfield;
}

.quantity-stepper__button {
	background: none;
	border: none;
	width: 36px;
	height: 40px;
	font-size: 16px;
	color: var(--metapeps-color-text-secondary);
}

.quantity-stepper__button:hover {
	color: var(--metapeps-color-primary);
}

.woocommerce div.product .single_add_to_cart_button {
	flex: 1;
	min-width: 200px;
}

.woocommerce-product-details__short-description {
	margin-top: 16px;
	color: var(--metapeps-color-text-secondary);
	line-height: 1.7;
}

/* Tabs */
.woocommerce-tabs {
	grid-column: 1 / -1;
	margin-top: 56px;
	border-top: 1px solid var(--metapeps-color-border);
	padding-top: 32px;
}

.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
}

.woocommerce-tabs ul.tabs li {
	list-style: none;
}

.woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 10px 18px;
	border-radius: var(--metapeps-radius-pill);
	border: 1px solid var(--metapeps-color-border);
	font-size: 14px;
	font-weight: 500;
}

.woocommerce-tabs ul.tabs li.active a {
	background: var(--metapeps-color-dark);
	border-color: var(--metapeps-color-dark);
	color: #fff;
}

.woocommerce-tabs .panel {
	max-width: 760px;
	margin-inline: auto;
	line-height: 1.7;
	color: var(--metapeps-color-text-secondary);
}

/* Description / Additional Info tab content styling */
.woocommerce-tabs .panel > h2:first-child {
	margin-top: 0;
}

.woocommerce-tabs .panel h2 {
	font-family: var(--metapeps-font-heading);
	font-size: 26px;
	font-weight: var(--metapeps-font-weight-heading);
	color: var(--metapeps-color-text-primary);
	line-height: var(--metapeps-line-height-heading);
	margin: 0 0 20px;
}

.woocommerce-tabs .panel h3 {
	font-family: var(--metapeps-font-heading);
	font-size: 18px;
	font-weight: 700;
	color: var(--metapeps-color-primary);
	letter-spacing: 0.01em;
	margin: 28px 0 12px;
}

.woocommerce-tabs .panel h3:first-child {
	margin-top: 0;
}

.woocommerce-tabs .panel p {
	margin: 0 0 16px;
}

.woocommerce-tabs .panel p:last-child {
	margin-bottom: 0;
}

.woocommerce-tabs .panel strong {
	color: var(--metapeps-color-text-primary);
	font-weight: 600;
}

.woocommerce-tabs .panel ul {
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.woocommerce-tabs .panel ul:last-child {
	margin-bottom: 0;
}

.woocommerce-tabs .panel ul li {
	position: relative;
	padding: 8px 0 8px 22px;
	border-bottom: 1px solid var(--metapeps-color-border);
	font-size: 15px;
}

.woocommerce-tabs .panel ul li:last-child {
	border-bottom: none;
}

.woocommerce-tabs .panel ul li::before {
	content: '';
	position: absolute;
	left: 2px;
	top: 17px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--metapeps-color-primary);
}

.woocommerce-tabs .panel hr {
	border: none;
	border-top: 1px solid var(--metapeps-color-border);
	margin: 28px 0;
}

/* Additional information tab — attribute table */
.woocommerce-tabs table.woocommerce-product-attributes {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	border: 1px solid var(--metapeps-color-border);
	border-radius: var(--metapeps-radius-md);
	overflow: hidden;
}

.woocommerce-tabs table.woocommerce-product-attributes th,
.woocommerce-tabs table.woocommerce-product-attributes td {
	text-align: left;
	padding: 14px 18px;
	border-bottom: 1px solid var(--metapeps-color-border);
	font-size: 14px;
}

.woocommerce-tabs table.woocommerce-product-attributes tr:last-child th,
.woocommerce-tabs table.woocommerce-product-attributes tr:last-child td {
	border-bottom: none;
}

.woocommerce-tabs table.woocommerce-product-attributes th {
	width: 30%;
	background: var(--metapeps-color-accent);
	color: var(--metapeps-color-text-primary);
	font-weight: 600;
}

.woocommerce-tabs table.woocommerce-product-attributes td {
	color: var(--metapeps-color-text-secondary);
}

.woocommerce-tabs table.woocommerce-product-attributes td p {
	margin: 0;
}

.metapeps-spec-table {
	width: 100%;
	border-collapse: collapse;
}

.metapeps-spec-table th,
.metapeps-spec-table td {
	text-align: left;
	padding: 12px 0;
	border-bottom: 1px solid var(--metapeps-color-border);
	font-size: 14px;
}

.metapeps-spec-table th {
	width: 40%;
	color: var(--metapeps-color-text-primary);
	font-weight: 600;
}

.metapeps-coa__meta {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-bottom: 20px;
}

.metapeps-coa__meta dt {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--metapeps-color-text-secondary);
	margin-bottom: 4px;
}

.metapeps-coa__meta dd {
	margin: 0;
	font-weight: 600;
}

.metapeps-faq__item {
	border-bottom: 1px solid var(--metapeps-color-border);
	padding: 16px 0;
}

.metapeps-faq__question {
	cursor: pointer;
	font-weight: 600;
	color: var(--metapeps-color-text-primary);
	list-style: none;
}

.metapeps-faq__question::-webkit-details-marker {
	display: none;
}

.metapeps-faq__question::after {
	content: '+';
	float: right;
	transition: transform var(--metapeps-transition-fast);
}

details[open] .metapeps-faq__question::after {
	transform: rotate(45deg);
}

.metapeps-faq__answer {
	margin-top: 10px;
}

/* Related / upsells / cross-sells / recently viewed sections */
.related.products,
.up-sells.upsells,
.cross-sells,
.recently-viewed {
	margin-top: 56px;
}

.related.products h2,
.up-sells.upsells h2,
.cross-sells h2,
.recently-viewed__title {
	font-size: 24px;
	margin-bottom: 20px;
}

/* Sticky add-to-cart */
.sticky-add-to-cart {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 30;
	background: var(--metapeps-color-surface);
	border-top: 1px solid var(--metapeps-color-border);
	box-shadow: var(--metapeps-shadow-lg);
}

.sticky-add-to-cart__inner {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 12px 24px;
}

.sticky-add-to-cart__product {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 1;
	min-width: 0;
}

.sticky-add-to-cart__product img {
	width: 44px;
	height: 44px;
	border-radius: var(--metapeps-radius-sm);
	object-fit: cover;
}

.sticky-add-to-cart__title {
	font-size: 13px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sticky-add-to-cart__price {
	font-weight: 700;
	color: var(--metapeps-color-primary);
	white-space: nowrap;
}

/* -----------------------------------------------------------------
 * Cart page
 * --------------------------------------------------------------- */
.cart-page__layout {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 40px;
	align-items: start;
}

@media (max-width: 900px) {
	.cart-page__layout {
		grid-template-columns: 1fr;
	}
}

.cart-item {
	display: grid;
	grid-template-columns: 88px 1fr auto auto auto;
	gap: 16px;
	align-items: center;
	padding: 20px 0;
	border-bottom: 1px solid var(--metapeps-color-border);
}

.cart-item__image img {
	border-radius: var(--metapeps-radius-md);
}

.cart-item__details {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.cart-item__name {
	font-weight: 600;
}

.cart-item__meta {
	font-size: 12px;
	color: var(--metapeps-color-text-secondary);
}

.cart-item__remove {
	color: var(--metapeps-color-text-secondary);
	font-size: 20px;
	line-height: 1;
}

.cart-item__remove:hover {
	color: var(--metapeps-color-danger);
}

.cart-page__actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	padding-top: 20px;
}

.cart-page__coupon {
	display: flex;
	gap: 8px;
	flex: 1;
}

.cart-page__coupon input {
	flex: 1;
	min-width: 160px;
	border: 1px solid var(--metapeps-color-border);
	border-radius: var(--metapeps-radius-pill);
	padding: 10px 16px;
}

.cart-page__empty {
	text-align: center;
	padding: 64px 16px;
}

.cart-totals-card {
	background: var(--metapeps-color-background);
	border-radius: var(--metapeps-radius-lg);
	padding: 24px;
}

.cart-totals-card__row {
	display: flex;
	justify-content: space-between;
	padding: 10px 0;
	border-bottom: 1px solid var(--metapeps-color-border);
	font-size: 14px;
}

.cart-totals-card__row--total {
	border-bottom: none;
	font-size: 18px;
	font-weight: 700;
	padding-top: 16px;
}

.cart-totals-card .checkout-button {
	display: flex;
	width: 100%;
	margin-top: 16px;
	text-align: center;
	justify-content: center;
	background: var(--metapeps-color-primary);
	color: #fff;
	padding: 14px 24px;
	border-radius: var(--metapeps-radius-pill);
	font-weight: 600;
}

.cart-page__sidebar .research-notice {
	margin-top: 16px;
}

/* -----------------------------------------------------------------
 * Checkout
 * --------------------------------------------------------------- */
.checkout-trust-badges {
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: 32px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--metapeps-color-border);
}

.checkout-trust-badge {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--metapeps-color-text-secondary);
}

.checkout-trust-badge svg {
	color: var(--metapeps-color-primary);
}

.checkout-disclaimer-reminder {
	font-size: 12px;
	color: var(--metapeps-color-text-secondary);
	text-align: center;
	margin-top: 12px;
}

.woocommerce-checkout #payment {
	background: var(--metapeps-color-background);
	border-radius: var(--metapeps-radius-lg);
	padding: 20px;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout select {
	border: 1px solid var(--metapeps-color-border);
	border-radius: var(--metapeps-radius-sm);
	padding: 12px 14px;
}

.woocommerce #payment #place_order {
	background: var(--metapeps-color-primary);
	color: #fff;
	border-radius: var(--metapeps-radius-pill);
	padding: 16px 32px;
	font-weight: 600;
	width: 100%;
}

/* Checkout order-review table (woocommerce_checkout_order_review /
 * woocommerce_order_review()). There is no theme override for
 * woocommerce/checkout/review-order.php, so this is WooCommerce's
 * default markup/classes — needs the same card treatment as the
 * cart page's .cart-totals-card so it doesn't render unstyled. */
.woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	background: var(--metapeps-color-background);
	border-radius: var(--metapeps-radius-lg);
	overflow: hidden;
	box-shadow: var(--metapeps-shadow-sm);
}

.woocommerce-checkout-review-order-table thead th {
	text-align: left;
	padding: 16px 24px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--metapeps-color-text-secondary);
	border-bottom: 1px solid var(--metapeps-color-border);
}

.woocommerce-checkout-review-order-table thead th.product-total,
.woocommerce-checkout-review-order-table tbody td.product-total,
.woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
}

.woocommerce-checkout-review-order-table tbody .cart_item td {
	padding: 14px 24px;
	border-bottom: 1px solid var(--metapeps-color-border);
	font-size: 14px;
}

.woocommerce-checkout-review-order-table tbody .cart_item .product-name .product-quantity {
	color: var(--metapeps-color-text-secondary);
	font-weight: 400;
}

.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td {
	padding: 14px 24px;
	border-bottom: 1px solid var(--metapeps-color-border);
	font-size: 14px;
	font-weight: 400;
	text-align: left;
}

.woocommerce-checkout-review-order-table tfoot tr:last-child th,
.woocommerce-checkout-review-order-table tfoot tr:last-child td {
	border-bottom: none;
}

.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
	padding-top: 18px;
	border-bottom: none;
	font-size: 18px;
	font-weight: 700;
}

.woocommerce-checkout-review-order-table tfoot .order-total td {
	color: var(--metapeps-color-primary);
}

.woocommerce-checkout-review-order-table tfoot .order-total .woocommerce-Price-amount {
	color: var(--metapeps-color-primary);
}

/* -----------------------------------------------------------------
 * Quick view modal
 * --------------------------------------------------------------- */
.quick-view {
	position: fixed;
	inset: 0;
	z-index: 60;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.quick-view__panel {
	background: var(--metapeps-color-surface);
	border-radius: var(--metapeps-radius-lg);
	max-width: 900px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	position: relative;
	padding: 32px;
}

.quick-view__close {
	position: absolute;
	top: 16px;
	right: 16px;
	background: none;
	border: none;
}

.quick-view__loading {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 240px;
}

/* -----------------------------------------------------------------
 * WooCommerce notices (add-to-cart, errors, coupon applied, etc.)
 * We dequeue WooCommerce's bundled CSS (see inc/setup.php /
 * inc/woocommerce-hooks.php), so every one of these classes needs a
 * real replacement here — this is core, high-frequency UI.
 * --------------------------------------------------------------- */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.woocommerce-noreviews,
p.no-comments {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	list-style: none;
	padding: 14px 20px;
	margin: 0 0 24px;
	border-radius: var(--metapeps-radius-md);
	font-size: 14px;
	background: var(--metapeps-color-background);
	border: 1px solid var(--metapeps-color-border);
	border-left: 4px solid var(--metapeps-color-secondary);
}

.woocommerce-message { border-left-color: var(--metapeps-color-success); }
.woocommerce-error { border-left-color: var(--metapeps-color-danger); }
.woocommerce-info { border-left-color: var(--metapeps-color-primary); }

.woocommerce-error li,
.woocommerce-message li {
	list-style: none;
}

.woocommerce-message .button,
.woocommerce-error .button,
.woocommerce-info .button {
	display: inline-flex;
	align-items: center;
	padding: 8px 18px;
	border-radius: var(--metapeps-radius-pill);
	background: var(--metapeps-color-dark);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}

/* -----------------------------------------------------------------
 * Reviews & star ratings
 * --------------------------------------------------------------- */
.star-rating {
	position: relative;
	display: inline-block;
	width: 5.4em;
	height: 1.1em;
	line-height: 1.1em;
	font-size: 14px;
	letter-spacing: 3px;
}

.star-rating::before {
	content: '\2605\2605\2605\2605\2605';
	color: var(--metapeps-color-border);
	display: block;
}

.star-rating span {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	display: block;
}

.star-rating span::before {
	content: '\2605\2605\2605\2605\2605';
	color: var(--metapeps-color-primary);
	display: block;
}

#reviews {
	max-width: 760px;
	margin-top: 24px;
}

#reviews .commentlist {
	list-style: none;
	margin: 0 0 32px;
	padding: 0;
}

#reviews .review {
	display: flex;
	gap: 16px;
	padding: 20px 0;
	border-bottom: 1px solid var(--metapeps-color-border);
}

#reviews .avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
}

#reviews .comment-text {
	flex: 1;
}

#reviews .woocommerce-review__author {
	font-weight: 600;
	font-size: 14px;
}

#reviews .woocommerce-review__dash {
	color: var(--metapeps-color-text-secondary);
	margin-inline: 4px;
}

#reviews .woocommerce-review__published-date {
	font-size: 12px;
	color: var(--metapeps-color-text-secondary);
}

#reviews .description p {
	margin-top: 8px;
	color: var(--metapeps-color-text-secondary);
	font-size: 14px;
}

#review_form .comment-form-rating select {
	display: none;
}

#review_form .stars {
	display: flex;
	gap: 4px;
	font-size: 18px;
}

#review_form .stars a {
	color: var(--metapeps-color-border);
}

#review_form .stars a.active,
#review_form .stars.selected a.active {
	color: var(--metapeps-color-primary);
}

#review_form .comment-form-author input,
#review_form .comment-form-email input,
#review_form #comment {
	width: 100%;
	border: 1px solid var(--metapeps-color-border);
	border-radius: var(--metapeps-radius-sm);
	padding: 10px 14px;
	margin-top: 4px;
}

#review_form .form-submit input[type="submit"] {
	margin-top: 12px;
	background: var(--metapeps-color-primary);
	color: #fff;
	border: none;
	border-radius: var(--metapeps-radius-pill);
	padding: 12px 28px;
	font-weight: 600;
}

/* -----------------------------------------------------------------
 * Shop sidebar + WooCommerce's native filter widgets
 * --------------------------------------------------------------- */
.shop-archive__layout {
	display: block;
}

.shop-archive__layout--with-sidebar {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 40px;
	align-items: start;
}

@media (max-width: 900px) {
	.shop-archive__layout--with-sidebar {
		grid-template-columns: 1fr;
	}
}

.shop-sidebar__widget {
	padding-bottom: 24px;
	margin-bottom: 24px;
	border-bottom: 1px solid var(--metapeps-color-border);
}

.shop-sidebar__widget-title {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 14px;
}

/* WooCommerce's native Filter by Price widget */
.shop-sidebar .price_slider {
	margin-bottom: 16px;
}

.shop-sidebar .price_slider_amount {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 13px;
}

.shop-sidebar .ui-slider {
	position: relative;
	height: 4px;
	background: var(--metapeps-color-border);
	border-radius: var(--metapeps-radius-pill);
	margin: 16px 4px;
}

.shop-sidebar .ui-slider-range {
	position: absolute;
	height: 100%;
	background: var(--metapeps-color-primary);
	border-radius: var(--metapeps-radius-pill);
}

.shop-sidebar .ui-slider-handle {
	position: absolute;
	top: 50%;
	width: 16px;
	height: 16px;
	background: #fff;
	border: 2px solid var(--metapeps-color-primary);
	border-radius: 50%;
	transform: translate(-50%, -50%);
	cursor: pointer;
}

/* WooCommerce's native Layered Nav (attribute/category) widget */
.shop-sidebar .woocommerce-widget-layered-nav-list,
.shop-sidebar .wc-layered-nav-rating {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.shop-sidebar .woocommerce-widget-layered-nav-list__item a {
	font-size: 13px;
	color: var(--metapeps-color-text-secondary);
}

.shop-sidebar .woocommerce-widget-layered-nav-list__item--chosen a {
	color: var(--metapeps-color-primary);
	font-weight: 600;
}

.shop-sidebar .woocommerce-widget-layered-nav-list__item-count {
	opacity: 0.6;
	margin-left: 4px;
}

/* WooCommerce's native Product Search widget */
.shop-sidebar .woocommerce-product-search {
	display: flex;
}

.shop-sidebar .woocommerce-product-search input[type="search"] {
	flex: 1;
	border: 1px solid var(--metapeps-color-border);
	border-radius: var(--metapeps-radius-sm) 0 0 var(--metapeps-radius-sm);
	padding: 10px 12px;
}

.shop-sidebar .woocommerce-product-search button {
	border: none;
	background: var(--metapeps-color-dark);
	color: #fff;
	padding: 0 16px;
	border-radius: 0 var(--metapeps-radius-sm) var(--metapeps-radius-sm) 0;
}

/* -----------------------------------------------------------------
 * Order received / thank you page
 * --------------------------------------------------------------- */
.order-received {
	max-width: 640px;
	margin-inline: auto;
	padding-block: 24px 64px;
}

.order-received__status {
	text-align: center;
	margin-bottom: 32px;
}

.order-received__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--metapeps-color-success);
	color: #fff;
	margin-bottom: 16px;
}

.order-received__status--failed .order-received__icon,
.order-received__status--failed svg {
	color: var(--metapeps-color-danger);
}

.order-received__status h1 {
	font-size: 26px;
	margin-bottom: 8px;
}

.order-received__status p {
	color: var(--metapeps-color-text-secondary);
}

.order-received__overview {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	background: var(--metapeps-color-background);
	border-radius: var(--metapeps-radius-lg);
	padding: 24px;
	margin: 0 0 24px;
}

.order-received__overview li {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.order-received__overview-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--metapeps-color-text-secondary);
}

.order-received__overview-value {
	font-weight: 600;
}

.order-received__research-note {
	margin: 24px 0;
}

.order-received__actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 24px;
}

/* -----------------------------------------------------------------
 * Frequently Bought Together
 * --------------------------------------------------------------- */
.frequently-bought-together {
	margin-top: 56px;
	padding: 28px;
	background: var(--metapeps-color-background);
	border-radius: var(--metapeps-radius-lg);
}

.frequently-bought-together__title {
	font-size: 20px;
	margin-bottom: 20px;
}

.frequently-bought-together__items {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.fbt-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	text-align: center;
	width: 120px;
}

.fbt-item__checkbox-label {
	position: relative;
	display: inline-block;
}

.fbt-item__checkbox {
	position: absolute;
	top: -6px;
	left: -6px;
	width: 18px;
	height: 18px;
	z-index: 1;
}

.fbt-item__checkbox-label img {
	border-radius: var(--metapeps-radius-md);
	width: 88px;
	height: 88px;
	object-fit: cover;
}

.fbt-item__name {
	font-size: 12px;
	line-height: 1.4;
}

.fbt-item__price {
	font-size: 13px;
	font-weight: 600;
	color: var(--metapeps-color-primary);
}

.fbt-item__plus {
	font-size: 20px;
	color: var(--metapeps-color-text-secondary);
}

.frequently-bought-together__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--metapeps-color-border);
}

.frequently-bought-together__total {
	font-size: 14px;
}
