/**
 * Sanctoria WooCommerce styles. Loaded only when WooCommerce is active,
 * on top of WooCommerce's own stylesheets.
 */

/* Header cart ---------------------------------------------------------- */
.header-cart { position: relative; }
.header-cart__link {
	align-items: center;
	border-radius: 4px;
	color: inherit;
	display: inline-flex;
	gap: 0.35rem;
	padding: 0.4rem;
	position: relative;
	text-decoration: none;
}
.header-cart__link:hover { opacity: 0.8; }
.header-cart__count {
	background: var(--wp--preset--color--accent);
	border-radius: 999px;
	color: var(--wp--preset--color--base);
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1;
	min-width: 1.4em;
	padding: 0.25em 0.4em;
	position: absolute;
	inset-inline-end: -0.2rem;
	text-align: center;
	top: -0.1rem;
}
.header-cart__panel {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 8px;
	box-shadow: var(--wp--preset--shadow--medium);
	display: none;
	font-size: var(--wp--preset--font-size--small);
	inset-inline-end: 0;
	padding: 1rem;
	position: absolute;
	top: 100%;
	width: 340px;
	z-index: 70;
}
@media (hover: hover) and (min-width: 901px) {
	.header-cart:hover .header-cart__panel,
	.header-cart:focus-within .header-cart__panel { display: block; }
}
.header-cart__panel .widget_shopping_cart { margin: 0; }
.header-cart__panel .woocommerce-mini-cart { list-style: none; margin: 0 0 1rem; max-height: 50vh; overflow-y: auto; padding: 0; }
.header-cart__panel .woocommerce-mini-cart__buttons { display: flex; gap: 0.5rem; margin: 0; }
.header-cart__panel .woocommerce-mini-cart__buttons .button { flex: 1; text-align: center; }
.header-cart__panel .woocommerce-mini-cart__total { border-top: 1px solid var(--wp--preset--color--line); display: flex; justify-content: space-between; padding-top: 0.75rem; }

/* Mini cart (widget, block) */
.woocommerce-mini-cart-item { align-items: flex-start; border-bottom: 1px solid var(--wp--preset--color--line); padding: 0.6rem 1.5rem 0.6rem 0 !important; position: relative; }
.woocommerce-mini-cart-item img { border-radius: 4px; float: left; margin-inline-end: 0.75rem; width: 48px !important; }
.woocommerce-mini-cart-item a.remove { position: absolute; inset-inline-end: 0; top: 0.6rem; }
.wc-block-mini-cart__button { color: inherit; }
.wc-block-mini-cart__badge { background: var(--wp--preset--color--primary) !important; color: var(--wp--preset--color--base) !important; }

/* Layout ------------------------------------------------------------- */

.woocommerce-breadcrumb { color: var(--wp--preset--color--contrast-2); font-size: var(--wp--preset--font-size--x-small); margin-bottom: 1.5rem; }
.woocommerce-breadcrumb a { color: inherit; }
.woocommerce-products-header__title { margin-top: 0; }

/* Buttons ------------------------------------------------------------ */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce-page .button,
.wc-block-components-button:not(.is-link) {
	background: var(--wp--preset--color--primary);
	border: 0;
	border-radius: var(--sanctoria-button-radius, 4px);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.2;
	padding: var(--sanctoria-button-padding, 0.85em 1.5em);
	text-decoration: none;
	text-transform: var(--sanctoria-button-transform, none);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.wc-block-components-button:not(.is-link):hover {
	background: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--base);
}
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] { opacity: 0.6; padding: 0.85em 1.5em; }
.woocommerce a.added_to_cart { display: inline-block; font-size: var(--wp--preset--font-size--small); margin-top: 0.5rem; padding: 0; }

