*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
}

img,
svg{
  vertical-align:middle;
}

button,
input,
select,
textarea{
  margin:0;
  font:inherit;
}

button,
select{
  text-transform:none;
}

button,
[type="button"],
[type="submit"]{
  -webkit-appearance:button;
}

a{
  color:inherit;
}

.container,
.container-fluid{
  width:100%;
  margin-right:auto;
  margin-left:auto;
  padding-right:calc(var(--bs-gutter-x, 1.5rem) * .5);
  padding-left:calc(var(--bs-gutter-x, 1.5rem) * .5);
}

@media (min-width:576px){
  .container{max-width:540px;}
}

@media (min-width:768px){
  .container{max-width:720px;}
}

@media (min-width:992px){
  .container{max-width:960px;}
}

@media (min-width:1200px){
  .container{max-width:1140px;}
}

@media (min-width:1400px){
  .container{max-width:1320px;}
}

.row{
  --bs-gutter-x:1.5rem;
  --bs-gutter-y:0;
  display:flex;
  flex-wrap:wrap;
  margin-top:calc(-1 * var(--bs-gutter-y));
  margin-right:calc(-.5 * var(--bs-gutter-x));
  margin-left:calc(-.5 * var(--bs-gutter-x));
}

.row > *{
  flex-shrink:0;
  width:100%;
  max-width:100%;
  padding-right:calc(var(--bs-gutter-x) * .5);
  padding-left:calc(var(--bs-gutter-x) * .5);
  margin-top:var(--bs-gutter-y);
}

.g-3{--bs-gutter-x:1rem;--bs-gutter-y:1rem;}
.g-4{--bs-gutter-x:1.5rem;--bs-gutter-y:1.5rem;}
.g-5{--bs-gutter-x:3rem;--bs-gutter-y:3rem;}

@media (min-width:576px){
  .col-sm-6{flex:0 0 auto;width:50%;}
}

@media (min-width:768px){
  .col-md-6{flex:0 0 auto;width:50%;}
}

@media (min-width:992px){
  .col-lg-2{flex:0 0 auto;width:16.66666667%;}
  .col-lg-3{flex:0 0 auto;width:25%;}
  .col-lg-4{flex:0 0 auto;width:33.33333333%;}
  .col-lg-5{flex:0 0 auto;width:41.66666667%;}
  .col-lg-6{flex:0 0 auto;width:50%;}
  .col-lg-7{flex:0 0 auto;width:58.33333333%;}
  .col-lg-8{flex:0 0 auto;width:66.66666667%;}
}

.d-flex{display:flex !important;}
.d-grid{display:grid !important;}
.d-none{display:none !important;}
.flex-column{flex-direction:column !important;}
.flex-wrap{flex-wrap:wrap !important;}
.align-items-center{align-items:center !important;}
.align-items-end{align-items:flex-end !important;}
.align-items-stretch{align-items:stretch !important;}
.justify-content-between{justify-content:space-between !important;}
.gap-2{gap:.5rem !important;}
.gap-3{gap:1rem !important;}
.h-100{height:100% !important;}
.w-100{width:100% !important;}
.mx-auto{margin-right:auto !important;margin-left:auto !important;}
.ms-auto{margin-left:auto !important;}
.me-1{margin-right:.25rem !important;}
.me-2{margin-right:.5rem !important;}
.mt-2{margin-top:.5rem !important;}
.mt-3{margin-top:1rem !important;}
.mt-4{margin-top:1.5rem !important;}
.mb-0{margin-bottom:0 !important;}
.mb-2{margin-bottom:.5rem !important;}
.mb-3{margin-bottom:1rem !important;}
.mb-4{margin-bottom:1.5rem !important;}
.mb-5{margin-bottom:3rem !important;}
.p-3{padding:1rem !important;}
.p-4{padding:1.5rem !important;}
.pt-2{padding-top:.5rem !important;}
.pt-4{padding-top:1.5rem !important;}
.text-center{text-align:center !important;}
.text-decoration-underline{text-decoration:underline !important;}
.small{font-size:.875em;}
.h4{font-size:1.5rem;}

@media (min-width:768px){
  .flex-md-row{flex-direction:row !important;}
  .align-items-md-center{align-items:center !important;}
  .p-md-4{padding:1.5rem !important;}
  .text-md-end{text-align:right !important;}
}

@media (min-width:576px){
  .flex-sm-row{flex-direction:row !important;}
}

@media (min-width:992px){
  .d-lg-none{display:none !important;}
  .align-items-lg-center{align-items:center !important;}
  .align-items-lg-end{align-items:flex-end !important;}
  .flex-lg-column{flex-direction:column !important;}
  .text-lg-end{text-align:right !important;}

  .navbar-expand-lg{
    flex-wrap:nowrap;
    justify-content:flex-start;
  }

  .navbar-expand-lg .navbar-nav{
    flex-direction:row;
  }

  .navbar-expand-lg .navbar-collapse{
    display:flex !important;
    flex-basis:auto;
  }
}

.visually-hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0, 0, 0, 0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

.collapse:not(.show){
  display:none;
}

.navbar{
  position:relative;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
}

.navbar > .container,
.navbar > .container-fluid{
  display:flex;
  flex-wrap:inherit;
  align-items:center;
  justify-content:space-between;
}

.navbar-brand{
  display:inline-block;
  padding-top:.3125rem;
  padding-bottom:.3125rem;
  margin-right:1rem;
  text-decoration:none;
  white-space:nowrap;
}

.navbar-nav{
  display:flex;
  flex-direction:column;
  padding-left:0;
  margin-bottom:0;
  list-style:none;
}

.navbar-collapse{
  flex-basis:100%;
  flex-grow:1;
  align-items:center;
}

.nav-link{
  display:block;
  padding:.5rem;
  text-decoration:none;
}

.dropdown-menu{
  display:none;
  position:absolute;
  z-index:1000;
  min-width:10rem;
  padding:.5rem 0;
  margin:0;
  list-style:none;
}

.dropdown-menu.show,
.dropdown:hover > .dropdown-menu,
.dropdown:focus-within > .dropdown-menu{
  display:block;
}

.dropdown-item{
  display:block;
  width:100%;
  padding:.25rem 1rem;
  clear:both;
  text-decoration:none;
  white-space:nowrap;
}

.dropdown-divider{
  height:0;
  margin:.5rem 0;
  overflow:hidden;
  border-top:1px solid rgba(0,0,0,.15);
}

.form-control{
  display:block;
  width:100%;
  min-height:48px;
  padding:.75rem .95rem;
  font-size:1rem;
  line-height:1.5;
  color:#24304f;
  background-color:#fff;
  background-clip:padding-box;
  border:1px solid rgba(46,63,117,.16);
  border-radius:14px;
}

.form-control:focus{
  color:#24304f;
  background-color:#fff;
  border-color:var(--hvac-red, #e34b3f);
  outline:0;
  box-shadow:0 0 0 .2rem rgba(227,75,63,.14);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:.65rem 1rem;
  border:1px solid transparent;
  border-radius:999px;
  text-decoration:none;
  cursor:pointer;
}

.btn-sm{
  padding:.45rem .8rem;
  font-size:.875rem;
}

.btn-primary{
  color:#fff;
  background:var(--hvac-red, #e34b3f);
  border-color:var(--hvac-red, #e34b3f);
}
