/* Navigation */

/* Navbar */

.navbar {
	background-color: var(--navbar-bg);
	padding: 0;
	transition: 0.2s ease-out;
}

body:not(.transparent-navbar) .navbar {
	box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.2);
}

body.transparent-navbar .navbar {
	background-color: transparent;
}

body.scrolled .navbar {
	box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.2);
	background-color: var(--navbar-bg);
}

.navbar-body {
	height: var(--navbar-height);
	transition: 0.2s ease-in-out;
}

.navbar-body, .navbar-body a {
	color: var(--navbar-colour);
}

body.scrolled .navbar-body {
	height: var(--navbar-height-scrolled);
}


.navbar-logo {
	height: var(--navbar-height-logo);
	line-height: 0;
	margin-right: 1.5rem;
	transition: 0.2s ease-in-out;
}

@media (min-width: 768px) { 
	.logo-centered .navbar-logo {
		margin-right: 0;
		position: absolute;
		top: 50%; left: 50%;
		transform: translateX(-50%) translateY(-50%);
	}
}

.navbar-topbar {
	background-color: var(--topbar-bg);
	font-size: var(--topbar-font-size);
	line-height: 1.4;
	padding: 0.5rem 0;
	z-index: 1030;
}

.navbar-topbar, .navbar-topbar a {
	color: var(--topbar-colour);
}

.navbar-topbar a {
	text-decoration: underline;
}

.navbar-topbar-spacer {
	transition: 0.2s ease-out;
}

body.scrolled .navbar-topbar-spacer {
	max-height: 0!important;
}

.navbar-contact-bar {
	background-color: var(--contact-bar-bg);
	font-size: 0.75rem;
}

.navbar-contact-bar, .navbar-contact-bar a {
	color: var(--contact-bar-colour);
}

.navbar-contact-bar-link {
	padding: 0.5rem 1.25rem;
	position: relative;
	text-align: center;
}

.justify-content-start .navbar-contact-bar-link:first-child {
	padding-left: 0;
}

.justify-content-end .navbar-contact-bar-link:last-child {
	padding-right: 0;
}

.navbar-contact-bar-link:not(:last-child):after {
	background-color: var(--contact-bar-colour);
	content: '';
	opacity: 0.5;
	position: absolute;
	top: 0; right: 0; bottom: 0;
	width: 1px;
}

.navbar-search {
	height: var(--navbar-search-height);
	margin: 0 1.5rem;
}

.search-full .navbar-search-icon {
	display: none;
}

.btn-navbar-search svg {
	height: 42%;
}

.navbar-right > div:not(.hamburger-wrapper) {
	margin-left: 1.5rem;
}

.navbar-right svg {
	height: 1.5rem;
	width: 1.5rem;
}

.navbar-right svg path {
	fill: var(--navbar-icon-colour);
}


/* Navbar Links */

.navbar-links {
	margin: 0 1.5rem;
}

.navbar-link {
	margin: 0 1.5rem;
}

.navbar-link:first-child {
	margin-left: 0;
}

.navbar-link:last-child {
	margin-right: 0;
}

.navbar-links-bar {
	background-color: var(--navbar-links-bar-bg);
}

.navbar-links-bar .navbar-links {
	margin: 0;
	padding: 1rem 0;
}

.navbar-links, .navbar-links a, .hamburger-label {
	color: var(--navbar-links-bar-colour);
	font-size: var(--navbar-links-font-size);
	font-weight: var(--navbar-links-font-weight);
	text-transform: var(--navbar-links-text-transform);
	letter-spacing: var(--navbar-links-letter-spacing);
}


/* Navbar Menu */

.navbar-menu {
	background-color: var(--navbar-menu-bg);
	box-shadow: 0px 0px 6px 3px rgba(0,0,0,0.15);
	opacity: 0;
	position: fixed;
	top: 0; right: 0; bottom: 0;
	transform: translateX(calc(100% + 5px));
	transition: 0.4s ease-out;
	width: var(--navbar-menu-width);
	z-index: 1032;
}

.navbar-menu.left {
	right: auto; left: 0;
	transform: translateX(calc(-100% - 5px));
}

body.menu-open .navbar-menu {
	opacity: 1;
	transform: translateX(0);
}

.navbar-menu-inner {
	overflow-y: auto;
	scrollbar-width: thin;
  scrollbar-color: #ebebeb var(--color-tertiary);
}

.navbar-menu-inner::-webkit-scrollbar {
  width: 5px;
}

.navbar-menu-inner::-webkit-scrollbar-track {
  background: #ebebeb;
}

