.wcw-app { margin: 1em 0 1.4em; max-width: 420px; }
.wcw-step { font-size: 0.9rem; margin: 0 0 0.6em; opacity: 0.85; }
.wcw-uploadrow { display: flex; align-items: center; gap: 0.6em; margin-bottom: 0.7em; }
.wcw-filename { font-size: 0.82rem; opacity: 0.7; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.wcw-btn {
	display: inline-block; cursor: pointer; border: none; border-radius: 8px;
	padding: 0.6em 1.1em; font-weight: 600; font-size: 0.9rem;
	background: #35b7a4; color: #fff; transition: filter .15s ease;
}
.wcw-btn:hover { filter: brightness(1.07); }
.wcw-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.wcw-ghost { background: transparent; color: inherit; border: 1px solid rgba(128,128,128,0.5); }
.wcw-lock { display: block; width: 100%; margin-top: 0.9em; background: #2d7ef7; }

.wcw-stage {
	position: relative; width: 100%; border-radius: 12px; overflow: hidden;
	background: #d8dde3;
	background-image:
		linear-gradient(45deg, #c7ccd2 25%, transparent 25%),
		linear-gradient(-45deg, #c7ccd2 25%, transparent 25%),
		linear-gradient(45deg, transparent 75%, #c7ccd2 75%),
		linear-gradient(-45deg, transparent 75%, #c7ccd2 75%);
	background-size: 22px 22px;
	background-position: 0 0, 0 11px, 11px -11px, -11px 0;
	touch-action: none; user-select: none;
}
.wcw-stage canvas, .wcw-overlay {
	position: absolute; inset: 0; width: 100%; height: 100%; display: block;
}
.wcw-overlay { pointer-events: none; }
#wcw-canvas { cursor: grab; }
.wcw-stage:active #wcw-canvas { cursor: grabbing; }

.wcw-hint {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	color: #5a6472; font-size: 0.95rem; pointer-events: none; text-align: center; padding: 1em;
}
.wcw-controls { display: flex; flex-direction: column; gap: 0.5em; margin-top: 0.7em; }
.wcw-controls label { display: grid; grid-template-columns: 3.8em 1fr 4.8em 0.8em; align-items: center; gap: 0.5em; font-size: 0.82rem; }
.wcw-controls input[type=range] { width: 100%; min-width: 0; }
.wcw-num { width: 100%; padding: 0.2em 0.3em; text-align: right; border: 1px solid rgba(128,128,128,0.5); border-radius: 5px; font-size: 0.8rem; }
.wcw-num::-webkit-outer-spin-button, .wcw-num::-webkit-inner-spin-button { margin: 0; }
.wcw-unit { opacity: 0.6; font-size: 0.8rem; }
.wcw-controls #wcw-reset { justify-self: start; margin-top: 0.2em; }
.wcw-locked { color: #1a9c6b; font-weight: 600; font-size: 0.88rem; margin: 0.6em 0 0; }

/* Enlarged custom-wrap thumbnail on the cart page */
img.wcw-cart-thumb { width: 200px !important; max-width: none !important; height: auto !important; border-radius: 8px; }

/* Price shown next to the Add to Cart button */
.wcw-price { display: inline-block; font-size: 1.35rem; font-weight: 700; margin: 0 0.7em 0 0.2em; vertical-align: middle; }
.wcw-price .amount, .wcw-price bdi { font-size: inherit; }

/* Center the Cart totals block + everything under it (cart page) */
.woocommerce-cart .cart-collaterals .cart_totals {
	float: none !important;
	width: 100% !important;
	max-width: 480px;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center;
}
.woocommerce-cart .cart-collaterals .cart_totals h2 { text-align: center; }
.woocommerce-cart .cart-collaterals .cart_totals table { margin-left: auto; margin-right: auto; }
.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout { text-align: center; }

/* No product image on this product, so the summary column was still floated to
   the right at ~48% — let it span full width and center it on the page. */
.single-product div.product .summary.entry-summary {
	float: none !important;
	width: auto !important;
	max-width: 560px;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Center the add-to-cart form on the custom-wrap product page */
.single-product form.cart { text-align: center; }
.single-product form.cart .wcw-app { margin-left: auto; margin-right: auto; text-align: left; }
.single-product form.cart .quantity { display: inline-block; float: none; vertical-align: middle; }
