html {
   scroll-behavior: smooth;
}


/* link underline effect ----- */
.link {
   position: relative;
}

.link::before {
   content: '';
   position: absolute;
   top: 100%;
   left: 0;
   width: 100%;
   height: 1px;
   background: currentColor;
   -webkit-transform-origin: 100% 50%;
       -ms-transform-origin: 100% 50%;
           transform-origin: 100% 50%;
   -webkit-transform: scale3d(0, 1, 1);
           transform: scale3d(0, 1, 1);
   -webkit-transition: -webkit-transform 300ms;
   transition: -webkit-transform 300ms;
   -o-transition: transform 300ms;
   transition: transform 300ms;
   transition: transform 300ms, -webkit-transform 300ms;
}

.link:hover::before {
   -webkit-transform-origin: 0% 50%;
       -ms-transform-origin: 0% 50%;
           transform-origin: 0% 50%;
   -webkit-transform: scale3d(1, 1, 1);
           transform: scale3d(1, 1, 1);
}
/* ----- link underline effect */


/* services dropdown (mobile & desktop) ----- */
#services-dropdown-toggle-mobile img,
#services-dropdown-toggle-desktop img {
   -webkit-transition: -webkit-transform 250ms;
   transition: -webkit-transform 250ms;
   -o-transition: transform 250ms;
   transition: transform 250ms;
   transition: transform 250ms, -webkit-transform 250ms;
}

#services-dropdown-content-mobile {
   height: 0;
   overflow: hidden;
   visibility: hidden;
   opacity: 0;
   -webkit-transition: height 250ms, visibility 250ms, opacity 250ms;
   -o-transition: height 250ms, visibility 250ms, opacity 250ms;
   transition: height 250ms, visibility 250ms, opacity 250ms;
}

#services-dropdown-content-desktop {
   visibility: hidden;
   opacity: 0;
   -webkit-transform: translateY(10px);
       -ms-transform: translateY(10px);
           transform: translateY(10px);
   -webkit-transition: visibility 250ms, opacity 250ms, -webkit-transform 250ms;
   transition: visibility 250ms, opacity 250ms, -webkit-transform 250ms;
   -o-transition: visibility 250ms, opacity 250ms, transform 250ms;
   transition: visibility 250ms, opacity 250ms, transform 250ms;
   transition: visibility 250ms, opacity 250ms, transform 250ms, -webkit-transform 250ms;
}

#services-dropdown-toggle-mobile.expanded img,
#services-dropdown-toggle-desktop.expanded img {
   -webkit-transform: rotate(180deg);
       -ms-transform: rotate(180deg);
           transform: rotate(180deg);
}

#services-dropdown-content-mobile.expanded {
   height: 104px;
   visibility: visible;
   opacity: 1;
}

#services-dropdown-content-desktop.expanded {
   visibility: visible;
   opacity: 1;
   -webkit-transform: translateY(0px);
       -ms-transform: translateY(0px);
           transform: translateY(0px);
}
/* ----- services dropdown (mobile & desktop) */


/* mobile menu show/hide ----- */
#mobile-menu-toggle {
   z-index: 999;
}

#mobile-menu-toggle span {
   -webkit-transition: opacity 250ms, -webkit-transform 250ms;
   transition: opacity 250ms, -webkit-transform 250ms;
   -o-transition: opacity 250ms, transform 250ms;
   transition: opacity 250ms, transform 250ms;
   transition: opacity 250ms, transform 250ms, -webkit-transform 250ms;
}

#mobile-menu-toggle span:last-child {
   opacity: 0;
   -webkit-transform: translate3d(0, 100%, 0);
           transform: translate3d(0, 100%, 0);
}

#mobile-menu-toggle.visible span:first-child {
   opacity: 0;
   -webkit-transform: translate3d(0, -100%, 0);
           transform: translate3d(0, -100%, 0);
}
#mobile-menu-toggle.visible span:last-child {
   opacity: 1;
   -webkit-transform: translate3d(0, 0, 0);
           transform: translate3d(0, 0, 0);
}

#mobile-menu-content {
   visibility: hidden;
   opacity: 0;
   -webkit-transform: scale(.95);
       -ms-transform: scale(.95);
           transform: scale(.95);
   -webkit-transition: visibility 250ms, opacity 250ms, -webkit-transform 250ms;
   transition: visibility 250ms, opacity 250ms, -webkit-transform 250ms;
   -o-transition: visibility 250ms, opacity 250ms, transform 250ms;
   transition: visibility 250ms, opacity 250ms, transform 250ms;
   transition: visibility 250ms, opacity 250ms, transform 250ms, -webkit-transform 250ms;
   z-index: 99;
}

#mobile-menu-content.visible {
   visibility: visible;
   opacity: 1;
   -webkit-transform: scale(1);
       -ms-transform: scale(1);
           transform: scale(1);
}
/* ----- mobile menu show/hide */


/* mobile menu accordion ----- */
#mobile-menu .acc .acc-title img {
   -webkit-transition: -webkit-transform 250ms;
   transition: -webkit-transform 250ms;
   -o-transition: transform 250ms;
   transition: transform 250ms;
   transition: transform 250ms, -webkit-transform 250ms;
}

#mobile-menu .acc.open .acc-title img {
   -webkit-transform: rotate(45deg);
       -ms-transform: rotate(45deg);
           transform: rotate(45deg);
}

#mobile-menu .acc .acc-content {
   height: 0;
   overflow: hidden;
   visibility: hidden;
   opacity: 0;
   -webkit-transition: height 250ms, visibility 250ms, opacity 250ms;
   -o-transition: height 250ms, visibility 250ms, opacity 250ms;
   transition: height 250ms, visibility 250ms, opacity 250ms;
}

#mobile-menu .acc.open .acc-content {
   visibility: visible;
   opacity: 1;
}
#mobile-menu .acc.open:first-child .acc-content {
   height: 139px;
}
#mobile-menu .acc.open:not(:first-child) .acc-content {
   height: 91px;
}
/* ----- mobile menu accordion */


/* quote form and contact form ----- */
input, select, textarea {
   min-height: 32px;
   margin-top: 4px;
   padding: 0 4px;
   border: 1px solid #8a8a8a;
   border-radius: 0.25rem;
}

#quote_form select {
   padding: 5px 4px;
}

#quote_form span,
#contact_form span {
   color: #dc0109;
}

#quote_form #selected.reveal {
   display: block;
}

#submission_response p {
   margin-top: 20px;
   padding: 20px;
   border-radius: 0.25rem;
}

#submission_response .success {
   background-color: rgba(0, 128, 0, .1);
   border: 2px solid green;
}

#submission_response .error {
   background-color: rgba(237, 4, 0, .1);
   border: 2px solid #dc0109;
}
/* ----- quote form */