@import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Oswald:400");

/*
	B2touch Website
	Built from Pixelarity templates
	Color palette from "Eventually" (dark)
	Layout from "Hyperbolic", "Formula", "Telemetry"
*/

/* ==========================================================================
   Reset
   ========================================================================== */

html, body, div, span, applet, object,
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b,
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}

body {
	line-height: 1;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

body {
	-webkit-text-size-adjust: none;
}

mark {
	background-color: transparent;
	color: inherit;
}

input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

input, select, textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
}

html {
	box-sizing: border-box;
}

*, *:before, *:after {
	box-sizing: inherit;
}

/* ==========================================================================
   Variables / Color Palette (from "colors" / Eventually dark template)
   Primary: #1cb495 (teal)
   Primary hover: #1fcaa7
   Primary active: #199e83
   ========================================================================== */

:root {
	--color-primary: #1cb495;
	--color-primary-hover: #1fcaa7;
	--color-primary-active: #199e83;
	--color-primary-light: rgba(28, 180, 149, 0.15);
	--color-bg-dark: #2a2a2a;
	--color-bg-darker: #1e1e1e;
	--color-bg-light: #ffffff;
	--color-bg-alt: #f5f5f5;
	--color-text-dark: #777777;
	--color-text-light: rgba(255, 255, 255, 0.75);
	--color-text-heading: #333333;
	--color-text-heading-light: #ffffff;
	--color-border: #eaeaea;
	--color-border-dark: rgba(255, 255, 255, 0.15);
}

/* ==========================================================================
   Typography
   ========================================================================== */

html {
	font-size: 16pt;
}

	@media screen and (max-width: 1680px) {
		html {
			font-size: 13pt;
		}
	}

	@media screen and (max-width: 1280px) {
		html {
			font-size: 12pt;
		}
	}

	@media screen and (max-width: 736px) {
		html {
			font-size: 11pt;
		}
	}

	@media screen and (max-width: 360px) {
		html {
			font-size: 10pt;
		}
	}

body {
	background-color: var(--color-bg-light);
	color: var(--color-text-dark);
}

body, input, select, textarea {
	font-family: "Roboto", Helvetica, sans-serif;
	font-weight: 300;
	font-size: 1rem;
	line-height: 1.65;
}

a {
	transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	color: var(--color-primary);
	text-decoration: none;
	border-bottom: dotted 1px;
}

	a:hover {
		border-bottom-color: transparent;
		color: var(--color-primary-hover);
	}

strong, b {
	font-weight: 500;
	color: var(--color-text-heading);
}

em, i {
	font-style: italic;
}

p {
	margin: 0 0 2em 0;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--color-text-heading);
	font-weight: 500;
	line-height: 1.5;
	margin: 0 0 1em 0;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

h1, h2 {
	font-family: "Oswald", sans-serif;
	font-weight: 400;
}

h1 {
	font-size: 2.5em;
}

h2 {
	font-size: 1.25em;
}

h3 {
	font-size: 0.9em;
	letter-spacing: 0.25em;
}

h4 {
	font-size: 0.8em;
}

	@media screen and (max-width: 736px) {
		h1 {
			font-size: 1.75em;
		}
	}

/* ==========================================================================
   Basic Elements
   ========================================================================== */

body.is-preload *, body.is-preload *:before, body.is-preload *:after {
	animation: none !important;
	transition: none !important;
}

.image {
	border-radius: 0;
	border: 0;
	display: inline-block;
	position: relative;
}

	.image img {
		border-radius: 0;
		display: block;
	}

	.image.fit {
		display: block;
		margin: 0 0 2em 0;
		width: 100%;
	}

		.image.fit img {
			width: 100%;
		}

/* ==========================================================================
   Icon (FontAwesome)
   ========================================================================== */

.icon {
	text-decoration: none;
	border-bottom: none;
	position: relative;
}

	.icon:before {
		-moz-osx-font-smoothing: grayscale;
		-webkit-font-smoothing: antialiased;
		display: inline-block;
		font-style: normal;
		font-variant: normal;
		text-rendering: auto;
		line-height: 1;
		text-transform: none !important;
		font-family: 'Font Awesome 5 Free';
		font-weight: 400;
	}

	.icon > .label {
		display: none;
	}

	.icon.solid:before {
		font-weight: 900;
	}

	.icon.brands:before {
		font-family: 'Font Awesome 5 Brands';
	}

/* ==========================================================================
   Button
   ========================================================================== */

