.elementor-15 .elementor-element.elementor-element-e85c235{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-15 .elementor-element.elementor-element-453edde{--display:flex;--justify-content:center;}.elementor-15 .elementor-element.elementor-element-453edde:not(.elementor-motion-effects-element-type-background), .elementor-15 .elementor-element.elementor-element-453edde > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#02010100;}.elementor-15 .elementor-element.elementor-element-5e10f7d{width:100%;max-width:100%;}@media(max-width:1024px){.elementor-15 .elementor-element.elementor-element-453edde{--padding-top:0em;--padding-bottom:0em;--padding-left:0em;--padding-right:0em;}.elementor-15 .elementor-element.elementor-element-3479a67 > .elementor-widget-container{padding:0em 3em 0em 3em;}}@media(max-width:767px){.elementor-15 .elementor-element.elementor-element-453edde{--padding-top:0em;--padding-bottom:0em;--padding-left:0em;--padding-right:0em;}.elementor-15 .elementor-element.elementor-element-5e10f7d{padding:0em 0em 0em 0em;}.elementor-15 .elementor-element.elementor-element-3479a67 > .elementor-widget-container{padding:0em 1em 0em 1em;}}/* Start custom CSS for template, class: .elementor-element-3479a67 *//* =========================================
   VARIABLES CSS — DARK MODE
   Form on dark background (#0f2c52 or similar)
   ========================================= */
:root {
    --cubic-default: cubic-bezier(0.525, 0, 0, 1);
    --duration-fast: 0.2s;
    --duration-normal: 0.35s;
    --color-primary: #ff5e22;
    --color-dark: #0f2c52;
    --color-light: rgba(255, 255, 255, 0.07);
    --color-light-hover: rgba(255, 255, 255, 0.12);
    --color-text: #f0f4f8;
    --color-text-muted: rgba(255, 255, 255, 0.45);
    --color-border: rgba(255, 255, 255, 0.15);
}

/* =========================================
   FUENTE DEL FORMULARIO
   ========================================= */
.elementor-element-21ac7954 .elementor-form,
.elementor-element-21ac7954 .elementor-form *,
.elementor-element-21ac7954.elementor-widget-form .elementor-form {
    font-family: 'Mulish', sans-serif !important;
}

/* =========================================
   LABELS
   ========================================= */
.elementor-element-21ac7954 .elementor-field-label,
.elementor-element-21ac7954 label.elementor-field-label,
.elementor-element-21ac7954 .elementor-field-group > label {
    color: #ffffff !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    margin-bottom: 8px !important;
    font-family: 'Mulish', sans-serif !important;
}

.elementor-element-21ac7954 .elementor-mark-required,
.elementor-element-21ac7954 .elementor-field-label .elementor-mark-required {
    color: var(--color-primary) !important;
}

/* =========================================
   INPUTS Y TEXTAREAS
   ========================================= */
.elementor-element-21ac7954 .elementor-field.elementor-field-textual,
.elementor-element-21ac7954 input.elementor-field[type="text"],
.elementor-element-21ac7954 input.elementor-field[type="email"],
.elementor-element-21ac7954 input.elementor-field[type="tel"],
.elementor-element-21ac7954 input.elementor-field[type="number"],
.elementor-element-21ac7954 input.elementor-field[type="url"],
.elementor-element-21ac7954 textarea.elementor-field,
.elementor-element-21ac7954 input.elementor-field-textual,
.elementor-element-21ac7954 input.elementor-size-xs.elementor-field,
.elementor-element-21ac7954 input.elementor-size-sm.elementor-field,
.elementor-element-21ac7954 input.elementor-size-md.elementor-field,
.elementor-element-21ac7954 input.elementor-size-lg.elementor-field,
.elementor-element-21ac7954 input.elementor-size-xl.elementor-field,
.elementor-element-21ac7954 textarea.elementor-size-xs.elementor-field,
.elementor-element-21ac7954 textarea.elementor-size-sm.elementor-field,
.elementor-element-21ac7954 textarea.elementor-size-md.elementor-field,
.elementor-element-21ac7954 textarea.elementor-size-lg.elementor-field,
.elementor-element-21ac7954 textarea.elementor-size-xl.elementor-field {
    padding: 14px 16px !important;
    background: var(--color-light) !important;
    background-color: var(--color-light) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 12px !important;
    color: #ffffff !important;
    font-family: 'Mulish', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    transition: all var(--duration-normal) var(--cubic-default) !important;
    line-height: 1.5 !important;
    box-shadow: none !important;
}

.elementor-element-21ac7954 .elementor-field::placeholder,
.elementor-element-21ac7954 .elementor-field::-webkit-input-placeholder,
.elementor-element-21ac7954 .elementor-field::-moz-placeholder {
    color: rgba(255, 255, 255, 0.6) !important;
    opacity: 1 !important;
    transition: opacity var(--duration-fast) var(--cubic-default) !important;
}

.elementor-element-21ac7954 .elementor-field:focus,
.elementor-element-21ac7954 input.elementor-field:focus,
.elementor-element-21ac7954 textarea.elementor-field:focus {
    outline: none !important;
    background: rgba(255, 255, 255, 0.14) !important;
    background-color: rgba(255, 255, 255, 0.14) !important;
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(255, 94, 34, 0.2) !important;
}

.elementor-element-21ac7954 .elementor-field:focus::placeholder {
    opacity: 0.5 !important;
}

/* =========================================
   SELECT / DROPDOWNS
   ========================================= */
.elementor-element-21ac7954 .elementor-field-type-select select.elementor-field,
.elementor-element-21ac7954 select.elementor-field,
.elementor-element-21ac7954 select.elementor-field.elementor-size-xs,
.elementor-element-21ac7954 select.elementor-field.elementor-size-sm,
.elementor-element-21ac7954 select.elementor-field.elementor-size-md,
.elementor-element-21ac7954 select.elementor-field.elementor-size-lg,
.elementor-element-21ac7954 select.elementor-field.elementor-size-xl,
.elementor-element-21ac7954 .elementor-field-type-select select {
    padding: 14px 16px !important;
    padding-right: 45px !important;
    background: var(--color-light) !important;
    background-color: var(--color-light) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 12px !important;
    color: #ffffff !important;
    font-family: 'Mulish', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all var(--duration-normal) var(--cubic-default) !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%23f0f4f8' stroke-width='2' fill='none'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 16px center !important;
    line-height: 1.5 !important;
    box-shadow: none !important;
}

.elementor-element-21ac7954 select.elementor-field:hover {
    background-color: var(--color-light-hover) !important;
}

.elementor-element-21ac7954 select.elementor-field:focus {
    outline: none !important;
    background-color: rgba(255, 255, 255, 0.14) !important;
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(255, 94, 34, 0.2) !important;
}

.elementor-element-21ac7954 select.elementor-field option {
    background: #1a3a5c !important;
    background-color: #1a3a5c !important;
    color: var(--color-text) !important;
    padding: 10px !important;
}

/* =========================================
   CHECKBOX (Acceptance/Privacy)
   ========================================= */
.elementor-element-21ac7954 .elementor-field-type-acceptance,
.elementor-element-21ac7954 .elementor-field-group.elementor-field-type-acceptance {
    margin: 20px 0 !important;
    padding: 15px !important;
    background: var(--color-light) !important;
    border-radius: 12px !important;
    border-left: 3px solid var(--color-primary) !important;
    border-right: none !important;
    border-top: none !important;
    border-bottom: none !important;
    transition: all var(--duration-normal) var(--cubic-default) !important;
}

.elementor-element-21ac7954 .elementor-field-type-acceptance:hover {
    background: var(--color-light-hover) !important;
}

.elementor-element-21ac7954 .elementor-field-type-acceptance input[type="checkbox"],
.elementor-element-21ac7954 input[type="checkbox"].elementor-field,
.elementor-element-21ac7954 input[type="checkbox"].elementor-acceptance-field,
.elementor-element-21ac7954 input.elementor-size-xs.elementor-acceptance-field,
.elementor-element-21ac7954 input.elementor-size-sm.elementor-acceptance-field,
.elementor-element-21ac7954 input.elementor-size-md.elementor-acceptance-field,
.elementor-element-21ac7954 input.elementor-size-lg.elementor-acceptance-field,
.elementor-element-21ac7954 input.elementor-size-xl.elementor-acceptance-field,
.elementor-element-21ac7954 input[type="checkbox"].elementor-size-xs.elementor-field,
.elementor-element-21ac7954 input[type="checkbox"].elementor-size-sm.elementor-field,
.elementor-element-21ac7954 input[type="checkbox"].elementor-size-md.elementor-field,
.elementor-element-21ac7954 input[type="checkbox"].elementor-size-lg.elementor-field,
.elementor-element-21ac7954 input[type="checkbox"].elementor-size-xl.elementor-field {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    border: 2px solid rgba(255, 255, 255, 0.25) !important;
    border-radius: 4px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    background-color: rgba(255, 255, 255, 0.08) !important;
    cursor: pointer !important;
    position: relative !important;
    transition: all var(--duration-fast) var(--cubic-default) !important;
    padding: 0 !important;
    margin: 2px 0 0 0 !important;
}

.elementor-element-21ac7954 input[type="checkbox"].elementor-field:hover {
    border-color: var(--color-primary) !important;
}

.elementor-element-21ac7954 input[type="checkbox"].elementor-field:focus {
    outline: none !important;
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(255, 94, 34, 0.2) !important;
}

.elementor-element-21ac7954 input[type="checkbox"].elementor-field:checked {
    background: var(--color-primary) !important;
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}

.elementor-element-21ac7954 input[type="checkbox"].elementor-field:checked::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 12px !important;
    height: 12px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E") !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    display: block !important;
}

/* Labels del checkbox */
.elementor-element-21ac7954 .elementor-field-option label,
.elementor-element-21ac7954 .elementor-field-subgroup label,
.elementor-element-21ac7954 label[for*="form-field-field"],
.elementor-element-21ac7954 .elementor-acceptance-field-description,
.elementor-element-21ac7954 .elementor-field-type-acceptance label span {
    color: rgba(255, 255, 255, 0.55) !important;
    font-size: 12px !important;
    line-height: 1.6 !important;
    font-weight: 400 !important;
    cursor: pointer !important;
    margin-bottom: 0 !important;
}

.elementor-element-21ac7954 .elementor-field-option label:hover {
    color: rgba(255, 255, 255, 0.8) !important;
}

.elementor-element-21ac7954 .elementor-field-option label a,
.elementor-element-21ac7954 .elementor-field-subgroup label a,
.elementor-element-21ac7954 .elementor-acceptance-field-description a {
    color: var(--color-primary) !important;
    text-decoration: none !important;
    transition: opacity var(--duration-fast) ease !important;
}

.elementor-element-21ac7954 .elementor-field-option label a:hover,
.elementor-element-21ac7954 .elementor-acceptance-field-description a:hover {
    opacity: 0.8 !important;
    text-decoration: underline !important;
}

/* =========================================
   BOTÓN DE SUBMIT
   ========================================= */
.elementor-element-21ac7954 .elementor-field-type-submit,
.elementor-element-21ac7954 .e-form__buttons {
    width: 100% !important;
}

.elementor-element-21ac7954 .elementor-button.elementor-button-submit,
.elementor-element-21ac7954 button.elementor-button[type="submit"],
.elementor-element-21ac7954 .elementor-field-type-submit button,
.elementor-element-21ac7954 .elementor-field-type-submit .elementor-button {
    width: 100% !important;
    justify-content: center !important;
    background-color: var(--color-primary) !important;
    background: var(--color-primary) !important;
    border-radius: 99px !important;
    cursor: pointer !important;
    border: none !important;
    padding: 1rem 2rem !important;
    color: #FFFFFF !important;
    font-family: 'Mulish', sans-serif !important;
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    transition: all var(--duration-normal) var(--cubic-default) !important;
    position: relative !important;
    overflow: hidden !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

.elementor-element-21ac7954 .elementor-button.elementor-button-submit::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: -100% !important;
    width: 100% !important;
    height: 100% !important;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent) !important;
    transition: left 0.5s var(--cubic-default) !important;
}