.navbar-menu-inner::-webkit-scrollbar-thumb {
  background: var(--color-tertiary);
}

.navbar-menu-link-parent {
	font-size: var(--navbar-menu-size);
	font-weight: var(--navbar-menu-font-weight);
	letter-spacing: var(--navbar-menu-letter-spacing);
	text-transform: var(--navbar-menu-text-transform);
}

.navbar-menu:not(.horizontal) .navbar-menu-link-child {
	margin-top: 0.25rem;
}

.navbar-menu.horizontal .navbar-menu-link-child:not(:last-child) {
	margin-bottom: 0.5rem;
}

.navbar-menu-link-child a {
	display: inline-block;
	font-size: var(--navbar-menu-subitem-size);
	font-weight: var(--navbar-menu-subitem-font-weight);
	letter-spacing: var(--navbar-menu-subitem-letter-spacing);
	line-height: 1.1;
	overflow: hidden;
	position: relative;
	text-transform: var(--navbar-menu-subitem-text-transform);
}

.navbar-menu, .navbar-menu a {
	color: var(--navbar-menu-color);
}

.navbar-menu-link-parent {
	display: inline-block;
	overflow: hidden;
	position: relative;
}

.navbar-menu-link-parent:after, .navbar-menu-link-child a:after {
	background-color: var(--navbar-menu-accent-colour);
	content: '';
	height: 2px;
	position: absolute;
	right: 0; bottom: 0; left: 0;
	transform: translateX(calc(-100% - 1px));
	transition: 0.2s ease-out;
	width: 100%;
}

.navbar-menu-link-child a:after {
	height: 1px;
}

@media screen and (pointer: fine) {
	.navbar-menu-link-parent:hover:after, .navbar-menu-link-child a:hover:after {
		transform: translateX(0);
	}
}

.navbar-menu-links > div {
	opacity: 0;
	transform: translateY(-100%);
	transition: 0.2s ease-out;
	transition-delay: 0.15s;
}

.navbar-menu-links > div:not(:last-child) {
	margin-bottom: var(--navbar-menu-link-margin);
}

body.menu-open .navbar-menu-links > div {
	opacity: 1;
	transform: translateY(0);
}

.navbar-menu-links > div:nth-child(2) {transition-delay: 0.2s;}
.navbar-menu-links > div:nth-child(3) {transition-delay: 0.25s;}
.navbar-menu-links > div:nth-child(4) {transition-delay: 0.3s;}
.navbar-menu-links > div:nth-child(5) {transition-delay: 0.35s;}
.navbar-menu-links > div:nth-child(6) {transition-delay: 0.4s;}
.navbar-menu-links > div:nth-child(7) {transition-delay: 0.45s;}
.navbar-menu-links > div:nth-child(8) {transition-delay: 0.5s;}
.navbar-menu-links > div:nth-child(9) {transition-delay: 0.55;}
.navbar-menu-links > div:nth-child(10) {transition-delay: 0.6s;}
.navbar-menu-links > div:nth-child(11) {transition-delay: 0.65s;}
.navbar-menu-links > div:nth-child(12) {transition-delay: 0.7s;}
.navbar-menu-links > div:nth-child(13) {transition-delay: 0.75s;}
.navbar-menu-links > div:nth-child(14) {transition-delay: 0.8s;}
.navbar-menu-links > div:nth-child(15) {transition-delay: 0.85s;}
.navbar-menu-links > div:nth-child(16) {transition-delay: 0.9s;}
.navbar-menu-links > div:nth-child(17) {transition-delay: 0.95s;}
.navbar-menu-links > div:nth-child(18) {transition-delay: 1s;}

.navbar-menu.text-start .social-icons a:not(:last-child) {
	margin-right: 1.5rem;
}

.navbar-menu.text-center .social-icons a {
	margin: 0 0.75rem;
}

.navbar-menu.text-end .social-icons a:not(:first-child) {
	margin-left: 1.5rem;
}

.navbar-menu .social-icons path, .navbar-menu-contact path {
	fill: var(--navbar-menu-accent-colour);
}



/* Horizontal Navbar Menu */

.navbar-menu.horizontal {
	top: ; right: 0; bottom: auto; left: 0;
	transform: translateY(calc(-100% + 5px)) translateX(0);
	z-index: 1029;
}

.navbar-menu.horizontal .navbar-menu-inner{
	padding: calc(var(--section-padding) / 2);
}






/* Body Overlay */

.body-overlay {
	background-color: var(--color-primary);
	opacity: 0;
	pointer-events: none;
	transition: 0.2s ease-out;
	z-index: 1031;
}

