.elementor-7550 .elementor-element.elementor-element-2b72255c{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-7bd308af{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-23806527{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-1675456d{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-258b0a9c{--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-7550 .elementor-element.elementor-element-59113672{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;}.elementor-7550 .elementor-element.elementor-element-43bbba33{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--flex-wrap:wrap;}.elementor-7550 .elementor-element.elementor-element-711ca68b .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-7550 .elementor-element.elementor-element-711ca68b .elementor-button .elementor-button-content-wrapper{gap:10px;}.elementor-7550 .elementor-element.elementor-element-711ca68b .elementor-button{font-family:"Manrope", Sans-serif;font-size:16px;font-weight:800;fill:#FFFFFF;color:#FFFFFF;border-radius:999px 999px 999px 999px;padding:16px 36px 16px 36px;}.elementor-7550 .elementor-element.elementor-element-6f4bac26{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-668f0cc3{--display:grid;--e-con-grid-template-columns:1.05fr .95fr;--e-con-grid-template-rows:auto;--gap:48px 48px;--row-gap:48px;--column-gap:48px;--grid-auto-flow:row;--align-items:stretch;}.elementor-7550 .elementor-element.elementor-element-536150a2{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-66a3c6c8{--e-image-carousel-slides-to-show:1;}.elementor-7550 .elementor-element.elementor-element-66a3c6c8 .elementor-swiper-button.elementor-swiper-button-prev, .elementor-7550 .elementor-element.elementor-element-66a3c6c8 .elementor-swiper-button.elementor-swiper-button-next{font-size:16px;color:#FFFFFF;}.elementor-7550 .elementor-element.elementor-element-66a3c6c8 .elementor-swiper-button.elementor-swiper-button-prev svg, .elementor-7550 .elementor-element.elementor-element-66a3c6c8 .elementor-swiper-button.elementor-swiper-button-next svg{fill:#FFFFFF;}.elementor-7550 .elementor-element.elementor-element-66a3c6c8 .swiper-pagination-bullet{width:8px;height:8px;background:#FFFFFF;}.elementor-7550 .elementor-element.elementor-element-701af731{--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;--justify-content:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-6e3365c9{--display:grid;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:auto;--gap:14px 14px;--row-gap:14px;--column-gap:14px;--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-4c365e15{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-6de4090e{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-214af584{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-44aba3bc{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-2abb811b{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-69280723{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-17221176{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-277a7f2c{--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-7550 .elementor-element.elementor-element-5cb5a9c5{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-9b6f1ad{--display:grid;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:auto;--gap:20px 20px;--row-gap:20px;--column-gap:20px;--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-7163c681{--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-7550 .elementor-element.elementor-element-393a594a{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-4dd5efca{--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-7550 .elementor-element.elementor-element-18ead423{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-3bf9e32{--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-7550 .elementor-element.elementor-element-79d55d96{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-699e2763{--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-7550 .elementor-element.elementor-element-3734ecce{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-384bf8f5{--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-7550 .elementor-element.elementor-element-7ed46aef{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-2b1c2f0f{--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-7550 .elementor-element.elementor-element-77489389{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-7b411eaf{--display:grid;--e-con-grid-template-columns:auto 1fr auto;--e-con-grid-template-rows:auto;--gap:32px 32px;--row-gap:32px;--column-gap:32px;--grid-auto-flow:row;--align-items:center;}.elementor-7550 .elementor-element.elementor-element-393850b4{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-2d209df1{--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-7550 .elementor-element.elementor-element-5069a826{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--flex-wrap:wrap;}.elementor-7550 .elementor-element.elementor-element-3ae9b089{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-7550 .elementor-element.elementor-element-52d10414{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-7550 .elementor-element.elementor-element-7a2f551a{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-7550 .elementor-element.elementor-element-2b7a5c4f{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-7550 .elementor-element.elementor-element-6b3325c2{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-6b3325c2:not(.elementor-motion-effects-element-type-background), .elementor-7550 .elementor-element.elementor-element-6b3325c2 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-ec3810e );}.elementor-7550 .elementor-element.elementor-element-7710db78{--display:flex;}.elementor-7550 .elementor-element.elementor-element-7528c9fa{--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:14px 14px;--row-gap:14px;--column-gap:14px;}.elementor-7550 .elementor-element.elementor-element-53be27d3{--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:12px 12px;--row-gap:12px;--column-gap:12px;}.elementor-7550 .elementor-element.elementor-element-55ff757c{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--flex-wrap:nowrap;}.elementor-7550 .elementor-element.elementor-element-27a868a{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--flex-wrap:nowrap;}.elementor-7550 .elementor-element.elementor-element-66f42784{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--flex-wrap:nowrap;}.elementor-7550 .elementor-element.elementor-element-4ff58379{--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-7550 .elementor-element.elementor-element-1f5e6b73{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;}.elementor-7550 .elementor-element.elementor-element-70e60212{--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-7550 .elementor-element.elementor-element-6fa4b0e7{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-field-group{padding-right:calc( 10px/2 );padding-left:calc( 10px/2 );margin-bottom:10px;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-form-fields-wrapper{margin-left:calc( -10px/2 );margin-right:calc( -10px/2 );margin-bottom:-10px;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-field-group.recaptcha_v3-bottomleft, .elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-labels-inline .elementor-field-group > label{padding-left:0px;}body:not(.rtl) .elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-labels-inline .elementor-field-group > label{padding-right:0px;}body .elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-labels-above .elementor-field-group > label{padding-bottom:0px;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-field-type-html{padding-bottom:0px;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:#ffffff;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-field-group .elementor-select-wrapper select{background-color:#ffffff;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .e-form__buttons__wrapper__button-next{color:#ffffff;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-button[type="submit"]{color:#ffffff;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .e-form__buttons__wrapper__button-previous{color:#ffffff;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .e-form__buttons__wrapper__button-next:hover{color:#ffffff;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-button[type="submit"]:hover{color:#ffffff;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .elementor-button[type="submit"]:hover svg *{fill:#ffffff;}.elementor-7550 .elementor-element.elementor-element-6329fb9a .e-form__buttons__wrapper__button-previous:hover{color:#ffffff;}.elementor-7550 .elementor-element.elementor-element-6329fb9a{--e-form-steps-indicators-spacing:20px;--e-form-steps-indicator-inactive-primary-color:#E2E8F0;--e-form-steps-indicator-inactive-secondary-color:#94A3B8;--e-form-steps-indicator-active-primary-color:#D80F85;--e-form-steps-indicator-active-secondary-color:#FFFFFF;--e-form-steps-indicator-completed-primary-color:#D80F85;--e-form-steps-indicator-completed-secondary-color:#FFFFFF;--e-form-steps-divider-width:0px;--e-form-steps-divider-gap:0px;}.elementor-7550 .elementor-element.elementor-element-714ca77b{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-7550 .elementor-element.elementor-element-53d08c0a{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-4d51a27d{--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-7550 .elementor-element.elementor-element-2aee9a7c{--display:grid;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:auto;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-343b77d{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-544fe240{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-127060c6{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-7a6b6617{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-1ce255e4{--display:flex;}.elementor-7550 .elementor-element.elementor-element-34e692d9{--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-7550 .elementor-element.elementor-element-4e19d6fa{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--flex-wrap:wrap;}.elementor-7550 .elementor-element.elementor-element-7be4fccd{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:6px 6px;--row-gap:6px;--column-gap:6px;}.elementor-7550 .elementor-element.elementor-element-4545993e .elementor-icon-wrapper{text-align:center;}.elementor-7550 .elementor-element.elementor-element-4545993e.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-ec3810e );}.elementor-7550 .elementor-element.elementor-element-4545993e.elementor-view-framed .elementor-icon, .elementor-7550 .elementor-element.elementor-element-4545993e.elementor-view-default .elementor-icon{color:var( --e-global-color-ec3810e );border-color:var( --e-global-color-ec3810e );}.elementor-7550 .elementor-element.elementor-element-4545993e.elementor-view-framed .elementor-icon, .elementor-7550 .elementor-element.elementor-element-4545993e.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-ec3810e );}.elementor-7550 .elementor-element.elementor-element-4545993e .elementor-icon{font-size:6px;}.elementor-7550 .elementor-element.elementor-element-4545993e .elementor-icon svg{height:6px;}.elementor-7550 .elementor-element.elementor-element-79f98d82{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:6px 6px;--row-gap:6px;--column-gap:6px;}.elementor-7550 .elementor-element.elementor-element-772f0af1 .elementor-icon-wrapper{text-align:center;}.elementor-7550 .elementor-element.elementor-element-772f0af1.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-ec3810e );}.elementor-7550 .elementor-element.elementor-element-772f0af1.elementor-view-framed .elementor-icon, .elementor-7550 .elementor-element.elementor-element-772f0af1.elementor-view-default .elementor-icon{color:var( --e-global-color-ec3810e );border-color:var( --e-global-color-ec3810e );}.elementor-7550 .elementor-element.elementor-element-772f0af1.elementor-view-framed .elementor-icon, .elementor-7550 .elementor-element.elementor-element-772f0af1.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-ec3810e );}.elementor-7550 .elementor-element.elementor-element-772f0af1 .elementor-icon{font-size:6px;}.elementor-7550 .elementor-element.elementor-element-772f0af1 .elementor-icon svg{height:6px;}.elementor-7550 .elementor-element.elementor-element-519e0d02{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:6px 6px;--row-gap:6px;--column-gap:6px;}.elementor-7550 .elementor-element.elementor-element-3cf21457 .elementor-icon-wrapper{text-align:center;}.elementor-7550 .elementor-element.elementor-element-3cf21457.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-ec3810e );}.elementor-7550 .elementor-element.elementor-element-3cf21457.elementor-view-framed .elementor-icon, .elementor-7550 .elementor-element.elementor-element-3cf21457.elementor-view-default .elementor-icon{color:var( --e-global-color-ec3810e );border-color:var( --e-global-color-ec3810e );}.elementor-7550 .elementor-element.elementor-element-3cf21457.elementor-view-framed .elementor-icon, .elementor-7550 .elementor-element.elementor-element-3cf21457.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-ec3810e );}.elementor-7550 .elementor-element.elementor-element-3cf21457 .elementor-icon{font-size:6px;}.elementor-7550 .elementor-element.elementor-element-3cf21457 .elementor-icon svg{height:6px;}.elementor-7550 .elementor-element.elementor-element-77e89bd5{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:10px 10px;--row-gap:10px;--column-gap:10px;}.elementor-7550 .elementor-element.elementor-element-1d064998 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-7550 .elementor-element.elementor-element-1d064998 .elementor-button .elementor-button-content-wrapper{gap:10px;}.elementor-7550 .elementor-element.elementor-element-1d064998 .elementor-button{font-family:"Manrope", Sans-serif;font-size:16px;font-weight:800;fill:#FFFFFF;color:#FFFFFF;border-radius:999px 999px 999px 999px;padding:18px 36px 18px 36px;}.elementor-7550 .elementor-element.elementor-element-443de9c7{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:14px 14px;--row-gap:14px;--column-gap:14px;}.elementor-7550 .elementor-element.elementor-element-fd035bf{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:28px 28px;--row-gap:28px;--column-gap:28px;}.elementor-7550 .elementor-element.elementor-element-29a0624c{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7550 .elementor-element.elementor-element-221bca1b{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:12px 12px;--row-gap:12px;--column-gap:12px;}.elementor-7550 .elementor-element.elementor-element-33d2cad{--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-7550 .elementor-element.elementor-element-2ef2b411 .elementor-button{font-family:"Manrope", Sans-serif;font-size:14px;font-weight:800;fill:#FFFFFF;color:#FFFFFF;border-radius:999px 999px 999px 999px;padding:12px 20px 12px 20px;}@media(max-width:1024px){.elementor-7550 .elementor-element.elementor-element-668f0cc3{--e-con-grid-template-columns:1fr;--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-6e3365c9{--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-9b6f1ad{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-7b411eaf{--e-con-grid-template-columns:1fr;--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-2aee9a7c{--grid-auto-flow:row;}}@media(max-width:767px){.elementor-7550 .elementor-element.elementor-element-668f0cc3{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-6e3365c9{--e-con-grid-template-columns:1fr;--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-9b6f1ad{--e-con-grid-template-columns:1fr;--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-7b411eaf{--e-con-grid-template-columns:1fr;--grid-auto-flow:row;}.elementor-7550 .elementor-element.elementor-element-6b3325c2{--min-height:0px;}.elementor-7550 .elementor-element.elementor-element-2aee9a7c{--e-con-grid-template-columns:1fr;--grid-auto-flow:row;}}/* Start custom CSS for container, class: .elementor-element-2b72255c */@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@600;700;800&family=Playfair+Display:ital,wght@0,600;0,700;0,800;1,600&display=swap');

:root{
    /* ===== Tokens de marca extraídos de ileon.cl ===== */
    --navy-900:#00102E;
    --navy-700:#233452;
    --magenta-600:#D80F85;
    --magenta-700:#B00C6E;
    --gray-900:#212121;
    --gray-700:#6D7685;
    --gray-500:#8A93A3;
    --gray-200:#E2E8F0;
    --gray-100:#F4F5F7;
    --white:#FFFFFF;
    --radius-lg:16px;
    --radius-md:10px;
    --radius-sm:8px;
    --shadow-card:0 8px 24px rgba(0,16,46,.10);
    --shadow-float:0 20px 48px rgba(0,16,46,.14), 0 4px 12px rgba(0,0,0,.06);
    --space-1:8px; --space-2:16px; --space-3:24px; --space-4:32px; --space-5:48px; --space-6:64px;
    --font-head:'Manrope', sans-serif;
    --font-body:'Inter', sans-serif;
    --maxw:1200px;
  }
  :root:root *{box-sizing:border-box;}
  html{
    scroll-behavior:smooth;
  }
  html, :root:root body{margin:0;padding:0;}
  :root:root #cotizador{
    scroll-margin-top:0;
  }
  :root:root body{
    font-family:var(--font-body);
    color:var(--gray-900);
    background:var(--white);
    -webkit-font-smoothing:antialiased;
    line-height:1.5;
  }
  :root:root h1, :root:root h2, :root:root h3, :root:root h4{font-family:var(--font-head); margin:0; color:var(--navy-900); line-height:1.15;}
  :root:root p{margin:0 0 var(--space-2);}
  :root:root img{max-width:100%; display:block;}
  :root:root .wrap{max-width:var(--maxw); margin:0 auto; padding:0 var(--space-3);}
  :root:root .eyebrow{
    text-transform:uppercase; letter-spacing:.08em; font-size:12px; font-weight:700;
    color:var(--magenta-600); margin-bottom:var(--space-1);
  }

  :root:root /* Foco visible accesible */
  a:focus-visible, :root:root button:focus-visible, :root:root select:focus-visible, :root:root input:focus-visible{
    outline:3px solid var(--magenta-600); outline-offset:2px; border-radius:4px;
  }

  :root:root /* ===== FILA 1 · BLOQUE 1 — HEADER BANNER ===== */
  .header-banner{
    position:relative;
    width:100%;
    background:#1C1D1B;
    overflow:hidden;
  }
  :root:root .header-banner-picture{
    display:block;
    width:100%;
    line-height:0;
  }
  :root:root .header-banner-picture img{
    width:100%;
    height:auto;
    max-height:85vh;
    object-fit:cover;
    display:block;
  }
  @media (max-width:767px){
    :root:root .header-banner-picture img{
      max-height:none;
      object-fit:contain;
    }
  }

  :root:root .banner-overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    pointer-events:none;
    padding-left:max(32px, calc(100vw * 0.05));
  }
  :root:root .banner-overlay .wrap{
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
  }
  :root:root .banner-text-box{
    position:relative;
    width:100%;
    max-width:440px;
    padding:var(--space-3) 0;
    pointer-events:auto;
  }

  @media (min-width:1600px){
    :root:root .banner-overlay{padding-left:calc(100vw * 0.075);}
    :root:root .banner-text-box{max-width:490px;}
    :root:root .banner-title{font-size:46px;}
  }
  @media (min-width:1366px) and (max-width:1599px){
    :root:root .banner-overlay{padding-left:calc(100vw * 0.055);}
    :root:root .banner-text-box{max-width:440px;}
    :root:root .banner-title{font-size:40px;}
  }
  @media (min-width:1024px) and (max-width:1365px){
    :root:root .banner-overlay{padding-left:calc(100vw * 0.04);}
    :root:root .banner-text-box{max-width:400px;}
    :root:root .banner-title{font-size:36px;}
    :root:root .banner-subtitle{font-size:18px;}
  }
  :root:root .banner-content{
    position:relative;
    z-index:2;
  }
  :root:root .banner-title{
    font-family:'Playfair Display', Georgia, serif;
    font-weight:700;
    font-size:clamp(32px, 5.2vw, 56px);
    color:#FFFFFF;
    line-height:1.06;
    letter-spacing:0.02em;
    text-transform:uppercase;
    margin:0 0 var(--space-3);
    text-shadow:0 3px 18px rgba(0,0,0,0.55);
  }
  :root:root .banner-title span{
    display:block;
  }
  :root:root .banner-subtitle{
    font-family:var(--font-head);
    font-weight:800;
    font-size:clamp(17px, 2.4vw, 24px);
    color:#C27D56;
    line-height:1.2;
    text-transform:uppercase;
    letter-spacing:0.03em;
    margin:0 0 var(--space-3);
    text-shadow:0 2px 10px rgba(0,0,0,0.4);
  }
  :root:root .banner-location{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:#FFFFFF;
    font-family:var(--font-body);
    font-size:clamp(14px, 1.6vw, 17px);
    font-weight:500;
    white-space:nowrap;
    text-shadow:0 2px 8px rgba(0,0,0,0.6);
  }
  :root:root .banner-location svg{
    display:inline-block;
    vertical-align:middle;
    flex:0 0 20px;
    width:20px;
    height:20px;
    fill:#FFFFFF !important;
    color:#FFFFFF !important;
    filter:drop-shadow(0 2px 4px rgba(0,0,0,0.5));
  }
  :root:root .banner-cta-wrap{
    margin-top:var(--space-4);
    display:flex;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
  }
  :root:root .banner-cta{
    background:linear-gradient(135deg, var(--magenta-600) 0%, #E62A9B 100%);
    color:#fff;
    font-weight:800;
    font-family:var(--font-head);
    font-size:16px;
    padding:16px 36px;
    border-radius:999px;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:10px;
    border:none;
    cursor:pointer;
    box-shadow:0 12px 28px rgba(216,15,133,.5), 0 2px 8px rgba(0,0,0,.25);
    transition:all .25s cubic-bezier(.2,.8,.2,1);
  }
  :root:root .banner-cta:hover{
    background:linear-gradient(135deg, var(--magenta-700) 0%, var(--magenta-600) 100%);
    transform:translateY(-3px) scale(1.02);
    box-shadow:0 18px 36px rgba(216,15,133,.65), 0 4px 12px rgba(0,0,0,.3);
  }
  :root:root .banner-cta:active{
    transform:translateY(-1px) scale(0.99);
  }
  :root:root .banner-cta svg{
    width:18px;
    height:18px;
    fill:currentColor;
    transition:transform .2s ease;
  }
  :root:root .banner-cta:hover svg{
    transform:translateX(3px);
  }

  @media (max-width:767px){
    :root:root .banner-overlay{
      align-items:flex-start;
      padding-top:calc(100vw * 0.10);
      padding-left:var(--space-3);
      padding-right:var(--space-3);
      padding-bottom:0;
      background:none;
    }
    :root:root .banner-text-box{
      max-width:100%;
      padding:0;
    }
    :root:root .banner-title{
      font-size:25px;
      line-height:1.1;
      margin-bottom:8px;
    }
    :root:root .banner-subtitle{
      font-size:14px;
      margin-bottom:8px;
    }
    :root:root .banner-location{
      font-size:12.5px;
    }
    :root:root .banner-cta-wrap{
      margin-top:12px;
      width:auto;
    }
    :root:root .banner-cta{
      display:inline-flex;
      width:auto;
      padding:10px 22px;
      font-size:13px;
      gap:8px;
      border-radius:999px;
      box-shadow:0 6px 18px rgba(216,15,133,.5), 0 2px 6px rgba(0,0,0,.25);
    }
    :root:root .banner-cta svg{
      width:15px;
      height:15px;
    }
  }

  :root:root /* ===== FILAS GENERALES ===== */
  .row{padding:var(--space-6) 0;}
  :root:root .row.alt{background:var(--gray-100);}
  :root:root .cols{display:grid; grid-template-columns:1.05fr .95fr; gap:var(--space-5); align-items:stretch;}

  :root:root /* FILA 2 · BLOQUE 2 — Carrusel (izquierda) */
  .carrusel{position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); background:#000;}
  :root:root .carrusel-track{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none;}
  :root:root .carrusel-track::-webkit-scrollbar{display:none;}
  :root:root .carrusel-track img{scroll-snap-align:start; width:100%; flex:0 0 100%; height:420px; object-fit:cover;}
  :root:root .carrusel-dots{position:absolute; bottom:16px; left:0; right:0; display:flex; justify-content:center; gap:8px;}
  :root:root .carrusel-dots span{width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.5);}
  :root:root .carrusel-dots span.active{background:#fff;}
  :root:root .carrusel-arrow{
    position:absolute; top:50%; transform:translateY(-50%); background:rgba(0,16,46,.55); color:#fff;
    border:none; width:36px; height:36px; border-radius:50%; cursor:pointer; font-size:16px;
  }
  :root:root .carrusel-arrow.prev{left:12px;} :root:root .carrusel-arrow.next{right:12px;}

  :root:root /* FILA 2 · BLOQUE 3 — Propuesta de valor (derecha) */
  .propuesta{display:flex; flex-direction:column; justify-content:center;}
  :root:root .propuesta h2{font-size:clamp(24px,3vw,32px);}
  :root:root .propuesta p.lead{font-size:16px; color:var(--gray-700); margin-top:var(--space-2);}
  
  :root:root .price-card{
    margin-top:var(--space-4);
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:14px;
  }
  :root:root .feature-pill{
    background:#FFFFFF;
    border:1px solid #E4E7ED;
    border-radius:var(--radius-md);
    padding:18px 14px;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    box-shadow:0 4px 16px rgba(0,16,46,.06);
    transition:all .25s ease;
    position:relative;
    overflow:hidden;
  }
  :root:root .feature-pill::before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:3px;
    background:linear-gradient(90deg, var(--navy-900), var(--magenta-600));
    opacity:0;
    transition:opacity .25s ease;
  }
  :root:root .feature-pill:hover{
    transform:translateY(-3px);
    box-shadow:0 8px 24px rgba(0,16,46,.12);
    border-color:#D0D5DD;
  }
  :root:root .feature-pill:hover::before{
    opacity:1;
  }
  :root:root .feature-icon-wrap{
    width:48px;
    height:48px;
    border-radius:12px;
    background:var(--gray-100);
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:10px;
    transition:background .25s ease;
  }
  :root:root .feature-pill:hover .feature-icon-wrap{
    background:#FDF2F8;
  }
  :root:root .feature-icon-wrap img{
    width:34px;
    height:34px;
    object-fit:contain;
    display:block;
  }
  :root:root .feature-pill strong{
    display:block;
    font-family:var(--font-head);
    color:var(--navy-900);
    font-size:19px;
    font-weight:800;
    line-height:1.15;
    margin-bottom:4px;
  }
  :root:root .feature-pill span{
    font-size:12px;
    color:var(--gray-700);
    font-weight:500;
    line-height:1.25;
  }

  :root:root /* FILA 3 · BLOQUE 4 — Beneficios */
  .beneficios-header{
    text-align:center;
    max-width:760px;
    margin:0 auto var(--space-5);
  }
  :root:root .beneficios-header h2{
    font-size:clamp(26px, 3.2vw, 36px);
    margin-bottom:var(--space-2);
  }
  :root:root .beneficios-header p{
    font-size:16px;
    color:var(--gray-700);
    margin:0;
  }
  :root:root .benefits-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:20px;
    margin-bottom:var(--space-5);
  }
  :root:root .benefit-card{
    background:#FFFFFF;
    border:1px solid #E4E7ED;
    border-radius:var(--radius-lg);
    padding:28px 24px;
    box-shadow:0 4px 20px rgba(0,16,46,0.05);
    transition:all .3s ease;
    display:flex;
    flex-direction:column;
    position:relative;
  }
  :root:root .benefit-card:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 28px rgba(0,16,46,0.1);
    border-color:#CBD5E1;
  }
  :root:root .benefit-icon{
    width:56px;
    height:56px;
    border-radius:14px;
    background:rgba(0,16,46,0.04);
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:18px;
    transition:all .25s ease;
  }
  :root:root .benefit-icon img{
    width:36px;
    height:36px;
    object-fit:contain;
    display:block;
    transition:transform .25s ease;
  }
  :root:root .benefit-card:hover .benefit-icon{
    background:#C55A24;
    box-shadow:0 6px 16px rgba(197,90,36,0.35);
  }
  :root:root .benefit-card:hover .benefit-icon img{
    transform:scale(1.08);
    filter:brightness(0) invert(1);
  }
  :root:root .benefit-card h3{
    font-size:19px;
    font-family:var(--font-head);
    color:var(--navy-900);
    margin-bottom:8px;
  }
  :root:root .benefit-card p{
    font-size:14px;
    color:var(--gray-700);
    line-height:1.55;
    margin:0;
  }

  :root:root /* Separador de perfiles */
  .perfiles-banner{
    background:#FFFFFF;
    border:1px solid #E2E8F0;
    border-radius:var(--radius-lg);
    padding:24px 36px;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:32px;
    box-shadow:0 12px 32px rgba(0,16,46,0.06);
    position:relative;
    border-left:4px solid var(--magenta-600);
  }
  :root:root .perfiles-logo-col{
    display:flex;
    align-items:center;
    padding-right:24px;
    border-right:1px solid #E2E8F0;
  }
  :root:root .perfiles-logo-col img{
    height:54px;
    width:auto;
    object-fit:contain;
    display:block;
  }
  :root:root .perfiles-title strong{
    display:block;
    font-family:var(--font-head);
    font-size:18px;
    color:var(--navy-900);
    margin-bottom:2px;
  }
  :root:root .perfiles-title span{
    font-size:13.5px;
    color:var(--gray-700);
  }
  :root:root .perfiles-chips{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
  }
  :root:root .perfil-chip{
    background:#F1F4F9;
    border:1px solid #E2E8F0;
    padding:8px 16px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
    color:var(--navy-900);
    display:inline-flex;
    align-items:center;
    gap:8px;
    transition:all .2s ease;
    white-space:nowrap;
  }
  :root:root .perfil-chip img{
    width:18px;
    height:18px;
    object-fit:contain;
    display:inline-block;
  }
  :root:root .perfil-chip:hover{
    background:#FFFFFF;
    border-color:#CBD5E1;
    transform:translateY(-2px);
    box-shadow:0 4px 12px rgba(0,16,46,0.08);
  }

  @media (max-width:992px){
    :root:root .perfiles-banner{
      grid-template-columns:1fr;
      gap:20px;
    }
    :root:root .perfiles-logo-col{
      border-right:none;
      padding-right:0;
      padding-bottom:16px;
      border-bottom:1px solid #E2E8F0;
    }
    :root:root .perfiles-chips{
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
      width:100%;
    }
    :root:root .perfil-chip{
      width:100%;
      justify-content:center;
      padding:11px 16px;
      box-sizing:border-box;
    }
  }

  :root:root /* ===== FILA 3 · BLOQUE 5 — COTIZADOR CUSTOM STEP-BY-STEP (V2 CON REDIRECCIÓN A ILEON.CL) ===== */
  .cotizador-section{
    min-height:100vh;
    min-height:100dvh;
    padding:var(--space-4) 0;
    background:#0D1117;
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    scroll-margin-top:0;
  }
  :root:root .cotizador-video-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:0.12;
    pointer-events:none;
    z-index:1;
  }
  :root:root .cotizador-grid-split{
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:var(--space-5);
    align-items:center;
    position:relative;
    z-index:2;
    width:100%;
  }
  :root:root .cotizador-info-col{
    color:#FFFFFF;
  }
  :root:root .cotizador-project-logo{
    height:88px;
    width:auto;
    object-fit:contain;
    margin-bottom:14px;
    display:block;
    filter:drop-shadow(0 2px 8px rgba(0,0,0,0.4));
  }
  :root:root .cotizador-info-col .eyebrow{
    color:#FF2A85;
    font-size:13px;
    font-weight:800;
    letter-spacing:.09em;
    margin-bottom:var(--space-1);
    text-shadow:0 0 12px rgba(216,15,133,0.4);
  }
  :root:root .cotizador-info-col h2{
    color:#FFFFFF;
    font-size:clamp(26px, 3.2vw, 40px);
    line-height:1.15;
    margin-bottom:var(--space-2);
  }
  :root:root .cotizador-info-col p.lead-cotiza{
    color:rgba(255,255,255,0.85);
    font-size:15px;
    line-height:1.55;
    margin-bottom:var(--space-3);
    max-width:520px;
  }
  :root:root .cotizador-perks{
    display:grid;
    gap:12px;
    margin-bottom:var(--space-3);
  }
  :root:root .cotizador-perk-item{
    display:flex;
    align-items:center;
    gap:12px;
    font-size:14px;
    color:rgba(255,255,255,0.9);
  }
  :root:root .cotizador-perk-item span.check{
    width:22px;
    height:22px;
    border-radius:50%;
    background:rgba(216,15,133,0.25);
    border:1px solid var(--magenta-600);
    color:#FFFFFF;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    font-weight:700;
    flex-shrink:0;
  }
  :root:root .cotizador-info-note{
    font-size:11.5px;
    color:rgba(255,255,255,0.5);
    line-height:1.45;
    max-width:480px;
  }

  :root:root /* ===== TARJETA FORMULARIO STEP BY STEP V2 (FONDO CLARO & ALTO CONTRASTE) ===== */
  .custom-form-card{
    background:#FFFFFF;
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-float);
    border:1px solid rgba(255,255,255,0.3);
    width:100%;
    max-width:560px;
    margin:0 auto;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }

  :root:root /* Header del formulario con nombre de proyecto y logos oficiales */
  .form-header-bar{
    background:#FAFAFC;
    padding:10px 18px;
    border-bottom:1px solid var(--gray-200);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }
  :root:root .form-header-title{
    display:flex;
    flex-direction:column;
    min-width:0;
    flex:1 1 auto;
  }
  :root:root .form-project-name{
    font-size:12px;
    font-weight:800;
    color:var(--navy-900);
    letter-spacing:0.01em;
    font-family:var(--font-head);
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  :root:root .form-project-sub{
    font-size:9.5px;
    color:var(--gray-500);
    font-weight:600;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  :root:root .form-header-logos{
    display:flex;
    align-items:center;
    gap:8px;
    flex-shrink:0;
  }
  :root:root .form-brand-leon{
    height:18px;
    width:auto;
    object-fit:contain;
    display:block;
  }
  :root:root .form-brand-planok{
    height:14px;
    width:auto;
    object-fit:contain;
    display:block;
  }

  :root:root /* Indicador de Pasos (2 Pasos Ultrarrápidos) */
  .stepper-bar{
    display:flex;
    background:#FFFFFF;
    border-bottom:1px solid #EEF2F6;
    padding:10px 18px 8px;
    gap:8px;
  }
  :root:root .step-node{
    flex:1;
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  :root:root .step-node-line{
    height:3px;
    border-radius:999px;
    background:#E2E8F0;
    transition:background .3s ease;
  }
  :root:root .step-node.active .step-node-line{
    background:linear-gradient(90deg, var(--navy-900), var(--magenta-600));
  }
  :root:root .step-node.completed .step-node-line{
    background:#22C55E;
  }
  :root:root .step-node-label{
    font-size:10.5px;
    font-weight:700;
    color:var(--gray-500);
    text-transform:uppercase;
    letter-spacing:0.04em;
    display:flex;
    align-items:center;
    gap:4px;
  }
  :root:root .step-node.active .step-node-label{
    color:var(--navy-900);
  }
  :root:root .step-node.completed .step-node-label{
    color:#15803D;
  }

  :root:root /* Cuerpo del Formulario Compacto */
  .form-body-wrap{
    padding:16px 20px;
    min-height:auto;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
  :root:root .step-pane{
    display:none;
    animation:fadeIn .25s ease-out;
  }
  :root:root .step-pane.active{
    display:block;
  }
  @keyframes fadeIn {
    from { opacity:0; transform:translateY(4px); }
    to { opacity:1; transform:translateY(0); }
  }

  :root:root .step-title-row{
    margin-bottom:12px;
  }
  :root:root .step-title-row h3{
    font-size:15px;
    font-weight:800;
    color:var(--navy-900);
    margin-bottom:2px;
  }
  :root:root .step-title-row span{
    font-size:11.5px;
    color:var(--gray-700);
  }

  :root:root /* Grupos de Formulario y Campos Compactos */
  .form-group{
    margin-bottom:12px;
  }
  :root:root .form-grid-2cols{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  @media (max-width:480px){
    :root:root .form-grid-2cols{
      grid-template-columns:1fr;
      gap:0;
    }
  }
  :root:root .form-label{
    display:block;
    font-size:11.5px;
    font-weight:700;
    color:var(--navy-900);
    margin-bottom:5px;
    line-height:1.25;
  }
  :root:root .form-select, :root:root .form-input{
    width:100%;
    max-width:100%;
    padding:8px 30px 8px 12px;
    border-radius:var(--radius-sm);
    border:1.5px solid #CBD5E1;
    background:#FFFFFF;
    font-family:var(--font-body);
    font-size:12.5px;
    color:var(--gray-900);
    transition:all .2s ease;
    appearance:none;
    -webkit-appearance:none;
    line-height:1.3;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  :root:root .form-select option{
    font-size:12px;
    color:var(--navy-900);
    padding:6px 8px;
    white-space:normal;
  }
  :root:root .select-wrapper{
    position:relative;
    width:100%;
    max-width:100%;
  }
  :root:root .select-wrapper::after{
    content:'';
    position:absolute;
    right:11px;
    top:50%;
    transform:translateY(-50%);
    width:0;
    height:0;
    border-left:4.5px solid transparent;
    border-right:4.5px solid transparent;
    border-top:5.5px solid #64748B;
    pointer-events:none;
  }
  :root:root .form-select:focus, :root:root .form-input:focus{
    border-color:var(--magenta-600);
    box-shadow:0 0 0 3px rgba(216,15,133,0.12);
    outline:none;
  }

  :root:root /* Botonera de Navegación */
  .form-actions-row{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #F1F5F9;
  }
  :root:root .btn-form-prev{
    background:transparent;
    border:1.5px solid #CBD5E1;
    color:var(--gray-700);
    padding:11px 18px;
    border-radius:999px;
    font-family:var(--font-head);
    font-size:13.5px;
    font-weight:700;
    cursor:pointer;
    transition:all .2s ease;
  }
  :root:root .btn-form-prev:hover{
    background:#F8FAFC;
    border-color:var(--gray-500);
    color:var(--navy-900);
  }
  :root:root .btn-form-next{
    flex:1;
    background:linear-gradient(135deg, var(--magenta-600) 0%, #E62A9B 100%);
    border:none;
    color:#FFFFFF;
    padding:13px 22px;
    border-radius:999px;
    font-family:var(--font-head);
    font-size:14.5px;
    font-weight:800;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    box-shadow:0 6px 18px rgba(216,15,133,0.35);
    transition:all .25s ease;
  }
  :root:root .btn-form-next:hover{
    background:linear-gradient(135deg, var(--magenta-700) 0%, var(--magenta-600) 100%);
    transform:translateY(-2px);
    box-shadow:0 8px 22px rgba(216,15,133,0.45);
  }
  :root:root .btn-form-submit-green{
    flex:1;
    background:linear-gradient(135deg, #16A34A 0%, #22C55E 100%);
    border:none;
    color:#FFFFFF;
    padding:13px 22px;
    border-radius:999px;
    font-family:var(--font-head);
    font-size:14.5px;
    font-weight:800;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    box-shadow:0 6px 18px rgba(22,163,74,0.35);
    transition:all .25s ease;
  }
  :root:root .btn-form-submit-green:hover{
    background:linear-gradient(135deg, #15803D 0%, #16A34A 100%);
    transform:translateY(-2px);
    box-shadow:0 8px 22px rgba(22,163,74,0.45);
  }
  :root:root .btn-form-submit-green:disabled{
    opacity:0.75;
    cursor:not-allowed;
    transform:none !important;
  }

  :root:root /* Vista previa rápida de valores de tipología seleccionada */
  .tipo-preview-card{
    background:#F8FAFC;
    border:1px solid #E2E8F0;
    border-radius:var(--radius-sm);
    padding:12px 14px;
    margin-top:14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
  }
  :root:root .tipo-preview-info strong{
    display:block;
    font-size:13px;
    color:var(--navy-900);
    font-family:var(--font-head);
  }
  :root:root .tipo-preview-info span{
    font-size:11.5px;
    color:var(--gray-700);
  }
  :root:root .tipo-preview-badge{
    background:#FFFFFF;
    border:1px solid #CBD5E1;
    padding:6px 12px;
    border-radius:999px;
    font-size:13px;
    font-weight:800;
    color:var(--magenta-600);
    white-space:nowrap;
    box-shadow:0 2px 6px rgba(0,0,0,0.04);
  }

  :root:root /* ===== ESTILOS CONTACTO: TELÉFONO +56 Y SWITCHES ===== */
  .phone-input-wrap{
    display:flex;
    align-items:stretch;
    border-radius:var(--radius-sm);
    overflow:hidden;
    border:1.5px solid #CBD5E1;
    background:#FFFFFF;
    transition:border-color .2s ease;
  }
  :root:root .phone-input-wrap:focus-within{
    border-color:var(--magenta-600);
    box-shadow:0 0 0 3px rgba(216,15,133,0.12);
  }
  :root:root .phone-prefix{
    background:#F1F5F9;
    padding:0 12px;
    display:flex;
    align-items:center;
    font-size:13.5px;
    font-weight:700;
    color:var(--navy-900);
    border-right:1px solid #CBD5E1;
  }
  :root:root .phone-field{
    border:none !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }

  :root:root /* Mensajes de Validación y Estados de Error Accesibles */
  .form-input.is-invalid, :root:root .form-select.is-invalid, :root:root .phone-input-wrap.is-invalid{
    border-color:#EF4444 !important;
    background:#FEF2F2;
  }
  :root:root .form-input.is-valid, :root:root .form-select.is-valid, :root:root .phone-input-wrap.is-valid{
    border-color:#22C55E !important;
  }
  :root:root .form-error-msg{
    display:none;
    color:#DC2626;
    font-size:11.5px;
    font-weight:600;
    margin-top:5px;
    align-items:center;
    gap:4px;
    animation:fadeIn .2s ease-out;
  }
  :root:root .form-error-msg.visible{
    display:flex;
  }
  :root:root .form-hint-msg{
    font-size:11px;
    color:var(--gray-500);
    margin-top:4px;
    display:block;
  }

  :root:root .contact-pref-box{
    margin-top:10px;
    background:#F8FAFC;
    border:1px solid #E2E8F0;
    border-radius:var(--radius-sm);
    padding:10px 12px;
  }
  :root:root .contact-pref-box .form-label{
    font-size:12px;
    margin-bottom:2px;
  }
  :root:root .contact-pref-hint{
    font-size:11px;
    color:var(--gray-700);
    margin-bottom:8px;
  }
  :root:root .switch-options-list{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  @media (max-width:420px){
    :root:root .switch-options-list{
      grid-template-columns:1fr;
    }
  }
  :root:root .switch-item{
    display:flex;
    align-items:center;
    gap:8px;
    cursor:pointer;
    user-select:none;
    background:#FFFFFF;
    border:1px solid #E2E8F0;
    padding:6px 8px;
    border-radius:6px;
  }
  :root:root .switch-label-text{
    font-size:12px;
    font-weight:600;
    color:var(--navy-900);
  }

  :root:root /* Toggle Switch compacto */
  .toggle-switch{
    position:relative;
    display:inline-block;
    width:34px;
    height:18px;
    flex-shrink:0;
  }
  :root:root .toggle-switch input{
    opacity:0;
    width:0;
    height:0;
  }
  :root:root .slider{
    position:absolute;
    cursor:pointer;
    inset:0;
    background-color:#CBD5E1;
    transition:.25s;
    border-radius:34px;
    box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);
  }
  :root:root .slider:before{
    position:absolute;
    content:"";
    height:14px;
    width:14px;
    left:2px;
    bottom:2px;
    background-color:white;
    transition:.25s;
    border-radius:50%;
    box-shadow:0 1px 3px rgba(0,0,0,0.2);
  }
  :root:root .toggle-switch input:checked + .slider{
    background-color:#84CC16;
  }
  :root:root .toggle-switch input:checked + .slider:before{
    transform:translateX(16px);
  }

  :root:root /* ===== ESTADO DE ÉXITO Y REDIRECCIÓN A ILEON.CL ===== */
  .redirect-success-pane{
    display:none;
    text-align:center;
    padding:28px 16px;
    animation:fadeIn .3s ease-out;
  }
  :root:root .redirect-success-pane.active{
    display:block;
  }
  :root:root .redirect-icon-wrap{
    width:64px;
    height:64px;
    border-radius:50%;
    background:#DCFCE7;
    border:2px solid #86EFAC;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 16px auto;
    animation:chipPopIn .35s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  :root:root .redirect-icon-wrap svg{
    width:32px;
    height:32px;
    fill:#16A34A;
  }
  :root:root .redirect-title{
    font-size:18px;
    font-weight:800;
    color:var(--navy-900);
    margin-bottom:6px;
    font-family:var(--font-head);
  }
  :root:root .redirect-msg{
    font-size:13.5px;
    color:var(--gray-700);
    line-height:1.5;
    margin-bottom:16px;
  }
  :root:root .redirect-spinner-box{
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:#F8FAFC;
    border:1px solid #E2E8F0;
    padding:8px 18px;
    border-radius:999px;
    font-size:12.5px;
    font-weight:600;
    color:var(--navy-900);
  }
  :root:root .spinner-dot{
    width:14px;
    height:14px;
    border:2px solid #CBD5E1;
    border-top-color:var(--magenta-600);
    border-radius:50%;
    animation:spin 0.8s linear infinite;
  }
  @keyframes spin {
    to { transform: rotate(360deg); }
  }
  @keyframes chipPopIn {
    from { opacity:0; transform:scale(0.85); }
    to { opacity:1; transform:scale(1); }
  }

  :root:root /* Footer del Formulario */
  .form-trust-footer{
    background:#FAFAFC;
    padding:10px 18px;
    border-top:1px solid #EEF2F6;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:11px;
    color:var(--gray-500);
  }
  :root:root .form-trust-footer svg{
    width:14px;
    height:14px;
    fill:#16A34A;
  }

  :root:root /* Responsive y Breakpoints Desktop / Laptop (1280px, :root:root 1440px, :root:root 1920px+) */
  @media (min-width: 1440px) {
    .custom-form-card{max-width:580px;}
    .cotizador-grid-split{gap:var(--space-6);}
  }
  @media (min-width: 1920px) {
    :root:root .custom-form-card{max-width:600px;}
    :root:root .form-body-wrap{padding:20px 24px;}
  }
  @media (max-height: 850px) and (min-width: 993px) {
    :root:root .cotizador-section{padding:16px 0;}
    :root:root .cotizador-project-logo{height:68px; margin-bottom:10px;}
    :root:root .cotizador-info-col h2{font-size:clamp(22px, 2.6vw, 32px); margin-bottom:8px;}
    :root:root .cotizador-info-col p.lead-cotiza{font-size:14px; line-height:1.45; margin-bottom:12px;}
    :root:root .cotizador-perks{gap:8px; margin-bottom:12px;}
    :root:root .cotizador-perk-item{font-size:13px;}
    :root:root .custom-form-card{max-width:520px;}
    :root:root .form-body-wrap{padding:16px 20px;}
  }

  @media (max-width:992px){
    :root:root .cotizador-section{
      min-height:auto;
      padding:44px 0 var(--space-5);
    }
    :root:root .cotizador-project-logo{
      margin-left:auto;
      margin-right:auto;
      height:60px;
      margin-top:8px;
      margin-bottom:12px;
    }
    :root:root .cotizador-grid-split{
      grid-template-columns:1fr;
      gap:var(--space-3);
    }
    :root:root .cotizador-info-col{
      text-align:center;
      padding:0 8px;
    }
    :root:root .cotizador-info-col h2{
      font-size:24px;
      line-height:1.2;
      margin-bottom:10px;
    }
    :root:root .cotizador-info-col p.lead-cotiza{
      margin-left:auto;
      margin-right:auto;
      font-size:13.5px;
      line-height:1.5;
      margin-bottom:14px;
    }
    :root:root .cotizador-perks{
      display:grid;
      grid-template-columns:1fr;
      gap:12px;
      margin:0 auto 16px auto;
      max-width:380px;
      text-align:left;
    }
    :root:root .cotizador-perk-item{
      font-size:13px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      text-align:left;
      gap:10px;
    }
    :root:root .cotizador-info-note{
      margin:0 auto;
      font-size:11px;
    }
    :root:root .custom-form-card{
      max-width:100%;
      margin-top:12px;
      border-radius:14px;
    }
    :root:root .form-body-wrap{
      padding:16px 18px;
    }
  }

  @media (max-width:480px){
    :root:root .form-header-bar{
      padding:10px 14px;
      gap:8px;
    }
    :root:root .form-project-name{
      font-size:12px;
      letter-spacing:0;
    }
    :root:root .form-project-sub{
      font-size:10px;
    }
    :root:root .form-header-logos{
      gap:8px;
    }
    :root:root .form-brand-leon{
      height:17px;
    }
    :root:root .form-brand-planok{
      height:14px;
    }
    :root:root .stepper-bar{
      padding:9px 14px 7px;
      gap:8px;
    }
    :root:root .step-node-label{
      font-size:10.5px;
    }
    :root:root .form-body-wrap{
      padding:14px 14px;
    }
    :root:root .form-group{
      margin-bottom:12px;
    }
    :root:root .form-label{
      font-size:12px;
      margin-bottom:5px;
    }
    :root:root .form-select, :root:root .form-input{
      padding:8px 12px;
      font-size:13px;
    }
  }

  @media (max-width:375px){
    :root:root .form-header-bar{
      padding:10px 12px;
      flex-direction:row;
      align-items:center;
      justify-content:space-between;
      gap:8px;
    }
    :root:root .form-project-name{
      font-size:11.5px;
      font-weight:800;
      white-space:normal;
      line-height:1.2;
    }
    :root:root .form-project-sub{
      font-size:9.5px;
      white-space:normal;
      line-height:1.2;
    }
    :root:root .form-header-logos{
      gap:6px;
      flex-shrink:0;
      align-items:center;
    }
    :root:root .form-brand-leon{
      height:16px;
    }
    :root:root .form-brand-planok{
      height:13px;
    }
    :root:root .stepper-bar{
      padding:8px 10px 6px;
    }
    :root:root .step-node-label{
      font-size:10px;
    }
    :root:root .form-body-wrap{
      padding:12px 10px;
    }
    :root:root .form-label{
      font-size:11.5px;
    }
    :root:root .form-select, :root:root .form-input{
      padding:8px 10px;
      font-size:12.5px;
    }
  }

  :root:root /* FILA 4 · BLOQUE 6 — Espacios comunes */
  .espacios h2{text-align:center; font-size:clamp(24px,3vw,32px);}
  :root:root .espacios .eyebrow{text-align:center; display:block;}
  :root:root .espacios-grid{
    margin-top:var(--space-4); display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-2);
  }
  :root:root .espacios-grid figure{margin:0; border-radius:var(--radius-md); overflow:hidden; position:relative; box-shadow:var(--shadow-card);}
  :root:root .espacios-grid img{height:240px; object-fit:cover;}
  :root:root .espacios-grid figcaption{
    position:absolute; left:0; right:0; bottom:0; padding:10px 12px; font-size:13px; font-weight:600; color:#fff;
    background:linear-gradient(180deg, rgba(0,16,46,0) 0%, rgba(0,16,46,.78) 100%);
  }

  :root:root /* FILA 5 · BLOQUE 7 — CTA PRE-FOOTER */
  .cta-band{
    background:
      radial-gradient(circle at 10% 20%, rgba(216,15,133,0.12) 0%, transparent 40%),
      radial-gradient(circle at 90% 80%, rgba(35,52,82,0.35) 0%, transparent 50%),
      #2A2A28;
    color:#fff;
    padding:calc(var(--space-6) * 1.1) 0;
    position:relative;
    overflow:hidden;
    border-top:1px solid rgba(255,255,255,0.08);
  }
  :root:root .cta-band::before{
    content:'';
    position:absolute;
    top:0;
    left:50%;
    transform:translateX(-50%);
    width:180px;
    height:3px;
    background:linear-gradient(90deg, transparent, var(--magenta-600), transparent);
  }
  :root:root .cta-band .wrap{
    display:grid;
    grid-template-columns:1.2fr auto;
    align-items:center;
    gap:var(--space-4);
    position:relative;
    z-index:2;
  }
  :root:root .cta-band-info .cta-tag{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.18);
    padding:6px 14px;
    border-radius:999px;
    font-size:12px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#F2A3D1;
    margin-bottom:var(--space-2);
  }
  :root:root .cta-band h2{
    color:#fff;
    font-size:clamp(24px, 3vw, 34px);
    line-height:1.2;
    margin-bottom:var(--space-2);
  }
  :root:root .cta-band p{
    color:rgba(255,255,255,0.78);
    font-size:15px;
    margin:0 0 var(--space-3);
    max-width:560px;
  }
  :root:root .cta-trust-badges{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
  }
  :root:root .cta-trust-item{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:13px;
    color:rgba(255,255,255,0.85);
  }
  :root:root .cta-trust-item span.dot{
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--magenta-600);
  }
  :root:root .cta-actions{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }
  :root:root .cta-actions .cta-hint{
    font-size:12px;
    color:rgba(255,255,255,0.5);
    text-align:center;
    width:100%;
  }
  
  :root:root .btn-primary{
    background:linear-gradient(135deg, var(--magenta-600) 0%, #E62A9B 100%);
    color:#fff; font-weight:800; font-family:var(--font-head);
    padding:18px 36px; border-radius:999px; text-decoration:none; font-size:16px; border:none; cursor:pointer;
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    box-shadow:0 12px 28px rgba(216,15,133,.45), 0 2px 6px rgba(0,0,0,.2);
    transition:all .25s cubic-bezier(.2,.8,.2,1);
    white-space:nowrap;
  }
  :root:root .btn-primary:hover{
    background:linear-gradient(135deg, var(--magenta-700) 0%, var(--magenta-600) 100%);
    transform:translateY(-3px) scale(1.02);
    box-shadow:0 18px 38px rgba(216,15,133,.6), 0 4px 12px rgba(0,0,0,.25);
  }
  :root:root .btn-primary:active{transform:translateY(-1px) scale(0.99);}
  :root:root .btn-primary svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:2.5;
    stroke-linecap:round;
    stroke-linejoin:round;
    transition:transform .2s ease;
  }
  :root:root .btn-primary:hover svg{
    transform:translateX(3px);
  }

  :root:root /* BARRA FLOTANTE MOBILE */
  .floating-cta-bar{
    display:none; position:fixed; bottom:0; left:0; right:0;
    background:rgba(28,29,27,.95); backdrop-filter:blur(10px);
    padding:12px 16px; z-index:9999; border-top:1px solid rgba(255,255,255,.12);
  }
  :root:root .wrap-float{
    display:flex; align-items:center; justify-content:space-between; gap:12px;
  }
  :root:root .floating-cta-info strong{
    display:block; color:#fff; font-size:14px; font-family:var(--font-head);
  }
  :root:root .floating-cta-info span{
    font-size:12px; color:#C27D56; font-weight:600;
  }
  :root:root .floating-cta-btn{
    background:var(--magenta-600); color:#fff; font-weight:700; font-size:13px;
    padding:10px 20px; border-radius:999px; text-decoration:none;
  }

  :root:root /* FOOTER */
  .footer-simple{
    background:#141513; color:#8A93A3; padding:var(--space-5) 0; text-align:center;
    border-top:1px solid rgba(255,255,255,.08);
  }
  :root:root .footer-logos{
    display:flex; justify-content:center; align-items:center; gap:28px; margin-bottom:var(--space-3);
  }
  :root:root .footer-logos .logo-leon{
    height:36px;
    width:auto;
    object-fit:contain;
  }
  :root:root .footer-logos .logo-lautaro{
    height:42px;
    width:auto;
    object-fit:contain;
  }
  :root:root .footer-simple small{font-size:12px; display:block; color:var(--gray-500);}

  @media (max-width:860px){
    :root:root .cols{grid-template-columns:1fr;}
    :root:root .carrusel-track img{height:300px;}
    :root:root .price-card{
      grid-template-columns:1fr;
      gap:10px;
    }
    :root:root .feature-pill{
      padding:14px 18px;
      display:grid;
      grid-template-columns:40px 1fr;
      grid-template-areas:
        "icon strong"
        "icon span";
      text-align:left;
      align-items:center;
      column-gap:14px;
      row-gap:2px;
    }
    :root:root .feature-icon-wrap{
      grid-area:icon;
      width:40px;
      height:40px;
      margin-bottom:0;
      border-radius:10px;
    }
    :root:root .feature-icon-wrap img{
      width:26px;
      height:26px;
    }
    :root:root .feature-pill strong{
      grid-area:strong;
      font-size:17px;
      margin-bottom:0;
    }
    :root:root .feature-pill span{
      grid-area:span;
      font-size:12px;
    }
    :root:root .benefits-grid{
      grid-template-columns:1fr;
      gap:16px;
    }
    :root:root .benefit-card{
      padding:22px 20px;
    }
    :root:root .benefit-icon{
      width:48px;
      height:48px;
      margin-bottom:14px;
    }
    :root:root .benefit-icon img{
      width:30px;
      height:30px;
    }
    :root:root .benefit-card h3{
      font-size:18px;
    }
    :root:root .benefit-card p{
      font-size:13.5px;
    }

    :root:root .floating-cta-bar{display:block;}
    :root:root body{padding-bottom:64px;}
  }

  :root:root /* ===== ANIMACIONES POR CAPAS (ESTILO ELEMENTOR FADE IN / FADE IN UP) ===== */
  @keyframes elFadeInUp {
    0% {
      opacity: 0;
      transform: translate3d(0, 28px, 0);
    }
    100% {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }

  @keyframes elFadeIn {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }

  :root:root .el-reveal {
    opacity: 0;
    transform: translate3d(0, 24px, 0);
    transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
  }

  :root:root .el-reveal.el-fade {
    transform: none;
  }

  :root:root .el-reveal.is-revealed {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  :root:root /* Stagger Delays para entrada por capas */
  .el-delay-100 { transition-delay: 0.1s; }
  :root:root .el-delay-150 { transition-delay: 0.15s; }
  :root:root .el-delay-200 { transition-delay: 0.2s; }
  :root:root .el-delay-250 { transition-delay: 0.25s; }
  :root:root .el-delay-300 { transition-delay: 0.3s; }
  :root:root .el-delay-350 { transition-delay: 0.35s; }
  :root:root .el-delay-400 { transition-delay: 0.4s; }
  :root:root .el-delay-450 { transition-delay: 0.45s; }
  :root:root .el-delay-500 { transition-delay: 0.5s; }

  :root:root /* Animación inicial del Banner Hero al cargar */
  .hero-animate-1 { animation: elFadeInUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both; }
  :root:root .hero-animate-2 { animation: elFadeInUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.25s both; }
  :root:root .hero-animate-3 { animation: elFadeInUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.4s both; }
  :root:root .hero-animate-4 { animation: elFadeInUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.55s both; }

  :root:root /* Accesibilidad */
  @media (prefers-reduced-motion: reduce) {
    .el-reveal,
    .hero-animate-1,
    .hero-animate-2,
    .hero-animate-3,
    .hero-animate-4 {
      opacity: 1 !important;
      transform: none !important;
      transition: none !important;
      animation: none !important;
    }
  }


/* ===================== PUENTE ELEMENTOR <-> MOCKUP ===================== */
/* Nada de font-size/color/family en 'inherit': anulaba las reglas del mockup
   que apuntan a la etiqueta interna (.cotizador-info-col h2, .benefit-card h3,
   .feature-pill strong...). Solo se neutraliza el margen superior. */
.dl-page .elementor-widget-heading .elementor-heading-title{ margin-top:0; }
/* El mockup hereda el bold por defecto del navegador en h1..h4; el tema lo
   baja a 600. Se restituye el valor que asume el diseno. */
.dl-page h1, .dl-page h2, .dl-page h3, .dl-page h4{ font-weight:700; }
/* Los headings usados como texto plano (span) heredan del wrapper, que es
   donde vive la clase del mockup (.eyebrow, .cta-tag, .fp-label...). */
.dl-page .elementor-widget-heading span.elementor-heading-title{
  font-size:inherit; font-weight:inherit; color:inherit; font-family:inherit;
  letter-spacing:inherit; text-transform:inherit; line-height:inherit;
}
.dl-page .elementor-widget-text-editor p:last-child{ margin-bottom:0; }
.dl-page .elementor-widget-image img{ display:block; }
.dl-page .elementor-widget-image figure{ margin:0; }
.dl-page .e-con-inner{ padding:0; max-width:none; }
.dl-page .e-con{ --padding-top:0px; --padding-right:0px; --padding-bottom:0px; --padding-left:0px; }
.dl-page .e-con > .e-con-inner{ width:100%; }

/* --- HERO: equivalente a <picture><source media="(max-width:767px)"> --- */
/* El swap desktop/mobile debe ganar a .header-banner-picture{display:block}
   del mockup (ya escalado con :root:root), de ahi el !important. */
.hb-mobile{ display:none !important; }
@media (max-width:767px){
  .hb-desktop{ display:none !important; }
  .hb-mobile{ display:block !important; }
  /* el mockup alinea arriba el texto del hero en movil (padding-top 10vw).
     :root:root sube la especificidad: sin esto, la regla de mas abajo
     (.e-con.banner-overlay{align-items:center}, sin media query) ganaba
     por venir despues en la hoja pese a tener la misma especificidad. */
  :root:root:root .e-con.banner-overlay{ align-items:flex-start !important; }
}
.header-banner .elementor-widget-image,
.header-banner .elementor-widget-image img{ width:100%; }
.header-banner .elementor-widget-image{ max-height:85vh; overflow:hidden; line-height:0; }
.header-banner .elementor-widget-image img{ max-height:85vh; object-fit:cover; }
.banner-location .elementor-widget-image img{
  width:20px; height:20px;
  /* El pin llega como <img> desde ACF (icono_pin), no como <svg> inline:
     no hay 'fill' que tocar. Este filtro lo deja blanco puro sobre el
     banner oscuro sea cual sea el archivo que suba el cliente. */
  filter:brightness(0) invert(1);
}
.banner-location .elementor-heading-title{ font-family:var(--font-body); font-size:clamp(14px,1.6vw,17px); font-weight:500; color:#fff; white-space:nowrap; }
.banner-title span{ display:block; }

/* --- CARRUSEL: Swiper nativo con el lenguaje visual de .carrusel --- */
.carrusel .swiper-slide img{ height:420px; object-fit:cover; width:100%; display:block; }
@media (max-width:860px){
  /* ITEM 2: :root:root sube la especificidad. Sin esto, medido con CDP, el
     .swiper-slide quedaba en 260px real (recortado por su propio
     overflow:hidden) mientras el contenedor .carrusel (fondo #000, altura
     300px) quedaba 40px mas alto: esos 40px de fondo negro del contenedor
     quedaban expuestos debajo de cada imagen recortada -> la franja negra. */
  :root:root .carrusel .swiper-slide img{ height:300px !important; }
  :root:root .carrusel .elementor-image-carousel-wrapper,
  :root:root .carrusel .swiper, :root:root .carrusel .swiper-wrapper,
  :root:root .carrusel .swiper-slide{ height:300px !important; overflow:visible !important; }
  :root:root .carrusel .swiper-slide figure,
  :root:root .carrusel .swiper-slide img{ overflow:visible !important; }
}
.carrusel .elementor-swiper-button{
  background:rgba(0,16,46,.55); color:#fff; width:36px; height:36px;
  border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:16px;
}
.carrusel .elementor-swiper-button-prev{ left:12px; }
.carrusel .elementor-swiper-button-next{ right:12px; }
.carrusel .swiper-pagination-bullet{ width:8px; height:8px; background:rgba(255,255,255,.5); opacity:1; margin:0 4px; }
.carrusel .swiper-pagination-bullet-active{ background:#fff; }
.carrusel .swiper-pagination{ bottom:16px; }

/* --- PILDORAS: el GIF vive dentro de .feature-icon-wrap --- */
.feature-icon-wrap .elementor-widget-image img{ width:34px; height:34px; object-fit:contain; }
.feature-pill .fp-value{
  display:block; font-family:var(--font-head); color:var(--navy-900);
  font-size:19px; font-weight:800; line-height:1.15; margin-bottom:4px;
}
.feature-pill .fp-label{
  font-size:12px; color:var(--gray-700); font-weight:500; line-height:1.25; font-family:var(--font-body);
}
/* .lead del mockup es "p.lead": en Elementor la clase queda en el wrapper y el
   <p> interno no la lleva, por eso la regla original no hacia match. */
.propuesta .lead{ font-size:16px; color:var(--gray-700); }

/* --- BENEFICIOS --- */
.benefit-icon .elementor-widget-image img{ width:36px; height:36px; object-fit:contain; transition:transform .25s ease, filter .25s ease; }
.benefit-card:hover .benefit-icon .elementor-widget-image img{ transform:scale(1.08); filter:brightness(0) invert(1); }
.benefit-card .elementor-heading-title{ font-size:19px; line-height:1.15; font-family:var(--font-head); font-weight:700; color:var(--navy-900); }

.benefit-card .bc-desc p{ font-size:14px; color:var(--gray-700); line-height:1.55; margin:0; font-family:var(--font-body); }
.beneficios-header .elementor-heading-title{ font-family:var(--font-head); }
.beneficios-header p{ font-family:var(--font-body); }

/* --- CHIPS de perfil --- */
.perfil-chip .elementor-widget-image img{ width:18px; height:18px; object-fit:contain; }
.perfil-chip .elementor-heading-title{ font-size:13px; font-weight:600; color:var(--navy-900); font-family:var(--font-body); }
.perfiles-title .pt-strong .elementor-heading-title{ display:block; font-family:var(--font-head); font-size:18px; font-weight:700; color:var(--navy-900); margin-bottom:2px; }
.perfiles-title .pt-span .elementor-heading-title{ font-size:13.5px; color:var(--gray-700); font-weight:400; font-family:var(--font-body); }
.perfiles-logo-col .elementor-widget-image img{ height:54px; width:auto; object-fit:contain; }

/* --- ESPACIOS COMUNES: figcaption superpuesto --- */
.espacios-grid .espacio-figure{
  position:relative; height:240px; border-radius:var(--radius-md); overflow:hidden;
  box-shadow:var(--shadow-card); background-size:cover; background-position:center;
}
/* el mockup no reduce el alto en movil: .espacios-grid img{height:240px} */
.espacios-grid .espacio-figure::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:60%;
  background:linear-gradient(180deg, rgba(0,16,46,0) 0%, rgba(0,16,46,.78) 100%); z-index:1;
}
.espacios-grid .espacio-figure .elementor-widget{ position:relative; z-index:2; width:100%; }
.espacios-grid .espacio-figure .elementor-heading-title{
  padding:10px 12px; font-size:13px; font-weight:600; color:#fff; font-family:var(--font-body); display:block;
}

/* --- COTIZADOR --- */
/* El mockup usa fondo #0D1117 con el video al 12% (.cotizador-video-bg).
   Elementor pinta el video a opacidad plena: se replica el original. */
.e-con.cotizador-section{ background-color:#0D1117 !important; }
.cotizador-section .elementor-background-video-container{ opacity:.12 !important; }
.cotizador-section .elementor-background-overlay{ display:none !important; }

.cotizador-perk-item .elementor-heading-title{ font-size:14px; color:rgba(255,255,255,.9); font-family:var(--font-body); }
.cotizador-perk-item .check .elementor-heading-title{
  width:22px; height:22px; border-radius:50%; background:rgba(216,15,133,.25);
  border:1px solid var(--magenta-600); color:#fff; display:flex; align-items:center;
  justify-content:center; font-size:11px; font-weight:700;
}
/* ITEM 5: sin margin-bottom propio -- el gap:14 del contenedor cotizador-info-col
   ya separa el logo del resto; con los dos sumados el primer hueco quedaba
   28px mientras el resto quedaba en 14px, inconsistente. */
.cotizador-project-logo img{ width:150px !important; height:auto !important; object-fit:contain; filter:drop-shadow(0 2px 8px rgba(0,0,0,.4)); }
.cotizador-info-col .elementor-heading-title{ font-family:var(--font-head); }
.cotizador-info-col h2.elementor-heading-title{ color:#fff; font-size:clamp(26px,3.2vw,40px); line-height:1.15; }
.cotizador-info-col .eyebrow .elementor-heading-title{ color:#FF2A85; font-size:13px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; text-shadow:0 0 12px rgba(216,15,133,.4); }
.cotizador-info-col .lead-cotiza p{ color:rgba(255,255,255,.85); font-size:15px; line-height:1.55; max-width:520px; font-family:var(--font-body); }
.cotizador-info-col .cotizador-info-note p{ font-size:11.5px; color:rgba(255,255,255,.5); line-height:1.45; max-width:480px; font-family:var(--font-body); }
.form-brand-leon img{ height:22px !important; width:auto !important; }
.form-brand-planok img{ height:18px !important; width:auto !important; }
.form-project-name .elementor-heading-title{ font-family:var(--font-head); font-size:12px; font-weight:800; color:var(--navy-900); line-height:1.2; }
.form-project-sub .elementor-heading-title{ font-family:var(--font-body); font-size:10px; font-weight:600; color:var(--gray-700); }
.form-trust-footer .elementor-heading-title{ font-size:11px; color:var(--gray-700); font-family:var(--font-body); }
.form-trust-footer .elementor-widget-image img{ width:14px; height:14px; }

/* --- FORMULARIO NATIVO (Elementor Pro) con el look del mockup --- */
.custom-form-card .elementor-form{ padding:16px 20px 20px; }
.custom-form-card .elementor-field-group{ margin-bottom:12px; }
.custom-form-card .elementor-field-label{
  font-family:var(--font-head); font-size:12.5px; font-weight:700;
  color:var(--navy-900); margin-bottom:6px; display:block;
}
.custom-form-card .elementor-field-textual,
.custom-form-card select.elementor-field{
  border:1.5px solid var(--gray-200); border-radius:var(--radius-sm);
  padding:11px 13px; font-size:13.5px; font-family:var(--font-body);
  color:var(--navy-900); background:#fff; width:100%; box-sizing:border-box;
  transition:border-color .2s ease, box-shadow .2s ease; min-height:44px;
}
.custom-form-card .elementor-field-textual:focus,
.custom-form-card select.elementor-field:focus{
  border-color:var(--magenta-600); box-shadow:0 0 0 3px rgba(216,15,133,.15); outline:none;
}
/* El prefijo "+56" era position:absolute anclado a bottom:1.5px del grupo.
   El grupo tambien contiene el mensaje de error, que el JS de validacion
   inserta con grupo.appendChild(aviso): al aparecer, el grupo crece hacia
   abajo y el badge anclado a bottom bajaba con el, quedando encima del
   mensaje (bug reportado: "+56 desajustado al ingresar telefono invalido").
   Solucion sin numeros magicos: el grupo pasa a grid y el pseudo-elemento se
   coloca en LA MISMA FILA que el input. Asi su posicion la define la celda
   del input, no el alto total del grupo -- da igual si el label crece, si el
   texto del label cambia (es editable por ACF) o si el mensaje de error
   aparece y ocupa una o dos lineas. */
.custom-form-card .elementor-field-group-telefono{
  position:relative;
  display:grid !important;
  grid-template-columns:1fr;
}
/* Colocacion explicita: el ::after va en la fila del input, y como es el
   ultimo en orden de documento, sin esto el auto-placement empujaria al
   input a la fila siguiente. */
.custom-form-card .elementor-field-group-telefono > .elementor-field-label{ grid-row:1; grid-column:1; }
.custom-form-card .elementor-field-group-telefono > .elementor-field-textual{ grid-row:2; grid-column:1; }
.custom-form-card .elementor-field-group-telefono > .form-error-msg{ grid-row:3; grid-column:1; }
.custom-form-card .elementor-field-group-telefono .elementor-field-textual{ padding-left:60px; }
.custom-form-card .elementor-field-group-telefono::after{
  content:'+56';
  grid-row:2; grid-column:1;
  justify-self:start; align-self:stretch;
  /* 1.5px por lado = el ancho del borde del input, para quedar por dentro */
  margin:1.5px 0 1.5px 1.5px;
  display:flex; align-items:center; padding:0 12px;
  background:var(--gray-100); border-right:1.5px solid var(--gray-200);
  border-radius:var(--radius-sm) 0 0 var(--radius-sm);
  font-family:var(--font-head); font-weight:700; font-size:13.5px; color:var(--gray-700);
  pointer-events:none;
}
.custom-form-card .elementor-field-type-radio .elementor-field-subgroup{
  display:grid; grid-template-columns:1fr 1fr; gap:8px;
}
.custom-form-card .elementor-field-type-radio .elementor-field-option{
  display:flex; align-items:center; gap:10px;
  background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-sm);
  padding:9px 12px; transition:all .2s ease;
}
.custom-form-card .elementor-field-type-radio .elementor-field-option:hover{ border-color:#CBD5E1; }
.custom-form-card .elementor-field-type-radio input[type="radio"]{
  appearance:none; -webkit-appearance:none; margin:0;
  width:34px; height:19px; border-radius:999px; background:#E2E8F0;
  position:relative; cursor:pointer; transition:background .2s ease; flex:0 0 34px;
}
.custom-form-card .elementor-field-type-radio input[type="radio"]::after{
  content:''; position:absolute; top:2px; left:2px; width:15px; height:15px;
  border-radius:50%; background:#fff; transition:transform .2s ease;
  box-shadow:0 1px 3px rgba(0,0,0,.25);
}
.custom-form-card .elementor-field-type-radio input[type="radio"]:checked{ background:#16A34A; }
.custom-form-card .elementor-field-type-radio input[type="radio"]:checked::after{ transform:translateX(15px); }
.custom-form-card .elementor-field-type-radio label{
  font-family:var(--font-head); font-size:12.5px; font-weight:700; color:var(--navy-900); cursor:pointer;
}
.custom-form-card .e-form__indicators{
  padding:10px 18px 8px; margin:0; gap:8px;
  border-bottom:1px solid var(--gray-200); background:#fff;
}
.custom-form-card .e-form__indicators__indicator{ flex-direction:column; align-items:flex-start; gap:8px; padding:0 8px 0 0; }
.custom-form-card .e-form__indicators__indicator__progress{ display:none; }
.custom-form-card .e-form__indicators__indicator__label{
  font-family:var(--font-head); font-weight:700; font-size:11.5px;
  letter-spacing:.04em; text-transform:uppercase; color:#94A3B8; order:2;
  line-height:12px;
}
.custom-form-card .e-form__indicators__indicator--state-active .e-form__indicators__indicator__label,
.custom-form-card .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label{
  color:var(--navy-900); font-weight:800;
}
/* Barra de cada paso, igual que .step-node-line del mockup: 3px, gris en
   pendiente, degradado navy->magenta en el paso activo, verde al completarlo.
   REGRESION CORREGIDA: una iteracion anterior la dejo en 0x0 leyendo mal el
   ITEM 7 ("eliminar ancho y grosor del SEPARADOR entre step1 y step2"). Lo que
   habia que quitar era el separador de Elementor (ver bloque ITEM 7 al final),
   no estas barras. */
.custom-form-card .e-form__indicators__indicator::before{
  content:''; display:block; width:100%; height:3px; border-radius:999px;
  background:#E2E8F0; order:1; transition:background .3s ease;
}
.custom-form-card .e-form__indicators__indicator--state-active::before{
  background:linear-gradient(90deg, var(--navy-900), var(--magenta-600));
}
.custom-form-card .e-form__indicators__indicator--state-completed::before{ background:#22C55E; }
.custom-form-card .e-form__buttons{ gap:10px; }
.custom-form-card .e-form__buttons__wrapper__button-next,
.custom-form-card .elementor-button[type="submit"]{
  text-transform:none !important; line-height:19px !important;
  font-family:var(--font-head); font-size:14.5px; font-weight:800;
  border:none; border-radius:999px; padding:13px 22px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:8px;
  transition:all .25s ease; width:100%;
}
.custom-form-card .e-form__buttons__wrapper__button-next{
  background:linear-gradient(135deg, var(--magenta-600) 0%, #E62A9B 100%);
  color:#fff; box-shadow:0 6px 18px rgba(216,15,133,.35);
}
.custom-form-card .e-form__buttons__wrapper__button-next:hover{
  background:linear-gradient(135deg, var(--magenta-700) 0%, var(--magenta-600) 100%);
  transform:translateY(-2px); box-shadow:0 8px 22px rgba(216,15,133,.45);
}
.custom-form-card .elementor-button[type="submit"]{
  background:linear-gradient(135deg,#16A34A 0%,#22C55E 100%);
  color:#fff; box-shadow:0 6px 18px rgba(22,163,74,.35);
}
.custom-form-card .elementor-button[type="submit"]:hover{
  background:linear-gradient(135deg,#15803D 0%,#16A34A 100%);
  transform:translateY(-2px); box-shadow:0 8px 22px rgba(22,163,74,.45);
}
.custom-form-card .e-form__buttons__wrapper__button-previous{
  background:transparent; border:1.5px solid #CBD5E1; color:var(--gray-700);
  padding:11px 18px; border-radius:999px; font-family:var(--font-head);
  font-size:13.5px; font-weight:700; cursor:pointer; transition:all .2s ease;
}
.custom-form-card .e-form__buttons__wrapper__button-previous:hover{
  background:#F8FAFC; border-color:var(--gray-500); color:var(--navy-900);
}

/* --- CAJA DOBLE WIDGET/INTERNO (medido con CDP contra el mockup) ---
   Las clases del mockup viajan en css_classes, es decir en el WRAPPER del
   widget, mientras que el nodo real (<a class="elementor-button">, <span
   class="elementor-heading-title">) recibe el mismo estilo desde su propio
   control. Resultado: padding/fondo/borde aplicados dos veces. El wrapper se
   neutraliza y el estilo queda solo en el nodo interno.                     */
.e-con.header-banner{ padding:0 !important; }
/* El titulo de Elementor es un <span> inline: el alto del widget lo fija el
   strut de la linea (line-height del tema, 24px) y no la tipografia real del
   titulo. En bloque el widget mide exactamente el texto, como en el mockup.
   Las reglas posteriores mas especificas (p.ej. .cta-tag) siguen ganando.  */
.elementor-widget-heading .elementor-heading-title{ display:block; }
.banner-cta.elementor-widget{
  padding:0 !important; background:none !important; background-image:none !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
  width:auto !important;
}
/* mockup: font-size 16px con line-height de cuerpo (1.5) -> alto 56 / 60 */
.banner-cta .elementor-button,
.cta-actions .elementor-button{ line-height:24px !important; }
.cta-band .cta-tag.elementor-widget{
  padding:0 !important; background:none !important; border:0 !important;
  border-radius:0 !important; display:block !important; width:auto !important;
}
/* pista derecha = ancho natural del boton en el mockup (260px); el auto de
   Elementor mide el wrapper del widget, no el <a>, y ensancha la columna. */
.cta-band .e-con.wrap{ grid-template-columns:1.2fr 260px !important; }
/* el alto lo fija la caja del widget (linea de 24px), no el <span> interno */
.footer-simple .elementor-widget-heading{ font-size:12px !important; line-height:18px !important; }
.footer-simple .elementor-heading-title{ line-height:18px !important; }
/* Elementor anula el margen del ultimo <p> del editor de texto; el mockup lo usa */
.cta-band .cta-band-info p{ margin:0 0 24px !important; }
/* margenes del mockup que el reset de widgets de Elementor deja en 0 */
.feature-pill .fp-value{ margin-bottom:4px !important; }
.propuesta .lead{ margin:16px 0 !important; }
.perfiles-title .pt-strong{ font-size:18px !important; line-height:27px !important; margin-bottom:0 !important; }
/* en el mockup este texto es un <span> inline dentro de un bloque con
   line-height 24px: el strut manda sobre su propio interlineado.      */
.perfiles-title .pt-span{ font-size:13.5px !important; line-height:24px !important; }

/* --- FILA DE TITULO POR PASO (mockup .step-title-row) ---
   Sin campo HTML ni widget HTML: el titulo va en el ::before del propio
   contenedor de paso (.e-form__step, que es el field-group del campo step
   identificado por custom_id -> .elementor-field-group-pasoN) y la bajada en
   el ::before del <div class="e-field-step"> que Pro renderiza dentro.       */
.custom-form-card .elementor-field-group-paso1::before,
.custom-form-card .elementor-field-group-paso2::before{
  flex:0 0 100%; max-width:100%; display:block; order:-2;
  font-family:var(--font-head); font-size:15px; font-weight:800; line-height:17.25px;
  color:var(--navy-900); margin:0 0 2px;
}
.custom-form-card .elementor-field-group-paso1::before{ content:"1. Ingresa tus datos de contacto"; }
.custom-form-card .elementor-field-group-paso2::before{ content:"2. Elige tu departamento"; }
.custom-form-card .e-form__step > .e-field-step{
  display:block !important; flex:0 0 100%; max-width:100%; order:-1;
  font-family:var(--font-body); font-size:11.5px; font-weight:400; line-height:24px;
  color:var(--gray-700); margin:0 0 12px; padding:0;
}
.custom-form-card .elementor-field-group-paso1 > .e-field-step::before{
  content:"Completa tus datos para enviarte la información y simulación";
}
.custom-form-card .elementor-field-group-paso2 > .e-field-step::before{
  content:"Selecciona la tipología y unidad de tu preferencia";
}

/* --- BANDA CTA --- */
.cta-band .cta-tag .elementor-heading-title{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
  padding:6px 14px; border-radius:999px; font-size:12px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:#F2A3D1; font-family:var(--font-head);
}
.cta-band h2.elementor-heading-title{ color:#fff; font-size:clamp(24px,3vw,34px); line-height:1.2; font-family:var(--font-head); }
.cta-band .cta-band-info p{ color:rgba(255,255,255,.78); font-size:15px; max-width:560px; font-family:var(--font-body); }
.cta-trust-item .elementor-heading-title{ font-size:13px; color:rgba(255,255,255,.85); font-family:var(--font-body); }
.cta-trust-item .dot .elementor-heading-title{ width:6px; height:6px; border-radius:50%; background:var(--magenta-600); display:block; }
.cta-hint .elementor-heading-title{ font-size:12px; color:rgba(255,255,255,.5); text-align:center; width:100%; font-family:var(--font-body); }

/* --- BOTONES tipo .banner-cta / .btn-primary con widget button nativo --- */
.dl-cta .elementor-button{
  background:linear-gradient(135deg, var(--magenta-600) 0%, #E62A9B 100%);
  color:#fff; font-weight:800; font-family:var(--font-head);
  border-radius:999px; border:none; display:inline-flex; align-items:center; gap:10px;
  box-shadow:0 12px 28px rgba(216,15,133,.5), 0 2px 8px rgba(0,0,0,.25);
  transition:all .25s cubic-bezier(.2,.8,.2,1);
}
.dl-cta .elementor-button:hover{
  background:linear-gradient(135deg, var(--magenta-700) 0%, var(--magenta-600) 100%);
  transform:translateY(-3px) scale(1.02);
  box-shadow:0 18px 36px rgba(216,15,133,.65), 0 4px 12px rgba(0,0,0,.3);
}
.dl-cta .elementor-button:active{ transform:translateY(-1px) scale(.99); }
.dl-cta .elementor-button i,
.dl-cta .elementor-button svg{ transition:transform .2s ease; }
.dl-cta .elementor-button:hover i,
.dl-cta .elementor-button:hover svg{ transform:translateX(3px); }

/* --- FOOTER --- */
.footer-logos .elementor-widget-image img{ object-fit:contain; }
.footer-logos .logo-leon img{ height:34px; width:auto; }
.footer-logos .logo-lautaro img{ height:46px; width:auto; }
.footer-simple .elementor-heading-title{ font-size:12px; color:rgba(255,255,255,.45); font-family:var(--font-body); }

/* --- BARRA FLOTANTE MOBILE (mockup: visible <=860px) --- */
.floating-cta-bar{ display:none; }
@media (max-width:860px){
  .floating-cta-bar{
    display:block !important; position:fixed; bottom:0; left:0; right:0; z-index:9999;
    background:rgba(28,29,27,.95); backdrop-filter:blur(10px);
    border-top:1px solid rgba(255,255,255,.12); padding:12px 16px;
  }
  body{ padding-bottom:64px; }
}
.floating-cta-info .fci-strong .elementor-heading-title{ display:block; color:#fff; font-weight:800; font-family:var(--font-head); font-size:14px; }
.floating-cta-info .fci-span .elementor-heading-title{ display:block; color:#fff; font-size:14px; font-family:var(--font-head); opacity:.85; }
.floating-cta-bar .dl-cta .elementor-button{ box-shadow:0 6px 16px rgba(216,15,133,.45); }

/* =====================================================================
   CORRECCIONES DE RENDER (verificadas en navegador, no deducidas)
   ---------------------------------------------------------------------
   1) ele-custom-skin (ECS) carga ecs-container-layout.css DESPUES del CSS
      de la pagina y fuerza  .e-con.e-ecs-flex { display:flex }  sobre TODOS
      los contenedores, anulando los display:grid del mockup. Se restituye
      el display correcto por clase con !important.
   2) Los estilos internos de los widgets (form, button) se emiten con
      reglas .elementor-<id> .elementor-button (mayor especificidad),
      asi que el puente necesita !important en esas reglas.
   ===================================================================== */
:root:root /* ITEM 4 (causa raiz real, no solo el sintoma en perfiles-banner):
   medido con CDP, .e-con.perfiles-banner{display:grid} NO ganaba pese al
   !important -- ele-custom-skin inyecta .e-con.e-ecs-flex{display:flex}
   con la MISMA especificidad (2 clases) y carga despues, ganando el
   empate. Se sube cada regla de este bloque con :root:root (igual
   patron que .btn-primary y .banner-overlay mas arriba) para que gane
   pase lo que pase el orden real de las hojas de estilo. */
.e-con.header-banner, .e-con.row, .e-con.cta-band, .e-con.footer-simple{ display:block !important; }
:root:root .e-con.wrap{ display:block !important; }
:root:root .e-con.wrap.cols,
:root:root .e-con.wrap.cotizador-grid-split{ display:grid !important; }
/* REGRESION CORREGIDA (banda CTA): esta regla estaba en la lista de arriba SIN
   :root:root -> especificidad 0,3,0 contra el 0,4,0 del display:block generico
   de .e-con.wrap. Perdia, la banda quedaba en block y el boton caia DEBAJO del
   texto en escritorio en vez de ir a la derecha. Con :root:root delante sube a
   0,5,0 y gana. La media query de movil solo cambia grid-template-columns (1fr),
   asi que alla se sigue apilando, como corresponde. */
:root:root .cta-band .e-con.wrap{ display:grid !important; }
:root:root .e-con.price-card,
:root:root .e-con.benefits-grid,
:root:root .e-con.perfiles-banner,
:root:root .e-con.espacios-grid{ display:grid !important; }
/* Elementor fuerza grid-template-rows: repeat(2,1fr) -> segunda fila vacia */
:root:root .e-con.wrap.cols, .e-con.wrap.cotizador-grid-split, .cta-band .e-con.wrap,
:root:root .e-con.price-card, .e-con.benefits-grid, .e-con.perfiles-banner, .e-con.espacios-grid{
  grid-template-rows:none !important; grid-auto-rows:auto !important;
}
/* Los contenedores de Elementor son flex-direction:column por defecto; el CSS
   del mockup asume el default del navegador (row) en estos nodos. */
:root:root .e-con.banner-overlay{ display:flex !important; flex-direction:row !important; align-items:center !important; }
:root:root .e-con.banner-text-box, .e-con.banner-content{ display:block !important; }
:root:root .e-con.banner-location, .e-con.banner-cta-wrap{ display:inline-flex !important; align-items:center !important; }
:root:root .e-con.feature-pill, .e-con.benefit-card, .e-con.propuesta, .e-con.cotizador-info-col,
:root:root .e-con.custom-form-card, .e-con.cta-band-info, .e-con.cta-actions, .e-con.perfiles-title,
:root:root .e-con.form-header-title, .e-con.floating-cta-info, .e-con.cotizador-perks,
:root:root .e-con.beneficios-header{ display:flex !important; flex-direction:column !important; }
:root:root .e-con.perfiles-chips, .e-con.cta-trust-badges, .e-con.form-header-bar,
:root:root .e-con.form-header-logos, .e-con.footer-logos, .e-con.cotizador-perk-item,
:root:root .e-con.perfil-chip, .e-con.feature-icon-wrap, .e-con.benefit-icon,
:root:root .e-con.form-trust-footer, .e-con.cta-trust-item, .e-con.wrap-float{ display:flex !important; }
:root:root .e-con.feature-icon-wrap, .e-con.benefit-icon{ align-items:center !important; justify-content:center !important; }
/* Los contenedores de Elementor son column por defecto: las filas del mockup
   necesitan row explicito o los hijos se apilan. */
:root:root .e-con.perfiles-chips{
  flex-direction:row !important; flex-wrap:wrap !important;
  justify-content:flex-end !important; gap:10px !important;
}
:root:root .e-con.cta-trust-badges{ flex-direction:row !important; flex-wrap:wrap !important; gap:16px !important; }

/* Los hijos de un contenedor de Elementor ocupan width:100%. En las filas del
   mockup deben dimensionarse por contenido, o cada hijo salta de linea. */
:root:root .e-con.perfiles-chips > *,
:root:root .e-con.cta-trust-badges > *,
:root:root .e-con.cta-trust-item > *,
:root:root .e-con.footer-logos > *,
:root:root .e-con.form-header-logos > *,
:root:root .e-con.form-header-bar > *,
:root:root .e-con.banner-location > *,
:root:root .e-con.banner-cta-wrap > *,
:root:root .e-con.cotizador-perk-item > *,
:root:root .e-con.form-trust-footer > *,
:root:root .e-con.wrap-float > *,
:root:root .e-con.perfil-chip > *,
:root:root .e-con.feature-icon-wrap > *,
:root:root .e-con.benefit-icon > *{ width:auto !important; flex:0 1 auto !important; max-width:100% !important; }

/* El chip y la pildora de icono se dimensionan por contenido */
:root:root .e-con.perfil-chip{ width:auto !important; flex:0 0 auto !important; }
:root:root .e-con.feature-icon-wrap{ width:48px !important; height:48px !important; flex:0 0 48px !important; }
:root:root .e-con.benefit-icon{ width:56px !important; height:56px !important; flex:0 0 56px !important; }
:root:root .e-con.cotizador-perk-item .check{ flex:0 0 22px !important; }

/* ---------------- MOVIL (<=860px): reglas del mockup que apuntan a
   etiquetas (strong/span) y que mis overrides de display pisaban ---------- */
@media (max-width:860px){
  /* .feature-pill pasa a grid con areas icon/strong/span (mockup linea ~1535) */
  :root:root .e-con.feature-pill{
    display:grid !important;
    grid-template-columns:40px 1fr !important;
    grid-template-areas:'icon strong' 'icon span' !important;
    align-items:center !important;
    padding:14px 18px !important;
  }
  .feature-pill .feature-icon-wrap{ grid-area:icon; }
  :root:root .e-con.feature-icon-wrap{
    width:40px !important; height:40px !important; flex:0 0 40px !important;
    border-radius:10px !important; margin:0 !important;
  }
  .feature-icon-wrap .elementor-widget-image img{ width:26px !important; height:26px !important; }
  .feature-pill .fp-value{ grid-area:strong; font-size:17px; margin-bottom:0; }
  .feature-pill .fp-label{ grid-area:span; font-size:12px; }

  /* Banda CTA: en 390px la columna de texto del mockup colapsa (127px) y en
     Elementor llega a 0px por el ancho del boton. Se apila, que es el
     comportamiento legible y el que mas acerca la altura al original. */
  .cta-band .e-con.wrap{ grid-template-columns:1fr !important; gap:20px !important; }
  :root:root .e-con.cta-actions{ width:100% !important; align-items:flex-start !important; }

  /* ITEM 4 (revision): los chips de perfiles se dimensionaban por contenido
     (flex:0 0 auto) y dejaban un hueco vacio a la izquierda porque el
     contenedor los empuja con justify-content:flex-end. En movil pasan a
     ocupar el ancho completo, 1 por fila (pedido explicito del usuario:
     antes eran 2 por fila, ahora full-width cada uno).
     :root:root x2 -- iguala la especificidad de la regla de mas arriba
     (:root:root .e-con.perfil-chip{width:auto}) para poder ganarle. */
  :root:root .e-con.perfiles-chips{
    flex-direction:column !important;
  }
  :root:root .e-con.perfil-chip{
    flex:0 0 100% !important; width:100% !important;
    justify-content:center !important;
  }
}
:root:root .e-con.footer-logos, .e-con.form-header-bar, .e-con.form-header-logos,
:root:root .e-con.form-trust-footer, .e-con.cotizador-perk-item, .e-con.perfil-chip,
:root:root .e-con.cta-trust-item, .e-con.wrap-float, .e-con.banner-location{ flex-direction:row !important; }

/* Campos del formulario: igualar la altura del input del mockup (.form-input:
   padding 11/13, font 13.5) en vez del min-height del widget nativo. */
.custom-form-card .elementor-field-textual,
.custom-form-card select.elementor-field{
  min-height:0 !important; height:auto !important;
  padding:11px 13px !important; font-size:13.5px !important; line-height:1.2 !important;
}
.custom-form-card .elementor-field-group{ margin-bottom:12px !important; }
/* ITEM 2: con un mensaje de error de dos lineas el formulario se
   descuadraba. Medido: los dos grupos de la fila quedan a la misma altura
   (y=1716, h=93 ambos) porque el wrapper los estira, pero el grupo SIN
   error reparte el sobrante vertical y baja su contenido (label 1725 vs
   1716, input 1765 vs 1735). Con align-items:flex-start cada grupo toma
   su alto natural y los de una misma fila arrancan alineados arriba. */
.custom-form-card .elementor-form-fields-wrapper,
.custom-form-card .e-form__step{ align-items:flex-start !important; }
.custom-form-card .elementor-form-fields-wrapper{ margin:0 !important; }
.custom-form-card .elementor-field-group > .elementor-field-label{
  margin-bottom:5px !important; padding:0 !important;
  font-size:11.5px !important; line-height:1.25 !important;
}
/* mockup .form-input/.form-select: padding 8px 30px 8px 12px, 12.5px, borde 1.5px */
.custom-form-card .elementor-field-textual,
.custom-form-card input.elementor-field,
.custom-form-card select.elementor-field{
  padding:8px 30px 8px 12px !important; font-size:12.5px !important;
  line-height:1.3 !important; border-width:1.5px !important;
  min-height:0 !important; height:auto !important;
}
.custom-form-card .elementor-field-group-telefono .elementor-field-textual{
  padding-left:56px !important;
}
/* Ya no lleva top/bottom/height: desde que el prefijo es un grid item en la
   fila del input (ver bloque .elementor-field-group-telefono mas arriba), su
   alto sale de align-self:stretch menos los 1.5px de margen por lado, asi que
   sigue al input si este cambia de alto. top/bottom eran ademas inertes: solo
   aplican a elementos posicionados, y este ya no es absolute. */
.custom-form-card .elementor-field-group-telefono::after{
  padding:0 12px !important; font-size:12.5px !important;
}
/* el campo oculto no ocupa alto en el mockup */
.custom-form-card .elementor-field-type-hidden{ margin:0 !important; padding:0 !important; }
/* mockup .form-actions-row: separador superior antes de los botones */
.custom-form-card .e-form__buttons{
  margin-top:16px !important; margin-bottom:0 !important;
  padding:14px 0 0 !important;
  border-top:1px solid #F1F5F9 !important;
}
/* ITEM 1: en el ultimo paso "Volver" y "Enviar y cotizar" se apilaban, ambos
   a ancho completo (medido: volver y=405 w=474, enviar y=462 w=474). Deben ir
   en la misma fila, con "Volver" a la izquierda dimensionado por su contenido.
   El :has() acota la regla al paso que TIENE boton previo: en el paso 1 el
   envoltorio lleva el boton "siguiente", que debe seguir a ancho completo. */
.custom-form-card .e-form__buttons{
  flex-wrap:nowrap !important; align-items:center !important; gap:10px !important;
}
/* ITEM 2: Elementor agrega su propio aviso ("Your submission was successful.",
   sin traducir) DESPUES de disparar submit_success, asi que no se puede quitar
   desde el manejador sin una carrera de tiempos. Se oculta por CSS: la
   confirmacion la da el panel .redirect-success-pane que pinta el runtime. */
.custom-form-card .elementor-message-success{ display:none !important; }
.custom-form-card .e-form__buttons__wrapper:has(.e-form__buttons__wrapper__button-previous){
  flex:0 0 auto !important; width:auto !important;
}
.custom-form-card .e-form__buttons__wrapper:has(.e-form__buttons__wrapper__button-previous) .elementor-button{
  width:auto !important;
}
.custom-form-card .e-form__buttons > .elementor-button[type="submit"],
.custom-form-card .e-form__buttons > button[type="submit"]{
  flex:1 1 auto !important; width:auto !important;
}
.custom-form-card .e-form__buttons button,
.custom-form-card .e-form__buttons .elementor-button{
  line-height:19px !important; border:0 !important;
}
/* el envoltorio de botones tambien lleva .elementor-field-group: sin margen */
.custom-form-card .e-form__buttons__wrapper{ margin:0 !important; padding:0 !important; }
/* El boton "siguiente" del paso a paso no acepta icono como control; se usa
   el SVG real del mockup como mascara CSS sobre el color del texto. */
.custom-form-card .e-form__buttons__wrapper__button-next::after{
  content:''; width:16px; height:16px; flex:0 0 16px; display:block;
  background-color:currentColor;
  -webkit-mask:url('https://www.ileon.cl/wp-content/plugins/ileon-project-landing-sync/assets/svg-inline/arrow-right.svg') center/contain no-repeat;
  mask:url('https://www.ileon.cl/wp-content/plugins/ileon-project-landing-sync/assets/svg-inline/arrow-right.svg') center/contain no-repeat;
}
/* las metricas del stepper se fijan mas abajo, junto al resto del paso a paso */
/* mockup .contact-pref-box: caja gris con titulo, bajada y rejilla 2x2 */
.custom-form-card .elementor-field-group-medioContacto{
  margin-top:0 !important; margin-bottom:0 !important; background:#F8FAFC;
  border:1px solid #E2E8F0; border-radius:var(--radius-sm);
  padding:10px 12px !important;
}
.custom-form-card .elementor-field-group-medioContacto > .elementor-field-label{
  font-size:12px !important; line-height:15px !important; margin-bottom:2px !important;
}
.custom-form-card .elementor-field-group-medioContacto .elementor-field-subgroup::before{
  content:"Elige el medio de contacto de tu preferencia";
  grid-column:1 / -1; font-family:var(--font-body); font-size:11px;
  line-height:16.5px; color:var(--gray-700); margin-bottom:0;
}
/* mockup .switch-item: 6px 8px, toggle 34x18, etiqueta 12px/600 -> alto 32 */
.custom-form-card .elementor-field-type-radio .elementor-field-option{
  padding:6px 8px !important; gap:8px !important; border-radius:6px !important;
  border:1px solid #E2E8F0 !important;
}
.custom-form-card .elementor-field-type-radio input[type="radio"]{
  width:34px !important; height:18px !important; flex:0 0 34px !important;
}
.custom-form-card .elementor-field-type-radio input[type="radio"]::after{
  width:14px !important; height:14px !important;
}
.custom-form-card .elementor-field-type-radio input[type="radio"]:checked::after{
  transform:translateX(16px) !important;
}
.custom-form-card .elementor-field-type-radio .elementor-field-option label{
  font-size:12px !important; font-weight:600 !important; line-height:18px !important;
  margin:0 !important; padding:0 !important;
}
.custom-form-card .elementor-field-type-radio .elementor-field-option{
  line-height:18px !important; min-height:0 !important;
}
.custom-form-card .elementor-field-textual,
.custom-form-card select.elementor-field{ line-height:1 !important; }

/* Stepper: 2 nodos con barra + etiqueta, como .stepper-bar del mockup (42px) */
.custom-form-card .e-form__indicators{
  padding:10px 18px 8px !important; margin:0 !important; gap:8px !important;
  border-bottom:1px solid var(--gray-200) !important; background:#fff !important;
}
.custom-form-card .e-form__indicators__indicator{
  flex-direction:column !important; align-items:flex-start !important;
  gap:8px !important; padding:0 !important; flex:1 1 0 !important;
}
.custom-form-card .e-form__indicators__indicator__number,
.custom-form-card .e-form__indicators__indicator__icon,
.custom-form-card .e-form__indicators__indicator__separator{ display:none !important; }
.custom-form-card .e-form__indicators__indicator__label{
  font-size:11.5px !important; line-height:12px !important; margin:0 !important;
  white-space:nowrap !important;
}
:root:root .e-con.wrap-float{ align-items:center !important; justify-content:space-between !important; }
:root:root .e-con.form-header-bar{ align-items:center !important; justify-content:space-between !important; }
:root:root .e-con.footer-logos, .e-con.form-trust-footer{ align-items:center !important; justify-content:center !important; }

/* Barra flotante: solo <=860px (el mockup la oculta en escritorio) */
:root:root .e-con.floating-cta-bar{ display:none !important; }
@media (max-width:860px){
  :root:root .e-con.floating-cta-bar{ display:block !important; }
}

/* ITEM 3: 'espacios comunes' como carrusel deslizable -- scroll-snap
   nativo, no el widget image-carousel de Elementor. Alternativa
   descartada: mover espacio_1/2/3 a un unico campo ACF tipo gallery para
   usar el widget nativo -- se pierde el binding individual por imagen y
   no esta verificado que Elementor permita un dynamic tag por item de un
   repeater. Con scroll-snap se mantienen los 3 campos ACF actuales.
   Desktop: grid de 3 (sin cambios). Movil: fila con scroll horizontal,
   1 tarjeta a pantalla completa por vez, snap al centro. */
@media (max-width:767px){
  :root:root .e-con.espacios-grid{
    display:flex !important; flex-wrap:nowrap !important;
    overflow-x:auto !important; overscroll-behavior-x:contain !important;
    scroll-snap-type:x mandatory !important; -webkit-overflow-scrolling:touch !important;
  }
  :root:root .e-con.espacios-grid > .e-con.espacio-figure{
    flex:0 0 100% !important; width:100% !important; scroll-snap-align:center !important;
  }
  :root:root .e-con.espacios-grid{ scrollbar-width:none !important; }
  :root:root .e-con.espacios-grid::-webkit-scrollbar{ display:none !important; height:0 !important; }
}

/* Espacios comunes: figura + imagen + figcaption superpuesto */
:root:root .e-con.espacio-figure{
  display:block !important; position:relative; height:240px;
  border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-card);
}
/* alto unico 240px en todos los anchos, como el mockup */
.espacio-figure .elementor-widget-image,
.espacio-figure .elementor-widget-image img{ height:240px !important; width:100% !important; object-fit:cover !important; }
@media (max-width:860px){
  .espacio-figure .elementor-widget-image,
  .espacio-figure .elementor-widget-image img{ height:240px !important; }
}
.espacio-figure .espacio-caption{
  position:absolute !important; left:0; right:0; bottom:0; margin:0 !important;
  padding:10px 12px; z-index:2;
  background:linear-gradient(180deg, rgba(0,16,46,0) 0%, rgba(0,16,46,.78) 100%);
}
.espacio-figure .espacio-caption{
  font-size:13px; font-weight:600; color:#fff; font-family:var(--font-body);
}

/* Botones internos del formulario (ganan a los estilos del widget) */
.custom-form-card .e-form__buttons__wrapper__button-next{
  background-image:linear-gradient(135deg, var(--magenta-600) 0%, #E62A9B 100%) !important;
  background-color:var(--magenta-600) !important;
  color:#fff !important; border-radius:999px !important;
}
.custom-form-card .e-form__buttons__wrapper__button-next:hover{
  background-image:linear-gradient(135deg, var(--magenta-700) 0%, var(--magenta-600) 100%) !important;
}
.custom-form-card .elementor-button[type="submit"]{
  background-image:linear-gradient(135deg,#16A34A 0%,#22C55E 100%) !important;
  background-color:#16A34A !important; color:#fff !important; border-radius:999px !important;
}
.custom-form-card .elementor-button[type="submit"]:hover{
  background-image:linear-gradient(135deg,#15803D 0%,#16A34A 100%) !important;
}
/* ITEM 4: el boton "Volver" se veia sin borde. La culpable es la regla
   generica de mas arriba (.custom-form-card .e-form__buttons .elementor-button
   { border:0 !important }), que con 3 clases ganaba a esta que tenia 2. Se
   sube a 4 clases para que el borde del boton secundario sobreviva. */
.custom-form-card .e-form__buttons .elementor-button.e-form__buttons__wrapper__button-previous{
  background:transparent !important; border:1.5px solid #CBD5E1 !important;
  color:var(--gray-700) !important; border-radius:999px !important;
}
.custom-form-card .e-form__buttons .elementor-button.e-form__buttons__wrapper__button-previous:hover{
  background:#F8FAFC !important; border-color:var(--gray-500) !important;
  color:var(--navy-900) !important;
}
.dl-cta .elementor-button{
  background-image:linear-gradient(135deg, var(--magenta-600) 0%, #E62A9B 100%) !important;
  background-color:var(--magenta-600) !important;
}
.dl-cta .elementor-button:hover{
  background-image:linear-gradient(135deg, var(--magenta-700) 0%, var(--magenta-600) 100%) !important;
}

/* =====================================================================
   BLOQUE FINAL: overrides responsivos que deben ganar a todo lo anterior
   (las reglas !important de secciones previas no se pueden pisar desde
   una media query situada mas arriba en la misma hoja).
   ===================================================================== */
/* El <form> no debe tener padding propio: en el mockup la barra de pasos
   ocupa todo el ancho de la tarjeta y solo el cuerpo (.form-body-wrap) va
   con sangrado. El padding pasa al contenedor de campos.                  */
.custom-form-card form{ padding:0 !important; }
.custom-form-card .elementor-form-fields-wrapper{ padding:20px 24px !important; }
@media (max-width:860px){
  .custom-form-card .elementor-form-fields-wrapper{ padding:16px 18px !important; }
  .custom-form-card .e-form__indicators{ padding:9px 14px 7px !important; }
  /* ITEM 5: en movil el bloque de botones se acercaba demasiado a la barra
     fija inferior. Reduccion minima del aire superior (16->10 y 14->10), lo
     justo para despegarlo sin alterar el ritmo vertical del resto. */
  .custom-form-card .e-form__buttons{
    margin-top:10px !important; padding-top:10px !important;
  }
}
@media (max-width:767px){
  /* mockup: el CTA del hero se compacta (10px 22px, 13px, icono 15px) */
  .banner-cta .elementor-button{
    padding:10px 22px !important; font-size:13px !important; gap:8px !important;
    line-height:20px !important;
  }
  .banner-cta .elementor-button svg,
  .banner-cta .elementor-button i{ width:15px !important; height:15px !important; font-size:15px !important; }
}
/* Honeypot: Elementor pinta su envoltorio con set_render_attribute(), que
   REEMPLAZA la lista de clases, de modo que el div queda solo con
   .elementor-field-type-text, sin .elementor-field-group. Resultado: es un
   elemento flex de ancho 0 y alto estirado dentro del paso, que puede consumir
   una linea del wrap. Se saca del flujo sin usar display:none en el envoltorio
   (el input ya lo lleva). Eleccion deliberada: un campo de texto real siempre
   trae ademas .elementor-field-group. */
.custom-form-card .e-form__step > .elementor-field-type-text:not(.elementor-field-group),
.custom-form-card .elementor-form-fields-wrapper > .elementor-field-type-text:not(.elementor-field-group){
  position:absolute !important; left:-9999px !important;
  width:0 !important; height:0 !important; overflow:hidden !important;
}

/* Estado de error de la validacion en navegador. El mockup ya define
   .form-error-msg y el aspecto de .is-invalid para sus propios inputs; aqui solo
   se traslada ese estado a los campos nativos de Elementor. */
.custom-form-card .elementor-field.is-invalid,
.custom-form-card select.elementor-field.is-invalid{
  border-color:#EF4444 !important; background:#FEF2F2 !important;
}
.custom-form-card .form-error-msg{ display:none; margin-top:5px; }
.custom-form-card .form-error-msg.visible{ display:flex; }

@media (max-width:420px){
  /* mockup .switch-options-list: una sola columna en pantallas estrechas */
  .custom-form-card .elementor-field-type-radio .elementor-field-subgroup{
    grid-template-columns:1fr !important;
  }
}
@media (max-width:860px){
  /* mockup: .benefit-icon 48x48 con imagen de 30px y h3 de 18px */
  :root:root .e-con.benefit-icon{ width:48px !important; height:48px !important; flex:0 0 48px !important; }
  .benefit-icon .elementor-widget-image img{ width:30px !important; height:30px !important; }
  .benefit-card .elementor-heading-title{ font-size:18px !important; }
  .benefit-card .bc-desc p{ font-size:13.5px !important; }
}

/* ---------------------------------------------------------------------------
   ITEM 7 — Hueco muerto bajo el pie en movil
   El mockup reserva el alto de la barra fija con  body{padding-bottom:64px}.
   Como el <body> es claro y el pie es oscuro, esa reserva se ve como una
   franja vacia debajo del pie. Se traslada la reserva al propio pie: ocupa
   exactamente el mismo espacio, la barra sigue sin tapar contenido, y no
   queda ningun hueco de otro color.
   Medido con entorno/probe-mobile.mjs: huecoBajoFooter 64 -> 0.
--------------------------------------------------------------------------- */
@media (max-width:860px){
  body{ padding-bottom:0 !important; }
  :root:root .e-con.footer-simple{ padding-bottom:78px !important; }
}

/* ---------------------------------------------------------------------------
   ITEM 3 — Captcha (Cloudflare Turnstile)
   El color lo fija la opcion theme:'light' del render (el widget es un iframe
   y no admite CSS externo). Aqui solo se asegura el centrado y que nunca
   desborde el ancho de la tarjeta del formulario.
--------------------------------------------------------------------------- */
.ileon-captcha{
  display:flex !important;
  justify-content:center !important;
  width:100% !important;
  max-width:100%;
  overflow:hidden;
}

/* ---------------------------------------------------------------------------
   ITEM 7 — Tamano de los indicadores de paso del formulario.
   Pedido: "eliminando el ancho y grosor del separador entre step1 y step2".
   El separador de Elementor (.e-form__indicators__indicator__separator) es un
   guion gris de 10x1px entre los dos pasos: se elimina (display:none).
   REGRESION CORREGIDA: una iteracion anterior lo habia RE-HABILITADO y, en su
   lugar, habia dejado en 0x0 las barras de cada paso (ver ::before arriba).
   Sin separador, 48% + 8px + 48% deja 12px sueltos a la derecha; flex:1 1 0
   reparte el ancho en dos pasos iguales de borde a borde, como .step-node
   del mockup (flex:1, gap 8px).
--------------------------------------------------------------------------- */
.custom-form-card .e-form__indicators__indicator__separator{ display:none !important; }
.custom-form-card .e-form__indicators {
    display: flex !important;
    justify-content: flex-start !important;
    gap: 8px !important;
}
.custom-form-card .e-form__indicators__indicator {
    flex: 1 1 0 !important;
    min-width: 0 !important;
}

.ileon-captcha iframe{ margin:0 auto !important; }

/* ---------------------------------------------------------------------------
   Carrusel sin datos
   Si la landing (y su proyecto asociado) no tienen galeria piloto_1, el tag
   acf-gallery no admite fallback -el control no existe en Elementor Pro- y el
   widget queda en 0 px, pero el contenedor sigue aportando su gap al layout.
   Sin slides no hay nada que mostrar: se oculta el bloque entero.
--------------------------------------------------------------------------- */
:root:root .e-con.carrusel:not(:has(.swiper-slide)){ display:none !important; }

/* ITEM 4 (ultima pieza): justify-content del grid es 'start' por defecto
   -- con 1 sola columna '1fr' eso NO la estira a lo ancho del contenedor,
   se ajusta al max-content de sus hijos (fit-content). Medido con CDP:
   grid-template-columns resolvia a 265px de 270px disponibles. con() no
   expone grid-justify-content, se fuerza aqui. */
@media (max-width:767px){
  :root:root .e-con.perfiles-banner{ justify-content:stretch !important; }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-443de9c7 */.single .hentry {
    margin-bottom: 0px!important;
}/* End custom CSS */