/* CW Botón Premium: controls are authoritative over legacy global CTA presets.
   Variables are produced by Elementor for each widget and breakpoint.
   This stylesheet only affects cw_pf_button, never header or other CTA widgets. */
/* Brand defaults without !important, so Elementor Typography remains editable. */
.elementor-widget-cw_pf_button :where(a.cw-el-btn) {
  font-family: var(--e-global-typography-primary-font-family, Montserrat, Arial, sans-serif);
  font-size: var(--cw-cta-font, 12px);
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .012em;
}
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn {
    gap: var(--cw-icon-gap, 6px) !important;
    /* Never add/subtract padding or border on hover; Elementor padding/radius
       controls use higher-specificity scoped rules when configured. */
    box-sizing: border-box !important;
}
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn .cw-el-btn-icon {
    --cw-icon-size-current: var(--cw-primary-icon-size, 20px);
    --cw-icon-size-over: var(--cw-icon-hover-size, var(--cw-icon-size-current));
    --cw-icon-slot: var(--cw-primary-icon-slot-size, max(var(--cw-icon-size-current), var(--cw-icon-size-over)));
    width: var(--cw-icon-slot) !important;
    height: var(--cw-icon-slot) !important;
    min-width: var(--cw-icon-slot) !important;
    min-height: var(--cw-icon-slot) !important;
    flex: 0 0 var(--cw-icon-slot) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transform: translateX(0) !important;
    transition: transform var(--cw-icon-transition, 360ms) cubic-bezier(.2,.7,.3,1) !important;
    overflow: visible !important;
}
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn--secondary .cw-el-btn-icon {
    --cw-icon-size-current: var(--cw-secondary-icon-size, 16px);
    --cw-icon-size-over: var(--cw-secondary-icon-hover-size, var(--cw-secondary-icon-size, 16px));
    --cw-icon-slot: max(var(--cw-icon-size-current),var(--cw-icon-size-over));
}
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn .cw-el-btn-icon > svg,
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn .cw-el-btn-icon > .cw-brand-icon,
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn .cw-el-btn-icon > i {
    width: var(--cw-icon-size-current) !important;
    height: var(--cw-icon-size-current) !important;
    flex: 0 0 var(--cw-icon-size-current) !important;
    font-size: var(--cw-icon-size-current) !important;
    max-width: none !important;
    max-height: none !important;
    transform: rotate(var(--cw-icon-rotate-normal, 0deg)) !important;
    transform-origin: 50% 50% !important;
    transition: width var(--cw-icon-transition, 360ms) ease,
                height var(--cw-icon-transition, 360ms) ease,
                font-size var(--cw-icon-transition, 360ms) ease,
                transform var(--cw-icon-transition, 360ms) cubic-bezier(.2,.7,.3,1) !important;
}
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn:is(:hover,:focus-visible) .cw-el-btn-icon {
    transform: translateX(var(--cw-icon-translate-hover, 0px)) !important;
}
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn:is(:hover,:focus-visible) .cw-el-btn-icon > svg,
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn:is(:hover,:focus-visible) .cw-el-btn-icon > .cw-brand-icon,
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn:is(:hover,:focus-visible) .cw-el-btn-icon > i {
    width: var(--cw-icon-size-over) !important;
    height: var(--cw-icon-size-over) !important;
    flex-basis: var(--cw-icon-size-over) !important;
    font-size: var(--cw-icon-size-over) !important;
    transform: rotate(var(--cw-icon-rotate-hover, var(--cw-icon-rotate-normal, 0deg))) !important;
}
/* Remove forced icon sizes from universal CTA presets; the icon slot above
   remains stable even when the selected normal/hover sizes differ. */
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper--pair a.cw-el-btn--secondary .cw-el-btn-icon { --cw-icon-slot: max(var(--cw-icon-size-current),var(--cw-icon-size-over)); }
/* Default primary preset: animate one gradient, not two separate background images. */
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn--primary.cw-gradient-cta,
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn--primary.cw-gradient-cta:is(:hover,:focus-visible) {
    background-image: linear-gradient(90deg,var(--e-global-color-secondary,#00acf8) 0%,var(--e-global-color-primary,#00cfab) 50%,var(--e-global-color-accent,#36ceab) 100%) !important;
    background-size: 200% 100% !important;
    background-repeat: no-repeat !important;
}
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn--primary.cw-gradient-cta { background-position: 0% 50% !important; color:#fff!important; }
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn--primary.cw-gradient-cta:is(:hover,:focus-visible) {background-position:100% 50%!important;}

/* The icon is positioned using the chosen before/after alignment. */
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn .cw-el-btn-icon.cw-btn-icon-left { order: 0; }
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn .cw-el-btn-text { order: 1; }
body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn .cw-el-btn-icon.cw-btn-icon-right { order: 2; }
@media (prefers-reduced-motion:reduce) {
    body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn .cw-el-btn-icon,
    body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn .cw-el-btn-icon > svg,
    body .elementor-widget-cw_pf_button .cw-el-btn-wrapper a.cw-el-btn .cw-el-btn-icon > i {transition:none!important;}
}

/* 1.0.60 · Opción de ancho completo para los DOS botones en celular.
   El modo predeterminado no se modifica; la clase solo se añade desde el
   control opcional del widget CW Botón Premium.
   Grid evita que las medidas del contenido desplacen al botón vecino. */
@media (max-width: 767px) {
    body .elementor-widget-cw_pf_button .cw-el-btn-wrapper--pair.cw-el-btn-wrapper--mobile-fill {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        width: 100% !important;
        max-width: 100% !important;
        align-items: stretch !important;
        gap: var(--cw-button-pair-gap, 8px) !important;
        box-sizing: border-box !important;
    }
    body .elementor-widget-cw_pf_button .cw-el-btn-wrapper--pair.cw-el-btn-wrapper--mobile-fill > a.cw-el-btn {
        display: inline-flex !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        flex: none !important;
        box-sizing: border-box !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
    }
    body .elementor-widget-cw_pf_button .cw-el-btn-wrapper--pair.cw-el-btn-wrapper--mobile-fill > a.cw-el-btn .cw-el-btn-text {
        min-width: 0;
    }
}
