/*
 * WooCommerce styling for Omorfo Shop.
 * Loaded on top of style.css only when WooCommerce is active
 * (see inc/woocommerce.php). Uses the same design tokens defined
 * in style.css :root.
 */

/* ==========================================================================
   1. Shop layout
   ========================================================================== */

.woocommerce-page #primary.content-area {
	padding-top: 2.5rem;
	padding-bottom: 3rem;
}

.woocommerce-products-header__title.page-title {
	margin-bottom: 0.35rem;
}

.woocommerce-products-header .archive-description,
.woocommerce-products-header .term-description {
	color: var(--omorfo-text-muted);
	max-width: 60ch;
	margin-bottom: 0;
}

.shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin: 2rem 0 1.75rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--omorfo-border);
}

.shop-toolbar .woocommerce-result-count {
	margin: 0;
}

.shop-toolbar .woocommerce-ordering {
	margin: 0;
}

.woocommerce-breadcrumb {
	font-size: 0.8rem;
	color: var(--omorfo-text-faint);
	margin-bottom: 1.5rem;
}

.woocommerce-breadcrumb a {
	color: var(--omorfo-text-faint);
}

.woocommerce-breadcrumb a:hover {
	color: var(--omorfo-primary);
}

.woocommerce-result-count,
.woocommerce-ordering {
	font-size: 0.85rem;
	color: var(--omorfo-text-muted);
}

.woocommerce-ordering select {
	width: auto;
}

.woocommerce-notices-wrapper {
	margin-bottom: 1.5rem;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	border-left: 3px solid var(--omorfo-primary);
	border-radius: var(--omorfo-radius-sm);
	padding: 1rem 1.4rem;
	list-style: none;
	color: var(--omorfo-text);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.woocommerce-error {
	border-left-color: var(--omorfo-danger);
}

.woocommerce-message .button {
	order: 2;
}

/* ==========================================================================
   2. Product loop / cards
   ========================================================================== */

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 1.75rem;
	list-style: none;
	padding: 0;
	margin: 0 0 2rem;
}

.woocommerce ul.products li.product {
	position: relative;
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	border-radius: var(--omorfo-radius-md);
	padding: 1.25rem 1.25rem 1.5rem;
	text-align: left;
	transition: border-color var(--omorfo-transition), transform var(--omorfo-transition), box-shadow var(--omorfo-transition);
}

.woocommerce ul.products li.product:hover {
	border-color: var(--omorfo-primary);
	transform: translateY(-4px);
	box-shadow: var(--omorfo-shadow-glow);
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	color: inherit;
}

.woocommerce ul.products li.product img {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: var(--omorfo-surface-alt);
	border-radius: var(--omorfo-radius-sm);
	margin-bottom: 1rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--omorfo-font-heading);
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--omorfo-text);
	margin: 0 0 0.35rem;
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
	color: var(--omorfo-primary);
}

.woocommerce ul.products li.product .star-rating {
	margin-bottom: 0.4rem;
	font-size: 0.8rem;
}

.woocommerce ul.products li.product .price {
	display: block;
	font-family: var(--omorfo-font-heading);
	font-weight: 700;
	font-size: 1rem;
	color: var(--omorfo-primary);
	margin-bottom: 0;
}