.elementor-element-21ac7954 .elementor-button.elementor-button-submit:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 30px rgba(255, 94, 34, 0.35) !important;
    background-color: #e8531b !important;
}

.elementor-element-21ac7954 .elementor-button.elementor-button-submit:hover::before {
    left: 100% !important;
}

.elementor-element-21ac7954 .elementor-button.elementor-button-submit:active {
    transform: translateY(-1px) !important;
}

.elementor-element-21ac7954 .elementor-button.elementor-button-submit:disabled {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
    transform: none !important;
}

.elementor-element-21ac7954 .elementor-button-text {
    color: #FFFFFF !important;
    font-family: 'Mulish', sans-serif !important;
    font-size: 1.35rem !important;
    font-weight: 700 !important;
}

.elementor-element-21ac7954 .elementor-button-icon,
.elementor-element-21ac7954 .elementor-button .elementor-button-icon {
    background-color: #FFFFFF !important;
    border-radius: 50% !important;
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ff5e22' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3Cpolyline points='12 5 19 12 12 19'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 20px !important;
    transition: transform var(--duration-normal) var(--cubic-default) !important;
}

.elementor-element-21ac7954 .elementor-button.elementor-button-submit:hover .elementor-button-icon {
    transform: translateX(5px) !important;
}

/* =========================================
   MENSAJES DE ÉXITO/ERROR
   ========================================= */
