/* ==========================================================================
   LOOM Atelier — WooCommerce
   ========================================================================== */

/* ---------- Single product: hero ---------- */
.product-hero { padding-block: clamp(40px, 4.6vw, 88px) clamp(56px, 5vw, 96px); }
.product-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.475fr) minmax(0, 0.525fr);
	gap: clamp(32px, 4.2vw, 82px);
	align-items: start;
}

.product-gallery { position: sticky; top: 120px; }
.product-gallery__image { opacity: 0; transition: opacity 0.6s var(--loom-ease); }
.product-gallery__image.is-active { opacity: 1; }
.product-gallery__main .onsale { position: absolute; top: 16px; left: 16px; z-index: 2; }
.product-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(10px, 0.9vw, 16px);
	margin-top: clamp(10px, 0.9vw, 16px);
	padding-right: 3%;
}
.product-gallery__thumb { aspect-ratio: 175 / 185; display: block; width: 100%; opacity: 0.55; transition: opacity 0.3s var(--loom-ease); }
.product-gallery__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.product-gallery__thumb.is-active,
.product-gallery__thumb:hover { opacity: 1; }
.product-gallery .caption-row { margin-top: 20px; }
.product-gallery__count { color: var(--loom-gold-text); }

.product-summary .loom-eyebrow { margin-bottom: 10px; }
.product-summary__title {
	font-size: clamp(3.4rem, 5.2vw, 6.25rem);
	line-height: 1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}
.product-summary__type {
	margin-top: 18px;
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.035em;
	text-transform: uppercase;
	color: var(--loom-muted);
}
.product-summary__rating { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; font-size: 12.5px; color: var(--loom-muted); }
.product-summary__rating .loom-stars { font-size: 12px; }
.product-summary__tagline {
	margin-top: clamp(22px, 1.7vw, 32px);
	font-family: var(--loom-serif);
	font-style: italic;
	font-size: clamp(1.7rem, 1.8vw, 2.15rem);
	line-height: 1.2;
	color: var(--loom-text-soft);
}
.product-summary__excerpt { margin-top: clamp(20px, 1.6vw, 30px); font-size: 15px; line-height: 1.7; color: var(--loom-muted); max-width: 820px; }
.product-summary__accords {
	margin-top: 22px;
	padding-bottom: clamp(22px, 1.6vw, 30px);
	border-bottom: 1px solid var(--loom-line);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.035em;
	text-transform: uppercase;
	color: var(--loom-gold-text);
}

/* Buy box */
.loom-buy { position: relative; padding-top: clamp(22px, 1.6vw, 30px); }
.loom-buy__price {
	position: absolute;
	top: clamp(22px, 1.6vw, 30px);
	right: 0;
	min-height: 44px;
	display: flex;
	align-items: center;
	font-family: var(--loom-serif);
	font-size: clamp(1.75rem, 1.7vw, 2.1rem);
	line-height: 1;
	color: var(--loom-text);
}
.loom-buy__price del { opacity: 0.45; margin-right: 10px; font-size: 0.75em; }
.loom-buy__price ins { text-decoration: none; }

