/* ── Wrapper ─────────────────────────────────────────────────────────────── */
.angie-btn-wrap-3cf3dc57 {
    display: flex;
    width: 100%;
    --angie-fill-origin: ltr; /* default; overridden by inline style from PHP */
}

/* Alignment helpers (set by Elementor prefix_class) */
.elementor-align-left    .angie-btn-wrap-3cf3dc57 { justify-content: flex-start; }
.elementor-align-center  .angie-btn-wrap-3cf3dc57 { justify-content: center; }
.elementor-align-right   .angie-btn-wrap-3cf3dc57 { justify-content: flex-end; }
.elementor-align-justify .angie-btn-wrap-3cf3dc57 { justify-content: stretch; }
.elementor-align-justify .angie-btn-wrap-3cf3dc57 .angie-btn-3cf3dc57 { width: 100%; justify-content: center; }

/* ── Button ──────────────────────────────────────────────────────────────── */
.angie-btn-3cf3dc57 {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 12px 24px;
    text-decoration: none;
    overflow: visible; /* must be visible so underline span can exceed button width */
    transition: color 0.3s ease;
    cursor: pointer;
    z-index: 1;
}

/* ── Side Fill (dedicated span, lives INSIDE overflow:hidden clip) ────────── */
.angie-btn-fill-3cf3dc57 {
    position: absolute;
    inset: 0;
    width: 0;
    z-index: -1;
    transition: width 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    background-color: transparent;
    /* Direction driven by CSS custom property */
    left:  unset;
    right: unset;
}

/* LTR fill: grows from left */
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin:ltr'] .angie-btn-fill-3cf3dc57,
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin: ltr'] .angie-btn-fill-3cf3dc57 {
    left: 0;
    right: auto;
}

/* RTL fill: grows from right */
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin:rtl'] .angie-btn-fill-3cf3dc57,
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin: rtl'] .angie-btn-fill-3cf3dc57 {
    right: 0;
    left: auto;
}

.angie-btn-3cf3dc57:hover .angie-btn-fill-3cf3dc57 {
    width: 100%;
}

/* ── Underline (dedicated span, outside overflow so width > 100% works) ───── */
.angie-btn-underline-3cf3dc57 {
    position: absolute;
    bottom: 0;
    height: 2px;
    width: 0;
    background-color: currentColor;
    transition: width 0.35s ease;
    /* Direction driven by CSS custom property */
}

/* LTR underline: grows from left */
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin:ltr'] .angie-btn-underline-3cf3dc57,
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin: ltr'] .angie-btn-underline-3cf3dc57 {
    left: 0;
    right: auto;
}

/* RTL underline: grows from right */
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin:rtl'] .angie-btn-underline-3cf3dc57,
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin: rtl'] .angie-btn-underline-3cf3dc57 {
    right: 0;
    left: auto;
}

.angie-btn-3cf3dc57:hover .angie-btn-underline-3cf3dc57 {
    width: 100%; /* overridden by Elementor control */
}

/* ── Text ────────────────────────────────────────────────────────────────── */
.angie-btn-text-3cf3dc57 {
    position: relative;
    z-index: 1;
}

/* ── Icon ────────────────────────────────────────────────────────────────── */
.angie-btn-icon-3cf3dc57 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
    font-size: 16px;
    transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.angie-btn-icon-3cf3dc57 svg {
    width: 1em;
    height: 1em;
    transition: fill 0.3s ease;
}

/* Icon nudge on hover — respects direction */
/* LTR: icon-after nudges right, icon-before nudges left */
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin:ltr'] .angie-btn-3cf3dc57.angie-icon-right:hover .angie-btn-icon-3cf3dc57,
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin: ltr'] .angie-btn-3cf3dc57.angie-icon-right:hover .angie-btn-icon-3cf3dc57 {
    transform: translateX(5px);
}
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin:ltr'] .angie-btn-3cf3dc57.angie-icon-left:hover .angie-btn-icon-3cf3dc57,
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin: ltr'] .angie-btn-3cf3dc57.angie-icon-left:hover .angie-btn-icon-3cf3dc57 {
    transform: translateX(-5px);
}

/* RTL: icon-after nudges left, icon-before nudges right */
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin:rtl'] .angie-btn-3cf3dc57.angie-icon-right:hover .angie-btn-icon-3cf3dc57,
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin: rtl'] .angie-btn-3cf3dc57.angie-icon-right:hover .angie-btn-icon-3cf3dc57 {
    transform: translateX(-5px);
}
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin:rtl'] .angie-btn-3cf3dc57.angie-icon-left:hover .angie-btn-icon-3cf3dc57,
.angie-btn-wrap-3cf3dc57[style*='--angie-fill-origin: rtl'] .angie-btn-3cf3dc57.angie-icon-left:hover .angie-btn-icon-3cf3dc57 {
    transform: translateX(5px);
}