.woocommerce ul.products li.product .price del {
	color: var(--omorfo-text-faint);
	font-weight: 400;
	font-size: 0.85em;
	margin-right: 0.5em;
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.added_to_cart {
	display: inline-flex;
	margin-top: 0.9rem;
	width: 100%;
	font-size: 0.72rem;
	padding: 0.7em 1em;
}

/* Sale / featured badges */
.woocommerce span.onsale {
	position: absolute;
	top: 0.9rem;
	left: 0.9rem;
	background: var(--omorfo-primary);
	color: var(--omorfo-white);
	font-family: var(--omorfo-font-heading);
	font-weight: 700;
	font-size: 0.65rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 0.3em 0.7em;
	border-radius: var(--omorfo-radius-pill);
	min-height: 0;
	min-width: 0;
	line-height: 1.4;
	z-index: 2;
}

/* Star ratings (WooCommerce renders a nested span with a % width) */
.star-rating {
	overflow: hidden;
	position: relative;
	height: 1em;
	line-height: 1em;
	width: 5.4em;
}

.star-rating::before {
	content: "★★★★★";
	font-family: initial;
	letter-spacing: 0.2em;
	color: var(--omorfo-border-strong);
	position: absolute;
	top: 0;
	left: 0;
}

.star-rating span {
	overflow: hidden;
	float: left;
	top: 0;
	left: 0;
	position: absolute;
	height: 100%;
}

.star-rating span::before {
	content: "★★★★★";
	color: var(--omorfo-warning);
	position: absolute;
	top: 0;
	left: 0;
}

/* ==========================================================================
   3. Pagination
   ========================================================================== */

.woocommerce-pagination ul.page-numbers,
nav.woocommerce-pagination ul {
	list-style: none;
	display: flex;
	gap: 0.5rem;
	padding: 0;
	margin: 2rem 0 0;
}

.woocommerce-pagination .page-numbers li {
	display: inline-block;
}

.woocommerce-pagination a.page-numbers,
.woocommerce-pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 0.5em;
	border: 1px solid var(--omorfo-border);
	border-radius: var(--omorfo-radius-sm);
	font-size: 0.85rem;
	color: var(--omorfo-text);
}

.woocommerce-pagination span.page-numbers.current {
	background: var(--omorfo-primary);
	border-color: var(--omorfo-primary);
	color: var(--omorfo-white);
}

.woocommerce-pagination a.page-numbers:hover {
	border-color: var(--omorfo-primary);
	color: var(--omorfo-primary);
}

/* ==========================================================================
   4. Single product
   ========================================================================== */

.single-product div.product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	margin-bottom: 3rem;
}

.single-product div.images {
	background: var(--omorfo-surface);
	border-radius: var(--omorfo-radius-lg);
	padding: 1.5rem;
}

.single-product div.images img {
	border-radius: var(--omorfo-radius-md);
}

.single-product .summary .product_title {
	margin-bottom: 0.5rem;
}

.single-product .summary .price {
	font-family: var(--omorfo-font-heading);
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--omorfo-primary);
	display: block;
	margin-bottom: 1rem;
}

.single-product .summary .price del {
	color: var(--omorfo-text-faint);
	font-size: 0.6em;
	margin-right: 0.5em;
}

.single-product .summary .woocommerce-product-details__short-description {
	color: var(--omorfo-text-muted);
	margin-bottom: 1.5rem;
}

.single-product form.cart {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
	flex-wrap: wrap;
}

.single-product .quantity {
	display: inline-flex;
}

.single-product .quantity .qty {
	width: 4.5rem;
	text-align: center;
}

.single-product .product_meta {
	font-size: 0.8rem;
	color: var(--omorfo-text-faint);
	padding-top: 1rem;
	border-top: 1px solid var(--omorfo-border);
}

.single-product .product_meta a {
	color: var(--omorfo-text-faint);
}

.single-product .product_meta a:hover {
	color: var(--omorfo-primary);
}

.woocommerce-tabs ul.tabs {
	list-style: none;
	display: flex;
	gap: 0.5rem;
	padding: 0;
	margin: 3rem 0 0;
	border-bottom: 1px solid var(--omorfo-border);
}

.woocommerce-tabs ul.tabs li {
	margin: 0;
}

.woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 0.9rem 1.2rem;
	font-family: var(--omorfo-font-heading);
	font-weight: 600;
	font-size: 0.85rem;
	text-transform: uppercase;
	color: var(--omorfo-text-muted);
}

.woocommerce-tabs ul.tabs li.active a {
	color: var(--omorfo-primary);
	box-shadow: inset 0 -2px 0 var(--omorfo-primary);
}

.woocommerce-tabs .panel {
	padding: 2rem 0;
	color: var(--omorfo-text-muted);
}

/* ==========================================================================
   4a. Reviews (rating select widget + comment list)
   ========================================================================== */

.comment-form-rating label {
	display: inline-block;
	margin-bottom: 0.5rem;
}

p.stars {
	clear: both;
	margin: 0 0 1rem;
}

p.stars a {
	position: relative;
	display: inline-block;
	width: 1.3em;
	height: 1.3em;
	font-size: 1.4rem;
	text-indent: -999em;
	text-decoration: none;
}

