/* ==========================================================================
   Margowrld — WooCommerce: grid, cards, product page, cart & checkout
   ========================================================================== */

.woocommerce-page .mw-content,
.post-type-archive-product .mw-content,
.tax-product_cat .mw-content { padding-bottom: var(--section); }

/* Hello's page wrapper */
.woocommerce .site-main,
.woocommerce-page .site-main {
	max-width: 1920px !important;
	margin: 0 auto;
	padding: clamp(2rem, 5vw, 4rem) var(--gutter) 0;
}

/* Buttons — every WooCommerce button */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce .single_add_to_cart_button, .woocommerce .checkout-button {
	padding: 1.15em 2.4em !important;
	border: 1px solid var(--c-espresso) !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--c-espresso) !important;
	font-family: var(--f-sub) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: 0.26em !important;
	text-transform: uppercase !important;
	line-height: 1.2 !important;
	transition: background-color 0.5s var(--ease-lux), color 0.5s var(--ease-lux), border-color 0.5s !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover {
	background: var(--c-ink) !important; border-color: var(--c-ink) !important; color: var(--c-ivory) !important;
}
.woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce .single_add_to_cart_button, .woocommerce .checkout-button {
	background: var(--c-wine) !important; border-color: var(--c-wine) !important; color: var(--c-ivory) !important;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover, .woocommerce .checkout-button:hover {
	background: var(--c-ink) !important; border-color: var(--c-ink) !important;
}
.woocommerce .button.loading { opacity: 0.6; pointer-events: none; }
.woocommerce .button.loading::after { display: none !important; }
.woocommerce button.button:disabled, .woocommerce button.button.disabled { opacity: 0.45 !important; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border: 0 !important; border-left: 2px solid var(--c-wine) !important;
	background: var(--c-cream) !important; color: var(--c-espresso) !important;
	font-size: 13px; border-radius: 0;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--c-wine) !important; }

/* ---------- Archive header ---------- */
.woocommerce-products-header { text-align: center; margin-bottom: clamp(2rem, 5vw, 4rem); }
.woocommerce-products-header__title.page-title {
	margin: 0;
	font-family: var(--f-display);
	font-size: var(--fs-h1);
	font-weight: 400;
	line-height: 1.1;
	color: var(--c-espresso);
}
.term-description { max-width: 52ch; margin: 1.2rem auto 0; font-size: var(--fs-sm); }
.woocommerce .woocommerce-breadcrumb { font-family: var(--f-sub); font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-brown); text-align: center; margin-bottom: 1.4rem; }
.woocommerce .woocommerce-breadcrumb a { color: inherit; text-decoration: none; }

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin: 0 0 1.6rem;
	font-family: var(--f-sub);
	font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
}
.woocommerce .woocommerce-ordering select {
	border: 0; border-bottom: 1px solid var(--c-espresso); border-radius: 0;
	background-color: transparent; padding: 0.4em 1.6em 0.4em 0;
	font: inherit; letter-spacing: inherit; text-transform: inherit; color: var(--c-espresso);
}

/* ---------- Product grid ---------- */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(2rem, 4vw, 3.5rem) clamp(0.75rem, 1.5vw, 1.5rem);
	margin: 0 !important;
	padding: 0;
}
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1024px) { .woocommerce ul.products, .woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .woocommerce ul.products, .woocommerce ul.products[class*="columns-"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }

.woocommerce ul.products li.product {
	position: relative;
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	padding: 0 !important;
	text-align: left;
	list-style: none;
}
.woocommerce ul.products li.product a { text-decoration: none; color: var(--c-espresso); }

/* Card media with hover swap */
.mw-card__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	background: var(--c-cream);
	margin-bottom: 1rem;
}
.mw-card__media img {
	width: 100% !important; height: 100% !important;
	object-fit: cover;
	margin: 0 !important;
	transition: transform 1.4s var(--ease-lux), opacity 0.8s var(--ease-lux);
}
.mw-card__media .mw-card__alt { position: absolute; inset: 0; opacity: 0; }
@media (hover: hover) {
	li.product:hover .mw-card__media img { transform: scale(1.04); }
	li.product:hover .mw-card__media .mw-card__alt { opacity: 1; }
}