.loom-buy form.cart { margin: 0; }
.loom-buy table.variations { margin: 0 0 22px; border: 0; width: auto; }
.loom-buy table.variations tr,
.loom-buy table.variations th,
.loom-buy table.variations td { display: block; padding: 0; border: 0; background: none; }
.loom-buy table.variations th.label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.loom-buy table.variations td.value { padding-right: 160px; }
.loom-buy table.variations select.loom-has-swatches { position: absolute !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.loom-buy table.variations select:not(.loom-has-swatches) {
	min-height: 44px; padding: 0 40px 0 14px;
	background: transparent; color: var(--loom-text);
	border: 1px solid var(--loom-line-strong);
}
.loom-buy .reset_variations { display: none !important; }

.loom-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
.loom-swatch {
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid var(--loom-line-strong);
	font-size: 13px;
	color: var(--loom-text-soft);
	transition: border-color 0.25s var(--loom-ease), color 0.25s var(--loom-ease);
}
.loom-swatch:hover { border-color: var(--loom-muted); color: var(--loom-text); }
.loom-swatch.is-active { border-color: var(--loom-gold); color: var(--loom-text); }
.loom-swatch[disabled] { opacity: 0.35; cursor: not-allowed; text-decoration: line-through; }

.loom-buy .single_variation_wrap .woocommerce-variation-price { display: none; }
.loom-buy .woocommerce-variation-availability,
.loom-buy .stock { margin: 0 0 14px; font-size: 13px; color: var(--loom-muted); }
.loom-buy .stock.out-of-stock { color: #d39585; }
.loom-buy .woocommerce-variation-description { font-size: 14px; color: var(--loom-muted); margin-bottom: 14px; }

.loom-buy .woocommerce-variation-add-to-cart,
.loom-buy form.cart:not(.variations_form) {
	display: flex;
	align-items: stretch;
	gap: clamp(12px, 0.9vw, 16px);
}
.loom-buy:not(.loom-buy--variable) .loom-buy__price { position: static; margin-bottom: 22px; }
.loom-buy form.grouped_form { display: block; }

.loom-buy .quantity {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	flex: 0 0 auto;
	width: clamp(130px, 8.2vw, 158px);
	min-height: 63px;
	margin: 0 !important;
	border: 1px solid var(--loom-line-strong);
}
.loom-buy .quantity .qty {
	width: 44px;
	min-height: 0;
	padding: 0;
	background: transparent;
	border: 0;
	text-align: center;
	font-size: 15px;
	color: var(--loom-text);
	-moz-appearance: textfield;
}
.loom-buy .quantity .qty::-webkit-outer-spin-button,
.loom-buy .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.loom-qty-btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 100%; min-height: 61px; color: var(--loom-text-soft); }
.loom-qty-btn .loom-icon { width: 14px; height: 14px; }
.loom-qty-btn:hover { color: var(--loom-gold); }

.loom-buy .single_add_to_cart_button,
.woocommerce .loom-buy button.button.alt {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
	min-height: 63px;
	padding: 0 24px;
	background: var(--loom-gold) !important;
	color: var(--loom-on-gold) !important;
	font-family: var(--loom-sans);
	font-size: 14px !important;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	border-radius: 0 !important;
}
.loom-buy .single_add_to_cart_button::after {
	content: "";
	width: 20px;
	height: 12px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 12' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M0 6h18M13 1l5 5-5 5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 12' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M0 6h18M13 1l5 5-5 5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.loom-buy .single_add_to_cart_button:hover { background: #d4bb93 !important; }
.loom-buy .single_add_to_cart_button.disabled,
.loom-buy .single_add_to_cart_button:disabled { opacity: 0.5 !important; cursor: not-allowed; }
.loom-buy .single_add_to_cart_button.loading { opacity: 0.7; }

.product-summary__perks { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 24px; font-size: 12.5px; color: var(--loom-muted); }
.product-summary__perks li { display: inline-flex; align-items: center; gap: 8px; }
.product-summary__perks .loom-icon { width: 16px; height: 16px; color: var(--loom-text-soft); }
.product-summary__links {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 22px;
	padding-bottom: clamp(22px, 1.6vw, 30px);
	border-bottom: 1px solid var(--loom-line);
	font-size: 13px;
	color: var(--loom-text-soft);
}
.product-summary__links a { display: inline-flex; align-items: center; gap: 4px; color: var(--loom-text-soft); }
.product-summary__links .loom-icon { width: 12px; height: 12px; }

/* Tabs */
.loom-tabs { margin-top: clamp(24px, 1.8vw, 34px); }
.loom-tabs__list { display: flex; gap: clamp(20px, 1.6vw, 32px); border-bottom: 1px solid var(--loom-line); }
.loom-tabs__list button {
	position: relative;
	padding-bottom: 14px;
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.035em;
	text-transform: uppercase;
	color: var(--loom-muted);
}
.loom-tabs__list button[aria-selected="true"] { color: var(--loom-gold-text); }
.loom-tabs__list button[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--loom-gold); }
.loom-tabs__panel { padding-top: 20px; font-size: 14.5px; line-height: 1.7; color: var(--loom-muted); }
.loom-tabs__panel p + p { margin-top: 1em; }

.product-summary__strip {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 26px;
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--loom-text);
}
.product-summary__strip span:last-child { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--loom-muted); }
.product-summary__strip .loom-icon { width: 12px; height: 12px; }

