/* Configuratore prodotto: passi numerati, opzioni a riquadri (usa la palette globale Kadence) */
.fw-config { width: 100%; margin: .5rem 0 1.25rem; display: grid; gap: 0; }
.fw-step {
	position: relative; margin: 0; padding: 0 0 1.4rem 3rem; border: 0; min-width: 0;
}
.fw-step::before { /* linea verticale che unisce i passi */
	content: ""; position: absolute; left: 15px; top: 34px; bottom: 2px; width: 2px; background: #cfe8d8;
}
.fw-step-title {
	display: flex; align-items: center; gap: .75rem; float: left; width: 100%;
	margin: 0 0 .7rem -3rem; padding: 0; font-size: 1.05rem; font-weight: 700; color: var(--global-palette3, #2f3336);
}
.fw-step-title + * { clear: both; }
.fw-step-num {
	display: inline-grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%;
	background: #0F62FE; color: #fff; font-size: .95rem; font-weight: 700;
}
.fw-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr)); gap: .5rem; }
.fw-tile {
	position: relative; display: grid; gap: .15rem; align-content: center; min-height: 3.6rem; padding: .55rem .7rem;
	border: 1px solid #c9cdd2; border-radius: 6px; background: #fff; cursor: pointer; text-align: center;
	transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.fw-tile:hover { border-color: #0F62FE; }
.fw-tile input { position: absolute; opacity: 0; pointer-events: none; }
.fw-tile-name { font-size: .85rem; font-weight: 700; line-height: 1.25; color: var(--global-palette3, #2f3336); }
.fw-tile-price { font-size: .8rem; color: var(--global-palette5, #555b61); }
.fw-tile:has(input:checked) { border: 2px solid #0F62FE; background: #edf4ff; padding: calc(.55rem - 1px) calc(.7rem - 1px); }
.fw-tile:has(input:focus-visible) { outline: 2px solid #0F62FE; outline-offset: 2px; }
.fw-step select { width: 100%; max-width: 100%; padding: .6rem .75rem; border-radius: 6px; font-size: .9rem; background-color: #fff; border-color: #c9cdd2; }
.fw-config-summary {
	display: grid; gap: .35rem; margin-top: .25rem; padding: 1rem 0 0; border-top: 1px solid var(--global-palette7, #e3e5e8); font-size: .9rem;
}
.fw-config-net, .fw-config-total, .fw-config-fee { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.fw-config-net { color: var(--global-palette5, #555b61); }
.fw-config-total { font-size: 1rem; padding-top: .5rem; border-top: 1px solid var(--global-palette7, #e3e5e8); }
.fw-config-total strong { font-size: 1.9rem; font-weight: 900; color: var(--global-palette3, #2f3336); }
.fw-config-error { color: #b42318; font-weight: 600; }
.fw-config-note { margin: .5rem 0 0; font-size: .8rem; color: var(--global-palette6, #8d9399); }
.fw-admin-parts { margin-top: .5rem; padding: .5rem .75rem; background: #fff8e5; border-left: 3px solid #dba617; font-size: 12px; }
/* il modulo occupa tutta la riga, quantità e pulsante restano sotto */
.single-product form.cart { flex-wrap: wrap; }
.fw-step:last-of-type::before { display: none; }