.woocommerce ul.products li.product .onsale {
	position: absolute; top: 0.8rem; left: 0.8rem; right: auto; z-index: 2;
	min-width: 0; min-height: 0; margin: 0;
	padding: 0.45em 0.9em;
	border-radius: 0;
	background: var(--c-ivory); color: var(--c-wine);
	font-size: 9.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; line-height: 1.3;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0 !important; margin: 0 0 0.3rem !important;
	font-family: var(--f-sub) !important;
	font-size: 12px !important;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.5;
}
.woocommerce ul.products li.product .price {
	display: block;
	margin: 0 !important;
	color: var(--c-brown) !important;
	font-size: 13px !important;
	letter-spacing: 0.04em;
}
.woocommerce ul.products li.product .price del { opacity: 0.55; margin-right: 0.4em; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--c-wine); }
.woocommerce ul.products li.product .star-rating { display: none; }

/* Card button: slides up over the bottom of the image on hover (desktop only).
   The card is a size container, so 133.333cqw = the 3:4 image height. */
.woocommerce ul.products li.product { container-type: inline-size; }
.woocommerce ul.products li.product .button {
	position: absolute !important;
	left: 0.8rem; right: 0.8rem;
	top: calc(133.333cqw - 0.8rem);
	transform: translateY(calc(-100% + 12px));
	margin: 0 !important;
	padding: 1.05em 1em !important;
	text-align: center;
	background: rgba(255, 254, 250, 0.94) !important;
	border-color: transparent !important;
	color: var(--c-espresso) !important;
	opacity: 0;
	transition: opacity 0.5s var(--ease-lux), transform 0.6s var(--ease-lux), background-color 0.4s, color 0.4s !important;
}
.woocommerce ul.products li.product:hover .button,
.woocommerce ul.products li.product .button:focus-visible { opacity: 1; transform: translateY(-100%); }
.woocommerce ul.products li.product .button:hover { background: var(--c-ink) !important; color: var(--c-ivory) !important; }
.woocommerce ul.products li.product .button.added::after { content: " \2713"; margin-left: 0.3em; }
.woocommerce ul.products li.product .added_to_cart { display: none !important; }
@media (hover: none) {
	.woocommerce ul.products li.product .button { display: none !important; }
}

/* ---------- Single product ---------- */
.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: clamp(2rem, 5vw, 6rem);
	align-items: start;
}
.woocommerce div.product > * { grid-column: 1 / -1; }
.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	grid-column: auto;
}
.woocommerce div.product div.images { grid-column: 1; }
.woocommerce div.product div.summary {
	grid-column: 2;
	position: sticky;
	top: calc(var(--header-h) + 2rem);
	padding-top: 1rem;
}
.woocommerce div.product .onsale { display: none; }
@media (max-width: 900px) {
	.woocommerce div.product { grid-template-columns: 1fr; gap: 1.6rem; }
	.woocommerce div.product div.images, .woocommerce div.product div.summary { grid-column: 1; position: static; }
	.single-product .site-main { padding-top: 0; }
	.woocommerce div.product div.images { margin: 0 calc(var(--gutter) * -1) !important; }
}

/* Stacked gallery (desktop) / swipe gallery (mobile) */
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.6rem;
	margin: 0;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	background: var(--c-cream);
	overflow: hidden;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image:first-child { grid-column: 1 / -1; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
	width: 100%; height: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	transition: transform 1.4s var(--ease-lux);
}
.woocommerce div.product div.images .woocommerce-product-gallery__image a { display: block; cursor: zoom-in; }
.woocommerce div.product div.images .woocommerce-product-gallery__image:hover img { transform: scale(1.03); }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { display: none; }
@media (max-width: 900px) {
	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
		display: flex;
		gap: 2px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper::-webkit-scrollbar { display: none; }
	.woocommerce div.product div.images .woocommerce-product-gallery__image { flex: 0 0 88%; scroll-snap-align: start; }
	.woocommerce div.product div.images .woocommerce-product-gallery__image:only-child { flex-basis: 100%; }
}

