/* ==========================================================================
   Button Animations
   NOTE: The cds-animate-underline-* keyframes now live in the shared
   assets/css/cdswerx-underline.css (registered as 'cdswerx-underline', a
   dependency of this stylesheet) so Button and TOC stay in lockstep.
   ========================================================================== */
@keyframes cds-addons-for-elementor-fade-in {
  0% {
    opacity: 0;
    visibility: hidden;
    z-index: 102;
  }
  100% {
    opacity: 1;
    visibility: visible;
    z-index: 102;
  }
}
@keyframes cds-addons-for-elementor-fade-out {
  0% {
    opacity: 1;
    visibility: visible;
    z-index: 102;
  }
  100% {
    opacity: 0;
    visibility: hidden;
    z-index: 0;
  }
}
@keyframes cds-animate-highlight {
  0% {
    background-size: 0% 100%;
    background-position-x: left;
  }
  100% {
    background-size: 100% 100%;
    background-position-x: left;
  }
}


@keyframes cds-move-horizontal-normal-text-marquee {
  0% {
    transform: translateX(0%) translateZ(0);
  }
  100% {
    transform: translateX(-100%) translateZ(0);
  }
}
@keyframes cds-move-horizontal-normal-text-marquee-copy {
  0% {
    transform: translateX(100%) translateZ(0);
  }
  100% {
    transform: translateX(0%) translateZ(0);
  }
}
@keyframes cds-move-vertical-normal-text-marquee {
  0% {
    transform: translateY(0%) translateZ(0);
  }
  100% {
    transform: translateY(-100%) translateZ(0);
  }
}
@keyframes cds-move-vertical-normal-text-marquee-copy {
  0% {
    transform: translateY(100%) translateZ(0);
  }
  100% {
    transform: translateY(0%) translateZ(0);
  }
}
@keyframes cds-move-horizontal-reverse-text-marquee {
  0% {
    transform: translateX(0%) translateZ(0);
  }
  100% {
    transform: translateX(100%) translateZ(0);
  }
}
@keyframes cds-move-horizontal-reverse-text-marquee-copy {
  0% {
    transform: translateX(-100%) translateZ(0);
  }
  100% {
    transform: translateX(0%) translateZ(0);
  }
}
@keyframes cds-move-vertical-reverse-text-marquee {
  0% {
    transform: translateY(0%) translateZ(0);
  }
  100% {
    transform: translateY(100%) translateZ(0);
  }
}
@keyframes cds-move-vertical-reverse-text-marquee-copy {
  0% {
    transform: translateY(-100%) translateZ(0);
  }
  100% {
    transform: translateY(0%) translateZ(0);
  }
}
/* ==========================================================================
   Button 
   ========================================================================== */

.cdswerx-button-widget {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    width: auto;
    margin: 0;
    font-family: inherit;
    font-size: 16px;
    line-height: 2em;
    font-weight: 500;
    text-transform: none;
    border-radius: 4px;
    outline: 0;
    transition: color .25s ease-in-out, background-color .25s ease-in-out, border-color .25s ease-in-out;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    padding: 13px 46px;
    overflow: hidden
}

/* Note: the !important text-decoration reset for .cdswerx-button-widget now
   lives in the shared cdswerx-underline.css (single source of truth, enqueued
   globally) so theme link styles can't underline buttons in any widget. */

/* Info variant — mirrors Qi info-button: column layout with text-holder row */
.cdswerx-button-widget.cdswerx-button--info {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    line-height: 1.2em
}

.cdswerx-button-widget.cdswerx-button--info .cdswerx-button__text-holder {
    display: flex;
    align-items: center
}

.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-icon--left .cdswerx-button__text-holder {
    flex-direction: row-reverse
}

/* Icon Boxed + Info: title/subtitle stack vertically inside text-holder; icon sits beside */
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed .cdswerx-button__text-holder {
    flex-direction: column;
    align-items: flex-start
}

.cdswerx-button-widget.cdswerx-button--info .cdswerx-button__subtext {
    font-size: 0.75em
}

/* Default subtext spacing for info variant; style control can override */
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-subtext--below .cdswerx-button__subtext {
  margin-top: 0.25em;
  margin-bottom: 0;
}

.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-subtext--above .cdswerx-button__subtext {
  margin-bottom: 0.25em;
  margin-top: 0;
}

.cdswerx-button-widget.cdswerx-button--info .cdswerx-button__subtext-link {
    color: inherit;
    text-decoration: inherit
}

/* Split links — a linked subtext must not nest inside the main <a> (HTML
   parsers split nested anchors, ejecting content out of the button). The root
   becomes a <div> and the main link is a stretched overlay behind the content;
   the subtext link stacks above it so both stay clickable. The root is already
   position:relative, so the overlay pins to the button box. */
