.elementor-widget-cee_organic_button {
    --cee-button-justify: flex-start;
}

.elementor-widget-cee_organic_button.cee-button-align-left-,
.elementor-widget-cee_organic_button.cee-button-alignleft-left,
.elementor-widget-cee_organic_button.cee-button-align-left {
    --cee-button-justify: flex-start;
}

.elementor-widget-cee_organic_button.cee-button-align-center {
    --cee-button-justify: center;
}

.elementor-widget-cee_organic_button.cee-button-align-right {
    --cee-button-justify: flex-end;
}

.elementor-widget-cee_organic_button.cee-button-align-justify {
    --cee-button-justify: stretch;
}

.elementor-widget-cee_organic_button .elementor-widget-container {
    display: flex;
    justify-content: var(--cee-button-justify, flex-start);
}

.cee-organic-button {
    --cee-button-bg: #111111;
    --cee-button-text: #ffffff;
    --cee-button-hover-bg: #c6a15b;
    --cee-button-hover-text: #111111;
    --cee-button-pressed-bg: #8b6b33;
    --cee-button-pressed-text: #ffffff;
    --cee-button-focus: #111111;
    --cee-button-duration: 500ms;
    --cee-button-easing: cubic-bezier(.2,.8,.2,1);
    --cee-button-press-scale: .97;
    --cee-mask-x: 50%;
    --cee-mask-y: 50%;

    position: relative;
    display: inline-grid;
    place-items: stretch;
    min-width: 0;
    min-height: 58px;
    isolation: isolate;
    text-decoration: none !important;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transform: translateZ(0) scale(1);
    transform-origin: center;
    transition: transform 150ms ease;
}

.elementor-widget-cee_organic_button.cee-button-align-justify .cee-organic-button {
    width: 100%;
}

.cee-organic-button:focus-visible {
    outline: 2px solid var(--cee-button-focus);
    outline-offset: 4px;
}

.cee-organic-button__shape-stack,
.cee-organic-button__shape,
.cee-organic-button__reveal,
.cee-organic-button__content,
.cee-organic-button__content-reveal {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.cee-organic-button__shape-stack {
    z-index: 0;
    pointer-events: none;
    transform-origin: center;
}

.cee-organic-button__shape {
    overflow: visible;
}

.cee-organic-button__shape path {
    vector-effect: non-scaling-stroke;
}

.cee-organic-button__shape--base path {
    fill: var(--cee-button-bg);
}

.cee-organic-button__shape--hover path {
    fill: var(--cee-button-hover-bg);
}

.cee-organic-button__reveal,
.cee-organic-button__content-reveal {
    pointer-events: none;
    transition-property: clip-path;
    transition-duration: var(--cee-button-duration);
    transition-timing-function: var(--cee-button-easing);
    will-change: clip-path;
}

.cee-organic-button__content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: inherit;
    padding: 17px 30px;
    color: var(--cee-button-text);
    line-height: 1.15;
    text-align: center;
    white-space: nowrap;
    transition: color 120ms linear;
}

.cee-organic-button__content--hover {
    color: var(--cee-button-hover-text);
}

.cee-organic-button__content-reveal {
    z-index: 3;
    overflow: hidden;
}

.cee-organic-button__icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

.cee-organic-button__icon i,
.cee-organic-button__icon svg {
    display: block;
    width: 1em;
    height: 1em;
    fill: currentColor;
    color: currentColor;
}

/* Circle / ellipse reveal. */
.cee-organic-button--mask-circle .cee-organic-button__reveal,
.cee-organic-button--mask-circle .cee-organic-button__content-reveal {
    clip-path: circle(0% at var(--cee-mask-x) var(--cee-mask-y));
}

.cee-organic-button--mask-circle:is(:hover, :focus-visible) .cee-organic-button__reveal,
.cee-organic-button--mask-circle:is(:hover, :focus-visible) .cee-organic-button__content-reveal {
    clip-path: circle(145% at var(--cee-mask-x) var(--cee-mask-y));
}

.cee-organic-button--mask-ellipse .cee-organic-button__reveal,
.cee-organic-button--mask-ellipse .cee-organic-button__content-reveal {
    clip-path: ellipse(0% 0% at var(--cee-mask-x) var(--cee-mask-y));
}

.cee-organic-button--mask-ellipse:is(:hover, :focus-visible) .cee-organic-button__reveal,
.cee-organic-button--mask-ellipse:is(:hover, :focus-visible) .cee-organic-button__content-reveal {
    clip-path: ellipse(150% 160% at var(--cee-mask-x) var(--cee-mask-y));
}

