body.b2sme-theme form.b2sme-configurator {
    --b2sme-form-radius: min(var(--b2sme-radius), .6rem);
    --b2sme-form-gap: .65rem;
}

body.b2sme-radius--square form.b2sme-configurator { --b2sme-form-radius: 0; }
body.b2sme-radius--soft form.b2sme-configurator { --b2sme-form-radius: .4rem; }
body.b2sme-radius--round form.b2sme-configurator { --b2sme-form-radius: .65rem; }

body.b2sme-theme form.b2sme-configurator fieldset,
body.b2sme-theme form.b2sme-configurator .widget-radio fieldset,
body.b2sme-theme form.b2sme-configurator .widget-checkbox fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

body.b2sme-theme form.b2sme-configurator .widget-radio,
body.b2sme-theme form.b2sme-configurator .widget-checkbox,
body.b2sme-theme form.b2sme-configurator .b2sme-choice-group {
    display: grid;
    gap: var(--b2sme-form-gap);
    margin: 0;
    padding: 0;
    border: 0;
}

body.b2sme-theme form.b2sme-configurator .widget-radio > legend,
body.b2sme-theme form.b2sme-configurator .widget-checkbox > legend,
body.b2sme-theme form.b2sme-configurator .widget-radio fieldset > legend,
body.b2sme-theme form.b2sme-configurator .widget-checkbox fieldset > legend {
    width: 100%;
    margin: 0 0 .45rem;
    padding: 0;
    color: #fff;
    font-size: .95rem;
    font-weight: 700;
    line-height: 1.35;
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice {
    position: relative;
    display: block;
    margin: 0;
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice + .b2sme-choice {
    margin-top: var(--b2sme-form-gap);
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice > input[type="radio"],
body.b2sme-theme form.b2sme-configurator .b2sme-choice > input[type="checkbox"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice > label {
    position: relative;
    display: flex;
    width: 100%;
    min-height: 3.15rem;
    margin: 0;
    padding: .72rem 2.8rem .72rem .9rem;
    align-items: center;
    justify-content: flex-start;
    border: 1px solid rgb(255 255 255 / .12);
    border-radius: var(--b2sme-form-radius);
    background: #fff;
    color: var(--b2sme-secondary);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    box-shadow: none;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice > label::after {
    content: "";
    position: absolute;
    top: 50%;
    right: .85rem;
    width: 1rem;
    height: 1rem;
    border: 2px solid #b8bdc6;
    border-radius: 50%;
    background: #fff;
    transform: translateY(-50%);
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice > input[type="checkbox"] + label::after {
    border-radius: max(.12rem, calc(var(--b2sme-form-radius) * .5));
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice > label:hover {
    border-color: color-mix(in srgb, var(--b2sme-primary) 38%, #dfe3e8);
    transform: translateY(-1px);
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice > input:checked + label {
    border-color: var(--b2sme-primary);
    background: color-mix(in srgb, var(--b2sme-primary) 10%, #fff);
    color: var(--b2sme-primary);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--b2sme-primary) 22%, transparent);
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice > input[type="radio"]:checked + label::after {
    border-color: var(--b2sme-primary);
    background: var(--b2sme-primary);
    box-shadow: inset 0 0 0 .23rem #fff;
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice > input[type="checkbox"]:checked + label::after {
    border-color: var(--b2sme-primary);
    background: var(--b2sme-primary);
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice > input[type="checkbox"]:checked + label::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: 50%;
    right: 1.07rem;
    width: .44rem;
    height: .24rem;
    border-left: .13rem solid #fff;
    border-bottom: .13rem solid #fff;
    transform: translateY(-72%) rotate(-45deg);
}

body.b2sme-theme form.b2sme-configurator .b2sme-choice > input:focus-visible + label {
    outline: .16rem solid color-mix(in srgb, var(--b2sme-accent) 72%, #fff);
    outline-offset: .12rem;
}

body.b2sme-theme form.b2sme-configurator .b2sme-floating-field,
body.b2sme-theme form.b2sme-configurator .b2sme-select-field {
    position: relative;
    margin-block: .45rem;
}

body.b2sme-theme form.b2sme-configurator .b2sme-floating-field input,
body.b2sme-theme form.b2sme-configurator .b2sme-floating-field textarea {
    width: 100%;
    min-height: 3.15rem;
    padding: 1.18rem .85rem .38rem;
    border: 1px solid rgb(255 255 255 / .14);
    border-radius: var(--b2sme-form-radius);
    background: #fff;
    color: var(--b2sme-secondary);
    outline: none;
    box-shadow: none;
    transition: border-color .18s ease, box-shadow .18s ease;
}

body.b2sme-theme form.b2sme-configurator .b2sme-floating-field textarea {
    min-height: 7rem;
    padding-top: 1.35rem;
}

body.b2sme-theme form.b2sme-configurator .b2sme-floating-field label,
body.b2sme-theme form.b2sme-configurator .b2sme-select-field > label {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: .85rem;
    max-width: calc(100% - 3rem);
    margin: 0;
    color: #7d8490;
    font-size: .94rem;
    font-weight: 600;
    line-height: 1;
    pointer-events: none;
    transform: translateY(-50%);
    transform-origin: left center;
    transition: top .16s ease, transform .16s ease, color .16s ease;
}

body.b2sme-theme form.b2sme-configurator .b2sme-floating-field textarea + label { top: 1.22rem; }

body.b2sme-theme form.b2sme-configurator .b2sme-floating-field:focus-within label,
body.b2sme-theme form.b2sme-configurator .b2sme-floating-field.has-value label,
body.b2sme-theme form.b2sme-configurator .b2sme-floating-field input:not(:placeholder-shown) + label,
body.b2sme-theme form.b2sme-configurator .b2sme-floating-field textarea:not(:placeholder-shown) + label,
body.b2sme-theme form.b2sme-configurator .b2sme-select-field.is-open > label,
body.b2sme-theme form.b2sme-configurator .b2sme-select-field.has-value > label {
    top: .5rem;
    color: var(--b2sme-primary);
    transform: translateY(0) scale(.76);
}

body.b2sme-theme form.b2sme-configurator .b2sme-floating-field:focus-within input,
body.b2sme-theme form.b2sme-configurator .b2sme-floating-field:focus-within textarea {
    border-color: color-mix(in srgb, var(--b2sme-primary) 55%, #fff);
    box-shadow: 0 0 0 .14rem color-mix(in srgb, var(--b2sme-primary) 12%, transparent);
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field > select {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field__trigger {
    position: relative;
    display: flex;
    width: 100%;
    min-height: 3.15rem;
    padding: 1.18rem 2.7rem .38rem .85rem;
    align-items: center;
    border: 1px solid rgb(255 255 255 / .14);
    border-radius: var(--b2sme-form-radius);
    background: #fff;
    color: var(--b2sme-secondary);
    font: inherit;
    font-weight: 650;
    text-align: left;
    cursor: pointer;
    box-shadow: none;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field__trigger::after {
    content: "";
    position: absolute;
    top: 50%;
    right: .95rem;
    width: .5rem;
    height: .5rem;
    border-right: .13rem solid var(--b2sme-secondary);
    border-bottom: .13rem solid var(--b2sme-secondary);
    transform: translateY(-65%) rotate(45deg);
    transition: transform .18s ease;
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field.is-open .b2sme-select-field__trigger {
    border-color: color-mix(in srgb, var(--b2sme-primary) 55%, #fff);
    box-shadow: 0 0 0 .14rem color-mix(in srgb, var(--b2sme-primary) 12%, transparent);
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field.is-open .b2sme-select-field__trigger::after {
    transform: translateY(-25%) rotate(225deg);
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field__trigger:focus-visible {
    outline: .16rem solid color-mix(in srgb, var(--b2sme-accent) 72%, #fff);
    outline-offset: .12rem;
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field__options {
    position: absolute;
    z-index: 20;
    top: calc(100% + .35rem);
    left: 0;
    right: 0;
    display: grid;
    max-height: 14rem;
    padding: .35rem;
    overflow-y: auto;
    border: 1px solid color-mix(in srgb, var(--b2sme-border) 72%, transparent);
    border-radius: var(--b2sme-form-radius);
    background: #fff;
    box-shadow: 0 .8rem 2rem rgb(10 15 26 / .18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-.35rem);
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field.is-open .b2sme-select-field__options {
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
    transition-delay: 0s;
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field__option {
    width: 100%;
    padding: .72rem .8rem;
    border: 0;
    border-radius: max(.15rem, calc(var(--b2sme-form-radius) * .7));
    background: transparent;
    color: var(--b2sme-secondary);
    font: inherit;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field__option:hover,
body.b2sme-theme form.b2sme-configurator .b2sme-select-field__option:focus-visible {
    background: color-mix(in srgb, var(--b2sme-primary) 8%, #fff);
    color: var(--b2sme-primary);
    outline: none;
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field__option.is-selected {
    background: color-mix(in srgb, var(--b2sme-primary) 12%, #fff);
    color: var(--b2sme-primary);
}

body.b2sme-theme form.b2sme-configurator .b2sme-select-field__option:disabled {
    opacity: .45;
    cursor: not-allowed;
}

@media (prefers-reduced-motion: reduce) {
    body.b2sme-theme form.b2sme-configurator .b2sme-floating-field label,
    body.b2sme-theme form.b2sme-configurator .b2sme-floating-field input,
    body.b2sme-theme form.b2sme-configurator .b2sme-floating-field textarea,
    body.b2sme-theme form.b2sme-configurator .b2sme-select-field > label,
    body.b2sme-theme form.b2sme-configurator .b2sme-select-field__trigger,
    body.b2sme-theme form.b2sme-configurator .b2sme-select-field__trigger::after,
    body.b2sme-theme form.b2sme-configurator .b2sme-select-field__options,
    body.b2sme-theme form.b2sme-configurator .b2sme-choice > label,
    body.b2sme-theme form.b2sme-configurator .b2sme-choice > label::after {
        transition: none;
    }
}
