/* GTCPD loader: product page button + overlay shell (tiny, always loaded on customizable products). */
:root { --gtcpd-primary: #111111; --gtcpd-accent: #9b1c1c; --gtcpd-surface: #ffffff; }

.gtcpd-customize-wrap { margin: 0 0 16px; width: 100%; }
.gtcpd-customize-button.button,
.gtcpd-customize-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 48px; padding: 12px 24px; border-radius: 999px; border: 0;
	background: var(--gtcpd-primary); color: #fff; font-weight: 600; font-size: 16px; line-height: 1.2;
	cursor: pointer; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
	box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
.gtcpd-customize-button:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(0,0,0,.18); background: var(--gtcpd-accent); color: #fff; }
.gtcpd-customize-button:focus-visible { outline: 3px solid var(--gtcpd-accent); outline-offset: 3px; }
.gtcpd-customize-status { margin: 8px 0 0; font-size: 14px; opacity: .8; }
.gtcpd-customize-status.is-error { color: #b91c1c; opacity: 1; }

/* When a design is required, the designer's own Add to Cart replaces the native button. */
.gtcpd-requires-design form.cart .single_add_to_cart_button,
.gtcpd-requires-design form.cart .quantity { display: none !important; }

html.gtcpd-lock, html.gtcpd-lock body { overflow: hidden !important; overscroll-behavior: none; }

.gtcpd-overlay[hidden] { display: none !important; }
.gtcpd-overlay {
	position: fixed; inset: 0; z-index: 999999; background: #f4f4f5;
	display: flex; flex-direction: column;
}
.gtcpd-overlay .gtcpd-root { flex: 1; min-height: 0; display: flex; }
.gtcpd-overlay__loading {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 12px;
	font: 500 15px/1.4 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: #333; background: #f4f4f5; z-index: 2;
}
.gtcpd-overlay__loading[hidden] { display: none; }
.gtcpd-spinner {
	width: 22px; height: 22px; border-radius: 50%; border: 3px solid rgba(0,0,0,.12); border-top-color: var(--gtcpd-accent);
	animation: gtcpd-spin .8s linear infinite;
}
@keyframes gtcpd-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .gtcpd-spinner { animation-duration: 2s; } .gtcpd-customize-button { transition: none; } }

.gtcpd-inline-mount { position: relative; width: 100%; height: 760px; max-height: 92vh; border-radius: 16px; overflow: hidden; background: #f4f4f5; display: flex; }
.gtcpd-inline-mount.is-loading::after { content: ""; position: absolute; inset: 0; margin: auto; width: 26px; height: 26px; border-radius: 50%; border: 3px solid rgba(0,0,0,.12); border-top-color: var(--gtcpd-accent); animation: gtcpd-spin .8s linear infinite; }
.gtcpd-inline-placeholder { margin: auto; }
.gtcpd-cart-preview { object-fit: contain; background: #f4f4f5; }
.gtcpd-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