/* Diamond reveal. */
.cee-organic-button--mask-diamond .cee-organic-button__reveal,
.cee-organic-button--mask-diamond .cee-organic-button__content-reveal {
    clip-path: polygon(var(--cee-mask-x) var(--cee-mask-y), var(--cee-mask-x) var(--cee-mask-y), var(--cee-mask-x) var(--cee-mask-y), var(--cee-mask-x) var(--cee-mask-y));
}

.cee-organic-button--mask-diamond:is(:hover, :focus-visible) .cee-organic-button__reveal,
.cee-organic-button--mask-diamond:is(:hover, :focus-visible) .cee-organic-button__content-reveal {
    clip-path: polygon(50% -70%, 170% 50%, 50% 170%, -70% 50%);
}

/* Directional reveals. */
.cee-organic-button--mask-horizontal .cee-organic-button__reveal,
.cee-organic-button--mask-horizontal .cee-organic-button__content-reveal {
    clip-path: inset(0 100% 0 0);
}

.cee-organic-button--mask-horizontal:is(:hover, :focus-visible) .cee-organic-button__reveal,
.cee-organic-button--mask-horizontal:is(:hover, :focus-visible) .cee-organic-button__content-reveal {
    clip-path: inset(0 0 0 0);
}

.cee-organic-button--mask-vertical .cee-organic-button__reveal,
.cee-organic-button--mask-vertical .cee-organic-button__content-reveal {
    clip-path: inset(100% 0 0 0);
}

.cee-organic-button--mask-vertical:is(:hover, :focus-visible) .cee-organic-button__reveal,
.cee-organic-button--mask-vertical:is(:hover, :focus-visible) .cee-organic-button__content-reveal {
    clip-path: inset(0 0 0 0);
}

.cee-organic-button--mask-diagonal .cee-organic-button__reveal,
.cee-organic-button--mask-diagonal .cee-organic-button__content-reveal {
    clip-path: polygon(0 0, 0 0, 0 0, 0 0);
}

.cee-organic-button--mask-diagonal:is(:hover, :focus-visible) .cee-organic-button__reveal,
.cee-organic-button--mask-diagonal:is(:hover, :focus-visible) .cee-organic-button__content-reveal {
    clip-path: polygon(0 0, 140% 0, 100% 140%, 0 100%);
}

/* Fixed mask origins. Cursor is updated by JS. */
.cee-organic-button--origin-center { --cee-mask-x: 50%; --cee-mask-y: 50%; }
.cee-organic-button--origin-left { --cee-mask-x: 0%; --cee-mask-y: 50%; }
.cee-organic-button--origin-right { --cee-mask-x: 100%; --cee-mask-y: 50%; }
.cee-organic-button--origin-top { --cee-mask-x: 50%; --cee-mask-y: 0%; }
.cee-organic-button--origin-bottom { --cee-mask-x: 50%; --cee-mask-y: 100%; }
.cee-organic-button--origin-top-left { --cee-mask-x: 0%; --cee-mask-y: 0%; }
.cee-organic-button--origin-top-right { --cee-mask-x: 100%; --cee-mask-y: 0%; }
.cee-organic-button--origin-bottom-left { --cee-mask-x: 0%; --cee-mask-y: 100%; }
.cee-organic-button--origin-bottom-right { --cee-mask-x: 100%; --cee-mask-y: 100%; }

/* Pressed/push state overrides both visible layers. */
.cee-organic-button:active {
    transform: translateZ(0) scale(var(--cee-button-press-scale));
}

.cee-organic-button:active .cee-organic-button__shape--base path,
.cee-organic-button:active .cee-organic-button__shape--hover path {
    fill: var(--cee-button-pressed-bg);
}

.cee-organic-button:active .cee-organic-button__content,
.cee-organic-button:active .cee-organic-button__content--hover {
    color: var(--cee-button-pressed-text);
}

.cee-organic-button:active .cee-organic-button__reveal,
.cee-organic-button:active .cee-organic-button__content-reveal {
    clip-path: inset(0 0 0 0);
    transition-duration: 80ms;
}

@media (prefers-reduced-motion: reduce) {
    .cee-organic-button,
    .cee-organic-button__reveal,
    .cee-organic-button__content-reveal {
        transition-duration: 0.01ms !important;
    }
}