.button {
	appearance: none;
	transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	background-color: var(--color-primary);
	border-radius: 4px;
	border: 0;
	color: #ffffff !important;
	cursor: pointer;
	display: inline-block;
	font-weight: 500;
	font-size: 0.7em;
	height: 3.5em;
	line-height: 3.5em;
	letter-spacing: 0.25em;
	padding: 0 2em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

	.button:hover {
		background-color: var(--color-primary-hover);
		color: #ffffff !important;
	}

	.button:active {
		background-color: var(--color-primary-active);
	}

	.button.primary {
		background-color: var(--color-primary);
	}

	.button.large {
		font-size: 0.8em;
		height: 3.5em;
		line-height: 3.5em;
		padding: 0 2.5em;
	}

	.button.small {
		font-size: 0.65em;
		height: 3em;
		line-height: 3em;
		padding: 0 1.5em;
	}

	@media screen and (max-width: 480px) {
		.button {
			padding: 0 1.5em;
		}
	}

/* ==========================================================================
   Actions
   ========================================================================== */

ul.actions {
	display: flex;
	cursor: default;
	list-style: none;
	margin-left: -1em;
	padding-left: 0;
}

	ul.actions li {
		padding: 0 0 0 1em;
		vertical-align: middle;
	}

	ul.actions.special {
		justify-content: center;
	}

/* ==========================================================================
   Icons List
   ========================================================================== */

ul.icons {
	cursor: default;
	list-style: none;
	padding-left: 0;
}

	ul.icons li {
		display: inline-block;
		padding: 0 1em 0 0;
	}

		ul.icons li:last-child {
			padding-right: 0;
		}

		ul.icons li .icon {
			color: inherit;
		}

		ul.icons li .icon:before {
			font-size: 1.25em;
		}

/* ==========================================================================
   Header / Nav (from Hyperbolic)
   ========================================================================== */

#header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 10000;
	background-color: rgba(255, 255, 255, 0.97);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 3em;
	height: 4.25em;
	transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

	#header .logo {
		font-family: "Oswald", sans-serif;
		font-size: 1.4em;
		letter-spacing: 0.15em;
		text-transform: uppercase;
		border-bottom: 0;
		color: var(--color-text-heading);
		transition: color 0.2s ease;
	}

		#header .logo strong {
			color: var(--color-primary);
			font-weight: 400;
		}

	#header .logo:hover {
		color: var(--color-primary) !important;
	}

	#nav {
		display: flex;
		align-items: center;
		height: 100%;
	}

	#nav ul {
		display: flex;
		align-items: center;
		list-style: none;
		padding: 0;
		margin: 0;
		height: 100%;
		gap: 0.15em;
	}

		#nav ul li {
			padding: 0;
			height: 100%;
			position: relative;
		}

		#nav ul li a {
			display: flex;
			align-items: center;
			padding: 0 1.1em;
			font-size: 0.75em;
			font-weight: 600;
			letter-spacing: 0.15em;
			text-transform: uppercase;
			color: var(--color-text-heading);
			border-bottom: 0;
			height: 100%;
			transition: color 0.2s ease;
			position: relative;
		}

		/* Active indicator line */
		#nav ul li:not(.nav-cta) a::after {
			content: '';
			position: absolute;
			bottom: 0;
			left: 1.1em;
			right: 1.1em;
			height: 2px;
			background: var(--color-primary);
			transform: scaleX(0);
			transform-origin: center;
			transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
		}

		#nav ul li:not(.nav-cta) a:hover::after,
		#nav ul li.current:not(.nav-cta) a::after {
			transform: scaleX(1);
		}

			#nav ul li a:hover,
			#nav ul li.current a {
				color: var(--color-primary);
			}

		#nav ul li.nav-cta {
			margin-left: 1em;
			display: flex;
			align-items: center;
		}

		#nav ul li.nav-cta a {
			background-color: var(--color-primary);
			color: #ffffff;
			border-radius: 6px;
			padding: 0.65em 1.6em;
			height: auto;
			font-size: 0.72em;
			letter-spacing: 0.12em;
			font-weight: 600;
			transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
			box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
		}

		#nav ul li.nav-cta a::after {
			display: none;
		}

			#nav ul li.nav-cta a:hover {
				background-color: var(--color-primary-hover);
				color: #ffffff;
				transform: translateY(-1px);
				box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
			}

	#header .lang-toggle {
		border: 1.5px solid var(--color-primary);
		border-radius: 4px;
		color: var(--color-primary);
		font-size: 0.6em;
		font-weight: 600;
		letter-spacing: 0.15em;
		padding: 0.35em 0.75em;
		text-transform: uppercase;
		margin-left: 1.5em;
		transition: background-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
		border-bottom-style: solid;
	}

		#header .lang-toggle:hover {
			background-color: var(--color-primary);
			color: #ffffff !important;
			transform: translateY(-1px);
		}

	/* Hamburger toggle */
	#header .nav-toggle {
		display: none;
		border-bottom: 0;
		cursor: pointer;
		width: 2.25em;
		height: 2.25em;
		position: relative;
		margin-left: 1.5em;
	}

	#header .nav-toggle .hamburger,
	#header .nav-toggle .hamburger:before,
	#header .nav-toggle .hamburger:after {
		content: '';
		display: block;
		position: absolute;
		width: 1.4em;
		height: 1.5px;
		background: var(--color-text-heading);
		border-radius: 2px;
		transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
	}

	#header .nav-toggle .hamburger {
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	#header .nav-toggle .hamburger:before {
		top: -7px;
	}

	#header .nav-toggle .hamburger:after {
		bottom: -7px;
	}

	#header .nav-toggle.active .hamburger {
		background: transparent;
	}

	#header .nav-toggle.active .hamburger:before {
		top: 0;
		transform: rotate(45deg);
	}

	#header .nav-toggle.active .hamburger:after {
		bottom: 0;
		transform: rotate(-45deg);
	}

	/* ---- Mobile navigation ---- */
	@media screen and (max-width: 980px) {
		body.nav-active {
			overflow: hidden;
		}

		#header {
			padding: 0 1.75em;
			background: rgba(255, 255, 255, 0.98);
		}

		#header .nav-toggle {
			display: block;
		}

		#nav {
			position: absolute;
			top: 100%;
			left: 0;
			width: 100%;
			height: auto;
			background: rgba(255, 255, 255, 0.98);
			backdrop-filter: blur(16px);
			-webkit-backdrop-filter: blur(16px);
			padding: 1.5em 0 2.5em;
			visibility: hidden;
			opacity: 0;
			transform: translateY(-8px);
			transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
						transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
						visibility 0.3s;
			display: flex;
			align-items: flex-start;
			justify-content: center;
			box-shadow: 0 16px 32px rgba(0, 0, 0, 0.08),
						0 2px 8px rgba(0, 0, 0, 0.04);
			border-top: 1px solid rgba(0, 0, 0, 0.06);
		}

		#nav.active {
			visibility: visible;
			opacity: 1;
			transform: translateY(0);
		}

			#nav ul {
				flex-direction: column;
				width: 100%;
				gap: 0;
				padding: 0 1.5em;
			}

			#nav ul li {
				width: 100%;
				height: auto;
				opacity: 0;
				transform: translateY(-6px);
				transition: opacity 0.25s ease, transform 0.25s ease;
			}

			/* Staggered entrance for each menu item */
			#nav.active ul li { opacity: 1; transform: translateY(0); }
			#nav.active ul li:nth-child(1) { transition-delay: 0.04s; }
			#nav.active ul li:nth-child(2) { transition-delay: 0.08s; }
			#nav.active ul li:nth-child(3) { transition-delay: 0.12s; }
			#nav.active ul li:nth-child(4) { transition-delay: 0.16s; }
			#nav.active ul li:nth-child(5) { transition-delay: 0.20s; }
			#nav.active ul li:nth-child(6) { transition-delay: 0.24s; }

			#nav ul li:not(.nav-cta) a::after {
				display: none;
			}

			#nav ul li a {
				display: block;
				padding: 1.15em 1.25em;
				height: auto;
				line-height: 1.5;
				font-size: 1.1em;
				border-radius: 8px;
				text-align: left;
				transition: background-color 0.15s ease, color 0.15s ease;
			}

			#nav ul li a:hover {
				background-color: rgba(0, 0, 0, 0.03);
			}

			#nav ul li.current a {
				background-color: rgba(0, 0, 0, 0.04);
				color: var(--color-primary);
			}

			#nav ul li.nav-cta {
				margin-left: 0;
				margin-top: 1em;
				padding: 0.25em 1.25em;
				display: flex;
				justify-content: stretch;
			}

			#nav ul li.nav-cta a {
				display: block;
				width: 100%;
				padding: 1.1em 1.6em;
				font-size: 1em;
				text-align: center;
				border-radius: 8px;
			}

			#nav ul li.nav-cta a:hover {
				transform: none;
			}
	}