.elementor-element-21ac7954 .elementor-message {
    padding: 16px 20px !important;
    border-radius: 12px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    margin-top: 15px !important;
    font-family: 'Mulish', sans-serif !important;
}

.elementor-element-21ac7954 .elementor-message.elementor-message-success {
    background: rgba(22, 163, 74, 0.15) !important;
    background-color: rgba(22, 163, 74, 0.15) !important;
    color: #86efac !important;
    border: 1px solid rgba(22, 163, 74, 0.3) !important;
}

.elementor-element-21ac7954 .elementor-message.elementor-message-error {
    background: rgba(239, 68, 68, 0.15) !important;
    background-color: rgba(239, 68, 68, 0.15) !important;
    color: #fca5a5 !important;
    border: 1px solid rgba(239, 68, 68, 0.3) !important;
}

/* =========================================
   VALIDACIÓN Y ERRORES
   ========================================= */
.elementor-element-21ac7954 .elementor-field.elementor-field-textual.elementor-invalid {
    border-color: #f87171 !important;
}

.elementor-element-21ac7954 .elementor-error {
    color: #f87171 !important;
    font-size: 12px !important;
    margin-top: 5px !important;
}

/* =========================================
   LAYOUT — Campos en columna (stacked)
   Prefijo + Teléfono en row
   ========================================= */

