/*
 * Gestione B2B & B2C by White Rabbix — stili front-end.
 *
 * Sono stili DI BASE: rendono presentabile il form su un sito senza
 * personalizzazioni, ma devono cedere il passo al tema che ospita il plugin.
 * Per questo le regole decorative stanno dentro :where(), che ha specificità
 * zero: qualunque regola del tema le batte senza dover alzare i selettori né
 * ricorrere a !important.
 *
 * Restano "forti" (fuori da :where()) solo le regole funzionali, che un tema
 * non deve poter rompere per sbaglio: l'honeypot antispam e la griglia.
 *
 * I colori passano da variabili: un tema può ritematizzare tutto ridefinendo
 * le custom property, senza riscrivere una regola.
 */

/* Variabili + guscio. In :where() così il tema può togliere del tutto la
   "card" (bordo/sfondo/padding) quando il form sta già dentro un suo box. */
:where(.wrb2b-registration-form, .wrb2b-quick-order, .wrb2b-quote-box) {
	--wrb2b: #173f35;
	--wrb2b-accent: #c89b53;
	--wrb2b-surface: #fff;
	--wrb2b-border: #dde5e2;
	--wrb2b-field-border: #cfd8d5;
	--wrb2b-radius: 12px;
	--wrb2b-field-radius: 6px;

	max-width: 900px;
	padding: 24px;
	border: 1px solid var(--wrb2b-border);
	border-radius: var(--wrb2b-radius);
	background: var(--wrb2b-surface);
}

/* Griglia: è struttura, non decorazione. Resta fuori da :where(). */
.wrb2b-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}
.wrb2b-type-textarea,
.wrb2b-type-file,
.wrb2b-type-checkbox {
	grid-column: 1 / -1;
}

/* Etichette */
:where(.wrb2b-form-field label) {
	display: block;
	font-weight: 650;
	margin-bottom: 7px;
}
:where(.wrb2b-form-field label > span) {
	color: #b42318;
}

/* Campi. Prima la base, poi il ripristino per checkbox e radio: stessa
   specificità (zero), vince la seconda perché viene dopo.
   Niente :not([type=checkbox]): alzava la specificità sopra quella dei temi e
   rendeva inefficaci i loro override sui campi. */
:where(
	.wrb2b-form-field input,
	.wrb2b-form-field select,
	.wrb2b-form-field textarea,
	.wrb2b-quick-order textarea,
	.wrb2b-quote-box input,
	.wrb2b-quote-box textarea
) {
	box-sizing: border-box;
	width: 100%;
	padding: 11px 12px;
	border: 1px solid var(--wrb2b-field-border);
	border-radius: var(--wrb2b-field-radius);
	background: #fff;
}
:where(.wrb2b-form-field input[type="checkbox"], .wrb2b-form-field input[type="radio"]) {
	width: auto;
	padding: 0;
	border: 0;
	background: none;
}
:where(.wrb2b-checkbox) {
	font-weight: 400;
}
:where(.wrb2b-checkbox input) {
	margin-right: 6px;
}

/* Pulsante di invio */
:where(.wrb2b-submit) {
	display: inline-block;
	margin-top: 20px;
	padding: 12px 22px;
	border: 0;
	border-radius: var(--wrb2b-field-radius, 6px);
	background: var(--wrb2b, #173f35);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

/* Messaggi di esito */
:where(.wrb2b-message) {
	padding: 14px 18px;
	border-radius: 8px;
	margin: 15px 0;
}
:where(.wrb2b-success) {
	background: #ddf5e7;
	color: #145c36;
}
:where(.wrb2b-error) {
	background: #fbe3e1;
	color: #8f2520;
}
:where(.wrb2b-hidden-price) {
	font-size: 0.92em;
	color: #665;
}
:where(.wrb2b-quote-box) {
	margin: 25px 0;
}
:where(.wrb2b-quote-box h3) {
	margin-top: 0;
}

/* Funzionale: l'honeypot deve restare nascosto qualunque cosa faccia il tema. */
.wrb2b-honeypot {
	position: absolute !important;
	left: -9999px !important;
}

@media (max-width: 640px) {
	.wrb2b-form-grid {
		grid-template-columns: 1fr;
	}
	.wrb2b-type-textarea,
	.wrb2b-type-file,
	.wrb2b-type-checkbox {
		grid-column: auto;
	}
}
