/* ─── Contact Form Button ─── */

/* ── Wrapper positioning ── */
.cfb-wrapper {
    position: fixed;
    z-index: 999999;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

/* Right positions */
.cfb-wrapper[data-position^="right"] {
    right: 0;
    align-items: flex-end;
}

/* Left positions */
.cfb-wrapper[data-position^="left"] {
    left: 0;
    align-items: flex-start;
}

/* Vertical alignment: center */
.cfb-wrapper[data-position$="-center"] {
    top: 50%;
    transform: translateY(-50%);
}

/* Vertical alignment: top */
.cfb-wrapper[data-position$="-top"] {
    top: 0;
}

/* Vertical alignment: bottom */
.cfb-wrapper[data-position$="-bottom"] {
    bottom: 0;
}

/* ── Toggle button ── */
/* High specificity to override Elementor button resets */
.cfb-wrapper button.cfb-toggle[type="button"] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--cfb-padding);
    background: var(--cfb-bg);
    color: var(--cfb-icon-color);
    border: var(--cfb-btn-border);
    border-radius: var(--cfb-btn-border-radius);
    cursor: pointer;
    transition: background 0.2s ease;
    flex-shrink: 0;
    box-shadow: none;
    outline: none;
    text-decoration: none;
    text-transform: none;
    letter-spacing: normal;
    line-height: 1;
    min-width: 0;
    min-height: 0;
    margin: 0;
    order: 2;
}

.cfb-wrapper button.cfb-toggle[type="button"]:hover,
.cfb-wrapper button.cfb-toggle[type="button"]:focus-visible {
    background: var(--cfb-bg-hover);
    color: var(--cfb-icon-color);
    border: var(--cfb-btn-border);
    box-shadow: none;
    text-decoration: none;
}

/* ── Icons ── */
.cfb-wrapper .cfb-icon {
    width: var(--cfb-icon-size);
    height: var(--cfb-icon-size);
    display: block;
}

.cfb-wrapper .cfb-icon--close {
    display: none;
}

.cfb-wrapper.is-open .cfb-icon--open {
    display: none;
}

.cfb-wrapper.is-open .cfb-icon--close {
    display: block;
}

/* ── Panel ── */
.cfb-wrapper .cfb-panel {
    order: 1;
    width: var(--cfb-panel-width);
    max-height: var(--cfb-panel-max-height, 80vh);
    background: var(--cfb-panel-bg);
    border-radius: var(--cfb-panel-border-radius, 8px);
    border: var(--cfb-panel-border, none);
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.15);
    overflow-y: auto;
    margin-bottom: var(--cfb-panel-gap);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
    pointer-events: none;
}

.cfb-wrapper.is-open .cfb-panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.cfb-wrapper .cfb-panel__inner {
    padding: var(--cfb-panel-padding, 24px);
}