/* El wrapper de campos usa flex-wrap; forzamos todos a 100% */
.elementor-element-21ac7954 .elementor-form-fields-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: var(--space-4, 12px) !important;
}

/* Todos los field-groups a 100% por defecto */
.elementor-element-21ac7954 .elementor-field-group {
    width: 100% !important;
    flex-basis: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
}

/* Override Elementor col classes — todo a 100% */
.elementor-element-21ac7954 .elementor-col-50,
.elementor-element-21ac7954 .elementor-col-100,
.elementor-element-21ac7954 .elementor-col-33,
.elementor-element-21ac7954 .elementor-col-66 {
    width: 100% !important;
    flex-basis: 100% !important;
    max-width: 100% !important;
}

/* EXCEPCIÓN: Prefijo (col-33) + Teléfono (col-66) en row */
.elementor-element-21ac7954 .elementor-field-group-dialling_code {
    width: 35% !important;
    flex-basis: 35% !important;
    max-width: 35% !important;
    flex-shrink: 0 !important;
}

.elementor-element-21ac7954 .elementor-field-group-phone {
    width: calc(65% - var(--space-4, 12px)) !important;
    flex-basis: calc(65% - var(--space-4, 12px)) !important;
    max-width: calc(65% - var(--space-4, 12px)) !important;
    flex-grow: 1 !important;
}

