/* BE - Focus Defaults */
.btn:not(.dropdown-toggle):focus,
button:focus,
input:focus { outline: none; box-shadow: var(--focusShadow); }

/* BE - Form Defaults */
.form-group { position: relative; }
.form-control:focus { border-color: hsl(var(--siteColor1)); box-shadow: var(--focusShadow); }
.form-group label,
.form-naked-label { font-weight: var(--wBold); margin-bottom: .5rem; }
.form-group .form-check-label { font-weight: var(--wRegular); margin: 0; }
textarea.form-control { min-height: 6rem; }
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0px 62.5rem hsla(var(--siteColor2), 15%) inset; transition: background-color 5000s ease-in-out 0s; }

/* BE - From Validation */
label.error { color: hsl(var(--white)); margin: 0; font-size: 0.75rem; position: absolute; top: 1.25rem; right: 0; background-color: var(--danger); border-radius: 0.25rem; padding: 0.125rem 0.5rem; }
.selectpicker + label.error { top: -1.9rem; }
.form-check label.error { top: 125%; right: auto; white-space: nowrap; }
.form-check label.error:before { display: none; }

/* BE - Button Defaults */
.btn,
button { border: none; border-radius: var(--borderRadiusPill); line-height: 1; display: inline-flex; justify-content: center; align-items: center; transition: all ease-in-out 0.4s; position: relative; touch-action: none; /* touch-action prevents zooming for mobile on accidental double tap, helps with counter buttons too */ }
button:hover { outline: none; box-shadow: var(--focusShadow); }

/* BE - Button Sizes */
.btn,
button { padding: 0.5rem 1rem; color: hsl(var(--bodyFontColor)); }
.btn-sm { padding: 0.25rem 0.75rem; }
.btn-sm .icon { width: 0.75rem; height: 0.75rem; }
.btn-md { padding: 0.75rem 1.5rem; }
.btn-lg { padding: 1.25rem 2rem; }
.btn-lg .icon { width: 1.5rem; height: 1.5rem; }

/* BE - Button Has Icon First or Last or Only */
.btn .icon:first-child { margin-right: 0.5rem; }
.btn .icon:last-child { margin-left: 0.5rem; }
.btn .icon:only-child { margin: 0; }

/* BE - Button Styles */
.btn-outline { color: hsl(var(--siteColor1)); background-color: hsl(var(--white)); border: 0.0625rem hsla(var(--siteColor1), 25%) solid; border-radius: var(--borderRadiusPill); transition: all ease-in-out 0.4s; }
.btn-outline:hover { color: hsl(var(--siteColor1)); }
.btn-outline .icon { width: 1rem; height: 1rem; color: hsl(var(--siteColor1)); }

/* Button w/Loading Spinner */
.btn-loader { position: relative; }
.btn-loader.loading { word-break: break-all;
  display: grid;
  grid-template-columns: auto auto;
  grid-gap: 1rem;
}
.btn-loader.loading:before { content: ""; display: inline-block; animation: spin-animation 0.75s infinite; width: 1.5rem; height: 1.5rem; border: 0.25rem solid currentColor; border-radius: 50%; border-top-color: transparent; }