/* ==========================================================================
   Banner (from Hyperbolic / Pagina Inicial)
   ========================================================================== */

#banner {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100vh;
	padding: 8em 4em 6em 4em;
	background-color: #3a3a3a;
	background-image: linear-gradient(135deg, rgba(28, 180, 149, 0.15), rgba(42, 42, 42, 0.85)), url("../../images/banner.png");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: fixed;
	text-align: center;
	color: #ffffff;
	position: relative;
}

	#banner:after {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.35);
		z-index: 1;
	}

	#banner .content {
		position: relative;
		z-index: 2;
		max-width: 65em;
	}

	#banner h1 {
		font-size: 3.25em;
		color: #ffffff;
		margin: 0 0 0.5em 0;
		line-height: 1.25;
	}

	#banner p {
		font-size: 1.25em;
		color: rgba(255, 255, 255, 0.75);
		margin: 0 0 2em 0;
		line-height: 1.65;
	}

	#banner .actions {
		justify-content: center;
	}

	#banner .button {
		background-color: var(--color-primary);
		font-size: 0.8em;
	}

		#banner .button:hover {
			background-color: var(--color-primary-hover);
		}

	@media screen and (max-width: 1280px) {
		#banner {
			padding: 8em 3em 4em 3em;
		}

		#banner h1 {
			font-size: 2.5em;
		}
	}

	@media screen and (max-width: 736px) {
		#banner {
			padding: 7em 2em 3em 2em;
			min-height: 80vh;
		}

		#banner h1 {
			font-size: 1.75em;
		}

		#banner p {
			font-size: 1em;
		}
	}

