/* Visilay Forms – frontend. Personalizzabile tramite le variabili --vlf-* sul contenitore. */
.vlf-container{
	--vlf-accent:#7233EC;
	--vlf-gap:15px;
	--vlf-label-color:#12072B;
	--vlf-label-size:16px;
	--vlf-label-weight:700;
	--vlf-sublabel-color:rgba(18,7,43,.6);
	--vlf-text-color:#405463;
	--vlf-input-bg:#fff;
	--vlf-input-color:#405463;
	--vlf-input-border:#D5C2F9;
	--vlf-input-border-size:1px;
	--vlf-input-radius:15px;
	--vlf-input-height:48px;
	--vlf-input-font-size:16px;
	--vlf-input-pad:14px;
	--vlf-textarea-height:120px;
	--vlf-error-color:#D63637;
	--vlf-btn-bg:var(--vlf-accent);
	--vlf-btn-color:#fff;
	--vlf-btn-radius:15px;
	--vlf-btn-height:56px;
	--vlf-btn-font-size:18px;
	--vlf-btn-weight:700;
	--vlf-btn-width:100%;
	--vlf-link-color:var(--vlf-accent);
	font-family:inherit;
	color:var(--vlf-text-color);
}
.vlf-container *,.vlf-container *::before,.vlf-container *::after{box-sizing:border-box}
.vlf-form{margin:0}
.vlf-form[hidden],.vlf-page[hidden],.vlf-field[hidden],.vlf-confirmation[hidden],.vlf-error[hidden],.vlf-form-error[hidden],.vlf-submit-wrap[hidden],.vlf-btn[hidden]{display:none!important}
.vlf-title{margin:0 0 10px}
.vlf-description{margin:0 0 10px}

/* Griglia campi: pieno, metà, terzo */
.vlf-fields{display:flex;flex-wrap:wrap;column-gap:20px}
.vlf-field{flex:0 0 100%;max-width:100%;padding:var(--vlf-gap) 0;min-width:0}
.vlf-w-half{flex-basis:calc(50% - 10px);max-width:calc(50% - 10px)}
.vlf-w-third{flex-basis:calc(33.333% - 13.34px);max-width:calc(33.333% - 13.34px)}
@media (max-width:600px){.vlf-w-half,.vlf-w-third{flex-basis:100%;max-width:100%}}

.vlf-label{display:block;margin:0 0 var(--vlf-gap);padding:0;font-size:var(--vlf-label-size);line-height:1.2;font-weight:var(--vlf-label-weight);color:var(--vlf-label-color);word-break:break-word}
.vlf-fieldset{border:0;margin:0;padding:0;min-width:0}
.vlf-fieldset>legend.vlf-label{float:left;width:100%}
.vlf-fieldset>legend+*{clear:both}
.vlf-req{color:var(--vlf-error-color);font-weight:400}
.vlf-sublabel{display:block;margin-top:5px;font-size:14px;line-height:1.2;color:var(--vlf-sublabel-color)}
.vlf-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.vlf-desc{margin-top:8px;font-size:14px;line-height:1.4;color:var(--vlf-sublabel-color)}

/* Input */
.vlf-input{display:block;width:100%;margin:0;height:var(--vlf-input-height);padding:0 var(--vlf-input-pad);font:inherit;font-size:var(--vlf-input-font-size);line-height:1.2;color:var(--vlf-input-color);background:var(--vlf-input-bg);background-clip:padding-box;border:var(--vlf-input-border-size) solid var(--vlf-input-border);border-radius:var(--vlf-input-radius);box-shadow:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
.vlf-input::placeholder{color:var(--vlf-input-color);opacity:.55}
.vlf-input:focus{outline:none;border-color:var(--vlf-accent);box-shadow:0 0 0 1px var(--vlf-accent),0 1px 2px rgba(0,0,0,.15)}
.vlf-textarea{height:var(--vlf-textarea-height);min-height:80px;padding:12px var(--vlf-input-pad);line-height:1.4;resize:vertical}
.vlf-textarea[rows]{height:auto;min-height:var(--vlf-textarea-height)}
input.vlf-input[type=date]{min-height:var(--vlf-input-height)}
.vlf-select-wrap{position:relative}
.vlf-select-wrap::after{content:"";position:absolute;right:calc(var(--vlf-input-pad) + 2px);top:50%;width:8px;height:8px;margin-top:-6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);color:var(--vlf-input-color);pointer-events:none;opacity:.7}
.vlf-select{padding-right:40px;cursor:pointer}

.vlf-row{display:flex;gap:20px}
.vlf-col{flex:1 1 0;min-width:0}
@media (max-width:480px){.vlf-row{flex-direction:column;gap:12px}}

/* Telefono con prefisso */
.vlf-phone{position:relative;display:flex}
.vlf-cc{position:relative;flex:0 0 auto;display:flex;align-items:center}
.vlf-cc__shown{display:flex;align-items:center;gap:6px;height:var(--vlf-input-height);padding:0 30px 0 var(--vlf-input-pad);font-size:var(--vlf-input-font-size);color:var(--vlf-input-color);background:var(--vlf-input-bg);border:var(--vlf-input-border-size) solid var(--vlf-input-border);border-right:0;border-radius:var(--vlf-input-radius) 0 0 var(--vlf-input-radius);white-space:nowrap;font-variant-numeric:tabular-nums}
.vlf-cc::after{content:"";position:absolute;right:13px;top:50%;width:6px;height:6px;margin-top:-5px;border-right:2px solid var(--vlf-input-color);border-bottom:2px solid var(--vlf-input-color);transform:rotate(45deg);opacity:.6;pointer-events:none}
.vlf-cc__select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px;border:0}
.vlf-phone .vlf-input{border-radius:0 var(--vlf-input-radius) var(--vlf-input-radius) 0;flex:1 1 auto;min-width:0}
.vlf-cc:focus-within .vlf-cc__shown{border-color:var(--vlf-accent);box-shadow:0 0 0 1px var(--vlf-accent)}