p.stars a::before {
	content: "★";
	position: absolute;
	top: 0;
	left: 0;
	text-indent: 0;
	color: var(--omorfo-border-strong);
}

p.stars a:hover ~ a::before {
	color: var(--omorfo-border-strong);
}

p.stars:hover a::before,
p.stars.selected a.active::before {
	color: var(--omorfo-warning);
}

p.stars.selected a.active ~ a::before {
	color: var(--omorfo-border-strong);
}

p.stars.selected a:not(.active)::before {
	color: var(--omorfo-warning);
}

#reviews #comments ol.commentlist {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
}

#reviews #comments ol.commentlist li {
	position: relative;
	margin: 0 0 1.25rem;
	padding-left: 4rem;
}

#reviews #comments ol.commentlist li img.avatar {
	position: absolute;
	top: 0.25rem;
	left: 0;
	width: 46px;
	height: 46px;
	border-radius: 50%;
}

#reviews #comments ol.commentlist .comment-text {
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	border-radius: var(--omorfo-radius-md);
	padding: 1.1rem 1.4rem;
}

#reviews #comments ol.commentlist .comment-text p.meta {
	font-size: 0.75rem;
	color: var(--omorfo-text-faint);
	margin-bottom: 0.5rem;
}

#reviews #comments ol.commentlist .comment-text .description p:last-child {
	margin-bottom: 0;
}

.related.products,
.up-sells.products,
.cart-collaterals .cross-sells {
	margin-top: 3rem;
}

.related.products > h2,
.up-sells.products > h2,
.cart-collaterals .cross-sells > h2 {
	margin-bottom: 1.5rem;
}

/* Stock status */
.stock {
	display: inline-block;
	font-size: 0.85rem;
	font-weight: 600;
}

.stock.in-stock {
	color: var(--omorfo-accent-cyan);
}

.stock.out-of-stock,
.stock.onbackorder {
	color: var(--omorfo-primary);
}

/* ==========================================================================
   4b. Product gallery (zoom / lightbox / thumbnail slider)
   ========================================================================== */

.woocommerce-product-gallery {
	position: relative;
}

.woocommerce-product-gallery__wrapper {
	margin: 0;
	padding: 0;
	list-style: none;
	display: block;
}

.woocommerce-product-gallery__image,
.woocommerce-product-gallery__image--placeholder {
	margin: 0;
}

.woocommerce-product-gallery__image a {
	display: block;
	outline: none;
}

.woocommerce-product-gallery__trigger {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--omorfo-white);
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 2;
}

.woocommerce-product-gallery__trigger img {
	width: 16px;
	height: 16px;
}

/* Thumbnail slider (flexslider) */
.flex-viewport {
	margin-bottom: 1rem;
	border-radius: var(--omorfo-radius-md);
	overflow: hidden;
}

.flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.flex-control-thumbs li {
	margin: 0;
}

.flex-control-thumbs li img {
	cursor: pointer;
	border-radius: var(--omorfo-radius-sm);
	background: var(--omorfo-surface-alt);
	opacity: 0.55;
	border: 1px solid transparent;
	transition: opacity var(--omorfo-transition), border-color var(--omorfo-transition);
}

.flex-control-thumbs li img:hover,
.flex-control-thumbs li img.flex-active {
	opacity: 1;
	border-color: var(--omorfo-primary);
}

/* ==========================================================================
   4c. Variations (variable products)
   ========================================================================== */

.variations {
	width: 100%;
	margin-bottom: 1.25rem;
	border: none;
}

.variations tr {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 0.75rem;
}

.variations th.label {
	font-family: var(--omorfo-font-heading);
	font-weight: 600;
	font-size: 0.85rem;
	color: var(--omorfo-text);
	text-align: left;
	white-space: nowrap;
}

.variations td.value {
	flex: 1 1 auto;
}

.variations select {
	max-width: 320px;
}

.reset_variations {
	display: inline-block;
	margin-top: 0.5rem;
	font-size: 0.8rem;
	color: var(--omorfo-text-faint);
}

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

.single_variation_wrap {
	margin-bottom: 1.5rem;
}

.woocommerce-variation-price .price {
	font-family: var(--omorfo-font-heading);
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--omorfo-primary);
}