.body-overlay.go-behind {
	z-index: 1028;
}

body.menu-open .body-overlay {
	opacity: 0.75;
	pointer-events: auto;
}


/* Hamburger */

.hamburger {
  cursor: pointer;
  width: 40px;
  height: 23px;
  transition: 0.2s ease-in-out;
  z-index: 1032;
}

.navbar-left .hamburger-wrapper {
	margin-right: 3rem;
}

.navbar-right .hamburger-wrapper {
	margin-left: 3rem;
}

.navbar-menu .hamburger {
	top: 2rem; right: 1.5rem;
}

@media (min-width: 1200px) { 
	.navbar-links-inline .hamburger-wrapper, .navbar-links-below .hamburger-wrapper {
		display: none!important;
	}
}

.hamburger span {
  display: block;
  position: absolute;
  height: 3px;
  width: 100%;
  background-color: var(--hamburger-colour);
  left: 0;
  transition: 0.2s ease-out;
}

.navbar-menu .hamburger span {
	background-color: var(--hamburger-colour-open);
}

.hamburger span:nth-child(1) {
  top: 0px;
  transform: rotate(0deg);
}

.hamburger span:nth-child(2) {
  opacity: 1;
  top: 10px; left: 0;
}

.hamburger span:nth-child(3) {
  top: 20px;
  transform: rotate(0deg);
}

.navbar-menu .hamburger span:nth-child(1) {
  top: 10px;
  transform: rotate(135deg);
}

.navbar-menu .hamburger span:nth-child(2) {
  opacity: 0;
  left: -25px;
}

.navbar-menu .hamburger span:nth-child(3) {
  top: 10px;
  transform: rotate(-135deg);
}

.menu-open .hamburger span:nth-child(1) {
  top: 10px;
  transform: rotate(135deg);
}

.menu-open .hamburger span:nth-child(2) {
  opacity: 0;
  left: -25px;
}

.menu-open .hamburger span:nth-child(3) {
  top: 10px;
  transform: rotate(-135deg);
}

.hamburger-label {
	cursor: pointer;
	transform: translateY(1px);
}


/* Search Modal */

.modal-search .modal-dialog {
	background-color: var(--navbar-bg);
	max-width: 100%;
}

.modal-search .modal-content {
	background-color: var(--navbar-bg);
}

.modal-search .modal-close path {
	fill: var(--navbar-icon-colour);
}


/* Footer */

.footer {
	background-color: var(--footer-colour-bg);
	font-size: var(--footer-font-size);
	font-weight: var(--footer-font-weight);
	letter-spacing: var(--footer-letter-spacing);
	padding-top: var(--section-padding);
	padding-bottom: var(--section-padding);
	position: relative;
	text-transform: var(--footer-text-transform);
}

.footer, .footer a {
	color: var(--footer-colour);
}

.footer-simple .footer-links {
	border-top: 1px solid var(--footer-colour-borders); 
	border-bottom: 1px solid var(--footer-colour-borders);
}

.footer-menu-title {
	color: var(--footer-colour-accent);
	font-size: var(--footer-title-font-size);
	font-weight: var(--footer-title-font-weight);
	letter-spacing: var(--footer-title-letter-spacing);
	text-transform: var(--footer-title-text-transform);
}

.footer-menu-item:not(:last-child) {
	margin-bottom: 0.75rem;
}

.footer-menu-item a {
	display: block;
	overflow: hidden;
	position: relative;
}

.footer-menu-item a:after {
	background-color: var(--navbar-menu-accent-colour);
	content: '';
	height: 1px;
	position: absolute;
	right: 0; bottom: 0; left: 0;
	transform: translateX(calc(-100% - 1px));
	transition: 0.2s ease-out;
	width: 100%;
}

@media screen and (pointer: fine) {
	.footer-menu-item a:hover:after {
		transform: translateX(0);
	}
}

.footer-subscribe .form-control {
	background-color: transparent;
	border-color: var(--footer-colour-accent);
	border-top: none;
	border-right: none;
	border-left: none;
	box-shadow: none;
}

.footer-subscribe .form-check {
	font-size: 0.875rem;
}

.footer-subscribe .form-check .form-check-input {
	background-color: transparent;
	border-color: var(--footer-colour-accent)!important;
	margin: 0rem 0.75rem 0 0;
}

.footer-logo img {
	width: var(--footer-width-logo);
}

.footer .social-icons a {
	margin: 0 0.5rem;
}

.footer .social-icons path {
	fill: var(--footer-colour-accent);
}