/* Summary */
.woocommerce div.product .product_title {
	margin: 0 0 0.8rem;
	font-family: var(--f-display);
	font-size: clamp(2.6rem, 1.6rem + 2.8vw, 4.2rem);
	font-weight: 400;
	line-height: 1.15;
	color: var(--c-espresso);
}
.woocommerce div.product p.price, .woocommerce div.product span.price {
	margin: 0 0 1.6rem;
	color: var(--c-espresso) !important;
	font-size: 15px !important;
	letter-spacing: 0.06em;
}
.woocommerce div.product p.price del { opacity: 0.5; margin-right: 0.5em; }
.woocommerce div.product p.price ins { text-decoration: none; color: var(--c-wine); }
.woocommerce div.product .woocommerce-product-details__short-description { margin-bottom: 2rem; font-size: 14px; line-height: 1.75; }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: 1rem; }

/* Variations as buttons */
.woocommerce div.product form.cart { margin: 0 0 2rem; }
.woocommerce div.product form.cart .variations { margin: 0 0 1.4rem; border: 0; width: 100%; }
.woocommerce div.product form.cart .variations tr { display: block; margin-bottom: 1.4rem; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td { display: block; padding: 0; text-align: left; line-height: 1.4; border: 0; }
.woocommerce div.product form.cart .variations th label {
	display: block; margin-bottom: 0.7rem;
	font-family: var(--f-sub);
	font-size: 10.5px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase;
}
.mw-swatch-select { position: absolute !important; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.mw-swatches { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.mw-swatch {
	min-width: 3.2rem;
	padding: 0.85em 1em;
	border: 1px solid var(--c-line);
	border-radius: 0;
	background: transparent;
	color: var(--c-espresso);
	font-family: var(--f-sub);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	cursor: pointer;
	transition: border-color 0.3s, background-color 0.4s var(--ease-lux), color 0.4s;
}
.mw-swatch:hover { border-color: var(--c-espresso); }
.mw-swatch.is-active { background: var(--c-espresso); border-color: var(--c-espresso); color: var(--c-ivory); }
.mw-swatch.is-unavailable {
	color: rgba(125, 105, 105, 0.4);
	background: linear-gradient(to top right, transparent calc(50% - 0.5px), var(--c-line) 50%, transparent calc(50% + 0.5px));
	cursor: not-allowed;
}
.woocommerce div.product form.cart .reset_variations {
	display: inline-block; margin-top: 0.6rem;
	font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-brown);
}
.woocommerce div.product .woocommerce-variation-price { margin-bottom: 1rem; }
.woocommerce div.product .stock { font-family: var(--f-sub); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--c-brown) !important; }
.woocommerce div.product .stock.out-of-stock { color: var(--c-wine) !important; }

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart:not(.variations_form) { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0 !important; }
.woocommerce .quantity .qty {
	width: 4.2rem; height: 100%; min-height: 3.2rem;
	border: 1px solid var(--c-line); border-radius: 0; background: transparent;
	color: var(--c-espresso); font-size: 13px; text-align: center;
}
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1; float: none; padding: 1.3em 2em !important; }