.woocommerce-variation-description p {
	color: var(--omorfo-text-muted);
	margin-bottom: 0;
}

.woocommerce-variation-availability {
	margin-bottom: 1rem;
}

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

	.flex-control-thumbs {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* ==========================================================================
   5. Cart & checkout
   ========================================================================== */

.woocommerce table.shop_table {
	width: 100%;
	border-collapse: collapse;
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	border-radius: var(--omorfo-radius-md);
	overflow: hidden;
	margin-bottom: 2rem;
}

.woocommerce table.shop_table th {
	text-align: left;
	font-family: var(--omorfo-font-heading);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--omorfo-text-faint);
	padding: 1rem;
	border-bottom: 1px solid var(--omorfo-border);
}

.woocommerce table.shop_table td {
	padding: 1rem;
	border-bottom: 1px solid var(--omorfo-border);
	font-size: 0.9rem;
}

.woocommerce table.shop_table tr:last-child td {
	border-bottom: none;
}

.woocommerce td.product-thumbnail img {
	width: 64px;
	border-radius: var(--omorfo-radius-sm);
}

.woocommerce .cart-collaterals .cart_totals {
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	border-radius: var(--omorfo-radius-md);
	padding: 1.5rem;
}

.woocommerce .cart_totals table {
	width: 100%;
}

.woocommerce .cart_totals table th,
.woocommerce .cart_totals table td {
	padding: 0.6rem 0;
	border-bottom: 1px solid var(--omorfo-border);
	font-size: 0.85rem;
}

.woocommerce .cart_totals .order-total .amount {
	color: var(--omorfo-primary);
	font-family: var(--omorfo-font-heading);
	font-weight: 700;
}

.woocommerce-checkout-review-order-table {
	background: transparent;
}

.woocommerce-checkout #payment {
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	border-radius: var(--omorfo-radius-md);
	padding: 1.5rem;
}

.woocommerce-checkout #payment ul.payment_methods {
	list-style: none;
	padding: 0;
}

.woocommerce-checkout .form-row label {
	font-size: 0.8rem;
}

@media (max-width: 700px) {
	.woocommerce table.shop_table_responsive thead {
		display: none;
	}

	.woocommerce table.shop_table_responsive tr {
		display: block;
	}

	.woocommerce table.shop_table_responsive tr td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		text-align: right;
	}

	.woocommerce table.shop_table_responsive tr td.product-remove,
	.woocommerce table.shop_table_responsive tr td.actions {
		justify-content: flex-end;
	}

	.woocommerce table.shop_table_responsive tr td::before {
		content: attr(data-title) ": ";
		font-family: var(--omorfo-font-heading);
		font-weight: 600;
		font-size: 0.75rem;
		text-transform: uppercase;
		letter-spacing: 0.03em;
		color: var(--omorfo-text-faint);
		text-align: left;
	}

	.woocommerce table.shop_table_responsive tr td.product-remove::before,
	.woocommerce table.shop_table_responsive tr td.actions::before {
		content: none;
	}
}

/* ==========================================================================
   6. My Account
   ========================================================================== */

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	border-radius: var(--omorfo-radius-md);
	overflow: hidden;
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
	border-bottom: 1px solid var(--omorfo-border);
}

.woocommerce-account .woocommerce-MyAccount-navigation li:last-child {
	border-bottom: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.85rem 1.2rem;
	font-size: 0.85rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	color: var(--omorfo-primary);
	background: var(--omorfo-surface-alt);
}

.woocommerce-MyAccount-content {
	background: transparent;
}

/* ==========================================================================
   7. Widgets (price filter, layered nav, etc.)
   ========================================================================== */

.woocommerce .widget_price_filter .price_slider_amount .button {
	float: right;
	width: auto;
}

.woocommerce ul.product-categories,
.woocommerce ul.wc-layered-nav-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.woocommerce ul.product-categories li,
.woocommerce ul.wc-layered-nav-list li {
	padding: 0.35rem 0;
	font-size: 0.85rem;
}

/* ==========================================================================
   8. Cart & Checkout blocks (WooCommerce Blocks)
   The Cart and Checkout pages render via WooCommerce's block templates,
   which ship their own markup/CSS under .wc-block-* classes — separate
   from the classic selectors styled above. That CSS assumes a light
   page background (e.g. labels use color:inherit, dark-theme support
   is an opt-in per-block toggle we don't set), so on this dark theme
   it renders white-on-white fields and unstyled generic buttons/notices.
   These rules re-theme those components with the same tokens used above.
   ========================================================================== */

