/* Imports
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@import 'normalize.css';
@import 'reset.css';
@import 'typography.css';


/* Images
–––––––––––––––––––––––––––––––––––––––––––––––––– */
img {
	max-width: 100%;
	height: auto;
}

/* Randoms 
––––––––––––––––––––––––––––––––––––––––––––––––– */

input.error, select.error, textarea.error {
	border: 2px solid #e74c3c;
	background-color: #fff0f0;
}
.field-error {
	color: #e74c3c;
	font-size: 0.9em;
	margin-bottom: 10px;
}


/* Buttons
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: 12px 20px;
	margin-top: 2rem;
	background-color: #fff;
	border: 2px solid #c4ccba;
	border-radius: 0 12px 0 12px;
	color: var(--color-green-100);
	text-align: center;
	font-size: 1rem;
	font-weight: 500;
	transition: var(--transition-ease);
}

.btn:hover {
	border-color: var(--color-green-100);
	box-shadow:
		0 0.7px 1.3px rgba(0, 0, 0, 0.024),
		0 2.2px 4.5px rgba(0, 0, 0, 0.036),
		0 10px 20px rgba(0, 0, 0, 0.06);
	text-decoration: none;
}

.btn-outline {
	background-color: transparent;
}

.btn-green {
	background-color: var(--color-green-100);
	border-color: var(--color-green-100);
	color: #fff;
}

.btn-green:hover {
	background-color: var(--color-green-200);
	border-color: var(--color-green-200);
}

.btn-yellow {
	background-color: var(--color-yellow-100);
	border-color: var(--color-yellow-100);
	color: #222;
}

.btn-yellow:hover {
	background-color: var(--color-yellow-200);
	border-color: var(--color-yellow-200);
}

.btn-outline-yellow {
	background-color: transparent;
	border-color: var(--color-yellow-100);
	color: var(--color-yellow-100);
}

.btn-outline-yellow:hover {
	background-color: var(--color-yellow-200);
	border-color: var(--color-yellow-200);
	color: #222
}

.btn-arrow::after {
	content: "\02192";
	position: relative;
	left: 0;
	margin-left: 6px;
	transition: var(--transition-ease);
}

.btn-arrow:hover::after {
	left: 6px;
}


/* Forms
–––––––––––––––––––––––––––––––––––––––––––––––––– */

.remove-link {
  font-size: 0.85em;
  color: #c00;
  text-decoration: none;
  margin-left: 10px;
  cursor: pointer;
}

.remove-link:hover {
  text-decoration: underline;
}


/* Lists
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.txt-content ul,
.txt-content ol {
	padding-left: 2rem;
}

.txt-content ul {
	list-style: disc;
}

.txt-content ol {
	list-style: decimal;
}

.txt-content li {
	margin-top: 8px;
}

.aside-list {
	font-size: 0.875rem;
}

	.aside-list li {
		padding-bottom: 12px;
		margin-top: 12px;
		border-bottom: 1px solid #ccc;
	}

		.aside-list li a {
			color: #999;
		}

		.aside-list li a:hover {
			color: #222;
			text-decoration: none;
		}

	.aside-list li.is-active {
		border-color: var(--color-green-100);
	}

		.aside-list li.is-active a {
			color: var(--color-green-100);
		}


/* Layout
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.wrapper {
	width: 1280px;
	max-width: 100%;
	padding: 0 40px;
	margin: 0 auto;
}

.section {
	padding: 120px 0;
}

.grid-w-aside {
	display: grid;
	grid-template-columns: 25% 1fr;
	gap: 40px;
}

.aside-sticky {
	position: sticky;
	top: 130px;
}


/* Layout - 800px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 800px) {

	.wrapper {
		padding: 0 24px;
	}

	.section {
		padding: 80px 0;
	}

	.grid-w-aside {
		display: grid;
		grid-template-columns: 1fr;
		gap: 40px;
	}

}


/* Mobile Nav
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.mobile-nav {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
	background-color: #fff;
}


/* Header
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.header {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 999;
	padding: 40px;
	background-color: transparent;
	font-size: 17px;
	line-height: 1;
	transition: var(--transition-ease);
}

	.header a {
		color: #fff;
		font-weight: 500;
		transition: var(--transition-ease);
	}

	.header .logo {
		width: 270px;
		display: block;
	}

		.header .logo svg {
			fill: #fff;
			transition: var(--transition-ease);
		}

		.header .logo .logo-icon {
			fill: #fff;
		}

	.header .logo-stop1 {
		stop-color: var(--color-green-100);
	}

	.header .logo-stop2 {
		stop-color: var(--color-blue-100);
	}

.header-nav {
	display: flex;
	align-items: center;
	white-space: nowrap;
}

	.header-nav li {
		display: inline-block;
		margin-left: 16px;
	}

		.header-nav li a {
			position: relative;
			display: block;
			padding: 8px 0;
		}

		.header-nav li a.is-active {
			border-bottom: 2px solid currentColor;
		}

		.header-nav li a.has-notice::after {
			/*content: "Sign Up";*/
			position: absolute;
			top: -10px;
			right: -3px;
			padding: 2px 6px;
			background-color: var(--color-yellow-100);
			border-radius: 30px;
			font-size: 0.5em;
			color: #222;
		}