/* Accordions */
.mw-accordions { border-top: 1px solid var(--c-line); }
.mw-accordion { border-bottom: 1px solid var(--c-line); }
.mw-accordion summary {
	display: flex; justify-content: space-between; align-items: center;
	padding: 1.15rem 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--f-sub);
	font-size: 10.5px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase;
}
.mw-accordion summary::-webkit-details-marker { display: none; }
.mw-accordion summary::after { content: "+"; font-size: 16px; font-weight: 300; transition: transform 0.5s var(--ease-lux); }
.mw-accordion[open] summary::after { transform: rotate(45deg); }
.mw-accordion__body { padding: 0 0 1.4rem; font-size: 13.5px; line-height: 1.8; }
.mw-accordion__body table.shop_attributes { border: 0; margin: 0; }
.mw-accordion__body table.shop_attributes th,
.mw-accordion__body table.shop_attributes td { border: 0; padding: 0.3rem 0; background: none !important; font-style: normal; font-weight: 400; }
.mw-accordion__body table.shop_attributes th { width: 40%; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; }
.mw-accordion__body table.shop_attributes td p { margin: 0; padding: 0; }

/* Related / upsells */
.woocommerce div.product .related,
.woocommerce div.product .upsells { margin-top: var(--section); }
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2,
.woocommerce .cross-sells > h2 {
	margin: 0 0 2rem;
	font-family: var(--f-display);
	font-size: var(--fs-h2);
	font-weight: 400;
	text-align: center;
	color: var(--c-espresso);
}

/* ---------- Cart & Checkout (block-based) ---------- */
.woocommerce-cart .entry-title, .woocommerce-checkout .entry-title, .woocommerce-account .entry-title {
	font-family: var(--f-display); font-size: var(--fs-h2); font-weight: 400; text-align: center; margin: 0 0 2.5rem; color: var(--c-espresso);
}
.wc-block-cart, .wc-block-checkout { font-family: var(--f-sub); color: var(--c-espresso); }
.wc-block-components-title.wc-block-components-title,
.wc-block-checkout__form .wc-block-components-checkout-step__title {
	font-family: var(--f-sub) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-textarea {
	border: 1px solid var(--c-line) !important;
	border-radius: 0 !important;
	background: var(--c-ivory) !important;
	color: var(--c-espresso) !important;
	box-shadow: none !important;
}
.wc-block-components-text-input input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus {
	border-color: var(--c-espresso) !important;
	outline: none !important;
}
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	min-height: 3.4rem;
	border-radius: 0 !important;
	background: var(--c-wine) !important;
	color: var(--c-ivory) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	transition: background-color 0.5s var(--ease-lux) !important;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { background: var(--c-ink) !important; }
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option {
	border-radius: 0 !important;
}
.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 1px var(--c-espresso) !important;
}
.wc-block-components-radio-control__input:checked { border-color: var(--c-wine) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--c-wine) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] { border-radius: 0 !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--c-wine) !important; border-color: var(--c-wine) !important; }
.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-checkout__sidebar,
.wp-block-woocommerce-checkout-order-summary-block {
	border-radius: 0 !important;
}
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart .wc-block-cart__totals-title + * { background: var(--c-cream); border: 0 !important; }
.wc-block-components-order-summary-item__image img,
.wc-block-cart-item__image img { aspect-ratio: 3 / 4; object-fit: cover; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 15px !important; font-weight: 500 !important; }
.wc-block-components-product-name { font-family: var(--f-sub); font-size: 14px !important; font-weight: 500; color: var(--c-espresso) !important; text-decoration: none !important; }
.wc-block-components-quantity-selector { border-radius: 0 !important; }
.wc-block-components-quantity-selector::after { border-radius: 0 !important; border-color: var(--c-line) !important; }

/* Classic cart/checkout (if you use shortcodes instead of blocks) */
.woocommerce table.shop_table { border-radius: 0; border-color: var(--c-line); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
	border: 1px solid var(--c-line); border-radius: 0; background: var(--c-ivory); padding: 0.9em 1em; color: var(--c-espresso);
}

/* ---------- My account ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--c-line); }
.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block; padding: 0.9rem 0;
	font-family: var(--f-sub);
	font-size: 11px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase;
	color: var(--c-brown); text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { color: var(--c-wine); }