/* ==========================================================================
   Wrapper
   ========================================================================== */

.wrapper {
	padding: 6em 0;
}

	.wrapper > .inner {
		max-width: 72em;
		margin: 0 auto;
		padding: 0 3em;
	}

	.wrapper.alt {
		background-color: var(--color-bg-alt);
	}

	.wrapper.dark {
		background-color: var(--color-bg-dark);
		color: var(--color-text-light);
	}

		.wrapper.dark h1,
		.wrapper.dark h2,
		.wrapper.dark h3,
		.wrapper.dark h4,
		.wrapper.dark h5,
		.wrapper.dark h6 {
			color: var(--color-text-heading-light);
		}

	@media screen and (max-width: 1280px) {
		.wrapper {
			padding: 4em 0;
		}
	}

	@media screen and (max-width: 736px) {
		.wrapper {
			padding: 3em 0;
		}

		.wrapper > .inner {
			padding: 0 2em;
		}
	}

/* ==========================================================================
   Section Header
   ========================================================================== */

.section-header {
	text-align: center;
	margin-bottom: 4em;
}

	.section-header h2 {
		font-size: 1.75em;
		margin: 0 0 0.5em 0;
		padding-bottom: 0.75em;
		position: relative;
	}

	.section-header h2:after {
		content: '';
		display: block;
		width: 4em;
		height: 2px;
		background-color: var(--color-primary);
		margin: 0.75em auto 0 auto;
	}

	.section-header p {
		font-size: 1.1em;
		color: var(--color-text-dark);
	}

	.wrapper.dark .section-header p {
		color: var(--color-text-light);
	}

	.wrapper.dark .section-header h2:after {
		background-color: var(--color-primary);
	}

	@media screen and (max-width: 736px) {
		.section-header {
			margin-bottom: 3em;
		}

		.section-header h2 {
			font-size: 1.35em;
		}
	}

/* ==========================================================================
   Spotlight (from Formula / Why B2)
   ========================================================================== */

#why-b2 > .inner {
	padding: 0;
	max-width: none;
}

#why-b2 .section-header {
	padding: 0 3em;
}

.spotlight {
	display: flex;
	align-items: center;
	margin-bottom: 4em;
}

	.spotlight:last-child {
		margin-bottom: 0;
	}

	.spotlight .content {
		flex: 1.5;
		padding: 0 3em;
	}

		.spotlight .content header h2 {
			font-size: 1.25em;
			margin-bottom: 0.75em;
		}

		.spotlight .content p {
			color: var(--color-text-dark);
		}

	.spotlight .image {
		flex: 1;
		height: 20em;
		margin: 0;
		background-size: cover;
		background-position: center;
		border-radius: 6em 0 0 6em;
	}

	.spotlight.alt {
		flex-direction: row-reverse;
	}

		.spotlight.alt .image {
			border-radius: 0 6em 6em 0;
			margin: 0;
		}

	@media screen and (max-width: 980px) {
		.spotlight .image {
			width: 35%;
			margin: 0;
		}

		.spotlight.alt .image {
			margin-left: 0;
			margin-right: 3em;
		}
	}

	@media screen and (max-width: 736px) {
		.spotlight {
			flex-direction: column !important;
			text-align: center;
		}

		.spotlight .content {
			width: 100%;
		}

		.spotlight .image {
			width: 80%;
			height: 15em;
			margin: 0 auto 2em auto !important;
			order: -1;
		}
	}