.header-nav ul li.dropdown > a::after {
		  content: " ▼";          /* triangle character */
		  font-size: 0.7em;
		  margin-left: 0px;
		  transition: transform 0.2s ease;
		}
		
		/* Rotate arrow when hovered */
		.header-nav ul li.dropdown:hover > a::after {
		  transform: rotate(180deg);
		}
		
	.header-nav > ul > li {
	  position: relative; /* needed for absolute submenu */
	}
	
	/* Submenu hidden by default */
	.header-nav ul li .dropdown-menu {
	  display: none;
	  position: absolute;
	  top: 100%;  /* directly below parent */
	  left: -150px;
	  background: #fff;
	  border: 1px solid #ccc;
	  list-style: none;
	  padding: 0;
	  margin: 0;
	  min-width: 400px;
	  z-index: 1000;
	  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
	}
	
	/* Submenu items stack vertically */
	.header-nav ul li .dropdown-menu li {
	  display: block;
	  margin-left: 0;
	  width: 100%;
	}
	
	.header-nav ul li .dropdown-menu li a {
	  display: block;
	  padding: 10px 15px;
	  text-decoration: none;
	  color: #333;
	  white-space: nowrap; /* keeps text on one line */
	}
	
	.header-nav ul li .dropdown-menu li a:hover {
	  background: #f5f5f5;
	}
	
	/* Show submenu when parent <li> is hovered */
	.header-nav ul li.dropdown:hover > .dropdown-menu {
	  display: block;
	}
	
	

	.header-nav .social {
		margin: 2px 0 0 16px;
	}

		.header-nav .social a {
			width: 32px;
			display: inline-block;
			margin-left: 4px;
		}

		.header-nav .social a:first-child {
			margin-left: 0;
		}

		.header-nav .social svg {
			fill: #fff;
		}

		.header-nav .social:hover a {
			opacity: .5;
		}

	.header-nav ul:hover a {
		opacity: .5;
	}

	.header-nav a:hover {
		opacity: 1 !important;
		text-decoration: none;
	}

	.header .mobile-nav-toggle {
		width: 28px;
		height: 21px;
		display: none;
		margin-left: 16px;
		border-top: 3px solid currentColor;
		border-bottom: 3px solid currentColor;
		font-size: 32px;
		font-weight: 400;
		color: #fff;
	}

	.header .mobile-nav-toggle::before {
		content: "";
		height: 3px;
		display: block;
		background-color: currentColor;
	}