.cdswerx-button-widget.cdswerx-button--split-links {
    cursor: pointer;
}
.cdswerx-button-widget .cdswerx-button__overlay-link {
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: inherit;
}
.cdswerx-button-widget.cdswerx-button--split-links .cdswerx-button__subtext-link {
    position: relative;
    z-index: 1;
}

/* Inline subtext (Left / Right): lay the subtext beside the primary text.
   DOM order already places subtext before (Left) / after (Right) the
   text-holder, so a plain flex row gives the correct visual + reading order
   without flex `order`/`row-reverse` tricks.

   Spacing is routed through --cds-btn-subtext-gap (set by the Subtext Spacing
   control on the widget) because the gap must land on a DIFFERENT container per
   type: the outer button for standard, the text-holder row for icon-boxed —
   a raw `gap:` from the control could only ever hit one of them.

   Vertical alignment (align-items) is driven by the Inline Vertical Align
   control (default center). */
.cdswerx-button-widget.cdswerx-button--info:not(.cdswerx-button-type--icon-boxed).cdswerx-button-subtext--left,
.cdswerx-button-widget.cdswerx-button--info:not(.cdswerx-button-type--icon-boxed).cdswerx-button-subtext--right {
    flex-direction: row;
    gap: var(--cds-btn-subtext-gap, 0.6em);
}

/* Icon-boxed + inline: the subtext sits in the text-holder with the label, so
   the holder becomes the row; the boxed icon (+ its side border) stays outside. */
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-subtext--left .cdswerx-button__text-holder,
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-subtext--right .cdswerx-button__text-holder {
    flex-direction: row;
    align-items: center;
    gap: var(--cds-btn-subtext-gap, 0.6em);
}

/* Icon-boxed inline: the label already carries the box padding; keep the
   inline subtext from doubling the block height. */
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-subtext--left .cdswerx-button__subtext,
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-subtext--right .cdswerx-button__subtext {
    padding-right: 1em;
}
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-subtext--left .cdswerx-button__subtext {
    padding-right: 0;
    padding-left: 1em;
}

/* Inline Side Border: divider between primary text and subtext. Total Subtext
   Spacing X splits as X/2 (flex gap) + border + X/2 (subtext padding), so the
   divider always sits exactly halfway. Width matches the icon side border (2px);
   currentColor follows the button text color. The subtext stretches so the
   divider spans the row height. */
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-subtext-side-border:not(.cdswerx-button-type--icon-boxed).cdswerx-button-subtext--left,
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-subtext-side-border:not(.cdswerx-button-type--icon-boxed).cdswerx-button-subtext--right {
    gap: calc(var(--cds-btn-subtext-gap, 0.6em) / 2);
}
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-subtext-side-border.cdswerx-button-subtext--left .cdswerx-button__text-holder,
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-subtext-side-border.cdswerx-button-subtext--right .cdswerx-button__text-holder {
    gap: calc(var(--cds-btn-subtext-gap, 0.6em) / 2);
}
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-subtext-side-border.cdswerx-button-subtext--right .cdswerx-button__subtext {
    border-left: 2px solid currentColor;
    padding-left: calc(var(--cds-btn-subtext-gap, 0.6em) / 2);
    align-self: stretch;
    display: inline-flex;
    align-items: center;
}
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-subtext-side-border.cdswerx-button-subtext--left .cdswerx-button__subtext {
    border-right: 2px solid currentColor;
    padding-right: calc(var(--cds-btn-subtext-gap, 0.6em) / 2);
    align-self: stretch;
    display: inline-flex;
    align-items: center;
}

/* Inline collapses back to stacked on mobile — text beside a button rarely
   fits at small widths. DOM order keeps Left→above / Right→below when stacked.
   The side-border divider is a between-columns affordance, so it collapses too. */
@media (max-width: 767px) {
    .cdswerx-button-widget.cdswerx-button--info:not(.cdswerx-button-type--icon-boxed).cdswerx-button-subtext--left,
    .cdswerx-button-widget.cdswerx-button--info:not(.cdswerx-button-type--icon-boxed).cdswerx-button-subtext--right {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25em;
    }
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-subtext--left .cdswerx-button__text-holder,
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-subtext--right .cdswerx-button__text-holder {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25em;
    }
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-subtext-side-border.cdswerx-button-subtext--left .cdswerx-button__subtext,
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-subtext-side-border.cdswerx-button-subtext--right .cdswerx-button__subtext {
        border-left: 0;
        border-right: 0;
        padding-left: 0;
        padding-right: 0;
        align-self: auto;
        display: inline;
    }
}

/* Content Alignment — how the label/subtext sits INSIDE the button.
   Placed after the info/full rules so it wins on equal specificity.
   Full-width single line → justify-content on the flex button. The button is
   display:inline-flex, so text-align does nothing to the (flex-item) label —
   justify-content is what actually moves it. Excludes Info, which is a flex
   COLUMN and aligns via align-items below.
   Info (stacked) → align-items on the column + text-align on each line. */