/* ==========================================================================
   Split / Services (from Telemetry)
   ========================================================================== */

#services > .inner {
	padding: 0;
	max-width: none;
}

#services .section-header {
	margin-bottom: 2em;
	padding: 0 3em;
}

.split {
	display: flex;
	align-items: center;
	gap: 2em;
}

	.split .image-side {
		flex: 1;
		height: 20em;
		background-size: cover;
		background-position: center;
		border-radius: 0 6em 6em 0;
		filter: saturate(0.6) sepia(0.1);
		opacity: 0.85;
	}

	.split .image-side.services-bg {
		background-image: url('../../images/services-pic.jpg');
	}

	.split .content-side {
		flex: 1.5;
	}

	@media screen and (max-width: 980px) {
		.split {
			flex-direction: column;
			gap: 2em;
		}

		.split .image-side,
		.split .content-side {
			width: 100% !important;
		}

		.split .image-side {
			min-height: 20em;
			border-radius: 0.75em;
		}
	}

/* Features Grid (from Telemetry - 2x2 icon articles) */

.features-grid {
	display: flex;
	flex-wrap: wrap;
}

	.features-grid > article {
		width: 50%;
		padding: 1.5em 0;
		position: relative;
		border-top: 1px solid var(--color-border);
		border-left: 1px solid var(--color-border);
	}

		.features-grid > article:nth-child(1),
		.features-grid > article:nth-child(2) {
			border-top: 0;
		}

		.features-grid > article:nth-child(2n - 1) {
			border-left: 0;
			padding-left: 2.75em;
			padding-right: 1.5em;
		}

		.features-grid > article:nth-child(2n) {
			padding-left: 4.5em;
			padding-right: 0;
		}

		.features-grid > article:before {
			position: absolute;
			font-size: 1.5em;
			top: 1.25em;
		}

		.features-grid > article:nth-child(2n - 1):before {
			left: 0;
		}

		.features-grid > article:nth-child(2n):before {
			left: 1.5em;
		}

		.features-grid > article h3 {
			color: var(--color-primary);
			margin: 0 0 0.5em 0;
		}

		.features-grid > article:before {
			color: var(--color-primary);
		}

		.features-grid > article p {
			font-size: 0.9em;
			margin: 0;
		}

	@media screen and (max-width: 480px) {
		.features-grid > article {
			width: 100%;
			border-left: 0;
			padding-left: 2.75em !important;
			padding-right: 0 !important;
		}

		.features-grid > article:nth-child(2) {
			border-top: 1px solid var(--color-border);
		}

		.features-grid > article:before {
			left: 0 !important;
		}
	}

/* ==========================================================================
   Cards (from cases / Hyperbolic - dark section)
   ========================================================================== */

.cards {
	display: flex;
	flex-wrap: wrap;
	gap: 2em;
}

	.cards > article {
		width: calc(50% - 1em);
		padding: 2.5em;
		border-top: 3px solid var(--color-primary);
	}

		.cards > article .icon {
			display: block;
			margin-bottom: 1.5em;
		}

			.cards > article .icon:before {
				font-size: 2.5em;
				color: var(--color-primary);
			}

		.cards > article h3 {
			color: var(--color-text-heading-light);
			margin: 0 0 1em 0;
		}

		.cards > article p {
			color: var(--color-text-light);
			font-size: 0.9em;
			margin: 0 0 1.5em 0;
		}

		.cards > article .button {
			background-color: transparent;
			border: 2px solid var(--color-text-light);
			color: var(--color-text-light) !important;
		}

			.cards > article .button:hover {
				background-color: var(--color-primary);
				border-color: var(--color-primary);
				color: #ffffff !important;
			}

	@media screen and (max-width: 736px) {
		.cards > article {
			width: 100%;
		}
	}

/* Sector tiles (homepage) */
.sector-tiles {
	display: flex;
	justify-content: center;
	gap: 2em;
	flex-wrap: wrap;
}