/* How to wear */
.wear { background: var(--loom-bg); }
.wear__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 1.5vw, 28px); }
.wear-card { padding: clamp(28px, 1.9vw, 36px); border: 1px solid var(--loom-line); }
.wear-card__icon {
	display: inline-grid;
	place-items: center;
	width: 38px; height: 38px;
	border-radius: 50%;
	background: rgba(196, 168, 123, 0.12);
	color: var(--loom-gold);
}
.wear-card__icon .loom-icon { width: 16px; height: 16px; }
.wear-card__num { display: block; margin-top: 30px; font-family: var(--loom-serif); font-size: 2rem; line-height: 1; color: var(--loom-gold); }
.wear-card__title { margin-top: 22px; font-size: clamp(1.4rem, 1.35vw, 1.65rem); }
.wear-card__text { margin-top: 18px; font-size: 14px; line-height: 1.65; color: var(--loom-muted); }

.related { padding-bottom: clamp(64px, 6vw, 112px); }

/* ---------- Notices ---------- */
.woocommerce-notices-wrapper:not(:empty) { width: min(var(--loom-max), 100% - 2 * var(--loom-gutter)); margin: 28px auto 0; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	margin: 0 0 24px !important;
	padding: 18px 22px 18px 56px !important;
	background: var(--loom-surface) !important;
	border: 1px solid var(--loom-line-strong) !important;
	border-top: 2px solid var(--loom-gold) !important;
	color: var(--loom-text) !important;
	font-size: 14px;
	list-style: none;
}
.woocommerce-error { border-top-color: #b06a5a !important; }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--loom-gold) !important; }
.woocommerce-message .button,
.woocommerce-info .button { min-height: 40px !important; padding: 0 16px !important; font-size: 12px !important; }
.woocommerce-message a:not(.button) { color: var(--loom-gold); }

/* ---------- Cart, checkout, account (classic + blocks) ---------- */
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.wc-block-components-button:not(.is-link),
.wp-element-button,
.wp-block-button__link {
	min-height: 54px;
	padding: 0 24px !important;
	background: var(--loom-gold) !important;
	color: var(--loom-on-gold) !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-family: var(--loom-sans) !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	line-height: 1.2 !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}
.woocommerce .button:hover,
.wc-block-components-button:not(.is-link):hover,
.wp-element-button:hover { background: #d4bb93 !important; }

.woocommerce table.shop_table {
	/* Horizontal rules only - a boxed grid reads heavy against this background. */
	border: 0 !important;
	border-radius: 0 !important;
	border-collapse: collapse !important;
	color: var(--loom-text-soft);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	border: 0 !important;
	border-bottom: 1px solid var(--loom-line) !important;
	padding: clamp(14px, 1.3vw, 22px) 0 !important;
}
.woocommerce table.shop_table thead th { border-top: 1px solid var(--loom-line) !important; }
.woocommerce table.shop_table th { font-size: 12px; font-weight: 500; letter-spacing: 0.035em; text-transform: uppercase; color: var(--loom-muted); }
.woocommerce table.shop_table img { width: 72px; }
.woocommerce a.remove { color: var(--loom-muted) !important; }
.woocommerce a.remove:hover { background: transparent !important; color: var(--loom-gold) !important; }
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-account h2 { font-size: 2rem; margin-bottom: 18px; }

.woocommerce form .form-row label,
.wc-block-components-text-input label,
.wc-block-components-combobox .wc-block-components-combobox-control label { color: var(--loom-muted) !important; font-size: 13px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection,
.woocommerce .coupon input.input-text,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea {
	min-height: 54px;
	padding: 14px 16px !important;
	background: rgba(10, 10, 9, 0.35) !important;
	border: 1px solid var(--loom-line-strong) !important;
	border-radius: 0 !important;
	color: var(--loom-text) !important;
	box-shadow: none !important;
}
.wc-block-components-text-input.is-active input,
.wc-block-components-text-input input:focus { border-color: var(--loom-gold) !important; }
.woocommerce .select2-container .select2-selection__rendered { color: var(--loom-text) !important; line-height: 24px !important; }
.select2-dropdown { background: var(--loom-surface) !important; border-color: var(--loom-line-strong) !important; color: var(--loom-text); }
.woocommerce-checkout #payment,
.woocommerce-checkout #payment div.payment_box { background: var(--loom-surface) !important; color: var(--loom-text-soft) !important; border-radius: 0 !important; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--loom-surface) !important; }

.wc-block-cart,
.wc-block-checkout,
.wc-block-components-sidebar,
.wc-block-components-totals-wrapper,
.wc-block-components-order-summary,
.wc-block-components-panel { color: var(--loom-text-soft); }
.wc-block-components-totals-wrapper,
.wc-block-components-order-summary,
.wc-block-components-panel,
.wc-block-cart-items,
.wc-block-cart-items td,
.wc-block-cart-items th { border-color: var(--loom-line) !important; }
.wc-block-components-product-name,
.wc-block-components-totals-item__label,
.wc-block-components-title { color: var(--loom-text) !important; }
.wc-block-components-title.wc-block-components-title { font-family: var(--loom-serif); font-size: 1.75rem; font-weight: 400; text-transform: none; }
.wc-block-components-quantity-selector { border-color: var(--loom-line-strong) !important; border-radius: 0 !important; }
.wc-block-components-quantity-selector input { color: var(--loom-text) !important; background: transparent !important; }
.wc-block-components-quantity-selector__button { color: var(--loom-text-soft) !important; }
.wc-block-components-radio-control__option,
.wc-block-components-checkbox { color: var(--loom-text-soft); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"],
.wc-block-components-radio-control__input { background: transparent !important; border-color: var(--loom-line-strong) !important; }
.wc-block-components-checkout-place-order-button { min-height: 63px !important; }
.wc-block-components-product-badge { border-color: var(--loom-gold) !important; color: var(--loom-gold) !important; border-radius: 0 !important; }

.woocommerce-MyAccount-navigation ul { display: grid; gap: 10px; border-top: 1px solid var(--loom-line); padding-top: 18px; }
.woocommerce-MyAccount-navigation .is-active a { color: var(--loom-gold); }

.woocommerce-pagination { margin-top: 56px; }
.woocommerce-pagination ul.page-numbers,
.woocommerce-pagination ul.page-numbers li { border: 0 !important; }
.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span { color: var(--loom-text-soft) !important; background: transparent !important; font-size: 14px; }
.woocommerce-pagination .page-numbers .current { color: var(--loom-gold) !important; }
.woocommerce-result-count,
.woocommerce-ordering { display: none; }

.star-rating span::before,
.woocommerce .star-rating span::before,
p.stars a,
p.stars a:hover ~ a::before { color: var(--loom-gold) !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.product-hero__grid { grid-template-columns: 1fr; }
	.product-gallery { position: static; }
	.wear__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
	.loom-buy__price { position: static; margin-bottom: 18px; }
	.loom-buy table.variations td.value { padding-right: 0; }
	.loom-buy .woocommerce-variation-add-to-cart,
	.loom-buy form.cart:not(.variations_form) { flex-wrap: wrap; }
	.loom-buy .single_add_to_cart_button { flex-basis: 100%; }
	.loom-buy .quantity { width: 100%; }
	.wear__grid { grid-template-columns: 1fr; }
	.product-summary__links { flex-direction: column; }
}

/* ---------- Neutralise WooCommerce's default single-product layout ---------- */
.woocommerce div.product.loom-product,
.woocommerce-page div.product.loom-product { margin-bottom: 0; }
.woocommerce div.product div.summary.product-summary,
.woocommerce-page div.product div.summary.product-summary,
.woocommerce #content div.product div.summary.product-summary { float: none; width: auto; margin: 0; clear: none; }
.woocommerce div.product.loom-product form.cart { margin-bottom: 0; }
.woocommerce div.product.loom-product form.cart::before,
.woocommerce div.product.loom-product form.cart::after { display: none; }
.woocommerce div.product.loom-product form.cart .variations { margin-bottom: 22px; }
.woocommerce div.product.loom-product form.cart .variations select { min-width: 0; margin-right: 0; }
.woocommerce div.product.loom-product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product.loom-product form.cart .button { float: none; vertical-align: middle; }
.woocommerce div.product.loom-product .woocommerce-variation-availability .stock.in-stock,
.woocommerce div.product.loom-product .loom-buy > .stock.in-stock,
.woocommerce div.product.loom-product form.cart > .stock.in-stock { display: none; }
.woocommerce div.product.loom-product form.cart .reset_variations { display: none !important; }
.woocommerce div.product.loom-product .product_title { clear: none; margin-top: 0; padding: 0; }

/* ---------- Neutralise WooCommerce's default loop styles inside our cards ---------- */
.woocommerce ul.products li.product .product-card__name,
.woocommerce-page ul.products li.product .product-card__name { padding: 0; margin: 0; font-size: clamp(1.6rem, 1.8vw, 2.15rem); }
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img { margin: 0; box-shadow: none; }
.woocommerce ul.products li.product .product-card__price { font-size: 16px; color: var(--loom-text-soft); }

/* ---------- Cart & Checkout blocks ----------
   WooCommerce renders these as "alignwide" blocks. The editor rule for
   alignwide re-centres on the viewport at 1200px, which pushed the cart out of
   line with the page heading and the footer. Inside .container they should
   simply fill it. */
.entry-content .wp-block-woocommerce-cart.alignwide,
.entry-content .wp-block-woocommerce-checkout.alignwide,
.entry-content .wp-block-woocommerce-cart,
.entry-content .wp-block-woocommerce-checkout {
	width: 100%;
	max-width: none;
	margin-left: 0;
	transform: none;
}
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { margin-bottom: var(--loom-section); }

/* Product title: the serif the rest of the site uses, no browser underline. */
.wc-block-components-product-name {
	font-family: var(--loom-serif) !important;
	font-size: 1.35rem !important;
	line-height: 1.25;
	text-decoration: none !important;
}
.wc-block-components-product-name:hover { color: var(--loom-gold-text) !important; }
.wc-block-cart-item__product .wc-block-components-product-metadata,
.wc-block-cart-item__product .wc-block-components-product-price { color: var(--loom-muted) !important; }

/* The bottle shots are portrait; give them room to read. The block sets
   width/height="80" on the tag, so both have to be overridden or the image is
   squashed back into a square. */
.wc-block-cart-items__header-image,
.wc-block-cart-item__image { width: 104px !important; }
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
	width: 104px !important;
	height: auto !important;
	max-width: none;
	aspect-ratio: 300 / 320;
	object-fit: cover;
	border-radius: 0 !important;
}
.wc-block-components-order-summary-item__image,
.wc-block-components-order-summary-item__image img { width: 72px !important; }

/* Roomier rows. Only the cell is padded: padding the inner wrap as well
   pushed the product name below the image and the line total. */
.wc-block-cart-items__row td { padding-block: clamp(18px, 1.6vw, 28px); }
.wc-block-cart-item__wrap { padding-top: 0 !important; }
.wc-block-cart-items__header th {
	font-size: 12px !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--loom-muted) !important;
}

/* Quantity stepper: match the height of the theme's own controls. */
.wc-block-components-quantity-selector { min-height: 46px; }
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input { min-height: 46px; }

/* Totals: the figure reads as a price, like everywhere else on the site. */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--loom-serif) !important;
	font-size: clamp(1.4rem, 1.5vw, 1.75rem) !important;
	font-weight: 400 !important;
}

