/* CDC Registrazione — Wizard multi-step (web) */
.cdc-wiz {
	--cdc-accent: #7a1f2b;
	--cdc-accent-soft: #f3e7e9;
	--cdc-border: #d9cfc9;
	--cdc-text: #2c2320;
	--cdc-muted: #8a7f79;
	--cdc-ok: #2e7d32;
	--cdc-warn: #b3541e;
	max-width: 560px;
	margin: 0 auto;
	color: var(--cdc-text);
	font-size: 16px;
	line-height: 1.4;
	box-sizing: border-box;
}
.cdc-wiz *, .cdc-wiz *::before, .cdc-wiz *::after { box-sizing: border-box; }

/* Progress */
.cdc-wiz-progress { margin-bottom: 22px; }
.cdc-wiz-steps { display: flex; gap: 6px; margin-bottom: 8px; }
.cdc-wiz-steps span {
	flex: 1; height: 6px; border-radius: 3px; background: var(--cdc-border);
	transition: background .3s;
}
.cdc-wiz-steps span.done { background: var(--cdc-accent); }
.cdc-wiz-steps span.current { background: var(--cdc-accent); opacity: .55; }
.cdc-wiz-stepname { font-size: 13px; color: var(--cdc-muted); font-weight: 600; letter-spacing: .3px; }

/* Step card */
.cdc-wiz-step { display: none; }
.cdc-wiz-step.active { display: block; animation: cdcfade .25s ease; }
@keyframes cdcfade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.cdc-wiz-step h3 { margin: 0 0 4px; font-size: 20px; }
.cdc-wiz-step .cdc-wiz-sub { margin: 0 0 18px; color: var(--cdc-muted); font-size: 14px; }

/* Fields */
.cdc-f { margin-bottom: 14px; }
.cdc-f label { display: block; font-size: 13px; font-weight: 600; color: var(--cdc-text); margin-bottom: 5px; }
.cdc-f label .req { color: var(--cdc-accent); }
.cdc-f input, .cdc-f select {
	width: 100%; padding: 12px 14px; font-size: 16px; color: var(--cdc-text);
	background: #fff; border: 1px solid var(--cdc-border); border-radius: 10px; outline: none;
}
.cdc-f input:focus, .cdc-f select:focus { border-color: var(--cdc-accent); box-shadow: 0 0 0 3px var(--cdc-accent-soft); }
.cdc-f.err input, .cdc-f.err select { border-color: #c0392b; }
.cdc-f .cdc-err { color: #c0392b; font-size: 12px; margin-top: 4px; }
.cdc-hint { display: block; margin-top: 5px; font-size: 12px; color: var(--cdc-muted); }
.cdc-hint.ok { color: var(--cdc-ok); }
.cdc-hint.warn { color: var(--cdc-warn); }
.cdc-row { display: flex; gap: 12px; }
.cdc-row > * { flex: 1; }

/* Radio group (sesso / canale) */
.cdc-radios { display: flex; flex-direction: column; gap: 8px; }
.cdc-radios.inline { flex-direction: row; }
.cdc-radio {
	display: flex; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer;
	border: 1px solid var(--cdc-border); border-radius: 10px; font-size: 15px; flex: 1;
}
.cdc-radio input { width: auto; margin: 0; accent-color: var(--cdc-accent); }
.cdc-radio.sel { border-color: var(--cdc-accent); background: var(--cdc-accent-soft); font-weight: 600; }

/* Autocomplete */
.cdc-ac { position: relative; }
.cdc-ac-list {
	position: absolute; z-index: 50; left: 0; right: 0; top: 100%; margin-top: 3px;
	list-style: none; padding: 0; background: #fff; border: 1px solid var(--cdc-border);
	border-radius: 10px; box-shadow: 0 8px 22px rgba(0,0,0,.12); max-height: 240px; overflow-y: auto; display: none;
}
.cdc-ac-list.open { display: block; }
.cdc-ac-item { padding: 10px 14px; cursor: pointer; display: flex; justify-content: space-between; gap: 10px; }
.cdc-ac-item small { color: var(--cdc-muted); }
.cdc-ac-item.active, .cdc-ac-item:hover { background: var(--cdc-accent); color: #fff; }
.cdc-ac-item.active small, .cdc-ac-item:hover small { color: #f1d9dc; }

/* Google place autocomplete element */
.cdc-wiz gmp-place-autocomplete { display: block; width: 100%; }

/* Nav buttons */
.cdc-wiz-nav { display: flex; gap: 12px; margin-top: 22px; }
.cdc-btn {
	flex: 1; padding: 14px 18px; font-size: 16px; font-weight: 700; border-radius: 12px;
	border: none; cursor: pointer;
}
.cdc-btn-primary { background: var(--cdc-accent); color: #fff; }
.cdc-btn-primary:disabled { opacity: .55; cursor: default; }
.cdc-btn-ghost { background: transparent; color: var(--cdc-accent); border: 1px solid var(--cdc-border); flex: 0 0 auto; padding: 14px 20px; }

/* Turnstile + tos */
.cdc-tos { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; margin: 8px 0 14px; }
.cdc-tos input { width: auto; margin-top: 3px; accent-color: var(--cdc-accent); }
#cdc-turnstile { margin: 6px 0 14px; }

/* Success */
.cdc-wiz-done { text-align: center; padding: 20px 0; }
.cdc-wiz-done .cdc-check {
	width: 64px; height: 64px; border-radius: 50%; background: var(--cdc-ok); color: #fff;
	font-size: 34px; line-height: 64px; margin: 0 auto 16px;
}
.cdc-form-error { background: #fdecea; color: #c0392b; border-radius: 10px; padding: 10px 14px; font-size: 14px; margin-bottom: 14px; }

@media (max-width: 480px) {
	.cdc-wiz { font-size: 16px; }
	.cdc-row { flex-direction: column; gap: 0; }
	.cdc-radios.inline { flex-direction: column; }
}