.header.js-sticky {
	position: fixed;
	padding-top: 16px;
	padding-bottom: 16px;
	background-color: #fff;
	box-shadow:
		0 2.7px 2.7px rgba(0, 0, 0, 0.024),
		0 9.9px 8.9px rgba(0, 0, 0, 0.036),
		0 40px 40px rgba(0, 0, 0, 0.06);
	color: #222;
}

	.header.js-sticky .logo {
		width: 120px;
	}

		.header.js-sticky .logo svg {
			fill: #222;
		}

		.header.js-sticky .logo .logo-icon {
			fill: url(#gradient);
		}

	.header.js-sticky a {
		color: #222;
	}

	.header.js-sticky .header-nav .social svg {
		fill: var(--color-green-100);
	}

	.header.js-sticky .mobile-nav-toggle {
		color: #222;
	}

		.header.js-sticky .mobile-nav-toggle div {
			background-color: #222;
		}


/* Header - 1280px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 1280px) {

	.header {
		font-size: 1rem;
	}
	
		.header .logo {
			width: 170px;
		}
	
}


/* Header - 1024px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 1024px) {
.header-nav ul li.dropdown:hover > .dropdown-menu {
	display: none !important;
  }
  
	.header-nav {
		width: 100%;
		height: 100vh;
		display: flex;
		flex-direction: column;
		justify-content: center;
		position: absolute;
		top: -100vh;
		left: 0;
		z-index: -1;
		padding-top: 80px;
		background-color: #fff;
		opacity: 0;
		text-align: center;
		font-size: 1.5rem;
		transition: var(--transition-ease);
	}

		.header-nav ul {
			margin-bottom: 40px;
		}

		.header-nav li {
			display: block;
			margin-left: 0;
		}

		.header-nav a {
			font-weight: 700;
		}

		.header-nav li a.is-active {
			border-bottom: none;
		}

		.header-nav li a.has-notice::after {
			display: none;
		}

		.header-nav .social {
			margin: 0;
		}

			.header-nav .social a {
				margin: 0 4px !important;
			}

	.header .mobile-nav-toggle {
		display: block;
	}

	.header.js-mobile-nav-open .header-nav {
		top: 0;
		opacity: 1;
	}

}


/* Header - 800px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 800px) {

	.header {
		padding: 40px 24px;
	}

		.header .logo {
			width: 150px;
		}

}


/* Header - 414px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 414px) {

	.header .logo {
		width: 110px;
	}

	.header.js-sticky .logo {
		width: 110px;
	}

}


/* Banner
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.banner {
	width: 100%;
	height: 40vh;
	min-height: 450px;
	padding: 100px 0 0;
	background: url(../images/bg.jpg) center / cover no-repeat #f0f0f0;
	color: #fff;
	text-align: center;
}

.banner.home {
	height: 95vh;
	min-height: 600px;
	font-size: 24px;
}

	.banner .flex {
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.banner h1,
	.banner .h1 {
		display: inline-block;
		margin: 0;
	}

	.banner.home h1 {
		max-width: 25ch;
		font-size: 4rem;
	}

	.banner.home .btns {
		margin-top: 2.5rem;
	}

	.banner.home .btns .btn {
		width: 134px;
		margin: 8px 2px;
	}


/* Banner - 1024px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 1024px) {

	.banner.home {
		font-size: 21px;
	}
	
		.banner.home h1 {
			font-size: 3.5rem;
		}

}


/* Banner - 800px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 800px) {

	.banner.home {
		font-size: 18px;
	}
	
		.banner.home h1 {
			font-size: 3rem;
		}

}


/* Banner - 600px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 600px) {

	.banner.home {
		font-size: 1rem;
	}
	
		.banner.home h1 {
			font-size: 2.5rem;
		}

}


/* Banner - 414px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 414px) {
	
		.banner.home h1 {
			font-size: 1.8rem;
		}

}


/* Home About Us
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.home-about {
	background: url(../images/bg_home_about.jpg) center / cover no-repeat var(--color-yellow-100);
	text-align: left;
}


/* Home Services
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.home-services {
	padding: 0;
}

.home-service {
	width: 100%;
	display: flex;
}

.home-service:nth-child(even) {
	flex-direction: row-reverse;
}

	.home-service > * {
		flex-basis: 50%;
	}

	.home-service figure {
		display: flex;
		justify-content: center;
		align-items: center;
		padding: 60px;
		margin: 0;
		background-position: center;
		background-repeat: no-repeat;
		background-size: cover;
		background-color: #f0f0f0;
	}

	.home-service figure.partners {
		background-image: url(../images/img_partners.jpg);
	}

		.home-service figure img {
			width: 50%;
			max-width: 300px;
		}

	.home-service .content {
		padding: 120px 40px;
	}

		.home-service .content > div {
			max-width: 600px;
			margin: 0 auto;
		}


/* Home Services - 800px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 800px) {

	.home-service {
		display: block;
	}

	.home-service figure {
		width: 100%;
	}

	.home-service .content {
		width: 100%;
		padding: 80px 24px;
	}

		.home-service .content > div {
			max-width: 100%;
		}
	
}


/* Home Team
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.home-team {
	padding: 72px 0;
}

	.home-team .flex {
		align-items: center;
		display: flex;
		gap: 60px;
		flex-direction: row-reverse;
	}

		.home-team .flex > * {
			flex-basis: 50%;
		}

	.home-team figure {
		display: block;
		text-align: center;
	}


/* Home Team - 800px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 800px) {

	.home-team {
		padding-top: 0;
	}
	
		.home-team .flex {
			display: block;
		}

		.home-team figure {
			margin-bottom: 60px;
		}

}


/* Footer
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.footer .grid {
	display: grid;
	grid-template-columns: 100px 1fr 100px;
	grid-template-areas: "lec contact trackie";
	align-items: center;
	gap: 24px;
	padding: 56px 0;
	border-top: 3px solid #177b07;
}

	.footer .grid-left {
		grid-area: lec;
		line-height: 1;
	}

		.footer .grid-left svg {
			width: 50px;
		}

	.footer .grid-center {
		grid-area: contact;
		text-align: center;
	}

	.footer .grid-right {
		grid-area: trackie;
		line-height: 1;
	}

		.footer .grid-right svg {
			width: 100px;
		}

	.footer .divider {
		margin: 0 8px;
	}

	.footer span {
		display: inline-block;
	}


/* Footer - 600px
–––––––––––––––––––––––––––––––––––––––––––––––––– */
@media screen and (max-width: 600px) {

	.footer .grid {
		grid-template-columns: 1fr 1fr;
		grid-template-areas:
			"contact contact"
			"lec trackie";
	}

	.footer .grid-left {
		text-align: center;
	}

	.footer .grid-right {
		text-align: center;
	}

}


/* Accordion
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.accordion details {
	border: 1px solid #ccc;
	border-radius: 5px;
	overflow: hidden;
}

.accordion details:not(:first-child) {
	margin-top: 16px;
}

.accordion summary {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 16px;
	font-weight: 700;
	cursor: pointer;
}

.accordion summary::after {
	content: "+";
	display: inline-block;
	color: var(--color-green-100);
}

.accordion summary + div {
	padding: 32px 16px;
}

.accordion details[open],
.accordion details:hover {
	border-color: var(--color-green-100);
}

	.accordion details[open] summary {
		background-color: var(--color-green-100);
		color: #fff;
	}

	.accordion details[open] summary::after {
		content: "-";
		color: #fff;
	}


/* Media Queries
–––––––––––––––––––––––––––––––––––––––––––––––––– */

/* 1280px */
@media screen and (max-width: 1280px) {

	
	
}


/* 1024px */
@media screen and (max-width: 1024px) {

	
	
}


/* 800px */
@media screen and (max-width: 800px) {

	
	
}


/* 600px */
@media screen and (max-width: 600px) {

	
	
}


/* 414px */
@media screen and (max-width: 414px) {

	
	
}


/* 375px */
@media screen and (max-width: 375px) {

	
	
}


/* 320px */
@media screen and (max-width: 320px) {

	
	
}