.sector-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 2em 1.5em;
	border-top: 3px solid transparent;
	border-radius: 4px;
	text-decoration: none;
	transition: border-color 0.3s, background-color 0.3s;
	flex: 0 1 auto;
	min-width: 10em;
}

	.sector-tile:hover {
		border-top-color: var(--color-primary);
		background-color: rgba(255,255,255,0.03);
	}

	.sector-tile .icon:before {
		font-size: 2.5em;
		color: var(--color-primary);
	}

	.sector-tile h3 {
		color: #ffffff;
		font-size: 0.9em;
		margin: 1em 0 0 0;
		letter-spacing: 0.05em;
	}

	@media screen and (max-width: 736px) {
		.sector-tiles {
			gap: 1em;
		}

		.sector-tile {
			flex: 0 1 calc(50% - 0.5em);
			min-width: auto;
			padding: 1.5em 1em;
		}
	}

/* ==========================================================================
   Cases Page
   ========================================================================== */

.page-hero {
	padding: 8em 4em 4em 4em;
	background-color: var(--color-bg-darker);
	text-align: center;
}

	.page-hero h1 {
		color: #ffffff;
		font-family: "Oswald", sans-serif;
		font-size: 2.5em;
		text-transform: uppercase;
		letter-spacing: 0.15em;
		margin: 0 0 0.5em 0;
	}

	.page-hero p {
		color: var(--color-text-light);
		font-size: 1.1em;
		max-width: 40em;
		margin: 0 auto;
	}

/* Sector quick-nav */
.case-sector-nav {
	background-color: var(--color-bg-dark);
	padding: 1.5em 0;
	position: sticky;
	top: 4em;
	z-index: 9999;
	border-bottom: 1px solid rgba(255,255,255,0.05);
}

	.case-sector-nav .inner {
		max-width: 75em;
		margin: 0 auto;
		padding: 0 4em;
	}

	.case-sector-nav ul {
		display: flex;
		justify-content: center;
		gap: 3em;
		list-style: none;
		padding: 0;
		margin: 0;
	}

		.case-sector-nav ul li a {
			color: var(--color-text-light);
			border-bottom: 0;
			font-size: 0.85em;
			font-weight: 500;
			letter-spacing: 0.15em;
			text-transform: uppercase;
			transition: color 0.2s ease;
			display: flex;
			align-items: center;
			gap: 0.5em;
		}

			.case-sector-nav ul li a:hover {
				color: var(--color-primary);
			}

			.case-sector-nav ul li a .icon:before {
				font-size: 1em;
				color: var(--color-primary);
			}

/* Case sections */
.case-section {
	padding: 5em 0;
}

	.case-section .inner {
		max-width: 75em;
		margin: 0 auto;
		padding: 0 4em;
	}

.case-section-header {
	display: flex;
	align-items: center;
	gap: 0.75em;
	margin-bottom: 2.5em;
	padding-bottom: 1em;
	border-bottom: 2px solid var(--color-primary);
}

	.case-section-header .icon:before {
		font-size: 1.8em;
		color: var(--color-primary);
	}

	.case-section-header h2 {
		margin: 0;
		font-size: 1.5em;
	}

	.wrapper.dark .case-section-header h2 {
		color: #ffffff;
	}

/* Case studies grid */
.case-studies {
	display: flex;
	flex-wrap: wrap;
	gap: 2em;
	justify-content: center;
}

/* Case card */
.case-card {
	flex: 1 1 calc(50% - 2em);
	max-width: calc(50% - 1em);
	min-height: 20em;
	padding: 2.5em;
	border-top: 3px solid var(--color-primary);
	background-color: rgba(0,0,0,0.15);
	border-radius: 0 0 4px 4px;
	display: flex;
	flex-direction: column;
}

	.wrapper:not(.dark) .case-card {
		background-color: rgba(0,0,0,0.03);
	}

	.case-card-header {
		margin-bottom: 1.5em;
	}

	.case-tag {
		display: inline-block;
		background-color: rgba(28, 180, 149, 0.15);
		color: var(--color-primary);
		font-size: 0.7em;
		font-weight: 500;
		letter-spacing: 0.15em;
		text-transform: uppercase;
		padding: 0.4em 1em;
		border-radius: 3px;
	}

	.case-card h3 {
		font-size: 1.15em;
		margin: 0 0 0.5em 0;
	}

	.wrapper.dark .case-card h3 {
		color: #ffffff;
	}

	.case-solution {
		font-size: 0.8em;
		color: var(--color-primary);
		font-weight: 500;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		margin: 0 0 1.25em 0 !important;
	}

	.case-card > p {
		font-size: 0.9em;
		line-height: 1.8;
		text-align: justify;
	}

	.wrapper.dark .case-card > p {
		color: var(--color-text-light);
	}

	.case-results {
		display: flex;
		gap: 1.5em;
		margin-top: auto;
		padding-top: 1.5em;
		border-top: 1px solid rgba(255,255,255,0.1);
		list-style: none;
	}

	.wrapper:not(.dark) .case-results {
		border-top-color: rgba(0,0,0,0.1);
	}

		.case-results li {
			font-size: 0.8em;
			text-transform: uppercase;
			letter-spacing: 0.05em;
		}

		.wrapper.dark .case-results li {
			color: var(--color-text-light);
		}

		.case-results li strong {
			display: block;
			font-size: 1.8em;
			color: var(--color-primary);
			margin-bottom: 0.25em;
		}

		.case-results.qualitative li {
			display: flex;
			align-items: center;
			gap: 0.5em;
			text-transform: none;
			letter-spacing: 0;
			font-size: 0.85em;
		}

		.case-results.qualitative li strong {
			display: inline-flex;
			font-size: 1.2em;
			margin-bottom: 0;
			flex-shrink: 0;
		}

