/* Factorize Colorways — swatches, placement buttons, print-area marker, card swatches. */
.fzc-hidden { position: absolute !important; left: 0; top: 0; opacity: 0; pointer-events: none; width: 1px !important; min-width: 0 !important; max-width: 1px !important; height: 1px !important; overflow: hidden; margin: 0; padding: 0; clip: rect(0 0 0 0); }
.fzc-has .woocommerce-product-gallery__image { overflow: hidden; }
.fzc-val { font-weight: 400; opacity: .75; }

.fzc-swatches { display: flex; flex-wrap: wrap; gap: 10px; padding: 4px 0 2px; }
.fzc-sw { --sw: #ccc; -webkit-appearance: none; appearance: none; width: 34px; height: 34px; border-radius: 50%; border: 2px solid rgba(0, 0, 0, .14); background: var(--sw); cursor: pointer; padding: 0; margin: 0; position: relative; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .6); transition: transform .12s ease; color: var(--et-accent, #d42121); }
.fzc-sw:hover { transform: scale(1.08); }
.fzc-sw.is-light { border-color: rgba(0, 0, 0, .28); }
.fzc-sw.is-selected { border-color: currentColor; box-shadow: 0 0 0 2px var(--et-bg, #fff), 0 0 0 4px currentColor; }
.fzc-sw:disabled { opacity: .3; cursor: not-allowed; transform: none; }
.fzc-sw.is-missing::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: repeating-linear-gradient(45deg, transparent 0 5px, rgba(255, 255, 255, .55) 5px 7px); }
.fzc-sw:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.fzc-buttons { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 0 2px; }
/* Theme button rules (form.cart button …) are more specific than a bare class, so these carry two classes. */
.fzc-buttons .fzc-btn, form.cart .fzc-buttons .fzc-btn { -webkit-appearance: none; appearance: none; border: 1.5px solid var(--et-muted, rgba(0, 0, 0, .35)); background: var(--et-card, transparent) !important; color: var(--et-text, #1f1c18) !important; border-radius: 6px; padding: 8px 14px; margin: 0; width: auto; font: inherit; font-size: 14px; font-weight: 600; line-height: 1.1; cursor: pointer; min-height: 40px; min-width: 44px; text-transform: none; letter-spacing: 0; box-shadow: none; text-shadow: none; }
.fzc-buttons .fzc-btn:hover, form.cart .fzc-buttons .fzc-btn:hover { border-color: var(--et-text, #1f1c18); }
.fzc-buttons .fzc-btn.is-selected, form.cart .fzc-buttons .fzc-btn.is-selected, form.cart .fzc-buttons .fzc-btn.is-selected:hover { background: var(--et-accent, #d42121) !important; border-color: var(--et-accent, #d42121); color: #fff !important; }
.fzc-buttons .fzc-btn:disabled, form.cart .fzc-buttons .fzc-btn:disabled { opacity: .35; cursor: not-allowed; text-decoration: line-through; }
.fzc-buttons .fzc-btn:focus-visible { outline: 2px solid var(--et-accent, #d42121); outline-offset: 2px; }

.fzc-views { margin: 0 0 12px; }
.fzc-views .fzc-btn { font-size: 13px; min-height: 36px; padding: 6px 12px; text-transform: uppercase; letter-spacing: .06em; }

.fzc-has .woocommerce-product-gallery__image { position: relative; }
.fzc-overlay { position: absolute; inset: 0; pointer-events: none; z-index: 3; }
.fzc-overlay__box { position: absolute; border: 2px dashed var(--et-accent, #d42121); border-radius: 4px; background: rgba(212, 33, 33, .06); box-sizing: border-box; }
.fzc-overlay__label { position: absolute; left: 0; top: 100%; margin-top: 5px; background: var(--et-accent, #d42121); color: #fff; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; padding: 3px 7px; border-radius: 3px; white-space: nowrap; line-height: 1.2; }

.fzc-card-swatches { display: flex; gap: 6px; align-items: center; margin: 6px 0 2px; flex-wrap: wrap; }
.fzc-card-swatches .fzc-sw { width: 18px; height: 18px; border-width: 1.5px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6); }
.fzc-card-swatches .fzc-sw:hover { transform: scale(1.2); }
.fzc-card-swatches .fzc-sw.is-selected { box-shadow: 0 0 0 1.5px var(--et-bg, #fff), 0 0 0 3px currentColor; }
.fzc-more { font-size: 12px; opacity: .7; }

/* SVG mockups have no intrinsic size — give them the garment box. */
ul.products li.product img.fzc-img,
ul.products li.product a img[src$=".svg"],
.fzc-has .woocommerce-product-gallery__image img[src$=".svg"],
.woocommerce-cart-form img[src$=".svg"],
.wc-block-components-product-image img[src$=".svg"] { width: 100%; height: auto; aspect-ratio: 6 / 7; object-fit: contain; background: var(--et-card, #fff); }
.woocommerce-cart-form img[src$=".svg"] { width: 64px; }

@media (max-width: 640px) {
	.fzc-sw { width: 38px; height: 38px; }
	.fzc-swatches { gap: 12px; }
	.fzc-btn { padding: 10px 14px; min-height: 44px; }
	.fzc-card-swatches .fzc-sw { width: 20px; height: 20px; }
	.fzc-overlay__label { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
	.fzc-sw, .fzc-card-swatches .fzc-sw { transition: none; }
}