/* Checkout button, built to the same spec as .loom-btn. */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 66px !important;
	padding: 0 26px !important;
	background: var(--loom-gold) !important;
	color: var(--loom-on-gold) !important;
	font-family: var(--loom-sans) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	text-decoration: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	transition: background-color 0.3s var(--loom-ease);
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { background: #d4bb93 !important; }

/* Remove-item and coupon toggle sit quietly until hovered. */
.wc-block-cart-item__remove-link { color: var(--loom-muted) !important; }
.wc-block-cart-item__remove-link:hover { color: var(--loom-text) !important; }

@media (max-width: 680px) {
	.wc-block-cart-items__header-image,
	.wc-block-cart-item__image,
	.wc-block-cart-item__image img { width: 76px !important; }
}

/* The block checkout's country/state dropdowns ship a light container that
   stands out against the dark page. Match the text inputs beside them. */
.wc-blocks-components-select,
.wc-blocks-components-select__container {
	background: transparent !important;
	border-radius: 0 !important;
}
.wc-blocks-components-select__container {
	border: 1px solid var(--loom-line-strong) !important;
}
.wc-blocks-components-select__select {
	background: var(--loom-surface) !important;
	color: var(--loom-text) !important;
	border: 0 !important;
	border-radius: 0 !important;
}
.wc-blocks-components-select__select option { background: var(--loom-surface); color: var(--loom-text); }
.wc-blocks-components-select__label { color: var(--loom-muted) !important; }
.wc-blocks-components-select__expand { fill: var(--loom-text-soft) !important; }
.wc-blocks-components-select__container:focus-within { border-color: var(--loom-gold) !important; }

/* ---------- Floating labels ----------
   WooCommerce floats a field's label to the top once the field has a value
   (top: 6px, scale .82). Its own inputs make room with padding: 24px 9px 8px.
   The theme re-padded every input to a flat 14px/16px, which left the floated
   label sitting on top of the value and 6px out of line with it horizontally. */
.wc-block-components-text-input label,
.wc-blocks-components-select__label,
.wc-block-components-combobox .wc-block-components-combobox-control label {
	inset-inline-start: 16px !important;
	inset-inline-end: auto !important;
	max-width: calc(100% - 32px);
}

/* Empty field: the label rests on the text line, so even padding is right.
   Filled field: the value drops below the floated label. */
.wc-block-components-text-input.is-active input,
.wc-block-components-combobox.is-active .wc-block-components-combobox-control input,
.wc-block-components-text-input input:-webkit-autofill {
	padding-top: 26px !important;
	padding-bottom: 8px !important;
}

/* A select always has a value, so its label is always floated. */
.wc-blocks-components-select .wc-blocks-components-select__select {
	padding-top: 24px !important;
	padding-bottom: 6px !important;
	line-height: 1.4;
}

/* ---------- Browser autofill ----------
   Chrome paints its own pale background on autofilled fields and ignores
   background-color. The inset box-shadow is the only thing that covers it.
   #0f100e is the field's own rgba(10, 10, 9, 0.35) flattened onto the page
   background, so an autofilled field looks like every other field. */
.wc-block-components-text-input input:-webkit-autofill,
.wc-block-components-text-input input:-webkit-autofill:hover,
.wc-block-components-text-input input:-webkit-autofill:focus,
.wc-block-components-text-input input:-webkit-autofill:active,
.wc-block-components-combobox .wc-block-components-combobox-control input:-webkit-autofill,
.wc-blocks-components-select .wc-blocks-components-select__select:-webkit-autofill,
.woocommerce form .form-row input.input-text:-webkit-autofill,
.woocommerce form .form-row select:-webkit-autofill,
.loom-form input:-webkit-autofill,
.loom-form textarea:-webkit-autofill {
	-webkit-text-fill-color: var(--loom-text) !important;
	-webkit-box-shadow: 0 0 0 100px #0f100e inset !important;
	box-shadow: 0 0 0 100px #0f100e inset !important;
	caret-color: var(--loom-text);
	/* Chrome re-asserts its background shortly after paint; an absurd delay
	   keeps ours. The border is deliberately left alone so an autofilled field
	   looks the same as one you typed into. */
	transition: background-color 100000s ease-in-out 0s;
}

/* ---------- Field focus ----------
   The theme marks focus on a field with its border and switches the global
   :focus-visible ring off (see .loom-form inputs in main.css). The block
   checkout's fields never got that, so focusing one drew the gold border AND
   the ring 3px outside it - two gold lines. */
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	outline: none;
}