/* Product grid (classic loop) ----------------------------------------- */
.woocommerce ul.products,
.woocommerce-page ul.products { display: grid; gap: var(--wp--preset--spacing--40); margin: 0 0 2rem; }
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product { float: none; margin: 0; width: auto; display: flex; flex-direction: column; }
.woocommerce ul.products.columns-1 { grid-template-columns: minmax(0, 1fr); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.woocommerce ul.products.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1024px) {
	.woocommerce ul.products[class*="columns-"]:not(.columns-1):not(.columns-2) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
	.woocommerce ul.products[class*="columns-"]:not(.columns-1) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
}
.woocommerce ul.products li.product a img { border-radius: 6px; margin-bottom: 0.75rem; aspect-ratio: 1; object-fit: cover; background: var(--wp--preset--color--base-2); }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-category__title { color: var(--wp--preset--color--contrast); font-size: var(--wp--preset--font-size--medium); font-weight: 600; padding: 0; }
.woocommerce ul.products li.product .price { color: var(--wp--preset--color--contrast); font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.woocommerce ul.products li.product .price del { color: var(--wp--preset--color--contrast-2); font-weight: 400; opacity: 1; }
.woocommerce ul.products li.product .button { margin-top: auto; align-self: flex-start; }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { color: inherit; text-decoration: none; display: block; }
.woocommerce span.onsale {
	background: var(--wp--preset--color--secondary);
	border-radius: 4px;
	color: var(--wp--preset--color--base);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1;
	min-height: 0;
	min-width: 0;
	padding: 0.5em 0.7em;
	text-transform: uppercase;
	top: 0.75rem;
	left: 0.75rem;
	margin: 0;
}
.woocommerce .star-rating span::before,
.woocommerce p.stars a { color: var(--wp--preset--color--secondary); }

.woocommerce .woocommerce-result-count { color: var(--wp--preset--color--contrast-2); font-size: var(--wp--preset--font-size--small); }
.woocommerce .woocommerce-ordering select { padding-block: 0.5em; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 0.4rem; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { border: 1px solid var(--wp--preset--color--line); border-radius: 4px; min-width: 2.5em; padding: 0.55em 0.8em; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }

/* Single product ----------------------------------------------------- */
.woocommerce div.product { display: grid; gap: var(--wp--preset--spacing--50); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.woocommerce div.product > * { grid-column: 1 / -1; }
.woocommerce div.product div.images,
.woocommerce div.product div.summary { float: none; grid-column: auto; margin: 0; width: auto; }
.woocommerce div.product > span.onsale { grid-column: 1; }
@media (max-width: 768px) {
	.woocommerce div.product { grid-template-columns: minmax(0, 1fr); }
}
.woocommerce div.product div.images img { border-radius: 8px; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; gap: 0.5rem; grid-template-columns: repeat(5, 1fr); margin-top: 0.5rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; }
.woocommerce div.product div.images .flex-control-thumbs li img { border-radius: 4px; }
.woocommerce div.product .product_title { font-size: var(--wp--preset--font-size--xx-large); margin-top: 0; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--wp--preset--color--contrast); font-size: var(--wp--preset--font-size--x-large); font-weight: 700; }
.woocommerce div.product p.price del { color: var(--wp--preset--color--contrast-2); font-size: 0.7em; font-weight: 400; }
.woocommerce div.product form.cart { align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem; margin-block: 1.5rem; }
.woocommerce div.product form.cart.variations_form,
.woocommerce div.product form.cart.grouped_form { display: block; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .button { float: none; }
.woocommerce .quantity .qty { padding-block: 0.7em; width: 4.5em; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { border: 0; padding: 0.4rem 0; }
.woocommerce div.product .product_meta { border-top: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--contrast-2); font-size: var(--wp--preset--font-size--small); padding-top: 1rem; }
.woocommerce div.product .product_meta > span { display: block; }
.woocommerce div.product .woocommerce-tabs ul.tabs { border-bottom: 1px solid var(--wp--preset--color--line); display: flex; flex-wrap: wrap; gap: 0.25rem; margin: 0 0 1.5rem; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-bottom: 2px solid transparent; border-radius: 0; margin: 0 0 -1px; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--wp--preset--color--contrast-2); font-weight: 600; padding: 0.75em 1em; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom-color: var(--wp--preset--color--primary); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--wp--preset--color--contrast); }
.woocommerce div.product .woocommerce-tabs .panel { margin-bottom: 2rem; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { border-color: var(--wp--preset--color--line); border-radius: 6px; }
.related.products > h2,
.upsells.products > h2,
.cross-sells > h2 { font-size: var(--wp--preset--font-size--x-large); }

/* Notices ------------------------------------------------------------ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	background: var(--wp--preset--color--base-2);
	border-top: 0;
	border-inline-start: 4px solid var(--wp--preset--color--primary);
	border-radius: 4px;
	color: var(--wp--preset--color--contrast);
	padding: 1em 1.25em 1em 3em;
}
.woocommerce-message { border-inline-start-color: #2e7d32; }
.woocommerce-message::before { color: #2e7d32; }
.woocommerce-info::before { color: var(--wp--preset--color--primary); }
.woocommerce-error { border-inline-start-color: #c62828; }
.woocommerce-error::before { color: #c62828; }
.woocommerce-message .button,
.woocommerce-info .button { float: right; margin-inline-start: 1rem; }
.woocommerce-store-notice,
p.demo_store { background: var(--wp--preset--color--primary); }
.wc-block-components-notice-banner { border-radius: 4px; }

/* Tables, cart, checkout (classic) ------------------------------------ */
.woocommerce table.shop_table { border: 1px solid var(--wp--preset--color--line); border-collapse: separate; border-radius: 8px; overflow: hidden; }
.woocommerce table.shop_table th { background: var(--wp--preset--color--base-2); font-size: var(--wp--preset--font-size--small); }
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-color: var(--wp--preset--color--line); padding: 0.9rem 1rem; }
.woocommerce table.cart img { border-radius: 4px; width: 72px; }
.woocommerce table.cart td.actions .coupon .input-text { min-width: 160px; padding: 0.7em 0.85em; }
.woocommerce a.remove { color: #c62828 !important; }
.woocommerce a.remove:hover { background: #c62828; color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals { width: min(100%, 420px); }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: var(--wp--preset--font-size--large); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { font-size: var(--wp--preset--font-size--medium); padding: 1em; }

.woocommerce form .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 0.3rem; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select { width: 100%; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #c62828; }
.select2-container .select2-selection--single { border-color: #8f8f99; border-radius: 4px; height: auto; padding: 0.45em 0.4em; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register { border: 1px solid var(--wp--preset--color--line); border-radius: 8px; padding: 1.5rem; }
.woocommerce-checkout #order_review_heading { margin-top: 2rem; }
.woocommerce-checkout #payment { background: var(--wp--preset--color--base-2); border-radius: 8px; }
.woocommerce-checkout #payment div.payment_box { background: var(--wp--preset--color--base); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--wp--preset--color--base); }
.woocommerce-checkout #payment #place_order { font-size: var(--wp--preset--font-size--medium); padding: 1em 2em; }
@media (min-width: 961px) {
	.woocommerce-checkout form.checkout { display: grid; gap: 0 var(--wp--preset--spacing--50); grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
	.woocommerce-checkout form.checkout > * { grid-column: 1 / -1; }
	.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
	.woocommerce-checkout form.checkout #order_review_heading,
	.woocommerce-checkout form.checkout #order_review { grid-column: 2; }
	.woocommerce-checkout form.checkout #order_review_heading { margin-top: 0; }
	.woocommerce-checkout #customer_details .col-1,
	.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
}
.woocommerce-order-overview { border: 1px solid var(--wp--preset--color--line); border-radius: 8px; padding: 1rem 1.5rem !important; }

/* Cart and Checkout blocks ------------------------------------------- */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { margin-bottom: var(--wp--preset--spacing--50); }
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-form .wc-block-components-text-input input,
.wc-blocks-components-select .wc-blocks-components-select__select { border-color: #8f8f99 !important; border-radius: 4px !important; }
.wc-block-components-text-input input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus { border-color: var(--wp--preset--color--primary) !important; box-shadow: 0 0 0 2px var(--wp--preset--color--primary) !important; }
.wc-block-components-totals-wrapper,
.wc-block-components-panel { border-color: var(--wp--preset--color--line) !important; }
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button { font-size: var(--wp--preset--font-size--medium); min-height: 3.25em; }
.wc-block-components-product-name { color: var(--wp--preset--color--contrast); font-weight: 600; }
.wc-block-components-sidebar-layout .wc-block-components-main { padding-inline-end: var(--wp--preset--spacing--40); }
.wc-block-cart-items__row .wc-block-cart-item__image img { border-radius: 4px; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--wp--preset--color--primary); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--wp--preset--color--base); }

/* Product blocks */
.wc-block-grid__product,
.wp-block-woocommerce-product-template .wc-block-product { text-align: start; }
.wc-block-grid__product-image img,
.wc-block-components-product-image img { border-radius: 6px; }
.wc-block-grid__product-onsale,
.wc-block-components-product-sale-badge { background: var(--wp--preset--color--secondary); border: 0; border-radius: 4px; color: var(--wp--preset--color--base); }

/* My Account ------------------------------------------------------- */
.woocommerce-account .woocommerce { display: grid; gap: var(--wp--preset--spacing--50); grid-template-columns: 220px minmax(0, 1fr); }
.woocommerce-account .woocommerce > *:not(.woocommerce-MyAccount-navigation):not(.woocommerce-MyAccount-content) { grid-column: 1 / -1; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-MyAccount-navigation ul { border: 1px solid var(--wp--preset--color--line); border-radius: 8px; list-style: none; margin: 0; overflow: hidden; padding: 0; }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--wp--preset--color--line); }
.woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-MyAccount-navigation li a { color: var(--wp--preset--color--contrast); display: block; font-size: var(--wp--preset--font-size--small); padding: 0.75rem 1rem; text-decoration: none; }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--wp--preset--color--base-2); box-shadow: inset 3px 0 0 var(--wp--preset--color--primary); font-weight: 600; }
.woocommerce-MyAccount-navigation li a:hover { background: var(--wp--preset--color--base-2); }
@media (max-width: 768px) {
	.woocommerce-account .woocommerce { grid-template-columns: minmax(0, 1fr); }
}
.woocommerce-account .woocommerce .u-columns.col2-set { display: grid; gap: var(--wp--preset--spacing--40); grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.woocommerce-account .woocommerce .u-columns.col2-set .col-1,
.woocommerce-account .woocommerce .u-columns.col2-set .col-2 { float: none; width: auto; }
.woocommerce-account .woocommerce .u-columns.col2-set::before,
.woocommerce-account .woocommerce .u-columns.col2-set::after { display: none; }

/* Widgets */
.widget_price_filter .ui-slider .ui-slider-range,
.widget_price_filter .ui-slider .ui-slider-handle { background-color: var(--wp--preset--color--primary); }
.widget_price_filter .price_slider_wrapper .ui-widget-content { background-color: var(--wp--preset--color--line); }
.widget_product_categories .count { color: var(--wp--preset--color--contrast-2); }

/* Fixes: grid widths, prices, tab panels, wide store pages ------------ */
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product,
.woocommerce-page[class*="columns-"] ul.products li.product { clear: none; float: none; margin: 0; width: auto; }
.woocommerce .price ins,
.wc-block-components-product-price ins { text-decoration: none; }
.woocommerce div.product .woocommerce-tabs .panel > * { margin-inline: 0; max-width: none; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { font-size: var(--wp--preset--font-size--large); }

/* Cart, checkout and account pages use the wide width. */
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) :is(.entry-header, .entry-content > *:not(.alignfull)) { max-width: var(--wp--style--global--wide-size, 1200px); }
.woocommerce .price del,
.woocommerce div.product p.price del,
.woocommerce div.product span.price del,
.wc-block-components-product-price del { color: var(--wp--preset--color--contrast-2); opacity: 1; }
