.elementor-40 .elementor-element.elementor-element-cc98e81{--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;}.elementor-40 .elementor-element.elementor-element-3cccf3c{--display:flex;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-40 .elementor-element.elementor-element-6b7c2d1{text-align:center;}.elementor-40 .elementor-element.elementor-element-6b7c2d1 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-weight:600;}.elementor-40 .elementor-element.elementor-element-34a47ab{--display:grid;--min-height:0vh;--e-con-grid-template-columns:2fr 3fr;--e-con-grid-template-rows:repeat(1, 1fr);--gap:0px 0px;--row-gap:0px;--column-gap:0px;--grid-auto-flow:row;--justify-items:center;--align-items:center;}.elementor-40 .elementor-element.elementor-element-8f48ece{--display:flex;--min-height:0px;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-40 .elementor-element.elementor-element-8f48ece.e-con{--align-self:stretch;--flex-grow:0;--flex-shrink:0;}.elementor-40 .elementor-element.elementor-element-e1ce616{--display:flex;}.elementor-40 .elementor-element.elementor-element-98a7ffc{--display:flex;--min-height:0px;}.elementor-widget-form .elementor-field-group > label, .elementor-widget-form .elementor-field-subgroup label{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group > label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-field-type-html{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-field-group .elementor-field{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group .elementor-field, .elementor-widget-form .elementor-field-subgroup label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-form .e-form__buttons__wrapper__button-next{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-button[type="submit"]{background-color:var( --e-global-color-accent );}.elementor-widget-form .e-form__buttons__wrapper__button-previous{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-message{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .e-form__indicators__indicator, .elementor-widget-form .e-form__indicators__indicator__label{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-form{--e-form-steps-indicator-inactive-primary-color:var( --e-global-color-text );--e-form-steps-indicator-active-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-completed-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-background-color:var( --e-global-color-text );--e-form-steps-indicator-progress-meter-color:var( --e-global-color-text );}.elementor-widget-form .e-form__indicators__indicator__progress__meter{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-group{padding-right:calc( 0px/2 );padding-left:calc( 0px/2 );margin-bottom:0px;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-form-fields-wrapper{margin-left:calc( -0px/2 );margin-right:calc( -0px/2 );margin-bottom:-0px;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-group.recaptcha_v3-bottomleft, .elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-labels-inline .elementor-field-group > label{padding-left:7px;}body:not(.rtl) .elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-labels-inline .elementor-field-group > label{padding-right:7px;}body .elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-labels-above .elementor-field-group > label{padding-bottom:7px;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-group > label, .elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-subgroup label{color:#6894BD;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-type-html{padding-bottom:0px;color:#EBEBEB;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-group .elementor-field{color:#006B81;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-group .elementor-field, .elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-subgroup label{font-family:"Roboto", Sans-serif;font-weight:400;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:#ffffff;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-field-group .elementor-select-wrapper select{background-color:#ffffff;}.elementor-40 .elementor-element.elementor-element-40c1d51 .e-form__buttons__wrapper__button-next{color:#ffffff;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-button[type="submit"]{color:#ffffff;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-40 .elementor-element.elementor-element-40c1d51 .e-form__buttons__wrapper__button-previous{color:#ffffff;}.elementor-40 .elementor-element.elementor-element-40c1d51 .e-form__buttons__wrapper__button-next:hover{color:#ffffff;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-button[type="submit"]:hover{color:#ffffff;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-button[type="submit"]:hover svg *{fill:#ffffff;}.elementor-40 .elementor-element.elementor-element-40c1d51 .e-form__buttons__wrapper__button-previous:hover{color:#ffffff;}.elementor-40 .elementor-element.elementor-element-40c1d51 .elementor-message.elementor-message-success{color:#00C2B1;}.elementor-40 .elementor-element.elementor-element-40c1d51{--e-form-steps-indicators-spacing:20px;--e-form-steps-indicator-progress-height:20px;--e-form-steps-indicator-progress-border-radius:0px;}.elementor-40 .elementor-element.elementor-element-7cd2543{--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;--margin-top:20px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-40 .elementor-element.elementor-element-cb59c28 .elementor-button{background-color:#07A3AA;font-family:"Roboto", Sans-serif;font-size:24px;font-weight:500;}.elementor-40 .elementor-element.elementor-element-cb59c28{width:var( --container-widget-width, 100% );max-width:100%;margin:0% 5% calc(var(--kit-widget-spacing, 0px) + 0%) 0%;--container-widget-width:100%;--container-widget-flex-grow:0;}.elementor-40 .elementor-element.elementor-element-cb59c28.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-40 .elementor-element.elementor-element-c3b8263{--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;}.elementor-40 .elementor-element.elementor-element-12cda49 iframe{height:705px;}@media(min-width:768px){.elementor-40 .elementor-element.elementor-element-34a47ab{--width:80%;}.elementor-40 .elementor-element.elementor-element-8f48ece{--width:100px;}.elementor-40 .elementor-element.elementor-element-98a7ffc{--content-width:1600px;}}@media(max-width:1024px) and (min-width:768px){.elementor-40 .elementor-element.elementor-element-34a47ab{--width:1600px;}}@media(max-width:1400px){.elementor-40 .elementor-element.elementor-element-34a47ab{--grid-auto-flow:row;}}@media(max-width:1024px){.elementor-40 .elementor-element.elementor-element-34a47ab{--grid-auto-flow:row;}.elementor-40 .elementor-element.elementor-element-cb59c28{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;--container-widget-width:226px;--container-widget-flex-grow:0;width:var( --container-widget-width, 226px );max-width:226px;}.elementor-40 .elementor-element.elementor-element-cb59c28.elementor-element{--align-self:center;}}@media(max-width:767px){.elementor-40 .elementor-element.elementor-element-34a47ab{--e-con-grid-template-columns:1fr;--grid-auto-flow:row;}}/* Start custom CSS for container, class: .elementor-element-8f48ece */.elementor-40 .elementor-element.elementor-element-8f48ece {
    width: 100%;
}/* End custom CSS */
/* Start custom CSS for form, class: .elementor-element-40c1d51 *//* ---------------------------------------------------- */
    /* GLOBAL / VARIABLES DE COLOR (AJUSTAR SEGÚN TU MARCA)*/
    /* ---------------------------------------------------- */
    :root {
        --logo-teal: #32A5B5; /* Un verde azulado brillante */
        --logo-deep-blue: #2A3B49; /* Un azul oscuro profundo */
        --gray-800: #1f2937; /* Casi negro para títulos */
        --gray-700: #374151; /* Gris oscuro para etiquetas */
        --gray-500: #6b7280; /* Gris claro para iconos pequeños */
        --gray-300: #d1d5db; /* Borde de inputs */
        --slate-200: #e2e8f0; /* Borde de contenedores */

        /* Gradiente para botones y algunos fondos de icono */
        --button-gradient-start: #32A5B5; /* Similar a --logo-teal */
        --button-gradient-end: #2A3B49; /* Similar a --logo-deep-blue */
    }

    /* ---------------------------------------------------- */
    /* ESTILOS PARA LA SECCIÓN DEL FORMULARIO DE PRESUPUESTO*/
    /* ---------------------------------------------------- */

    /* Contenedor principal del formulario */
    /* Aplica esta clase al widget de formulario de Elementor directamente,
       o al contenedor/columna que lo envuelve si quieres que sea la tarjeta. */
    .elementor-widget-form .elementor-form { /* Apunta al formulario dentro del widget */
        background-color: #ffffff;
        border-radius: 16px; /* rounded-2xl */
        padding: 48px; /* p-12 - AUMENTADO para más altura */
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-xl */
        border: 1px solid var(--slate-200); /* border border-slate-200 */
        transition: box-shadow 0.3s ease-in-out; /* transition-shadow duration-300 */
        max-width: 600px; /* Ejemplo de ancho máximo, puedes ajustar esto en Elementor si usas contenedores */
        margin: 0 auto; /* Centrar en la página, también puedes ajustar en Elementor */
    }

    /* Efecto hover en el contenedor del formulario */
    .elementor-widget-form .elementor-form:hover {
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05); /* hover:shadow-2xl */
    }

    /* Título del formulario */
    /* Aplica esta clase directamente al título del widget de formulario de Elementor
       (por ejemplo, usando las opciones de estilo de Elementor para el título, o si Elementor permite añadir una clase personalizada al título).
       Si lo pones como un encabezado separado en Elementor, puedes darle la clase 'form-title'. */
    .elementor-widget-form .elementor-heading-title, /* Si usas un widget de encabezado separado */
    .form-title { /* Clase genérica para un título, si la usas en otro lugar */
        font-size: 1.5rem; /* text-2xl (24px) */
        font-weight: 600; /* font-semibold */
        margin-bottom: 24px; /* mb-6 */
        color: var(--logo-deep-blue); /* text-[var(--logo-deep-blue)] */
        text-align: center; /* Centrar el título */
    }

    /* Contenedor de los campos del formulario dentro del widget de Elementor */
    .elementor-form-fields-wrapper {
        display: flex;
        flex-wrap: wrap; /* Permite que los campos se envuelvan en nuevas líneas si no hay espacio */
        gap: 24px 16px; /* Espacio vertical de 24px y horizontal de 16px */
    }

    /* Contenedores individuales de campos de Elementor (para la disposición en 2 columnas) */
    .elementor-field-group {
        flex-basis: 100%; /* Por defecto, ocupan todo el ancho */
    }

    /* Media query para hacer las columnas responsivas (para pantallas >= 768px) */
    @media (min-width: 768px) { /* md breakpoint */
        .elementor-field-group.elementor-col-50 { /* Apunta a los campos configurados al 50% de ancho en Elementor */
            flex-basis: calc(50% - 8px); /* 50% menos la mitad del gap horizontal */
            max-width: calc(50% - 8px);
        }
    }

    /* Etiquetas de los campos de Elementor */
    .elementor-field-group .elementor-field-label {
        display: block;
        font-size: 0.875rem; /* text-sm (14px) */
        font-weight: 500; /* font-medium */
        color: var(--gray-700); /* text-gray-700 */
        margin-bottom: 4px; /* mb-1 */
    }

    /* Estilos para input, textarea y select del formulario de Elementor */
    .elementor-field-group .elementor-field-text, /* Para input[type="text"], email, tel, etc. */
    .elementor-field-group .elementor-field-textarea, /* Para textarea */
    .elementor-field-group .elementor-field-select { /* Para select */
        width: 100%;
        padding: 16px 20px; /* px-5 py-4 - AUMENTADO para más altura */
        border: 1px solid var(--gray-300); /* border border-gray-300 */
        border-radius: 8px; /* rounded-lg */
        transition: box-shadow 0.3s, border-color 0.3s; /* transition-shadow */
        -webkit-appearance: none; /* Para remover estilos por defecto en select */
        -moz-appearance: none;
        appearance: none;
        background-color: #ffffff; /* Asegura el fondo blanco del select */
        font-size: 1rem; /* Asegura que el texto dentro del input sea legible */
        color: var(--gray-800); /* Color de texto dentro del input */
    }

    /* Estilos de focus para campos de Elementor */
    .elementor-field-group .elementor-field-text:focus,
    .elementor-field-group .elementor-field-textarea:focus,
    .elementor-field-group .elementor-field-select:focus {
        outline: none; /* Elimina el borde de enfoque por defecto */
        border-color: transparent; /* Hace el borde transparente */
        box-shadow: 0 0 0 2px var(--logo-teal); /* focus:ring-2 focus:ring-[var(--logo-teal)] */
    }

    /* Estilos de placeholder para campos de Elementor */
    .elementor-field-group .elementor-field-text::placeholder,
    .elementor-field-group .elementor-field-textarea::placeholder {
        color: var(--gray-500); /* placeholder color */
        opacity: 1; /* Asegura que no sea transparente en Firefox */
    }

    /* Estilos del botón de enviar del formulario de Elementor */
    .elementor-field-group .elementor-button { /* Apunta al botón dentro de un campo de grupo (último campo) */
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-weight: 500; /* font-medium */
        height: 56px; /* h-14 - AUMENTADO */
        border-radius: 6px; /* rounded-md */
        padding-left: 32px; /* px-8 */
        padding-right: 32px; /* px-8 */
        /* Padding vertical ajustado por la altura definida */
        width: 100%; /* w-full */
        font-size: 1.125rem; /* text-lg (18px) - AUMENTADO el tamaño de la fuente para que se vea mejor */
        background: linear-gradient(to right, var(--button-gradient-start), var(--button-gradient-end)); /* bg-primary (gradiente) */
        color: white; /* Color de texto del botón */
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); /* shadow-lg */
        transition: all 0.3s ease-in-out; /* transition-all duration-300 */
        border: none; /* Quitar borde por defecto del botón */
        cursor: pointer; /* Indica que es clickeable */
    }

    .elementor-field-group .elementor-button:hover {
        filter: brightness(1.1); /* Ligero brillo para el hover */
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05); /* hover:shadow-xl */
    }

    /* Icono dentro del botón de Elementor */
    .elementor-field-group .elementor-button .elementor-button-icon {
        width: 24px; /* w-6 - AUMENTADO */
        height: 24px; /* h-6 - AUMENTADO */
        margin-right: 12px; /* mr-3 - AUMENTADO */
        stroke: currentColor; /* Usa el color del texto del botón */
        fill: none;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
    }/* End custom CSS */