.sfb-progress {
    text-align: right;
}

.sfb-step {
    display: none;
}

.sfb-step.active {
    display: block;
}

.sfb-row-full {
    box-sizing: border-box;
    margin-bottom: 15px;
    width: 100%;
}

.sfb-row-half {
    box-sizing: border-box;
    display: inline-block;
    margin-right: 4%;
    vertical-align: top;
    width: 48%;
}

.sfb-row-half:nth-child(2n) {
    margin-right: 0;
}

.sfb-buttons {
    margin-top: 20px;
    text-align: right;
}

.sfb-error {
    border-color: red !important;
}

.sfb-accordion h4 {
    -ms-flex-align: center;
    -ms-flex-pack: justify;
    background-color: #f5f5f5;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    cursor: pointer;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-size: 16px;
    justify-content: space-between;
    margin: 0;
    padding: 10px;
}

.sfb-acc-icons {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    opacity: .75;
}

.sfb-acc-icons svg {
    height: 16px;
    width: 16px;
}

.sfb-accordion-content {
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-top: none;
    display: none;
    padding: 10px;
}

.sfb-accordion-content .form__fieldset {
    margin-bottom: 1rem;
}

.sfb-accordion-content .form__column:last-child .form__fieldset {
    margin-bottom: 0;
}

.sfb-slotlist {
    -ms-flex-wrap: wrap;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.sfb-slot-btn {
    background-color: #fff;
    border: 1px solid #006f9a;
    border-radius: 6px;
    cursor: pointer;
    font-family: "Hanken Grotesk", sans-serif;
    padding: .75rem;
}

.sfb-slot-btn.is-selected {
    background-color: #006f9a;
    color: rgba(255, 255, 255, .95);
}

.sfb-appointment-widget {
    margin-top: 1rem;
}

.sfb-appointment-widget .sfb-appointment-title {
    display: inline-block;
    font-size: 16px;
    margin-bottom: .5rem;
}

.sfb-paragraph {
    font-size: 16px;
    margin-bottom: .5rem;
}

.sfb-btn-wrap {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    gap: .5rem;
}

.sfb-loader {
    -webkit-animation: sfb-spin .7s linear infinite;
    animation: sfb-spin .7s linear infinite;
    border: 2px solid rgba(0, 0, 0, .2);
    border-radius: 50%;
    border-top-color: #006f9a;
    display: none;
    height: 20px;
    margin-left: 5px;
    width: 20px;
}

.sfb-btn-wrap.is-loading .sfb-loader {
    display: inline-block;
}

@-webkit-keyframes sfb-spin {
    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes sfb-spin {
    to {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

.sfb-success-box {
    background: #f6ffed;
    border: 1px solid #b7eb8f;
    border-radius: 6px;
    padding: 1rem 1.25rem;
}

/* Dark theme overrides */
[data-theme="dark"] .sfb-accordion h4 {
    background-color: #1f1f1f;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .sfb-accordion-content {
    border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .sfb-slot-btn {
    background-color: #1f1f1f;
    border-color: #1f1f1f;
    color: #e3e3e3;
}

[data-theme="dark"] .sfb-slot-btn.is-selected {
    background-color: #0097c6;
    border-color: #0097c6;
}

[data-theme="dark"] .sfb-loader {
    border: 2px solid rgba(255, 255, 255, .1);
    border-top-color: #0097c6;
}

[data-theme="dark"] .sfb-success-box {
    background-color: #233528;
    border-color: #3fa868;
}