.cdswerx-button-widget.cdswerx-button-size--full.cdswerx-button-content-align--left:not(.cdswerx-button--info)   { justify-content: left; }
.cdswerx-button-widget.cdswerx-button-size--full.cdswerx-button-content-align--center:not(.cdswerx-button--info) { justify-content: center; }
.cdswerx-button-widget.cdswerx-button-size--full.cdswerx-button-content-align--right:not(.cdswerx-button--info)  { justify-content: right; }

.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-content-align--left   { align-items: flex-start; }
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-content-align--center { align-items: center; }
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-content-align--right  { align-items: flex-end; }

.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-content-align--left   .cdswerx-button__subtext,
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-content-align--left   .cdswerx-button__text-holder { text-align: left; }
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-content-align--center .cdswerx-button__subtext,
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-content-align--center .cdswerx-button__text-holder { text-align: center; }
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-content-align--right  .cdswerx-button__subtext,
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-content-align--right  .cdswerx-button__text-holder { text-align: right; }

.cdswerx-button-widget.cdswerx-button-size--small {
    padding: 9px 33px
}

.cdswerx-button-widget.cdswerx-button-size--large {
    padding: 15px 52px
}

.cdswerx-button-widget.cdswerx-button-size--full {
    width: 100%;
    text-align: center
}

/* Full-width info variant: force consistent centering for primary + subtext */
.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-size--full {
  align-items: center;
}

.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-size--full .cdswerx-button__text-holder {
  width: 100%;
  justify-content: center;
  text-align: center;
}

.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-size--full .cdswerx-button__subtext {
  display: block;
  width: 100%;
  text-align: center;
}

.cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-size--full .cdswerx-button__text-holder {
  align-items: center;
}

/* ══════════════════════════════════════════════════════════
   Responsive size overrides — tablet (≤1024px)
   ══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
    .cdswerx-button-widget.cdswerx-button-size-tablet--small { padding: 9px 33px; width: auto; }
    .cdswerx-button-widget.cdswerx-button-size-tablet--large { padding: 15px 52px; width: auto; }
    .cdswerx-button-widget.cdswerx-button-size-tablet--full  { width: 100%; text-align: center; }

    /* Info + full-width at tablet */
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-size-tablet--full { align-items: center; }
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-size-tablet--full .cdswerx-button__text-holder { width: 100%; justify-content: center; text-align: center; }
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-size-tablet--full .cdswerx-button__subtext { display: block; width: 100%; text-align: center; }
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-size-tablet--full .cdswerx-button__text-holder { align-items: center; }

    /* Content-align compound selectors at tablet full-width */
    .cdswerx-button-widget.cdswerx-button-size-tablet--full.cdswerx-button-content-align--left:not(.cdswerx-button--info)   { justify-content: left; }
    .cdswerx-button-widget.cdswerx-button-size-tablet--full.cdswerx-button-content-align--center:not(.cdswerx-button--info) { justify-content: center; }
    .cdswerx-button-widget.cdswerx-button-size-tablet--full.cdswerx-button-content-align--right:not(.cdswerx-button--info)  { justify-content: right; }

    /* Icon-boxed text padding at tablet sizes */
    .cdswerx-button-widget.cdswerx-button-type--icon-boxed.cdswerx-button-size-tablet--small .cdswerx-button-text { padding: 7px 15px; }
    .cdswerx-button-widget.cdswerx-button-type--icon-boxed.cdswerx-button-size-tablet--large .cdswerx-button-text { padding: 13px 40px; }
}

/* ══════════════════════════════════════════════════════════
   Responsive size overrides — mobile (≤767px)
   ══════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
    .cdswerx-button-widget.cdswerx-button-size-mobile--small { padding: 9px 33px; width: auto; }
    .cdswerx-button-widget.cdswerx-button-size-mobile--large { padding: 15px 52px; width: auto; }
    .cdswerx-button-widget.cdswerx-button-size-mobile--full  { width: 100%; text-align: center; }

    /* Info + full-width at mobile */
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-size-mobile--full { align-items: center; }
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-size-mobile--full .cdswerx-button__text-holder { width: 100%; justify-content: center; text-align: center; }
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-size-mobile--full .cdswerx-button__subtext { display: block; width: 100%; text-align: center; }
    .cdswerx-button-widget.cdswerx-button--info.cdswerx-button-type--icon-boxed.cdswerx-button-size-mobile--full .cdswerx-button__text-holder { align-items: center; }

    /* Content-align compound selectors at mobile full-width */
    .cdswerx-button-widget.cdswerx-button-size-mobile--full.cdswerx-button-content-align--left:not(.cdswerx-button--info)   { justify-content: left; }
    .cdswerx-button-widget.cdswerx-button-size-mobile--full.cdswerx-button-content-align--center:not(.cdswerx-button--info) { justify-content: center; }
    .cdswerx-button-widget.cdswerx-button-size-mobile--full.cdswerx-button-content-align--right:not(.cdswerx-button--info)  { justify-content: right; }

    /* Icon-boxed text padding at mobile sizes */
    .cdswerx-button-widget.cdswerx-button-type--icon-boxed.cdswerx-button-size-mobile--small .cdswerx-button-text { padding: 7px 15px; }
    .cdswerx-button-widget.cdswerx-button-type--icon-boxed.cdswerx-button-size-mobile--large .cdswerx-button-text { padding: 13px 40px; }
}

