/* Víctor SEO WEB Widgets · formulario.css
   Formulario de Elementor Pro con la clase «vsw-form» (y su contenedor con la clase «vsw-form-panel»),
   con el aspecto de la maqueta de web/ (.form-panel, .cf-form). Escrito para el HTML del widget de Pro. */

/* Panel */
.e-con.e-con.vsw-form-panel.vsw-form-panel{--display:block; --gap:0px; --row-gap:0px; --column-gap:0px; --padding-top:32px; --padding-bottom:32px; --padding-left:24px; --padding-right:24px;
  --margin-top:0px; --margin-bottom:0px; --content-width:100%; --width:100%; display:block; max-width:none; width:100%;
  background:var(--vsw-panel, #1A2332); border:1px solid var(--vsw-border, rgba(255,255,255,.12)); border-radius:20px; color:var(--vsw-ink, #fff); font-family:var(--vsw-font, 'Figtree', system-ui, sans-serif);}
@media(min-width:640px){.e-con.e-con.vsw-form-panel.vsw-form-panel{--padding-top:40px; --padding-left:40px; --padding-right:40px; --padding-bottom:36px;}}
.hero--form .e-con.vsw-form-panel{box-shadow:var(--vsw-shadow-lift, 0 40px 80px -30px rgba(0,0,0,.55));}
.e-con.vsw-form-panel > .e-con-inner{display:block; max-width:none; padding:0;}
.e-con.vsw-form-panel .elementor-widget{margin:0;}

/* Prefijo con especificidad suficiente para ganar al CSS por elemento de Elementor, sin !important */
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form{font-family:var(--vsw-font, 'Figtree', system-ui, sans-serif); color:var(--vsw-ink, #fff);}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .form-title{font-size:22px; font-weight:700; line-height:1.3; letter-spacing:-.01em; margin:0 0 6px; color:var(--vsw-ink, #fff); font-family:inherit;}

/* Rejilla de campos: 2 columnas desde 700 px, 26 px entre filas y 28 px entre columnas */
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-form-fields-wrapper{display:grid; grid-template-columns:minmax(0,1fr); gap:26px; margin:0;}
@media(min-width:700px){body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-form-fields-wrapper{grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:28px;}}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-group{width:auto; max-width:none; flex:none; padding:0; margin:0; grid-column:1 / -1; display:flex; flex-direction:column; align-items:stretch; gap:4px;}
@media(min-width:700px){body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-group.elementor-col-50{grid-column:auto;}}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-type-html{display:block;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-type-html:first-child{margin-bottom:-4px;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-type-honeypot{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}

/* Etiquetas, obligatorio y opcional */
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-label{font-size:13px; font-weight:600; color:var(--vsw-ink, #fff); letter-spacing:.01em; padding:0; margin:0; line-height:1.6;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-mark-required .elementor-field-label::after{content:"*"; color:var(--vsw-accent, #705CF6); margin-left:2px; padding:0;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .cf-opt{color:var(--vsw-ink-soft, #AAB1C0); font-weight:400; font-size:12px;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .cf-help{font-size:13px; color:var(--vsw-ink-soft, #AAB1C0); line-height:1.5;}

/* Campos: solo línea inferior */
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form :is(.elementor-field-textual, .elementor-field-textual:hover, select.elementor-field){width:100%; background:transparent; border:0; border-bottom:1px solid var(--vsw-border, rgba(255,255,255,.12)); border-radius:0; color:var(--vsw-ink, #fff); font-family:inherit; font-size:16px; line-height:1.5; padding:10px 0 9px; min-height:0; box-shadow:none; transition:border-color .2s ease, box-shadow .2s ease;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form textarea.elementor-field-textual{resize:vertical; min-height:112px;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-textual::placeholder{color:color-mix(in srgb, var(--vsw-ink-soft, #AAB1C0) 55%, transparent); opacity:1;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form :is(.elementor-field-textual, select.elementor-field):focus{outline:none; border-bottom-color:var(--vsw-accent, #705CF6); box-shadow:0 1px 0 var(--vsw-accent, #705CF6);}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-select-wrapper{background:transparent; border:0; padding:0;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-select-wrapper select{appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:28px;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-select-wrapper .select-caret-down-wrapper{right:2px; color:var(--vsw-ink-soft, #AAB1C0); font-size:12px;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-select-wrapper select:invalid, body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-select-wrapper select:has(option[value=""]:checked){color:color-mix(in srgb, var(--vsw-ink-soft, #AAB1C0) 55%, transparent);}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-select-wrapper select option{background:var(--vsw-panel, #1A2332); color:var(--vsw-ink, #fff);}

/* Casilla de privacidad */
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-type-acceptance .elementor-field-subgroup{display:block; margin:0;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-type-acceptance .elementor-field-option{display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:var(--vsw-ink-soft, #AAB1C0); line-height:1.5; margin:0; padding:0; width:auto;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-type-acceptance input[type=checkbox]{width:18px; height:18px; margin:2px 0 0; accent-color:var(--vsw-accent, #705CF6); flex:none;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-type-acceptance label{font-size:inherit; font-weight:400; color:inherit; padding:0; margin:0; line-height:inherit;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form :is(.elementor-field-type-acceptance a, .privacy-note a){color:var(--vsw-ink, #fff); text-decoration:underline; text-decoration-color:var(--vsw-accent, #705CF6); text-underline-offset:3px;}

/* Botón y texto junto al botón */
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-type-submit{flex-direction:row; flex-wrap:wrap; align-items:center; gap:12px 20px;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-button{display:inline-flex; align-items:center; gap:9px; width:auto; flex:none; min-height:0; background:var(--vsw-accent, #705CF6); background-image:none; color:#fff; border:none; border-radius:9px; padding:14px 28px; font-family:inherit; font-size:14.5px; font-weight:600; line-height:1.3; letter-spacing:normal; text-transform:none; box-shadow:none; transition:transform .2s ease, box-shadow .2s ease; cursor:pointer;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-button:hover{background:var(--vsw-accent, #705CF6); color:#fff; transform:translateY(-2px); box-shadow:var(--vsw-shadow-btn, 0 10px 24px -8px rgba(112,92,246,.55));}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-button:focus-visible{outline:2px solid var(--vsw-accent-2, #8B7CF6); outline-offset:3px;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .cf-after{font-size:14px; color:var(--vsw-ink-soft, #AAB1C0);}

/* Nota de privacidad (al final del panel) */
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .privacy-note{margin-top:28px; padding-top:20px; border-top:1px solid var(--vsw-border, rgba(255,255,255,.12)); font-size:12.5px; line-height:1.6; color:var(--vsw-ink-soft, #AAB1C0);}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .privacy-note strong{color:var(--vsw-ink, #fff); font-weight:600;}

/* Mensajes de Pro: error del campo y resultado del envío */
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-error .elementor-field-textual{border-bottom-color:#f87171;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-message{font-size:14px; line-height:1.5; margin-top:16px; color:var(--vsw-ink, #fff);}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-message.elementor-message-danger{color:#fca5a5;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-message::before{color:var(--vsw-accent, #705CF6);}

/* Etiquetas encima siempre y cada campo a todo el ancho de su grupo.
   Cada grupo es una rejilla de una sola columna: así da igual que el formulario tenga «Etiquetas en línea»
   o que otro CSS (de Elementor Pro o del tema) ponga sus grupos en fila. Aquí, y solo aquí, se usa !important:
   es la colocación de los campos, no un estilo que se cambie desde la pestaña Estilo. */
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-form-fields-wrapper{display:grid !important; flex-wrap:nowrap;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-group:not(.elementor-field-type-submit):not(.elementor-field-type-html):not(.elementor-field-type-honeypot):not(.elementor-field-type-hidden){display:grid !important; grid-template-columns:minmax(0,1fr) !important; grid-auto-flow:row !important; align-items:start !important; justify-items:stretch !important; row-gap:4px; column-gap:0; flex-wrap:nowrap;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-group:not(.elementor-field-type-submit):not(.elementor-field-type-html):not(.elementor-field-type-honeypot):not(.elementor-field-type-hidden) > *{grid-column:1 / -1 !important; width:100% !important; max-width:100% !important; flex:none; margin-left:0; margin-right:0;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-group:not(.elementor-field-type-submit):not(.elementor-field-type-html):not(.elementor-field-type-honeypot):not(.elementor-field-type-hidden) > .elementor-field-label{justify-self:start !important; width:auto !important;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-group .cf-help{display:block;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-form{margin:0; padding:0; width:100%;}
body :is(.vsw .elementor-widget-form, .elementor-widget-form.vsw-form).elementor-widget-form.elementor-widget-form .elementor-field-type-acceptance.elementor-mark-required .elementor-field-option label::after{content:"*"; color:var(--vsw-accent, #705CF6); margin-left:2px;}
