:root {
	--c365-sale-color: #b42318;
	--c365-regular-color: #6b7280;
	--c365-anchor-color: #4b5563;
	--c365-lowest-color: #4b5563;
	--c365-main-size: 1.3em;
	--c365-context-size: clamp(12px, 0.82em, 14px);
	--c365-stack-gap: 0.2em;
}

/* Public archive. Scope every rule so the theme can override individual parts. */
.c365-archive {
	--c365-archive-border: #e2e8f0;
	--c365-archive-muted: #64748b;
	--c365-archive-link: #1d4ed8;
	--c365-archive-surface: #fff;
	max-width: 100%;
	margin: 1.5em 0;
	color: inherit;
}
.c365-archive .c365-archive-title { margin: 0 0 0.45em; font-size: clamp(1.25rem, 2vw, 1.65rem); line-height: 1.3; }
.c365-archive .c365-archive-intro { max-width: 76ch; margin: 0 0 1.25em; color: var(--c365-archive-muted); line-height: 1.55; }
.c365-archive .c365-archive-scroll { overflow-x: auto; border: 1px solid var(--c365-archive-border); border-radius: 9px; background: var(--c365-archive-surface); }
.c365-archive .c365-archive-table { width: 100%; min-width: 620px; margin: 0; border: 0; border-collapse: collapse; background: transparent; font-size: 0.94em; }
.c365-archive .c365-archive-table th,
.c365-archive .c365-archive-table td { padding: 0.85em 1em; border: 0; border-bottom: 1px solid var(--c365-archive-border); text-align: left; vertical-align: top; }
.c365-archive .c365-archive-table thead th { color: var(--c365-archive-muted); background: #f8fafc; font-size: 0.82em; font-weight: 700; letter-spacing: 0.025em; }
.c365-archive .c365-archive-table tbody tr:last-child td { border-bottom: 0; }
.c365-archive .c365-archive-table tbody tr:hover { background: #f8fafc; }
.c365-archive .c365-archive-file { overflow-wrap: anywhere; }
.c365-archive .c365-archive-file a { color: var(--c365-archive-link); text-decoration: underline; text-underline-offset: 0.18em; }
.c365-archive .c365-archive-file a:focus-visible { outline: 2px solid var(--c365-archive-link); outline-offset: 3px; }
.c365-archive .c365-archive-empty { padding: 1em; border: 1px solid var(--c365-archive-border); border-radius: 9px; color: var(--c365-archive-muted); }

.c365-price-stack {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--c365-stack-gap);
	max-width: 100%;
	vertical-align: top;
	line-height: 1.4;
}

.woocommerce ul.products li.product .price .c365-price-stack,
.woocommerce .products .product .price .c365-price-stack {
	align-items: center;
	margin-inline: auto;
}

.woocommerce ul.products li.product .price .c365-price-stack-sale,
.woocommerce .products .product .price .c365-price-stack-sale {
	box-sizing: border-box;
	display: flex;
	width: 100%;
	align-items: center;
	text-align: center;
}

.woocommerce ul.products li.product .price .c365-price-stack-sale .c365-price-main,
.woocommerce .products .product .price .c365-price-stack-sale .c365-price-main {
	align-items: center;
	text-align: center;
}

.c365-price-stack > .c365-price-main,
.woocommerce .price .c365-price-main,
.c365-block-price .c365-price-main,
.c365-item .c365-price-main,
.c365-table .c365-price-main {
	display: block;
	font-size: var(--c365-main-size);
	font-weight: 700;
	line-height: 1.2;
}

.woocommerce .price .c365-price-sale {
	display: flex;
	flex-direction: column;
	align-items: inherit;
	gap: 0.14em;
	color: var(--c365-sale-color);
}

/* Themes do not always wrap the price in .woocommerce .price. Keep the sale
   amount above the regular amount wherever Woo renders this stack. */
.c365-price-stack-sale .c365-price-main {
	display: inline-flex !important;
	flex-direction: column !important;
	align-items: inherit;
	gap: 0.12em;
}

.c365-price-stack-sale .c365-price-main del,
.c365-price-stack-sale .c365-price-main ins {
	display: block !important;
	margin: 0 !important;
}

.c365-block-price .c365-price-sale {
	display: flex;
	flex-direction: column;
	align-items: inherit;
	gap: 0.14em;
}

.c365-price-label,
.c365-price-value {
	font: inherit;
	color: inherit;
}

.c365-price-stack-variable .c365-price-range {
	font-size: 1em;
}

.c365-variation-prompt {
	display: block;
	font-size: 0.78em;
	font-weight: 400;
	line-height: 1.4;
	color: var(--c365-anchor-color);
}

.c365-variation-anchor {
	margin-top: 0.35em;
}

.c365-price-stack-sale .c365-price-main ins {
	order: 0;
	color: var(--c365-sale-color);
	font-size: 1em;
	font-weight: 700;
	text-decoration: none;
}

.c365-price-stack-sale .c365-price-main del {
	order: 1;
	color: var(--c365-regular-color);
	font-size: 0.62em;
	font-weight: 400;
	opacity: 1;
}

/* Center the full price area, including regular prices and history lines. */
body.c365-woo-prices li.product .price,
body.c365-woo-prices .wc-block-product .wp-block-woocommerce-product-price,
body.c365-woo-prices .wc-block-grid__product .wp-block-woocommerce-product-price {
	box-sizing: border-box;
	width: 100%;
	text-align: center !important;
}

body.c365-woo-prices li.product .price .c365-price-stack,
body.c365-woo-prices .wc-block-product .c365-price-stack,
body.c365-woo-prices .wc-block-grid__product .c365-price-stack {
	box-sizing: border-box;
	display: flex;
	width: 100%;
	max-width: none;
	margin-inline: auto;
	align-items: center;
	text-align: center;
}

body.c365-woo-prices li.product .c365-price-stack-sale .c365-price-main,
body.c365-woo-prices .wc-block-product .c365-price-stack-sale .c365-price-main,
body.c365-woo-prices .wc-block-grid__product .c365-price-stack-sale .c365-price-main {
	box-sizing: border-box;
	display: flex !important;
	width: 100%;
	flex-direction: row !important;
	flex-wrap: wrap;
	justify-content: center;
	align-items: baseline;
	column-gap: 1.1em;
	row-gap: 0.15em;
	text-align: center;
}

@media (min-width: 768px) {
	body.c365-woo-prices li.product .c365-price-stack-sale .c365-price-main,
	body.c365-woo-prices .wc-block-product .c365-price-stack-sale .c365-price-main,
	body.c365-woo-prices .wc-block-grid__product .c365-price-stack-sale .c365-price-main {
		flex-direction: column !important;
		align-items: center;
		gap: 0.12em;
	}
}

body.c365-woo-prices li.product .c365-price-stack-sale .c365-price-main del,
body.c365-woo-prices .wc-block-product .c365-price-stack-sale .c365-price-main del,
body.c365-woo-prices .wc-block-grid__product .c365-price-stack-sale .c365-price-main del {
	font-size: 0.72em;
}

body.c365-woo-prices.c365-hide-regular .woocommerce .price .c365-price-sale del,
body.c365-woo-prices.c365-hide-regular .wc-block-components-product-price del,
body.c365-woo-prices.c365-hide-regular .wc-block-grid__product-price del {
	display: none !important;
}

.c365-item .c365-price-sale,
.c365-table .c365-price-sale {
	color: var(--c365-sale-color);
}

.c365-item .c365-regular-price,
.c365-table .c365-regular-price {
	display: block;
	margin: 0;
	color: var(--c365-regular-color);
	font-size: 0.82em;
	font-weight: 400;
	text-decoration: line-through;
}

.c365-anchor,
.c365-lowest {
	display: block;
	font-size: var(--c365-context-size);
	font-weight: 400;
	line-height: 1.45;
	color: var(--c365-anchor-color);
}

.c365-lowest {
	color: var(--c365-lowest-color);
}

.c365-lowest .c365-price-value {
	font-weight: 600;
}

.c365-anchor .woocommerce-Price-amount,
.c365-lowest .woocommerce-Price-amount {
	color: inherit;
	font-size: inherit;
	font-weight: 500;
}

.c365-item .c365-price-stack {
	display: flex;
	margin-top: 0.3em;
}

.c365-table .c365-price-context {
	font-size: 0.9em;
	color: var(--c365-anchor-color);
}

.c365-table .c365-price-context .c365-price-anchor,
.c365-table .c365-price-context .c365-price-lowest-30 {
	font-size: inherit;
}

body.c365-woo-prices .wc-block-components-product-price:has(del):has(ins),
body.c365-woo-prices .wc-block-grid__product-price:has(del):has(ins) {
	display: inline-flex !important;
	flex-direction: column !important;
	align-items: center;
	gap: 0.18em;
}

body.c365-woo-prices .wc-block-components-product-price ins,
body.c365-woo-prices .wc-block-grid__product-price ins {
	display: block !important;
	order: 0;
	color: var(--c365-sale-color);
	font-size: 1.2em;
	font-weight: 700;
	text-decoration: none;
}

body.c365-woo-prices .wc-block-components-product-price del,
body.c365-woo-prices .wc-block-grid__product-price del {
	display: block !important;
	order: 1;
	color: var(--c365-regular-color);
	font-size: 0.82em;
	font-weight: 400;
}

/* Woo's block price wrapper is outside c365-price-stack in Product Collection. */
body.c365-woo-prices .wc-block-product .wc-block-components-product-price,
body.c365-woo-prices .wc-block-grid__product .wc-block-grid__product-price {
	box-sizing: border-box;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center;
	align-items: center;
	width: 100%;
	text-align: center;
}

/* Per-unit history in the classic cart, mini-cart and checkout summary. */
.woocommerce .c365-price-stack-context {
	display: inline-flex;
	margin-top: 0.35em;
	font-size: var(--c365-context-size);
	font-weight: 400;
	white-space: normal;
}

.woocommerce .c365-price-stack-context .c365-regular-price {
	display: block;
	color: var(--c365-regular-color);
	font-size: 1em;
	font-weight: 400;
	text-decoration: none;
}

.woocommerce .c365-price-stack-context .c365-regular-price .c365-price-value {
	text-decoration: line-through;
}

.woocommerce .c365-price-stack-context .c365-anchor,
.woocommerce .c365-price-stack-context .c365-lowest {
	font-size: 1em;
}

.woocommerce-mini-cart .c365-price-stack-context {
	display: flex;
	max-width: 100%;
}

/* WooCommerce Blocks expose these as product details under each cart item. */
.wc-block-components-product-details .c365-cart-meta-price {
	display: inline-block;
	color: var(--c365-anchor-color);
	font-size: var(--c365-context-size);
	font-weight: 500;
}

.wc-block-components-product-details .c365-cart-meta-price.c365-price-lowest-30 {
	color: var(--c365-lowest-color);
}

.wc-block-components-product-details .c365-cart-meta-price.c365-price-regular {
	color: var(--c365-regular-color);
	font-weight: 400;
	text-decoration: line-through;
}