/* Scelte */
.vlf-choices{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.vlf-choices--inline{flex-direction:row;flex-wrap:wrap;gap:10px 24px}
.vlf-choices li{display:flex;align-items:flex-start;gap:10px;margin:0;padding:0}
.vlf-choices input,.vlf-consent input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:var(--vlf-accent);cursor:pointer}
.vlf-choices label,.vlf-consent label{cursor:pointer;line-height:1.4;color:var(--vlf-label-color);font-weight:400}
.vlf-consent{display:flex;align-items:flex-start;gap:10px}
.vlf-consent a,.vlf-content a,.vlf-choices a{color:var(--vlf-link-color);text-decoration:underline}

.vlf-file{display:block;width:100%;padding:10px;border:var(--vlf-input-border-size) dashed var(--vlf-input-border);border-radius:var(--vlf-input-radius);background:var(--vlf-input-bg);color:var(--vlf-input-color);font:inherit;font-size:15px;cursor:pointer}
.vlf-file::file-selector-button{margin-right:12px;padding:8px 14px;border:0;border-radius:calc(var(--vlf-input-radius) / 1.5);background:var(--vlf-accent);color:#fff;font:inherit;font-weight:700;cursor:pointer}

.vlf-content{font-size:15px;line-height:1.5;color:var(--vlf-label-color)}
.vlf-content p{margin:0 0 .6em}
.vlf-content p:last-child{margin-bottom:0}
.vlf-divider{margin:10px 0 0;padding-bottom:10px;border-bottom:1px solid var(--vlf-input-border);font-size:20px;line-height:1.3;color:var(--vlf-label-color)}

/* Errori */
.vlf-error{margin-top:8px;font-size:14px;line-height:1.3;color:var(--vlf-error-color)}
.vlf-field--error .vlf-input,.vlf-field--error .vlf-cc__shown,.vlf-field--error .vlf-file{border-color:var(--vlf-error-color)}
.vlf-field--error .vlf-input:focus{box-shadow:0 0 0 1px var(--vlf-error-color)}
.vlf-form-error{margin:15px 0 0;padding:12px 16px;border-radius:10px;background:rgba(214,54,55,.1);border:1px solid var(--vlf-error-color);color:var(--vlf-error-color);font-size:15px}

/* Pulsanti */
.vlf-submit-wrap{margin-top:10px}
.vlf-submit,.vlf-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:var(--vlf-btn-height);padding:0 28px;margin:0;border:1px solid var(--vlf-btn-bg);border-radius:var(--vlf-btn-radius);background:var(--vlf-btn-bg);color:var(--vlf-btn-color);font:inherit;font-size:var(--vlf-btn-font-size);font-weight:var(--vlf-btn-weight);line-height:1;cursor:pointer;transition:filter .15s,box-shadow .15s,opacity .15s;text-decoration:none}
.vlf-submit{width:var(--vlf-btn-width)}
.vlf-submit:hover,.vlf-btn:hover{filter:brightness(1.08)}
.vlf-submit:focus-visible,.vlf-btn:focus-visible{outline:2px solid var(--vlf-btn-bg);outline-offset:2px}
.vlf-submit.is-busy{opacity:.8;cursor:progress}
.vlf-submit.is-busy::after{content:"";width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:vlf-spin .7s linear infinite}
@keyframes vlf-spin{to{transform:rotate(360deg)}}
.vlf-btn--prev{background:transparent;color:var(--vlf-label-color);border-color:var(--vlf-input-border)}

/* Multi-step */
.vlf-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px}
.vlf-nav .vlf-btn--next{margin-left:auto}
.vlf-nav .vlf-submit-wrap{margin:0 0 0 auto;flex:1 1 auto;display:flex;justify-content:flex-end}
.vlf-nav .vlf-submit{width:auto}
.vlf-form:not(.vlf-js) .vlf-nav{display:none}
.vlf-progress{margin:0 0 10px}
.vlf-progress__text{font-size:14px;font-weight:700;color:var(--vlf-label-color);margin-bottom:8px}
.vlf-progress__bar{height:6px;border-radius:6px;background:rgba(127,127,127,.2);overflow:hidden}
.vlf-progress__bar span{display:block;height:100%;background:var(--vlf-accent);border-radius:6px;transition:width .3s}
.vlf-page__title{margin:10px 0 0;font-size:20px;color:var(--vlf-label-color)}

.vlf-confirmation{padding:20px 22px;border-radius:var(--vlf-input-radius);background:rgba(114,51,236,.08);border:1px solid var(--vlf-input-border);color:var(--vlf-label-color);font-size:17px;line-height:1.5}
.vlf-confirmation:focus{outline:none}
.vlf-confirmation p{margin:0}

/* Honeypot */
.vlf-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}

@media (prefers-reduced-motion:reduce){.vlf-container *{transition:none!important;animation:none!important}}