/* Gold means "you are in this field", not "this field has something in it".
   With both gold, a filled field looked focused and focusing it changed
   nothing - no focus indicator at all. */
.wc-block-components-text-input.is-active input,
.wc-block-components-combobox.is-active .wc-block-components-combobox-control input {
	border-color: var(--loom-line-strong) !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-text-input.is-active input:focus,
.wc-block-components-combobox.is-active .wc-block-components-combobox-control input:focus {
	border-color: var(--loom-gold) !important;
}

/* ---------- Radio / checkbox state ----------
   The block controls draw their selected mark in black, which is invisible on
   this background - a chosen payment method looked like an empty circle. */
.wc-block-components-radio-control__input:checked,
.wc-block-components-checkbox__input[type="checkbox"]:checked {
	border-color: var(--loom-gold) !important;
}
.wc-block-components-radio-control__input:checked::before {
	background: var(--loom-gold) !important;
}
.wc-block-components-checkbox__input[type="checkbox"]:checked {
	background: var(--loom-gold) !important;
}
.wc-block-components-checkbox__input[type="checkbox"]:checked + .wc-block-components-checkbox__mark {
	fill: var(--loom-on-gold) !important;
}
.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked::after { border-color: var(--loom-gold) !important; }

/* ---------- Order received ----------
   This page had no theme styling at all, so it fell back to WooCommerce's
   default boxed table and underlined links on a dark background. */
.woocommerce-order { padding-bottom: var(--loom-section); }

.woocommerce-notice--success {
	margin: 0 0 clamp(26px, 2.2vw, 40px);
	font-size: clamp(15px, 1vw, 18px);
	color: var(--loom-text-soft);
}

/* Summary row: quiet labels over serif values, held between two rules. */
.woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(22px, 3vw, 56px);
	margin: 0 0 clamp(34px, 3vw, 60px);
	padding-block: clamp(20px, 1.8vw, 30px);
	padding-inline: 0;
	list-style: none;
	border-top: 1px solid var(--loom-line);
	border-bottom: 1px solid var(--loom-line);
}
.woocommerce-order-overview li {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin: 0;
	padding: 0;
	border: 0 !important;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--loom-muted);
}
.woocommerce-order-overview li strong {
	font-family: var(--loom-serif);
	font-size: clamp(1.1rem, 1.2vw, 1.45rem);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--loom-text);
}

