.elementor-247 .elementor-element.elementor-element-7570216{--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;border-style:solid;--border-style:solid;border-width:2px 0px 0px 0px;--border-top-width:2px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:var( --e-global-color-2534bb0 );--border-color:var( --e-global-color-2534bb0 );--margin-top:100px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-247 .elementor-element.elementor-element-bfe56bc{background-color:var( --e-global-color-cfa627e );margin:-50px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:12px 21px 12px 22px;border-style:solid;border-width:2px 2px 2px 2px;border-color:var( --e-global-color-2534bb0 );border-radius:63px 63px 63px 63px;text-align:center;}.elementor-247 .elementor-element.elementor-element-bfe56bc.elementor-element{--align-self:center;}.elementor-247 .elementor-element.elementor-element-bfe56bc img{width:120px;transition-duration:1.3s;}.elementor-247 .elementor-element.elementor-element-bfe56bc:hover img{opacity:0.6;}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
					.elementor-widget-nav-menu .e--pointer-framed .elementor-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-nav-menu{--e-nav-menu-divider-color:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-247 .elementor-element.elementor-element-0e249ab{margin:10px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-247 .elementor-element.elementor-element-0e249ab .elementor-nav-menu .elementor-item{font-family:"Poppins", Sans-serif;font-size:1em;font-weight:400;}.elementor-247 .elementor-element.elementor-element-0e249ab .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-e0483d1 );fill:var( --e-global-color-e0483d1 );}.elementor-247 .elementor-element.elementor-element-0e249ab .elementor-nav-menu--main .elementor-item:hover,
					.elementor-247 .elementor-element.elementor-element-0e249ab .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-247 .elementor-element.elementor-element-0e249ab .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-247 .elementor-element.elementor-element-0e249ab .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-2534bb0 );fill:var( --e-global-color-2534bb0 );}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-247 .elementor-element.elementor-element-0eea95f{border-style:none;--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(0px/2);}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(0px/2);}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(0px/2);}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-0px/2);}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-0px/2);}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-icon i{color:var( --e-global-color-e0483d1 );transition:color 0.3s;}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-icon svg{fill:var( --e-global-color-e0483d1 );transition:fill 0.3s;}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-item:hover .elementor-icon-list-icon i{color:var( --e-global-color-2534bb0 );}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-item:hover .elementor-icon-list-icon svg{fill:var( --e-global-color-2534bb0 );}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-item > .elementor-icon-list-text, .elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-item > a{font-family:"Poppins", Sans-serif;font-size:1em;font-weight:400;}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-text{color:var( --e-global-color-e0483d1 );transition:color 0.3s;}.elementor-247 .elementor-element.elementor-element-0eea95f .elementor-icon-list-item:hover .elementor-icon-list-text{color:var( --e-global-color-2534bb0 );}.elementor-247 .elementor-element.elementor-element-25f67e8{--display:grid;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--margin-top:-16px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-247 .elementor-element.elementor-element-25f67e8.e-con{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-247 .elementor-element.elementor-element-dde2cdc{text-align:center;font-family:"Poppins", Sans-serif;font-size:0.9rem;font-weight:200;color:var( --e-global-color-e0483d1 );}.elementor-247 .elementor-element.elementor-element-41c32c1{--grid-template-columns:repeat(0, auto);text-align:center;--grid-column-gap:5px;--grid-row-gap:0px;}.elementor-247 .elementor-element.elementor-element-41c32c1 .elementor-social-icon{background-color:#02010100;}.elementor-247 .elementor-element.elementor-element-41c32c1 .elementor-social-icon i{color:var( --e-global-color-e0483d1 );}.elementor-247 .elementor-element.elementor-element-41c32c1 .elementor-social-icon svg{fill:var( --e-global-color-e0483d1 );}.elementor-247 .elementor-element.elementor-element-41c32c1 .elementor-social-icon:hover{background-color:#02010100;}.elementor-247 .elementor-element.elementor-element-41c32c1 .elementor-social-icon:hover i{color:var( --e-global-color-2534bb0 );}.elementor-247 .elementor-element.elementor-element-41c32c1 .elementor-social-icon:hover svg{fill:var( --e-global-color-2534bb0 );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-247 .elementor-element.elementor-element-4eb9ead .elementor-button{background-color:var( --e-global-color-cfa627e );font-family:"Poppins", Sans-serif;font-size:1.2rem;font-weight:500;fill:var( --e-global-color-2534bb0 );color:var( --e-global-color-2534bb0 );border-style:solid;border-width:3px 3px 3px 3px;border-color:var( --e-global-color-2534bb0 );border-radius:42px 42px 42px 42px;}.elementor-247 .elementor-element.elementor-element-4eb9ead{width:var( --container-widget-width, 18.286% );max-width:18.286%;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:18.286%;--container-widget-flex-grow:0;border-radius:38px 38px 38px 38px;}.elementor-247 .elementor-element.elementor-element-4eb9ead.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-247 .elementor-element.elementor-element-5fd8507 img{width:84px;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-247 .elementor-element.elementor-element-25f67e8{--width:30.018%;}}@media(max-width:1024px){.elementor-247 .elementor-element.elementor-element-bfe56bc{margin:-43px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-247 .elementor-element.elementor-element-bfe56bc img{width:82px;}.elementor-247 .elementor-element.elementor-element-0e249ab .elementor-nav-menu .elementor-item{font-size:0.9rem;}.elementor-247 .elementor-element.elementor-element-25f67e8{--grid-auto-flow:row;}.elementor-247 .elementor-element.elementor-element-41c32c1{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 20px) 0px;--icon-size:30px;--grid-column-gap:27px;--grid-row-gap:0px;}.elementor-247 .elementor-element.elementor-element-41c32c1 .elementor-social-icon{--icon-padding:0em;}.elementor-247 .elementor-element.elementor-element-4eb9ead{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-247 .elementor-element.elementor-element-4eb9ead.elementor-element{--align-self:center;}.elementor-247 .elementor-element.elementor-element-4eb9ead .elementor-button{font-size:1rem;}}@media(max-width:767px){.elementor-247 .elementor-element.elementor-element-7570216{--padding-top:3%;--padding-bottom:3%;--padding-left:3%;--padding-right:3%;}.elementor-247 .elementor-element.elementor-element-bfe56bc{margin:-42px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-247 .elementor-element.elementor-element-bfe56bc img{width:85px;}.elementor-247 .elementor-element.elementor-element-0e249ab.elementor-element{--align-self:center;}.elementor-247 .elementor-element.elementor-element-0e249ab .elementor-nav-menu .elementor-item{font-size:0.8rem;}.elementor-247 .elementor-element.elementor-element-0e249ab .elementor-nav-menu--main .elementor-item{padding-left:0px;padding-right:0px;padding-top:5px;padding-bottom:5px;}.elementor-247 .elementor-element.elementor-element-0e249ab{--e-nav-menu-horizontal-menu-item-margin:calc( 37px / 2 );}.elementor-247 .elementor-element.elementor-element-0e249ab .elementor-nav-menu--main:not(.elementor-nav-menu--layout-horizontal) .elementor-nav-menu > li:not(:last-child){margin-bottom:37px;}.elementor-247 .elementor-element.elementor-element-25f67e8{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}.elementor-247 .elementor-element.elementor-element-4eb9ead{width:var( --container-widget-width, 142.438px );max-width:142.438px;padding:0px 0px 0px 0px;--container-widget-width:142.438px;--container-widget-flex-grow:0;}.elementor-247 .elementor-element.elementor-element-4eb9ead.elementor-element{--align-self:center;--order:0;}.elementor-247 .elementor-element.elementor-element-4eb9ead .elementor-button{font-size:1.1em;letter-spacing:1.6px;padding:7px 23px 8px 28px;}}/* Start custom CSS for button, class: .elementor-element-4eb9ead *//* =========================================================
   BOTÓN ELEMENTOR: BASE (una sola clase: .boton-chulo-icono)
   Soporta clase en el widget o en el <a>
   ========================================================= */

/* BASE cuando la clase está en el WIDGET */
.elementor-element.boton-chulo-icono a.elementor-button,
/* BASE cuando la clase está en el <a> */
a.elementor-button.boton-chulo-icono {
  --naranja: #EA7602;
  position: relative !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  background: #000 !important;          /* fondo reposo negro */
  color: var(--naranja) !important;      /* texto/icono naranja */
  border-radius: 25px;                   /* ajusta si quieres */
  overflow: hidden !important;           /* necesario para overlays */
  transition: color .3s ease, transform .2s ease;
}

.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-content-wrapper,
a.elementor-button.boton-chulo-icono .elementor-button-content-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  position: relative;
  z-index: 1;           /* por encima del overlay */
  line-height: 1;
}

/* Tu tamaño de icono (NO tocamos heights/padding del botón) */
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon i,
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon svg,
a.elementor-button.boton-chulo-icono .elementor-button-icon i,
a.elementor-button.boton-chulo-icono .elementor-button-icon svg {
  font-size: 50px;
  width: 50px;
  height: 40px;
  line-height: 1;
  display: inline-block;
  color: currentColor;
  fill: currentColor;
  transition: transform .25s ease;
}

/* Estados generales */
.elementor-element.boton-chulo-icono a.elementor-button:hover,
a.elementor-button.boton-chulo-icono:hover { transform: translateY(-1px); }
.elementor-element.boton-chulo-icono a.elementor-button:active,
a.elementor-button.boton-chulo-icono:active { transform: translateY(0); }

.elementor-element.boton-chulo-icono a.elementor-button:focus-visible,
a.elementor-button.boton-chulo-icono:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .elementor-element.boton-chulo-icono a.elementor-button,
  .elementor-element.boton-chulo-icono a.elementor-button * ,
  a.elementor-button.boton-chulo-icono,
  a.elementor-button.boton-chulo-icono * { transition: none !important; }
}

/* =========================================================
   EFECTO 1: Relleno horizontal blanco (izq → der)
   Clase adicional: efecto-h
   ========================================================= */
.elementor-element.boton-chulo-icono.efecto-h a.elementor-button::before,
a.elementor-button.boton-chulo-icono.efecto-h::before {
  content: ""; position: absolute; inset: 0; background: #fff;
  transform: scaleX(0); transform-origin: left;
  transition: transform .35s ease; z-index: 0; pointer-events: none;
}
.elementor-element.boton-chulo-icono.efecto-h a.elementor-button:hover::before,
a.elementor-button.boton-chulo-icono.efecto-h:hover::before { transform: scaleX(1); }
.elementor-element.boton-chulo-icono.efecto-h a.elementor-button:hover,
a.elementor-button.boton-chulo-icono.efecto-h:hover { color: var(--naranja) !important; }

/* =========================================================
   EFECTO 2: Relleno vertical blanco (abajo → arriba)
   Clase adicional: efecto-vertical
   ========================================================= */
.elementor-element.boton-chulo-icono.efecto-vertical a.elementor-button::before,
a.elementor-button.boton-chulo-icono.efecto-vertical::before {
  content: ""; position: absolute; inset: 0; background: #fff;
  transform: scaleY(0); transform-origin: bottom;
  transition: transform .35s ease; z-index: 0; pointer-events: none;
}
.elementor-element.boton-chulo-icono.efecto-vertical a.elementor-button:hover::before,
a.elementor-button.boton-chulo-icono.efecto-vertical:hover::before { transform: scaleY(1); }
.elementor-element.boton-chulo-icono.efecto-vertical a.elementor-button:hover,
a.elementor-button.boton-chulo-icono.efecto-vertical:hover { color: var(--naranja) !important; }

/* =========================================================
   EFECTO 3: Doble subrayado deslizante (líneas 2px)
   Clase adicional: efecto-subrayado
   ========================================================= */
.elementor-element.boton-chulo-icono.efecto-subrayado a.elementor-button::before,
.elementor-element.boton-chulo-icono.efecto-subrayado a.elementor-button::after,
a.elementor-button.boton-chulo-icono.efecto-subrayado::before,
a.elementor-button.boton-chulo-icono.efecto-subrayado::after {
  content: ""; position: absolute; bottom: 0; height: 2px; background: #fff;
  width: 50%; z-index: 0; transform: scaleX(0); transition: transform .35s ease;
}
.elementor-element.boton-chulo-icono.efecto-subrayado a.elementor-button::before,
a.elementor-button.boton-chulo-icono.efecto-subrayado::before { left: 0;  transform-origin: left; }
.elementor-element.boton-chulo-icono.efecto-subrayado a.elementor-button::after,
a.elementor-button.boton-chulo-icono.efecto-subrayado::after  { right: 0; transform-origin: right; }
.elementor-element.boton-chulo-icono.efecto-subrayado a.elementor-button:hover::before,
.elementor-element.boton-chulo-icono.efecto-subrayado a.elementor-button:hover::after,
a.elementor-button.boton-chulo-icono.efecto-subrayado:hover::before,
a.elementor-button.boton-chulo-icono.efecto-subrayado:hover::after { transform: scaleX(1); }
/* el texto/icono siguen naranjas; no cambiamos color */

/* =========================================================
   EFECTO 4: Wipe diagonal plano
   Clase adicional: efecto-diagonal
   ========================================================= */
.elementor-element.boton-chulo-icono.efecto-diagonal a.elementor-button::before,
a.elementor-button.boton-chulo-icono.efecto-diagonal::before {
  content: ""; position: absolute; inset: -50% -20%; background: #fff;
  transform: rotate(10deg) scaleX(0); transform-origin: left;
  transition: transform .4s ease; z-index: 0; pointer-events: none;
}
.elementor-element.boton-chulo-icono.efecto-diagonal a.elementor-button:hover::before,
a.elementor-button.boton-chulo-icono.efecto-diagonal:hover::before { transform: rotate(10deg) scaleX(1); }
.elementor-element.boton-chulo-icono.efecto-diagonal a.elementor-button:hover,
a.elementor-button.boton-chulo-icono.efecto-diagonal:hover { color: var(--naranja) !important; }

/* =========================================================
   EFECTO 5: Borde viajero (frame blanco que aparece)
   Clase adicional: efecto-borde
   ========================================================= */
.elementor-element.boton-chulo-icono.efecto-borde a.elementor-button::before,
a.elementor-button.boton-chulo-icono.efecto-borde::before {
  content: ""; position: absolute; inset: 0; border: 2px solid #fff;
  transform: scale(0); transition: transform .4s ease; z-index: 0; pointer-events: none;
}
.elementor-element.boton-chulo-icono.efecto-borde a.elementor-button:hover::before,
a.elementor-button.boton-chulo-icono.efecto-borde:hover::before { transform: scale(1); }

/* =========================================================
   EFECTO 6: Pulso central plano (círculo blanco)
   Clase adicional: efecto-pulso
   ========================================================= */
.elementor-element.boton-chulo-icono.efecto-pulso a.elementor-button::before,
a.elementor-button.boton-chulo-icono.efecto-pulso::before {
  content: ""; position: absolute; left: 50%; top: 50%;
  width: 0; height: 0; border-radius: 50%; background: #fff;
  transform: translate(-50%, -50%) scale(0);
  transition: transform .35s ease, width 0s .35s, height 0s .35s;
  z-index: 0; pointer-events: none;
}
.elementor-element.boton-chulo-icono.efecto-pulso a.elementor-button:hover::before,
a.elementor-button.boton-chulo-icono.efecto-pulso:hover::before {
  width: 140%; height: 140%;
  transform: translate(-50%, -50%) scale(1);
  transition: transform .35s ease;
}
.elementor-element.boton-chulo-icono.efecto-pulso a.elementor-button:hover,
a.elementor-button.boton-chulo-icono.efecto-pulso:hover { color: var(--naranja) !important; }

/* =========================================================
   EFECTO 7: Texto deslizante (wipe de fondo para el texto)
   Clase adicional: efecto-texto
   ========================================================= */
.elementor-element.boton-chulo-icono.efecto-texto a.elementor-button::before,
a.elementor-button.boton-chulo-icono.efecto-texto::before {
  content: ""; position: absolute; inset: 0; background: #fff;
  transform: translateX(-100%); transition: transform .35s ease; z-index: 0;
}
.elementor-element.boton-chulo-icono.efecto-texto a.elementor-button:hover::before,
a.elementor-button.boton-chulo-icono.efecto-texto:hover::before { transform: translateX(0); }
.elementor-element.boton-chulo-icono.efecto-texto a.elementor-button:hover,
a.elementor-button.boton-chulo-icono.efecto-texto:hover { color: var(--naranja) !important; }


/* =========================================================
   ICONO RESPONSIVO (forzando sobre <i> y <svg> de Elementor)
   - Mantiene 50x40 en desktop
   - Reduce en tablet y móvil
   - Soporta clase en el widget o en el <a>
   ========================================================= */

/* Variables por defecto (desktop) */
.elementor-element.boton-chulo-icono a.elementor-button,
a.elementor-button.boton-chulo-icono{
  --icon-fs: 50px;  /* font-size para <i> y base del svg si va a 1em */
  --icon-w: 50px;   /* width exacto del <svg> */
  --icon-h: 40px;   /* height exacto del <svg> */
}

/* Aplicación del tamaño al icono */
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon,
a.elementor-button.boton-chulo-icono .elementor-button-icon{
  display:inline-flex; align-items:center; justify-content:center;
  line-height:1;
  font-size: var(--icon-fs) !important; /* escala <i> y svg a 1em */
}

/* <i> (eicons/FontAwesome) */
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon i,
a.elementor-button.boton-chulo-icono .elementor-button-icon i{
  font-size: var(--icon-fs) !important;
  line-height: 1;
}

/* <svg> (override a cualquier width/height inline) */
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon svg,
a.elementor-button.boton-chulo-icono .elementor-button-icon svg{
  width: var(--icon-w) !important;
  height: var(--icon-h) !important;
  max-width: none !important;
  max-height: none !important;
  display: inline-block;
  line-height: 1;
}

/* Asegura que el color del trazo/relleno siga el texto del botón */
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon svg,
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon svg * ,
a.elementor-button.boton-chulo-icono .elementor-button-icon svg,
a.elementor-button.boton-chulo-icono .elementor-button-icon svg * {
  fill: currentColor !important;
  stroke: currentColor !important;
}

/* =========================================================
   ICONO RESPONSIVO — FUERZA SOBRE <i> y <svg> (con !important)
   Funciona si la clase está en el widget o en el <a>
   Desktop: 50×40 (tu valor). Tablet/Móvil: reduce.
   ========================================================= */

/* ====== DESKTOP (valores base) ====== */
.elementor-element.boton-chulo-icono a.elementor-button,
a.elementor-button.boton-chulo-icono{
  --icon-fs: 50px; /* para <i> y <svg> que escalen con em */
  --icon-w: 50px;  /* ancho <svg> */
  --icon-h: 40px;  /* alto  <svg> */
}

/* Aplica a cualquier tipo de icono */
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon,
a.elementor-button.boton-chulo-icono .elementor-button-icon{
  font-size: var(--icon-fs) !important; /* base para <i> y svg a 1em */
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* <i> (Eicons/FA) */
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon i,
a.elementor-button.boton-chulo-icono .elementor-button-icon i{
  font-size: var(--icon-fs) !important;
  line-height: 1 !important;
}

/* <svg> (incluye variantes e-font-icon-svg) */
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon svg,
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon .e-font-icon-svg,
a.elementor-button.boton-chulo-icono .elementor-button-icon svg,
a.elementor-button.boton-chulo-icono .elementor-button-icon .e-font-icon-svg{
  width: var(--icon-w) !important;
  height: var(--icon-h) !important;
  max-width: none !important;
  max-height: none !important;
  line-height: 1 !important;
  display: inline-block;
}

/* Hereda color del texto del botón */
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon svg,
.elementor-element.boton-chulo-icono a.elementor-button .elementor-button-icon svg *,
a.elementor-button.boton-chulo-icono .elementor-button-icon svg,
a.elementor-button.boton-chulo-icono .elementor-button-icon svg *{
  fill: currentColor !important;
  stroke: currentColor !important;
}

/* ====== TABLET (<=1024px) ======
   Nota: algunos temas usan 1025; cubrimos ambos. */
@media (max-width: 1025px){
  .elementor-element.boton-chulo-icono a.elementor-button,
  a.elementor-button.boton-chulo-icono{
    --icon-fs: 50px;
    --icon-w: 40px;
    --icon-h: 32px;
  }
}
@media (max-width: 1024px){
  .elementor-element.boton-chulo-icono a.elementor-button,
  a.elementor-button.boton-chulo-icono{
    --icon-fs: 50px;
    --icon-w: 30px;
    --icon-h: 32px;
  }
}

/* ====== MÓVIL (<=767px) ====== */
@media (max-width: 767px){
  .elementor-element.boton-chulo-icono a.elementor-button,
  a.elementor-button.boton-chulo-icono{
    --icon-fs: 32px;
    --icon-w: 32px;
    --icon-h: 36px;
  }
}

/* ====== MÓVIL MUY PEQUEÑO (<=360px) opcional ====== */
@media (max-width: 360px){
  .elementor-element.boton-chulo-icono a.elementor-button,
  a.elementor-button.boton-chulo-icono{
    --icon-fs: 28px;
    --icon-w: 38px;
    --icon-h: 38px;
  }
}/* End custom CSS */