/* Fill short viewports while keeping the footer in normal document flow. */
body.bh-site-shell {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
}

.bh-site-shell > .bh-header,
.bh-site-shell > .bh-footer {
    flex-shrink: 0;
}

.bh-site-shell > main {
    flex: 1 0 auto;
    min-width: 0;
}

.bh-site-shell > .bh-footer {
    margin-top: 0;
}

/* Shared field focus, including FormBuilder and customer account forms. */
body.bh-site-shell :is(input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]), select, textarea) {
    border-radius: 0 !important;
}
body.bh-site-shell :is(input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]), select, textarea):not(:focus):not([aria-invalid="true"]):not(.uk-form-danger) {
    border-color: var(--color-border) !important;
}
body.bh-site-shell {
    --field-focus-color: var(--color-primary);
    --field-choice-focus-width: 2px;
}

body.bh-site-shell :is(input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
    border-color: var(--field-focus-color) !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Native choice controls still need a visible keyboard focus indicator. */
body.bh-site-shell input:is([type="checkbox"], [type="radio"]):focus-visible {
    outline: var(--field-choice-focus-width) solid var(--field-focus-color) !important;
}