.cdswerx-button-widget.cdswerx-button--filled {
    color: #111;
    background-color: #f4f4f4;
    border: 0;
    font-size: 1rem;
    border-style: solid
}

.cdswerx-button-widget.cdswerx-button--filled:hover {
    color: #fff;
    background-color: #111
}

.cdswerx-button-widget.cdswerx-button--outlined {
    color: #111;
    background-color: transparent;
    border: 2px solid #111
}

.cdswerx-button-widget.cdswerx-button--outlined:hover {
    color: #111;
    background-color: #f4f4f4;
    border-color: #f4f4f4
}

.cdswerx-button-widget.cdswerx-button--textual {
    padding: 0 !important;
    background-color: transparent;
    border: 0;
    border-radius: 0;
    overflow: visible
}

.cdswerx-button-widget.cdswerx-button--textual .cdswerx-button-text {
    display: inline-block;
    vertical-align: middle
}

.cdswerx-button-widget.cdswerx-button--textual:hover {
    color: #111
}

/* :not(--info) — this rule is for classic single-line buttons. Info buttons are
   a flex COLUMN (subtext stacking); letting row-reverse win here flattened any
   Info + icon-left button into a row, so Above/Below rendered as inline. Info
   reorders its icon inside .cdswerx-button__text-holder instead; icon-boxed
   Info keeps its own row-reverse via the icon-boxed rules further down. */
.cdswerx-button-widget.cdswerx-button-icon--left:not(.cdswerx-button--info) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: row-reverse
}

/*
 * Defensive guard: link-protection plugins (e.g. Email Encoder Bundle) that
 * obfuscate tel:/mailto: links wrap the link's inner content in an extra
 * <span id="eeb-..."> node. That nests the text + icon out of the <a> flex
 * context, defeating the row-reverse above and shoving the icon to the right.
 * Re-establish the reversed flex row on the injected wrapper so icon--left
 * keeps rendering the icon on the left even when the link is protected.
 */
.cdswerx-button-widget.cdswerx-button-icon--left:not(.cdswerx-button--info) > span[id^="eeb-"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: row-reverse;
}

.cdswerx-button-widget.cdswerx-button-text-underline .cdswerx-button-text {
    position: relative
}

.cdswerx-button-widget.cdswerx-button-text-underline .cdswerx-button-text:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
    transition: background-color .25s ease-in-out, width .36s cubic-bezier(.51, .5, .07, .99);
    backface-visibility: hidden
}

.cdswerx-button-widget.cdswerx-button-text-underline:not(.cdswerx-button-underline-draw):hover .cdswerx-button-text:after {
    width: 0
}

.cdswerx-button-widget.cdswerx-button-text-underline.cdswerx-button-underline--center .cdswerx-button-text:after {
    left: 50%;
    transform: translateX(-50%);
}

.cdswerx-button-widget.cdswerx-button-text-underline.cdswerx-button-underline--right .cdswerx-button-text:after {
    left: auto;
    right: 0;
}

.cdswerx-button-widget.cdswerx-button-underline-draw .cdswerx-button-text {
    overflow: hidden
}

.cdswerx-button-widget.cdswerx-button-underline-draw.cdswerx-button-underline--left:hover .cdswerx-button-text:after,
.cdswerx-button-widget.cdswerx-button-underline-draw.cdswerx-button-underline--right:hover .cdswerx-button-text:after {
    animation: cds-animate-underline-from-left .7s cubic-bezier(.45, .29, 0, .82) forwards
}

.cdswerx-button-widget.cdswerx-button-underline-draw.cdswerx-button-underline--right:hover .cdswerx-button-text:after {
    animation: cds-animate-underline-from-right .7s cubic-bezier(.45, .29, 0, .82) forwards
}

.cdswerx-button-widget .cdswerx-button-icon {
    color: currentColor;
    line-height: 0
}

.cdswerx-button-widget .cdswerx-button-icon.cdswerx-button--icon-color-set {
    transition: color .25s ease-in-out, background-color .25s ease-in-out
}

.cdswerx-button-widget .cdswerx-button-icon svg {
    width: 1em;
    fill: currentColor;
    stroke: currentColor;
    vertical-align: middle
}