.wc-block-components-checkout-step__title {
	font-family: var(--omorfo-font-heading);
	color: var(--omorfo-text);
}

.wc-block-components-checkout-step__description {
	color: var(--omorfo-text-muted);
}

/* -- Text inputs + floating labels --
   WooCommerce ships its own ".wc-block-components-form
   .wc-block-components-text-input input[type=...]" base rule (2 classes
   + 1 attribute), which is more specific than a plain
   ".wc-block-components-text-input input[type=...]" selector and wins
   regardless of stylesheet order. Matching that exact ancestor chain
   here is what lets our colors actually win the cascade. */
.wc-block-components-form .wc-block-components-text-input input[type="text"],
.wc-block-components-form .wc-block-components-text-input input[type="email"],
.wc-block-components-form .wc-block-components-text-input input[type="tel"],
.wc-block-components-form .wc-block-components-text-input input[type="url"],
.wc-block-components-form .wc-block-components-text-input input[type="password"],
.wc-block-components-form .wc-block-components-text-input input[type="number"] {
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	color: var(--omorfo-text);
	border-radius: var(--omorfo-radius-sm);
	box-shadow: none;
}

.wc-block-components-form .wc-block-components-text-input input[type="text"]:focus,
.wc-block-components-form .wc-block-components-text-input input[type="email"]:focus,
.wc-block-components-form .wc-block-components-text-input input[type="tel"]:focus,
.wc-block-components-form .wc-block-components-text-input input[type="url"]:focus,
.wc-block-components-form .wc-block-components-text-input input[type="password"]:focus,
.wc-block-components-form .wc-block-components-text-input input[type="number"]:focus {
	background: var(--omorfo-surface);
	border: 1.5px solid var(--omorfo-primary);
	color: var(--omorfo-text);
	box-shadow: none;
}

/* Chrome/Edge paint recognized fields (name, address, email...) with a
   hardcoded white autofill background that ordinary background-color
   rules cannot override — this is the only combination that beats it. */
.wc-block-components-form .wc-block-components-text-input input:-webkit-autofill,
.wc-block-components-form .wc-block-components-text-input input:-webkit-autofill:hover,
.wc-block-components-form .wc-block-components-text-input input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--omorfo-text);
	-webkit-box-shadow: 0 0 0 1000px var(--omorfo-surface) inset;
	box-shadow: 0 0 0 1000px var(--omorfo-surface) inset;
	transition: background-color 5000s ease-in-out 0s;
}

.wc-block-components-form .wc-block-components-text-input input:autofill {
	box-shadow: 0 0 0 1000px var(--omorfo-surface) inset;
	-webkit-text-fill-color: var(--omorfo-text);
}

.wc-block-components-text-input label {
	color: var(--omorfo-text-faint);
}

.wc-block-components-text-input.has-error input {
	border-color: var(--omorfo-danger);
}

.wc-block-components-text-input.has-error label {
	color: var(--omorfo-danger);
}

/* -- Country / state selects -- */
.wc-blocks-components-select .wc-blocks-components-select__select {
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	color: var(--omorfo-text);
	border-radius: var(--omorfo-radius-sm);
}

.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	background: var(--omorfo-surface);
	border-color: var(--omorfo-primary);
	color: var(--omorfo-text);
}

.wc-blocks-components-select__label {
	color: var(--omorfo-text-faint);
}

.wc-blocks-components-select__select:-webkit-autofill,
.wc-blocks-components-select__select:-webkit-autofill:hover,
.wc-blocks-components-select__select:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--omorfo-text);
	-webkit-box-shadow: 0 0 0 1000px var(--omorfo-surface) inset;
	box-shadow: 0 0 0 1000px var(--omorfo-surface) inset;
}

/* -- Checkbox (order note, save info) -- */
.wc-block-components-checkbox {
	color: var(--omorfo-text-muted);
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	background-color: var(--omorfo-surface);
	border-color: var(--omorfo-border-strong);
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background-color: var(--omorfo-primary);
	border-color: var(--omorfo-primary);
}