/* Cases CTA */
.case-cta {
	padding: 5em 0;
	border-top: 1px solid rgba(255,255,255,0.05);
}

	.case-cta h2 {
		color: #ffffff;
		margin-bottom: 0.5em;
	}

	.case-cta p {
		color: var(--color-text-light);
		margin-bottom: 2em;
	}

/* Cases page responsive */
@media screen and (max-width: 980px) {
	.case-sector-nav ul {
		gap: 2em;
	}
}

@media screen and (max-width: 736px) {
	.page-hero {
		padding: 7em 2em 3em 2em;
	}

		.page-hero h1 {
			font-size: 1.8em;
		}

	.case-sector-nav ul {
		flex-wrap: wrap;
		gap: 1em;
		justify-content: center;
	}

	.case-section .inner {
		padding: 0 2em;
	}

	.case-studies {
		flex-direction: column;
	}

	.case-card {
		flex: 1 1 100%;
		max-width: 100%;
	}

	.case-results {
		flex-wrap: wrap;
	}
}

/* ==========================================================================
   Careers Section
   ========================================================================== */

.careers-content {
	text-align: center;
}

	.careers-content > .careers-text > p:first-child {
		max-width: 48em;
		margin-left: auto;
		margin-right: auto;
		font-size: 1.05em;
	}

.careers-perks {
	display: flex;
	gap: 3em;
	margin: 3em 0;
	text-align: center;
}

	.careers-perks .perk {
		flex: 1;
		padding-top: 3.5em;
		position: relative;
	}

		.careers-perks .perk:before {
			position: absolute;
			top: 0;
			left: 50%;
			transform: translateX(-50%);
			font-size: 2em;
			color: var(--color-primary);
		}

		.careers-perks .perk h3 {
			color: var(--color-text-heading);
			margin-bottom: 0.5em;
		}

		.careers-perks .perk p {
			font-size: 0.9em;
			margin: 0;
		}

.careers-cta {
	margin-top: 2em;
}

	.careers-cta p {
		font-size: 1.1em;
		margin-bottom: 1em;
		color: var(--color-text-dark);
	}

	.careers-cta .button {
		font-size: 0.75em;
	}

	@media screen and (max-width: 736px) {
		.careers-perks {
			flex-direction: column;
			gap: 2.5em;
		}
	}

/* ==========================================================================
   Contact Section (from Solid State / contact template)
   ========================================================================== */

#contact {
	background-color: var(--color-bg-darker);
}

	#contact .section-header p {
		max-width: 48em;
		margin-left: auto;
		margin-right: auto;
	}

/* Contact split layout */

.contact-split {
	display: flex;
	gap: 3em;
}

	.contact-split > form {
		flex: 1;
		margin: 0;
	}

	#form-message {
		margin-top: 1em;
		padding: 0;
		border-radius: 0.35em;
		font-size: 0.9em;
		line-height: 1.5;
	}

	#form-message:empty {
		display: none;
	}

	#form-message.success {
		padding: 1em 1.25em;
		background-color: rgba(28, 180, 149, 0.15);
		color: #1cb495;
		border: 1px solid rgba(28, 180, 149, 0.3);
	}

	#form-message.error {
		padding: 1em 1.25em;
		background-color: rgba(220, 53, 69, 0.15);
		color: #ff6b7a;
		border: 1px solid rgba(220, 53, 69, 0.3);
	}

	.contact-split > .contact-info {
		flex: 1;
	}

