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

/* Form Group */
.form-group { position: relative; }
.form-control:focus { border-color: hsl(var(--siteColor1)); box-shadow: var(--focusShadow); }
.form-group label { font-weight: var(--wMedium); margin-bottom: 0.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; }

/* 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; }

/* Button Defaults */
.btn,
button { border: none; border-radius: var(--borderRadiusPill); color: hsl(var(--bodyFontColor)); 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 */ }
.btn:hover,
button:hover { outline: none; box-shadow: var(--focusShadow); }

/* Button Sizes */
.btn,
button { padding: 0.9375rem 1.25rem; }
.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; }

/* 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; }

/* 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; }

/* Inputs */
input[type=text],
input[type=email],
input[type=search],
input[type=password],
input[type=number],
input[type=date],
input[type=tel] { display: block; width: 100%; /* height: calc(1.5em + 0.75rem + 0.125rem); */ padding: 0.625rem; font-size: 1rem; font-weight: var(--wNormal); line-height: 1.5; color: var(--bodyFontColor); background-color: hsl(var(--white)); background-clip: padding-box; border: 0.0625rem solid #ced4da; border-radius: 0.25rem; transition: all 0.4s ease-in-out; }
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; }

/* Checkboxes/Radio Buttons */
.checkbox,
.radio { position: relative; }
.checkbox .form-check-label,
.radio .form-check-label { cursor: pointer; margin: 0; position: relative; display: flex; align-items: center; line-height: 1.5; text-align: left; }
.checkbox .form-check-label:hover:before,
.radio .form-check-label:hover:before { background-color: hsla(var(--siteColor1), 15%); }
.checkbox .form-check-label:before,
.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; }
.checkbox input[type=checkbox],
.radio input[type=radio] { transform: translateX(-100vw); position: absolute; }
.checkbox input[type=checkbox]:focus ~ .form-check-label:before,
.radio input[type=radio]:focus ~ .form-check-label:before { box-shadow: var(--focusShadow); }
.checkbox input[type=checkbox]:checked ~ .form-check-label:before,
.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 */ }
.radio .form-check-label:before { background-size: 50%; border-radius: var(--borderRadiusCircle); }
.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 */ }

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

/* BE - Bootstrap Select Defaults */
body .bootstrap-select,
body .bootstrap-select > .dropdown-toggle { width: 100% !important; height: 100%; font-size: 1rem; font-weight: var(--wNormal); line-height: 1.5; color: var(--bodyFontColor); text-transform: capitalize; }
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; border: 0.0625rem solid #ced4da; border-radius: var(--borderRadiusCheckbox); height: 2.5rem; }
body .bootstrap-select .dropdown-menu { min-width: 10rem !important; max-width: 20rem; 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; }