.woocommerce-order-details__title,
.woocommerce-column__title { margin-bottom: clamp(16px, 1.4vw, 26px); }

/* Order table: horizontal rules, not a boxed grid. */
.woocommerce-table--order-details th,
.woocommerce-table--order-details td {
	background: transparent !important;
	text-align: left;
	vertical-align: top;
}
.woocommerce-table--order-details thead th,
.woocommerce-table--order-details tfoot th {
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--loom-muted);
}
.woocommerce-table--order-details td:last-child,
.woocommerce-table--order-details th:last-child { text-align: right; }
.woocommerce table.shop_table tfoot tr:last-child th,
.woocommerce table.shop_table tfoot tr:last-child td { border-bottom: 0 !important; }
.woocommerce-table--order-details .product-name a {
	color: var(--loom-text);
	text-decoration: none;
}
.woocommerce-table--order-details .product-name a:hover { color: var(--loom-gold-text); }
.woocommerce-table--order-details .product-quantity { color: var(--loom-muted); }

/* Address block reads as a card, not a full-width band. */
.woocommerce-customer-details { margin-top: clamp(34px, 3vw, 56px); }
.woocommerce-customer-details address {
	max-width: 420px;
	padding: clamp(18px, 1.6vw, 26px);
	/* WooCommerce ships this with uneven 1px/2px/2px/1px borders. */
	border: 1px solid var(--loom-line) !important;
	font-style: normal;
	line-height: 1.95;
	color: var(--loom-text-soft);
}

@media (max-width: 680px) {
	.woocommerce-order-overview { gap: 18px 28px; }
	.woocommerce-customer-details address { max-width: none; }
}

/* ---------- Product-list images ----------
   WooCommerce sets height:auto on images inside ul.products li.product, which
   out-specifies the theme's .media > picture > img. Any product whose source
   is not the card's aspect ratio then stops short of the box and leaves a gap
   beneath it (KORA's 640x700 shot against the 313x478 card). */
.woocommerce ul.products li.product a img {
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	object-fit: cover;
}