/* BE - Checkbox Defaults - (radio shares some as well) */
.be-checkbox,
.be-radio { position: relative; }
.be-checkbox .form-check-label,
.be-radio .form-check-label { cursor: pointer; margin: 0; position: relative; display: flex; align-items: center; }
.be-checkbox .form-check-label:hover:before,
.be-radio .form-check-label:hover:before { background-color: hsla(var(--siteColor1), 15%); }
.be-checkbox .form-check-label:before,
.be-radio .form-check-label:before { content: ""; display: inline-block; margin-right: 0.5rem; padding: 0.75rem; background-size: 75%; background-position: center center; background-repeat: no-repeat; background-color: hsl(var(--white)); border: 0.0625rem hsla(var(--black), 0.4) solid; border-radius: var(--borderRadiusCheckbox); transition: all ease-in-out 0.15s; }
.be-checkbox input[type=checkbox],
.be-radio input[type=radio] { transform: translateX(-100vw); position: absolute; }
.be-checkbox input[type=checkbox]:focus ~ .form-check-label:before,
.be-radio input[type=radio]:focus ~ .form-check-label:before { box-shadow: var(--focusShadow); }
.be-checkbox input[type=checkbox]:checked ~ .form-check-label:before,
.be-radio input[type=radio]:checked ~ .form-check-label:before { background-color: hsl(var(--siteColor1)); border: 0.0625rem hsl(var(--siteColor1)) solid; background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="white" d="M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z"></path></svg>'); } /* SVG inlined for checkboxes */

/* BE - Radio Defaults Overwrites */
.be-radio .form-check-label:before { background-size: 50%; border-radius: var(--borderRadiusCircle); }
.be-radio input[type=radio]:checked ~ .form-check-label:before { background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="white" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"></path></svg>'); } /* SVG inlined for checkboxes */

/* BE - Stars - Radio overwrite for Star Selection */
.be-radio-star-group { display: inline-flex; unicode-bidi: bidi-override; direction: rtl; }
.be-radio-star-group > [type=radio] { position: absolute; transform: translateX(-100vw); }
.be-radio-star-group > [type=radio] + label { cursor: pointer; margin: 0 0.0625rem; display: flex; line-height: 1; }
.be-radio-star-group > [type=radio] + label:before { content: ""; display: block; width: 1.5rem; height: 1.5rem; background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="gray" d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"></path></svg>'); background-repeat: no-repeat; background-size: 100% 100%; }
.be-radio-star-group > [type=radio] + label:hover:before,
.be-radio-star-group > [type=radio] + label:hover ~ label:before,
.be-radio-star-group > [type=radio]:checked ~ label:before { background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="gold" d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"></path></svg>'); }
.be-radio-star-group > .be-radio-star-clear[type=radio] + label { width: 20px; margin-left: -20px; }
.be-radio-star-group > .be-radio-star-clear[type=radio] + label:before { width: 20px; height: 24px; }
.be-radio-star-group:hover > [type=radio] + label:before { background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="gray" d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"></path></svg>'); }
.be-radio-star-group:hover > [type=radio] + label:hover:before,
.be-radio-star-group:hover > [type=radio] + label:hover ~ label:before { content: ""; background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="gold" d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"></path></svg>'); }

/* BE - Opt In */
.be-opt-in { padding: 1.25rem; border: 0.0625rem hsla(var(--black), 10%) solid; border-radius: var(--borderRadiusCheckbox); }
.be-opt-in .form-check-label { font-weight: var(--wRegular); align-items: flex-start; }

/* BE - Bootstrap Select Defaults */
body .bootstrap-select .dropdown-toggle:focus { outline: none !important; }
body .bootstrap-select .dropdown-item.active,
body .bootstrap-select .dropdown-item:hover,
body .bootstrap-select .dropdown-item:focus { background-color: hsla(var(--siteColor1), 10%); color: hsl(var(--siteColor1)); }
body .bootstrap-select .dropdown-toggle:after { width: 0.625rem; height: 0.25rem; color: hsl(var(--siteColor1)); }
body .bootstrap-select .dropdown-toggle { background-color: hsl(var(--white)); padding: 0.65rem 1.15rem; }
body .bootstrap-select .dropdown-menu { padding: 0; border: none; border-radius: var(--borderRadiusCheckbox); box-shadow: var(--dropShadow); }
body .bootstrap-select .dropdown-menu div.inner { padding: 0.5rem; }
body .bootstrap-select .dropdown-item { padding: 0.5rem 1.5rem; border-radius: var(--borderRadiusPill); }
body .bootstrap-select .dropdown-menu .bs-searchbox { padding: 0.5rem 0.5rem 0; margin-bottom: 0.125rem; }
body .bootstrap-select .dropdown-menu .form-control { border-radius: var(--borderRadiusCheckbox); }
body .bootstrap-select .dropdown-menu .form-control:hover,
body .bootstrap-select .dropdown-menu .form-control:active,
body .bootstrap-select .dropdown-menu .form-control:focus { border: none; box-shadow: var(--focusShadow); }
body .bootstrap-select .dropdown-toggle .filter-option-inner-inner { color: hsl(var(--bodyFontColor)); }
body .bootstrap-select .dropdown-menu li a.opt { padding-left: 1.5rem; }

/* Override for the sign me up label on /contact-us */
.contact-us-label { text-indent: -2.125rem; padding-left: 2.125rem; display: block !important; font-size: .9rem; }
.contact-us-label:before { position: relative; top: 1rem; }
.contact-us-label a { text-indent: .25rem; }