/*
 * WC Product Configurator — fallback structural styles.
 * Loaded only on configurator products. Plain CSS, no build step, no CSS
 * custom properties. Keeps the form usable if the theme's compiled CSS is
 * stale or absent; brand polish comes from the theme's Tailwind on top.
 * Near-empty in Phase 0 — populated per type starting Phase 1.
 */

.wcpc-configurator-form {
	box-sizing: border-box;
}

.wcpc-configurator-form * {
	box-sizing: inherit;
}

/* Coaster type (Phase 1) — plain structural layout, no brand colours,
   no CSS custom properties. Brand polish comes from the theme's Tailwind. */

.wcpc-coaster-grid {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.wcpc-coaster-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	/* one line per coaster: swatch + name, no wrap */
}

.wcpc-coaster-row__swatch-wrap {
	position: relative;
	flex: 0 0 auto;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
	transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.wcpc-coaster-row__swatch-wrap:hover {
	transform: scale(1.06);
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.22);
}

.wcpc-coaster-row__swatch-wrap:focus-within {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(0, 0, 0, 0.28);
}

.wcpc-coaster-row__swatch {
	width: 100%;
	height: 100%;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	background: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.wcpc-coaster-row__swatch::-webkit-color-swatch-wrapper { padding: 0; }
.wcpc-coaster-row__swatch::-webkit-color-swatch { border: none; border-radius: 50%; }
.wcpc-coaster-row__swatch::-moz-color-swatch { border: none; border-radius: 50%; }

.wcpc-coaster-row__badge {
	position: absolute;
	bottom: -3px;
	right: -3px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: #fff;
	color: rgba(0, 0, 0, 0.6);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
	pointer-events: none;
}

.wcpc-coaster-row__name {
	flex: 1 1 auto;
	min-width: 0;
}

.wcpc-coaster-chip {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
}

.wcpc-coaster-sep {
	margin: 0 0.35em;
	opacity: 0.5;
}

/* Rendered inside the theme's .wcwiz-standard-atc wrapper, whose form.cart
   flex layout would mangle the stacked rows. Restore block flow. */
.wcwiz-standard-atc form.cart.wcpc-configurator-form {
	display: block;
}

/* ── Display (cart / order / thank-you) ── */

.wcpc-coaster-display {
	display: inline;
	font-size: 0.8125rem; /* ~13px, matches text-sm */
	line-height: 1.5;
}

.wcpc-cart-meta {
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	line-height: 1.5;
}