.footer-bottom {
	background-color: var(--footer-bottom-bg);
	font-size: var(--footer-bottom-font-size);
	padding: 1rem 0;
}

.footer-bottom, .footer-bottom a {
	color: var(--footer-bottom-colour);
	line-height: 1.1;
}

.footer-bottom .col-lg-auto:not(:last-child) {
	border-right: 1px solid var(--footer-bottom-colour);
}


/* Custom Scrollbar */

.custom-scrollbar {
  scrollbar-width: thin;
  scrollbar-color: var(--color-primary) var(--color-body-bg);
}

.custom-scrollbar::-webkit-scrollbar {
  width: 0.75rem;
}

.custom-scrollbar::-webkit-scrollbar-track {
  background: var(--color-body-bg);
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  background: var(--color-primary);
}


/* Contact CTA */

.contact-cta {
  animation: scale-in 1s forwards 3s;
  bottom: 1.5rem; right: 1.5rem;
  opacity: 0;
  z-index: 10;
}

@keyframes scale-in {
  0% {opacity: 0; transform: scale(0);}
  100% {opacity: 1; transform: scale(1)}
}

.contact-cta > div {
  box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.25);
  height: 5rem; width: 5rem;
  transition: 0.15s ease-out;
}

.contact-cta > div.round {
	border-radius: 50%;
}

.contact-cta:hover > div {
  filter: brightness(0.95);
  transform: scale(1.05);
}

.contact-cta svg, .contact-cta img {
  -webkit-backface-visibility: hidden; 
  position: absolute;
  top: 50%; left: 50%;
  transform: translateY(-50%) translateX(-50%) translateZ(0);
  width: 2.5rem;
}






/* Navigation Media Queries */

/* 1440px */
@media (max-width: 1439px) { 
	.footer .social-icons a {margin: 0 0.25rem;}
}

/* 1200px */
@media (max-width: 1199px) { 
	.navbar-links-inline .hamburger-wrapper, .navbar-links-below .hamburger-wrapper {display: block;}
	.footer-links {border-top: 1px solid var(--footer-colour-borders); border-bottom: 1px solid var(--footer-colour-borders);}
	.footer-simple .footer-links .col-auto:not(:last-child) .footer-menu-item {margin-bottom: 0.75rem!important;}
	.footer .social-icons a {margin: 0 0.5rem;}
	.navbar-menu.horizontal .col-xl:not(:last-child) {margin-bottom:var(--navbar-menu-link-margin)!important;}
	.navbar-menu.horizontal.more-than-four-items {bottom: 0;}
}

/* 992px */
@media (max-width: 991px) { 
	.footer-bottom .col-lg-auto:not(:last-child) {border-right: none; margin-bottom: 0.55rem!important;}

}

/* 768px */
@media (max-width: 767px) { 
	.navbar-body, body.scrolled .navbar-body {height: var(--navbar-height-mobile);}
	.navbar-right > div:not(.hamburger-wrapper) {margin-left: 1rem;}
	.navbar-menu {width: var(--navbar-menu-width-mobile);}
	.navbar-menu-link-parent {font-size: var(--navbar-menu-size-mobile);}
	.navbar-menu-link-child a {font-size: var(--navbar-subitem-menu-size-mobile);}
	.navbar-left .hamburger-wrapper {margin-right: 1.75rem;}
	.navbar-right .hamburger-wrapper {margin-left: 1.75rem;}
	.navbar-menu .hamburger {top: 1rem; right: 0.75rem;}
	.hamburger-label {display: none;}
	.search-full .navbar-search-icon {display: block;}
	.navbar-right svg {height: 1.25rem; width: 1.25rem;}
	.navbar-contact-bar .container, .navbar-contact-bar .container-fluid {padding: 0;}
	.navbar-contact-bar-inner {width: 100%;}
	.navbar-contact-bar-link {flex: 1 0 0%; padding: 0.5rem 0;}
	.footer {padding-top: var(--section-padding-mobile); padding-bottom: var(--section-padding-mobile);}
	.footer-logo img {width: var(--footer-width-logo-mobile);}
	.contact-cta {bottom: 0.75rem; right: 0.75rem;}
  .contact-cta > div {height: 4rem; width: 4rem;}
  .contact-cta svg {width: 2rem;}
  .navbar-menu.horizontal {bottom: 0;}
  .navbar-menu.horizontal .navbar-menu-inner {padding: calc(var(--section-padding-mobile) / 2);}
  .navbar-menu.horizontal .col-md:not(:last-child) {margin-bottom:var(--navbar-menu-link-margin)!important;}
}