/* Ocultar el caret SVG nativo de Elementor (ya usamos background-image) */
.elementor-element-21ac7954 .select-caret-down-wrapper {
    display: none !important;
}

/* =========================================
   RESPONSIVE — Tablet / Stack (< 1024px)
   ========================================= */
@media (max-width: 1023px) {
    /* Labels */
    .elementor-element-21ac7954 .elementor-field-label,
    .elementor-element-21ac7954 label.elementor-field-label,
    .elementor-element-21ac7954 .elementor-field-group > label {
        font-size: 1rem !important;
        margin-bottom: 0.5rem !important;
    }

    /* Inputs, selects, textareas */
    .elementor-element-21ac7954 .elementor-field.elementor-field-textual,
    .elementor-element-21ac7954 input.elementor-field,
    .elementor-element-21ac7954 select.elementor-field,
    .elementor-element-21ac7954 textarea.elementor-field {
        font-size: 1rem !important;
        padding: 1rem 1.125rem !important;
        border-radius: 0.75rem !important;
    }

    .elementor-element-21ac7954 select.elementor-field {
        padding-right: 3rem !important;
        background-position: right 1rem center !important;
    }

    /* Submit button */
    .elementor-element-21ac7954 .elementor-button.elementor-button-submit {
        padding: 1.125rem 2rem !important;
    }

    .elementor-element-21ac7954 .elementor-button.elementor-button-submit,
    .elementor-element-21ac7954 .elementor-button-text {
        font-size: 1.25rem !important;
    }

    /* Checkbox acceptance text */
    .elementor-element-21ac7954 .elementor-field-option label,
    .elementor-element-21ac7954 .elementor-field-subgroup label,
    .elementor-element-21ac7954 .elementor-acceptance-field-description,
    .elementor-element-21ac7954 .elementor-field-type-acceptance label span {
        font-size: 0.875rem !important;
        line-height: 1.6 !important;
    }

    .elementor-element-21ac7954 .elementor-field-type-acceptance {
        padding: 1.125rem !important;
    }

    /* Error/success messages */
    .elementor-element-21ac7954 .elementor-message {
        font-size: 1rem !important;
        padding: 1rem 1.25rem !important;
    }

    .elementor-element-21ac7954 .elementor-error {
        font-size: 0.875rem !important;
    }
}

/* --- Mobile portrait (≤ 479px) --- */
@media (max-width: 479px) {
    .elementor-element-21ac7954 .elementor-field-label {
        font-size: 0.9375rem !important;
    }

    .elementor-element-21ac7954 .elementor-field.elementor-field-textual,
    .elementor-element-21ac7954 input.elementor-field,
    .elementor-element-21ac7954 select.elementor-field,
    .elementor-element-21ac7954 textarea.elementor-field {
        font-size: 1rem !important;
        padding: 0.875rem 1rem !important;
    }

    .elementor-element-21ac7954 .elementor-button.elementor-button-submit {
        padding: 1rem 1.5rem !important;
    }

    .elementor-element-21ac7954 .elementor-button.elementor-button-submit,
    .elementor-element-21ac7954 .elementor-button-text {
        font-size: 1.125rem !important;
    }

    /* Prefijo + teléfono en columna en mobile pequeño */
    .elementor-element-21ac7954 .elementor-field-group-dialling_code,
    .elementor-element-21ac7954 .elementor-field-group-phone {
        width: 100% !important;
        flex-basis: 100% !important;
        max-width: 100% !important;
    }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-453edde */.elementor-15 .elementor-element.elementor-element-453edde {
    padding: 10em 0px !important;
    justify-content: center !important;
    display: flex!important;
    align-items: center!important;
}/* End custom CSS */