/* Default icon margins — Elementor Icon Margin DIMENSIONS control overrides when set */
.cdswerx-button-widget.cdswerx-button-icon--right:not(.cdswerx-button-type--icon-boxed) .cdswerx-button-icon {
    margin-left: 10px
}

.cdswerx-button-widget.cdswerx-button-icon--left:not(.cdswerx-button-type--icon-boxed) .cdswerx-button-icon {
    margin-right: 10px
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal .cdswerx-button-icon-inner,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner {
    position: relative;
    overflow: hidden;
    display: inherit;
    padding: 1px
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner i,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner svg,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal .cdswerx-button-icon-inner i,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal .cdswerx-button-icon-inner svg,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner i,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner svg {
    transition: transform .38s cubic-bezier(.37, .08, .02, .93), opacity .18s ease-in-out;
    will-change: transform
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner i:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner svg:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal .cdswerx-button-icon-inner i:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal .cdswerx-button-icon-inner svg:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner i:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner svg:nth-child(1) {
    transform: translateX(0) translateY(0);
    transition-delay: .1s;
    opacity: 1
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner i:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner svg:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal .cdswerx-button-icon-inner i:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal .cdswerx-button-icon-inner svg:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner i:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner svg:nth-child(2) {
    position: absolute;
    opacity: 0;
    left: 1px;
    top: 1px;
    transition-delay: 0s
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal:hover .cdswerx-button-icon-inner i:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal:hover .cdswerx-button-icon-inner svg:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal:hover .cdswerx-button-icon-inner i:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal:hover .cdswerx-button-icon-inner svg:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical:hover .cdswerx-button-icon-inner i:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical:hover .cdswerx-button-icon-inner svg:nth-child(1) {
    opacity: 0
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal:hover .cdswerx-button-icon-inner i:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal:hover .cdswerx-button-icon-inner svg:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal:hover .cdswerx-button-icon-inner i:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal:hover .cdswerx-button-icon-inner svg:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical:hover .cdswerx-button-icon-inner i:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical:hover .cdswerx-button-icon-inner svg:nth-child(2) {
    transform: translateX(0) translateY(0) translatez(0);
    transition-delay: .25s;
    opacity: 1
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal .cdswerx-button-icon-inner i:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal .cdswerx-button-icon-inner svg:nth-child(2) {
    transform: translateX(-150%) translateY(0)
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal:hover .cdswerx-button-icon-inner i:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal:hover .cdswerx-button-icon-inner svg:nth-child(1) {
    transform: translateX(200%) translateY(0)
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner i,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner svg {
    will-change: transform
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner i:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical .cdswerx-button-icon-inner svg:nth-child(2) {
    transform: translateX(0) translateY(150%) translateZ(0)
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical:hover .cdswerx-button-icon-inner i:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-vertical:hover .cdswerx-button-icon-inner svg:nth-child(1) {
    transform: translateX(0) translateY(-150%) translateZ(0)
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner i,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner svg {
    will-change: transform
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner i:nth-child(2),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal .cdswerx-button-icon-inner svg:nth-child(2) {
    transform: translateX(-100%) translateY(100%) translateZ(0)
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal:hover .cdswerx-button-icon-inner i:nth-child(1),
.cdswerx-button-widget.cdswerx-button-hover--icon-move-diagonal:hover .cdswerx-button-icon-inner svg:nth-child(1) {
    transform: translateX(100%) translateY(-100%) translateZ(0)
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal-short .cdswerx-button-icon-inner i,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal-short .cdswerx-button-icon-inner svg {
    transition: transform .3s cubic-bezier(.37, .08, .02, .93), opacity .2s ease-in-out;
    transform: translateX(0);
    will-change: transform
}

.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal-short:hover .cdswerx-button-icon-inner i,
.cdswerx-button-widget.cdswerx-button-hover--icon-move-horizontal-short:hover .cdswerx-button-icon-inner svg {
    transform: translateX(4px)
}

.cdswerx-button-widget.cdswerx-button-hover--reveal:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: transform .5s cubic-bezier(.54, .3, .02, 1.01)
}

.cdswerx-button-widget.cdswerx-button-hover--reveal .cdswerx-button-icon,
.cdswerx-button-widget.cdswerx-button-hover--reveal .cdswerx-button-text {
    z-index: 1
}

.cdswerx-button-widget.cdswerx-button-hover--reveal:hover:after {
    transform: scaleX(1) scaleY(1)
}

.cdswerx-button-widget.cdswerx-button-hover--reveal.cdswerx-button--outlined:hover {
    background-color: initial
}

.cdswerx-button-widget.cdswerx-button--reveal-horizontal:after {
    transform-origin: left;
    transform: scaleX(0)
}

.cdswerx-button-widget.cdswerx-button--reveal-vertical:after {
    transform-origin: bottom;
    transform: scaleY(0)
}

.cdswerx-button-widget.cdswerx-button-icon-background-hover--reveal .cdswerx-button-icon:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: transform .5s cubic-bezier(.54, .3, .02, 1.01)
}

.cdswerx-button-widget.cdswerx-button-icon-background-hover--reveal .cdswerx-button-icon .cdswerx-button-icon-inner {
    z-index: 1
}

.cdswerx-button-widget.cdswerx-button-icon-background-hover--reveal:hover .cdswerx-button-icon:after {
    transform: scaleX(1) scaleY(1)
}

.cdswerx-button-widget.cdswerx-button-icon-background-hover--reveal-horizontal .cdswerx-button-icon:after {
    transform-origin: left;
    transform: scaleX(0)
}

.cdswerx-button-widget.cdswerx-button-icon-background-hover--reveal-vertical .cdswerx-button-icon:after {
    transform-origin: bottom;
    transform: scaleY(0)
}

.cdswerx-button-widget.cdswerx-button-type--icon-boxed {
    padding: 0 !important;
    flex-direction: row;
    align-items: stretch
}

.cdswerx-button-widget.cdswerx-button-type--icon-boxed.cdswerx-button-icon--left {
    flex-direction: row-reverse
}

.cdswerx-button-widget.cdswerx-button-type--icon-boxed.cdswerx-button-icon--left .cdswerx-button-icon {
    flex-direction: row-reverse
}

.cdswerx-button-widget.cdswerx-button-type--icon-boxed .cdswerx-button-text {
    align-self: center;
    padding: 11px 28px
}

.cdswerx-button-widget.cdswerx-button-type--icon-boxed.cdswerx-button-size--small .cdswerx-button-text {
    padding: 7px 15px
}

.cdswerx-button-widget.cdswerx-button-type--icon-boxed.cdswerx-button-size--large .cdswerx-button-text {
    padding: 13px 40px
}

.cdswerx-button-widget.cdswerx-button-type--icon-boxed .cdswerx-button-icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 11px 0;
    transition: background-color 0.25s ease-in-out;
}

.cdswerx-button-widget.cdswerx-button-type--icon-boxed .cdswerx-button-icon i {
    line-height: inherit
}

.cdswerx-button-widget.cdswerx-button-type--icon-boxed .cdswerx-button-icon svg {
    width: 1em;
    fill: currentColor;
    stroke: currentColor
}

.cdswerx-button-widget.cdswerx-button-type--inner-border .cdswerx-button-inner-border {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    color: #111;
    font-size: 4px;
    transition: color .25s ease-in-out;
    pointer-events: none;
}

/* Icon Side Border Styling - Full height by default like QI */
.cdswerx-button-widget.cdswerx-button-type--icon-boxed .cdswerx-button-border {
    width: 2px;
    background-color: #111;
    transition: background-color .25s ease-in-out;
    /* No height/align-self - stretches to full height naturally via parent's align-items: stretch */
}

.cdswerx-button-widget.cdswerx-button-type--inner-border .cdswerx-button-border-bottom,
.cdswerx-button-widget.cdswerx-button-type--inner-border .cdswerx-button-border-left,
.cdswerx-button-widget.cdswerx-button-type--inner-border .cdswerx-button-border-right,
.cdswerx-button-widget.cdswerx-button-type--inner-border .cdswerx-button-border-top {
    position: absolute;
    background-color: currentColor;
    transition: background-color .25s ease-in-out;
}

.cdswerx-button-widget.cdswerx-button-type--inner-border .cdswerx-button-border-top {
    top: 1em;
    left: 1em;
    height: 2px;
    width: calc(100% - 2em)
}

.cdswerx-button-widget.cdswerx-button-type--inner-border .cdswerx-button-border-right {
    top: 1em;
    right: 1em;
    width: 2px;
    height: calc(100% - 2em)
}

.cdswerx-button-widget.cdswerx-button-type--inner-border .cdswerx-button-border-bottom {
    bottom: 1em;
    right: 1em;
    height: 2px;
    width: calc(100% - 2em)
}

.cdswerx-button-widget.cdswerx-button-type--inner-border .cdswerx-button-border-left {
    bottom: 1em;
    left: 1em;
    width: 2px;
    height: calc(100% - 2em)
}

/* Inner border hover animations for btn widgets */
.cdswerx-button-widget[class*="cdswerx-button-inner-border-hover--draw"] .cdswerx-button-inner-border-copy .cdswerx-button-border-bottom,
.cdswerx-button-widget[class*="cdswerx-button-inner-border-hover--draw"] .cdswerx-button-inner-border-copy .cdswerx-button-border-left,
.cdswerx-button-widget[class*="cdswerx-button-inner-border-hover--draw"] .cdswerx-button-inner-border-copy .cdswerx-button-border-right,
.cdswerx-button-widget[class*="cdswerx-button-inner-border-hover--draw"] .cdswerx-button-inner-border-copy .cdswerx-button-border-top {
    transition: transform .36s ease-out
}

.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-center .cdswerx-button-inner-border-copy .cdswerx-button-border-bottom,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-center .cdswerx-button-inner-border-copy .cdswerx-button-border-top,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-one-point .cdswerx-button-inner-border-copy .cdswerx-button-border-bottom,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-one-point .cdswerx-button-inner-border-copy .cdswerx-button-border-top,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-two-points .cdswerx-button-inner-border-copy .cdswerx-button-border-bottom,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-two-points .cdswerx-button-inner-border-copy .cdswerx-button-border-top {
    transform: scaleX(0)
}

.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-center .cdswerx-button-inner-border-copy .cdswerx-button-border-left,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-center .cdswerx-button-inner-border-copy .cdswerx-button-border-right,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-one-point .cdswerx-button-inner-border-copy .cdswerx-button-border-left,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-one-point .cdswerx-button-inner-border-copy .cdswerx-button-border-right,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-two-points .cdswerx-button-inner-border-copy .cdswerx-button-border-left,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-two-points .cdswerx-button-inner-border-copy .cdswerx-button-border-right {
    transform: scaleY(0)
}

.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-center:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-bottom,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-center:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-left,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-center:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-right,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-center:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-top,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-one-point:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-bottom,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-one-point:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-left,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-one-point:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-right,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-one-point:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-top,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-two-points:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-bottom,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-two-points:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-left,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-two-points:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-right,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--draw-from-two-points:hover .cdswerx-button-inner-border-copy .cdswerx-button-border-top {
    transform: scaleX(1) scaleY(1)
}

/* Inner border remove animations for btn widgets */
.cdswerx-button-widget[class*="cdswerx-button-inner-border-hover--remove"] .cdswerx-button-inner-border .cdswerx-button-border-bottom,
.cdswerx-button-widget[class*="cdswerx-button-inner-border-hover--remove"] .cdswerx-button-inner-border .cdswerx-button-border-left,
.cdswerx-button-widget[class*="cdswerx-button-inner-border-hover--remove"] .cdswerx-button-inner-border .cdswerx-button-border-right,
.cdswerx-button-widget[class*="cdswerx-button-inner-border-hover--remove"] .cdswerx-button-inner-border .cdswerx-button-border-top {
    transition: background-color .25s ease-in-out, transform .36s ease-out;
    transform: scaleX(1) scaleY(1)
}

.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-center:hover .cdswerx-button-inner-border .cdswerx-button-border-bottom,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-center:hover .cdswerx-button-inner-border .cdswerx-button-border-top,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-one-point:hover .cdswerx-button-inner-border .cdswerx-button-border-bottom,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-one-point:hover .cdswerx-button-inner-border .cdswerx-button-border-top,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-two-points:hover .cdswerx-button-inner-border .cdswerx-button-border-bottom,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-two-points:hover .cdswerx-button-inner-border .cdswerx-button-border-top {
    transform: scaleX(0)
}

.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-center:hover .cdswerx-button-inner-border .cdswerx-button-border-left,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-center:hover .cdswerx-button-inner-border .cdswerx-button-border-right,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-one-point:hover .cdswerx-button-inner-border .cdswerx-button-border-left,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-one-point:hover .cdswerx-button-inner-border .cdswerx-button-border-right,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-two-points:hover .cdswerx-button-inner-border .cdswerx-button-border-left,
.cdswerx-button-widget.cdswerx-button-inner-border-hover--remove-to-two-points:hover .cdswerx-button-inner-border .cdswerx-button-border-right {
    transform: scaleY(0)
}

/* --- Move To Outer Edge (square mode, legacy class names) --- */
.cdswerx-button-widget.cdswerx-button-inner-border-mode--square.cdswerx-button-inner-border-hover--move-to-outer-edge,
.cdswerx-button-widget.cdswerx-button-inner-border-mode--square.cdswerx-button-inner-border-hover--move-to-outer-edge {
  overflow: visible;
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--square.cdswerx-button-inner-border-hover--move-to-outer-edge .cdswerx-button-inner-border,
.cdswerx-button-widget.cdswerx-button-inner-border-mode--square.cdswerx-button-inner-border-hover--move-to-outer-edge .cdswerx-button-inner-border {
  top: 1em;
  left: 1em;
  width: calc(100% - 2em);
  height: calc(100% - 2em);
  border: 1px solid currentColor;
  transition: all var(--cds-ib-anim, 0.3s) cubic-bezier(0.46, 0.03, 0.52, 0.96);
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--square.cdswerx-button-inner-border-hover--move-to-outer-edge:hover .cdswerx-button-inner-border,
.cdswerx-button-widget.cdswerx-button-inner-border-mode--square.cdswerx-button-inner-border-hover--move-to-outer-edge:hover .cdswerx-button-inner-border {
  top: -1em;
  left: -1em;
  width: calc(100% + 2em);
  height: calc(100% + 2em);
}

/* --- Rounded Change Color (bordered div, CSS border-radius semantics) --- */
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded:not([class*="cdswerx-button-inner-border-hover--"]) .cdswerx-button-inner-border {
  top: var(--cds-ib-offset, 4px);
  left: var(--cds-ib-offset, 4px);
  width: calc(100% - 2 * var(--cds-ib-offset, 4px));
  height: calc(100% - 2 * var(--cds-ib-offset, 4px));
  border: var(--cds-ib-border-width, 2px) solid currentColor;
}

/* --- Rounded SVG trace container --- */
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded .cdswerx-button-inner-border-svg {
  position: absolute;
  pointer-events: none;
  overflow: visible;
  display: block;
  top: var(--cds-ib-offset, 4px);
  left: var(--cds-ib-offset, 4px);
  width: calc(100% - 2 * var(--cds-ib-offset, 4px));
  height: calc(100% - 2 * var(--cds-ib-offset, 4px));
  color: #111;
  transition: color var(--cds-ib-anim, 0.36s) ease-in-out;
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded .cdswerx-button-inner-border-rect {
  stroke: currentColor;
  stroke-width: var(--cds-ib-border-width, 2px);
  stroke-dasharray: 100;
  stroke-dashoffset: 0;
  transition:
    stroke var(--cds-ib-anim, 0.36s) ease-in-out,
    stroke-dashoffset var(--cds-ib-anim, 0.36s) ease-out;
}

/* Draw From Left Point */
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--draw-from-left-point .cdswerx-button-inner-border-rect {
  stroke-dashoffset: 100;
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--draw-from-left-point:hover .cdswerx-button-inner-border-rect {
  stroke-dashoffset: 0;
}

/* Draw From Right Point */
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--draw-from-right-point .cdswerx-button-inner-border-svg {
  transform: scaleX(-1);
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--draw-from-right-point .cdswerx-button-inner-border-rect {
  stroke-dashoffset: 100;
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--draw-from-right-point:hover .cdswerx-button-inner-border-rect {
  stroke-dashoffset: 0;
}

/* Remove From Left Point */
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--remove-from-left-point .cdswerx-button-inner-border-rect {
  stroke-dashoffset: 0;
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--remove-from-left-point:hover .cdswerx-button-inner-border-rect {
  stroke-dashoffset: -100;
}

/* Remove From Right Point */
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--remove-from-right-point .cdswerx-button-inner-border-svg {
  transform: scaleX(-1);
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--remove-from-right-point .cdswerx-button-inner-border-rect {
  stroke-dashoffset: 0;
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--remove-from-right-point:hover .cdswerx-button-inner-border-rect {
  stroke-dashoffset: -100;
}

/* Remove To Center (rounded) */
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--remove-to-center .cdswerx-button-inner-border {
  top: var(--cds-ib-offset, 4px);
  left: var(--cds-ib-offset, 4px);
  width: calc(100% - 2 * var(--cds-ib-offset, 4px));
  height: calc(100% - 2 * var(--cds-ib-offset, 4px));
  border: var(--cds-ib-border-width, 2px) solid currentColor;
  transition: all var(--cds-ib-anim, 0.3s) cubic-bezier(0.46, 0.03, 0.52, 0.96);
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--remove-to-center:hover .cdswerx-button-inner-border {
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  opacity: 0;
}

/* Move To Outer Edge (rounded) */
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--move-to-outer-edge,
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--move-to-outer-edge {
  overflow: visible;
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--move-to-outer-edge .cdswerx-button-inner-border,
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--move-to-outer-edge .cdswerx-button-inner-border {
  top: var(--cds-ib-offset, 4px);
  left: var(--cds-ib-offset, 4px);
  width: calc(100% - 2 * var(--cds-ib-offset, 4px));
  height: calc(100% - 2 * var(--cds-ib-offset, 4px));
  border: var(--cds-ib-border-width, 2px) solid currentColor;
  transition: all var(--cds-ib-anim, 0.3s) cubic-bezier(0.46, 0.03, 0.52, 0.96);
}

.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--move-to-outer-edge:hover .cdswerx-button-inner-border,
.cdswerx-button-widget.cdswerx-button-inner-border-mode--rounded.cdswerx-button-inner-border-hover--move-to-outer-edge:hover .cdswerx-button-inner-border {
  top: calc(-1 * var(--cds-ib-offset, 4px));
  left: calc(-1 * var(--cds-ib-offset, 4px));
  width: calc(100% + 2 * var(--cds-ib-offset, 4px));
  height: calc(100% + 2 * var(--cds-ib-offset, 4px));
}