.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: var(--omorfo-white);
}

/* -- Radio options (shipping / payment methods) -- */
.wc-block-components-radio-control .wc-block-components-radio-control__option {
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	border-radius: var(--omorfo-radius-sm);
	margin-bottom: 0.5rem;
	color: var(--omorfo-text);
}

.wc-block-components-radio-control .wc-block-components-radio-control__input {
	background: var(--omorfo-surface-alt);
	border-color: var(--omorfo-border-strong);
}

.wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
	border-color: var(--omorfo-primary);
}

.wc-block-components-radio-control .wc-block-components-radio-control__input:checked:before {
	background: var(--omorfo-primary);
}

/* -- Notices (e.g. "no payment methods available") -- */
.wc-block-components-notice-banner {
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	border-left: 3px solid var(--omorfo-text-faint);
	border-radius: var(--omorfo-radius-sm);
	color: var(--omorfo-text);
}

.wc-block-components-notice-banner.is-error {
	background: var(--omorfo-surface);
	border-color: var(--omorfo-border);
	border-left-color: var(--omorfo-danger);
	color: var(--omorfo-text);
}

.wc-block-components-notice-banner.is-info {
	background: var(--omorfo-surface);
	border-color: var(--omorfo-border);
	border-left-color: var(--omorfo-info);
	color: var(--omorfo-text);
}

.wc-block-components-notice-banner.is-success {
	background: var(--omorfo-surface);
	border-color: var(--omorfo-border);
	border-left-color: var(--omorfo-accent-cyan);
	color: var(--omorfo-text);
}

.wc-block-components-notice-banner.is-warning {
	background: var(--omorfo-surface);
	border-color: var(--omorfo-border);
	border-left-color: var(--omorfo-warning);
	color: var(--omorfo-text);
}

.wc-block-components-notice-banner .wc-forward {
	color: var(--omorfo-primary) !important;
}

/* -- Panels (collapsible sections) -- */
.wc-block-components-panel {
	border-color: var(--omorfo-border);
}

.wc-block-components-panel__button {
	color: var(--omorfo-text);
}

/* -- Primary actions: Place order / Proceed to checkout -- */
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wc-block-components-button {
	background: var(--omorfo-primary);
	border: 1px solid var(--omorfo-primary);
	color: var(--omorfo-white);
	border-radius: var(--omorfo-radius-sm);
	font-family: var(--omorfo-font-heading);
	font-weight: 700;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-button:hover {
	background: var(--omorfo-primary-hover);
	border-color: var(--omorfo-primary-hover);
	color: var(--omorfo-white);
}

.wc-block-components-checkout-place-order-button:disabled,
.wc-block-components-checkout-place-order-button[aria-disabled="true"],
.wc-block-cart__submit-button:disabled,
.wc-block-cart__submit-button[aria-disabled="true"] {
	background: var(--omorfo-surface-alt);
	border-color: var(--omorfo-border);
	color: var(--omorfo-text-faint);
	cursor: not-allowed;
}

/* Small icon-only buttons (notice dismiss, chip remove) keep WooCommerce's
   own !important-guarded styling and are unaffected by the rules above. */

/* -- Cart items & order summary -- */
.wc-block-cart-item__product {
	border-bottom: 1px solid var(--omorfo-border);
}

.wc-block-components-product-name {
	color: var(--omorfo-text);
	font-family: var(--omorfo-font-heading);
}

.wc-block-components-quantity-selector {
	border: 1px solid var(--omorfo-border);
	border-radius: var(--omorfo-radius-sm);
	background: var(--omorfo-surface);
}

.wc-block-components-quantity-selector__input {
	background: transparent;
	color: var(--omorfo-text);
}

.wc-block-cart__totals-title,
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value {
	color: var(--omorfo-text-muted);
}

/* Grand total row (Cart sidebar + Checkout order summary) — stand out
   like the classic cart_totals .order-total .amount rule above. */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	color: var(--omorfo-primary);
	font-family: var(--omorfo-font-heading);
	font-weight: 700;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 1.15rem;
}

.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
	background: var(--omorfo-surface);
	border: 1px solid var(--omorfo-border);
	border-radius: var(--omorfo-radius-md);
	padding: 1.5rem;
}