/* Form fields */

form > .fields {
	display: flex;
	flex-wrap: wrap;
	width: calc(100% + 1.5em);
	margin: 0 0 2em -1.5em;
}

	form > .fields > .field {
		flex-grow: 0;
		flex-shrink: 0;
		padding: 1.5em 0 0 1.5em;
		width: calc(100% - 1.5em);
	}

		form > .fields > .field.half {
			width: calc(50% - 0.75em);
		}

	@media screen and (max-width: 480px) {
		form > .fields > .field.half {
			width: calc(100% - 1.5em);
		}
	}

label {
	color: var(--color-text-heading-light);
	display: block;
	font-size: 0.7em;
	font-weight: 500;
	letter-spacing: 0.25em;
	margin: 0 0 0.75em 0;
	text-transform: uppercase;
}

input[type="text"],
input[type="password"],
input[type="email"],
input[type="tel"],
select,
textarea {
	appearance: none;
	background: rgba(255, 255, 255, 0.025);
	border-radius: 5px;
	border: solid 2px rgba(255, 255, 255, 0.125);
	color: inherit;
	display: block;
	outline: 0;
	padding: 0 1em;
	text-decoration: none;
	width: 100%;
	font-family: "Roboto", Helvetica, sans-serif;
	font-size: 1em;
	font-weight: 300;
	transition: border-color 0.2s ease-in-out;
}

	input[type="text"],
	input[type="password"],
	input[type="email"],
	input[type="tel"],
	select {
		height: 2.75em;
	}

	textarea {
		padding: 0.75em 1em;
		line-height: 1.65;
	}

	input[type="text"]:focus,
	input[type="password"]:focus,
	input[type="email"]:focus,
	input[type="tel"]:focus,
	select:focus,
	textarea:focus {
		border-color: var(--color-primary);
	}

	input[type="text"]:invalid,
	input[type="password"]:invalid,
	input[type="email"]:invalid,
	textarea:invalid {
		box-shadow: none;
	}

/* Contact info list */

#contact .contact-list {
	list-style: none;
	padding: 0;
}

	#contact .contact-list li {
		margin: 2em 0 0 0;
		padding: 0 0 0 3.25em;
		position: relative;
		line-height: 1.65;
	}

		#contact .contact-list li:first-child {
			margin-top: 0;
		}

		#contact .contact-list li:before {
			border-radius: 100%;
			border: solid 2px rgba(255, 255, 255, 0.125);
			display: inline-block;
			font-size: 0.8em;
			height: 2.5em;
			left: 0;
			line-height: 2.35em;
			position: absolute;
			text-align: center;
			top: 0;
			width: 2.5em;
		}

		#contact .contact-list li a {
			color: var(--color-text-light);
			border-bottom: dotted 1px rgba(255, 255, 255, 0.25);
		}

			#contact .contact-list li a:hover {
				color: var(--color-primary) !important;
				border-bottom-color: transparent;
			}

	@media screen and (max-width: 980px) {
		.contact-split {
			flex-direction: column;
		}

		.contact-split > form {
			margin-bottom: 2em;
		}
	}

	@media screen and (max-width: 736px) {
		#contact .contact-list li {
			margin: 1.5em 0 0 0;
		}
	}

/* ==========================================================================
   Footer
   ========================================================================== */

#footer {
	background-color: #161616;
	color: var(--color-text-light);
	padding: 2.5em 0;
}

	#footer .inner {
		max-width: 72em;
		margin: 0 auto;
		padding: 0 3em;
		text-align: center;
	}

	#footer .icons {
		margin-bottom: 1.5em;
	}

		#footer .icons li a {
			color: rgba(255, 255, 255, 0.5);
			border-bottom: 0;
			transition: color 0.2s ease;
		}

			#footer .icons li a:hover {
				color: var(--color-primary) !important;
			}

			#footer .icons li .icon:before {
				font-size: 1.25em;
			}

	#footer .copyright {
		font-size: 0.85em;
		color: rgba(255, 255, 255, 0.35);
		margin: 0;
	}

	@media screen and (max-width: 736px) {
		#footer {
			padding: 2em 0;
		}

		#footer .inner {
			padding: 0 2em;
		}
	}

/* ==========================================================================
   Smooth scrolling
   ========================================================================== */

html {
	scroll-behavior: smooth;
}

/* ==========================================================================
   Scrolly animation helper
   ========================================================================== */

.scrolly {
	border-bottom: 0;
}
