/* ==========================================================================
   MARS X — custom stylesheet
   Rebuilt from the original Elementor design (portopaolo.netvixo.com)
   ========================================================================== */

/* --------------------------------------------------------------------------
 * Base
 * -------------------------------------------------------------------------- */
:root {
	--accent:        #5E6BFF;
	--accent-soft:   rgba(94, 107, 255, 0.25);
	--accent-border: #5E6BFFA1;
	--danger:        #EB2B2B;
	--night:         #020003;
	--space:         #0A111A;
	--muted:         #AEB9C6;
	--glow:          #45D6FF;
}

* { box-sizing: border-box; }

html { font-size: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: #000;
	color: #334155;
	font-family: Roboto, sans-serif;
	font-size: 16px;
	line-height: 1.65;
}

img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
h1, h2, h3, h4, h5, h6, p { margin: 0; }
ul { list-style: none; margin: 0; padding: 0; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute !important; word-wrap: normal !important;
}

.skip-link {
	left: -9999rem; top: 2.5rem; z-index: 999999999; text-decoration: underline;
	position: absolute;
}
.skip-link:focus {
	display: block; left: 6px; top: 7px; background: #fff;
	padding: 10px 16px; font-size: 14px;
}

/* Animated gradient (shared by header CTA + footer top border) */
@keyframes gradientMove {
	0%   { background-position: 0% 50%; }
	100% { background-position: 300% 50%; }
}

/* Animated shine used by .glow-short / .glow-long headings */
.glow-short,
.glow-long {
	background: linear-gradient(90deg, #FFFFFF, #5E6BFF, #EB2B2B, #FFFFFF, #5E6BFF);
	background-size: 300% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: shine 8s linear infinite;
}
@keyframes shine {
	from { background-position: 0% center; }
	to   { background-position: 300% center; }
}

/* --------------------------------------------------------------------------
 * Header
 * -------------------------------------------------------------------------- */
.site-header {
	background-color: var(--night);
	padding: 20px 10px;
}

.header-inner { width: 100%; }

.header-brand  { width: 30%; }
.header-menu   { width: 40%; position: relative; }
.header-cta    { width: 30%; }

.header-logo-link { width: 76%; max-width: 76%; display: block; }
.header-logo-link img { width: 100%; }

.main-nav .nav-link {
	display: inline-block;
	position: relative;
	margin: 0 18px;
	padding: 13px 3px;
	color: #FFFFFF;
	font-family: "IBM Plex Mono", monospace;
	font-size: 18px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 1;
	transition: color .3s;
}
/* underline pointer (fade) */
.main-nav .nav-link::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 6px;
	height: 2px;
	background-color: #FFFFFF;
	opacity: 0;
	transition: opacity .3s;
}
.main-nav .nav-link:hover::after,
.main-nav .nav-link.is-active::after { opacity: 1; }

/* Burger toggle */
.menu-toggle {
	display: none;
	margin-left: auto;
	padding: .25em;
	cursor: pointer;
	color: #fff;
	font-size: 30px;
	border: 1px solid transparent;
	border-radius: 3px;
}
.menu-toggle svg { width: 1em; height: 1em; fill: #FFFFFF; }
.menu-toggle__icon--close { display: none; }
.menu-toggle.is-active .menu-toggle__icon--open  { display: none; }
.menu-toggle.is-active .menu-toggle__icon--close { display: block; }

/* Mobile dropdown */
.mobile-nav {
	display: none;
	position: absolute;
	left: 0; right: 0;
	top: 100%;
	z-index: 90;
	background-color: #000000;
	box-shadow: 0 3px 6px rgba(0, 0, 0, .36);
	margin-top: 3px;
}
.mobile-nav.is-open { display: block; }
.mobile-nav-link {
	display: block;
	padding: 13px 20px;
	color: #FFFFFF;
	fill: #FFFFFF;
	font-family: Roboto, sans-serif;
	font-weight: 500;
	transition: background-color .3s, color .3s;
}
.mobile-nav-link:hover,
.mobile-nav-link.is-active { background-color: #FFFFFF; color: #000000; }

/* CTA: animated gradient border + gradient text */
.gradient-border-btn {
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	align-self: center;
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 16px 34px;
	overflow: hidden;
	z-index: 1;
	cursor: pointer;
}
.gradient-border-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	padding: 2px;
	background: linear-gradient(90deg, #7B8CFF, #8B5CF6, #C15CFF, #FF5E87, #7B8CFF);
	background-size: 300% 100%;
	animation: gradientMove 3s linear infinite;
	border-radius: 0;
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	z-index: -1;
}
.gradient-border-btn__text {
	font-family: Montserrat, sans-serif;
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	background: linear-gradient(90deg, #7B8CFF, #8B5CF6, #C15CFF, #FF5E87, #7B8CFF);
	background-size: 300% auto;
	animation: gradientMove 3s linear infinite;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

@media (max-width: 1024px) {
	.header-brand { width: 54%; }
	.header-menu  { width: 40%; position: static; }
	.header-cta   { display: none; }
	.site-header  { position: relative; }
	.header-logo-link { width: 100%; max-width: 675px; }
	.main-nav { display: none; }
	.menu-toggle { display: flex; align-items: center; justify-content: center; }
	.mobile-nav { margin-top: 0; }
}
@media (max-width: 767px) {
	.site-header { padding: 15px 8px 15px 10px; }
	.header-brand { width: 63%; }
	.header-menu  { width: 37%; justify-content: flex-end; }
	.menu-toggle { font-size: 27px; }
}

/* --------------------------------------------------------------------------
 * Shared section helpers
 * -------------------------------------------------------------------------- */
.section-boxed {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

.section-label {
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 26px;
	letter-spacing: 1.9px;
	color: var(--muted);
}

.section-title {
	font-family: "IBM Plex Mono", monospace;
	font-size: 42px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 50px;
	color: #FFFFFF;
}

@media (max-width: 767px) {
	.section-label { font-size: 14px; line-height: 22px; }
	.section-title { font-size: 22px; line-height: 30px; }
}

/* Bordered icon-list rows ("feature rows") */
.feature-row {
	background-color: var(--space);
	padding: 15px;
	border: 1px solid var(--accent-soft);
	transform: translateY(10px);
	transition: all .4s ease;
}
.feature-row:hover {
	transform: translateY(0);
	border-color: var(--accent);
	box-shadow: 0 0 12px rgba(94, 107, 255, .3);
}
.feature-row li {
	display: flex;
	align-items: center;
}
.feature-row .feature-row__icon {
	display: inline-flex;
	flex-shrink: 0;
	padding-inline-end: 8px;
}
.feature-row .feature-row__icon svg {
	width: 18px;
	height: 18px;
	fill: var(--accent);
	transition: fill .3s;
}
.feature-row .feature-row__text {
	color: #FFFFFF;
	font-family: Montserrat, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 24px;
	transition: color .3s;
}

/* Icon boxes (system description / mission applications) */
.icon-box {
	background-color: var(--space);
	padding: 30px 20px;
	border: 1px solid var(--accent-soft);
	transform: translateY(10px);
	transition: all .4s ease;
}
.icon-box:hover {
	transform: translateY(0);
	border-color: var(--accent);
	box-shadow: 0 0 12px rgba(94, 107, 255, .3);
}
.icon-box__wrapper {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-align: start;
	gap: 25px;
}
.icon-box__icon svg {
	width: 1em;
	height: 1em;
	font-size: 30px;
	fill: var(--accent);
}
.icon-box__title {
	color: #FFFFFF;
	font-family: "IBM Plex Mono", monospace;
	font-size: 16px;
	font-weight: 500;
	text-transform: capitalize;
	line-height: 1.3;
}

/* Variant used on the Information page (Mission applications) */
.icon-box--app .icon-box__icon svg { font-size: 25px; }
.icon-box--app .icon-box__title {
	font-family: Montserrat, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
}

/* --------------------------------------------------------------------------
 * Buttons (hero)
 * -------------------------------------------------------------------------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 26px;
	font-family: Montserrat, sans-serif;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 22px;
	color: #FFFFFF;
	border-radius: 0;
	cursor: pointer;
	transition: transform .3s;
}
.btn:hover { transform: scale(.95); } /* elementor "shrink" animation */

.btn--gradient {
	background-image: linear-gradient(90deg, #5E6BFF 0%, #EB2B2B 120%);
}

.btn--outline {
	background-color: transparent;
	border: 1px solid #FFFFFF;
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, .5);
	gap: 10px;
}
.btn--outline .btn__icon { order: 2; display: inline-flex; }
.btn--outline .btn__icon svg { width: 1em; height: 1em; fill: #FFFFFF; }

@media (max-width: 767px) {
	.btn { font-size: 12px; line-height: 20px; padding: 10px 20px; }
	.btn--outline { padding: 10px 22px; }
}

/* ==========================================================================
 * Astronomy widgets (cards / space buttons / starfield background)
 * Ported from the "astronomy-progress-elementor" plugin, with the page
 * specific overrides already applied.
 * ========================================================================== */
.ape-astro-progress {
	--ape-glow: #45d6ff;
	--ape-text: #f4f7fa;
	--ape-muted: #8b97a3;
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 320px;
	max-width: 100%;
	min-height: 300px;
	margin-left: auto;
	margin-right: auto;
	border: 1px solid #17212a;
	border-radius: 8px;
	overflow: hidden;
	padding: 18px 18px 17px;
	color: var(--ape-text);
	background-color: #05090d;
	background-image:
		radial-gradient(circle at 82% 8%, rgba(69, 214, 255, 0.1) 0, transparent 34%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.025), transparent 42%);
	box-shadow:
		inset 0 0 28px rgba(0, 0, 0, 0.62),
		0 12px 30px rgba(0, 0, 0, 0.24);
}

.ape-card--starfield::before,
.ape-card--starfield::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
}
.ape-card--starfield::before {
	opacity: 0.5;
	background-image:
		radial-gradient(circle at 12% 18%, rgba(255,255,255,.74) 0 1px, transparent 1.5px),
		radial-gradient(circle at 72% 15%, rgba(255,255,255,.5) 0 1px, transparent 1.5px),
		radial-gradient(circle at 34% 73%, rgba(255,255,255,.42) 0 1px, transparent 1.4px),
		radial-gradient(circle at 88% 67%, rgba(255,255,255,.55) 0 1px, transparent 1.5px),
		radial-gradient(circle at 56% 42%, rgba(105,225,255,.85) 0 1px, transparent 1.8px);
	background-size: 170px 170px, 220px 220px, 190px 190px, 250px 250px, 280px 280px;
	animation: ape-star-drift 20s linear infinite;
}
.ape-card--starfield::after {
	inset: -45%;
	opacity: .18;
	background: conic-gradient(from 90deg, transparent, rgba(69,214,255,.18), transparent 35%);
	animation: ape-nebula-spin 18s linear infinite;
}

.ape-card__content { position: relative; z-index: 1; min-width: 0; }
.ape-card__header  { margin-bottom: 16px; }

.ape-card__title {
	position: relative;
	display: inline-block;
	margin: 0 0 7px;
	color: #eaf6ff;
	font-family: "IBM Plex Mono", monospace;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .16em;
	text-transform: uppercase;
	animation: ape-title-glow 2.8s ease-in-out infinite;
}
.ape-card__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -5px;
	width: 32%;
	height: 1px;
	background: linear-gradient(90deg, var(--ape-glow), transparent);
	box-shadow: 0 0 8px var(--ape-glow);
	transform-origin: left center;
	animation: ape-heading-line 3.5s ease-in-out infinite;
}

.ape-card__subtitle {
	color: var(--ape-muted);
	font-size: 9px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.ape-card__main {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	min-width: 0;
}

.ape-health-legend {
	display: grid;
	gap: 7px;
	min-width: 0;
	flex: 1 1 130px;
}

.ape-data-row {
	display: grid;
	grid-template-columns: 8px minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
	min-width: 0;
	color: var(--ape-muted);
	font-size: 9px;
	line-height: 1.25;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.ape-data-row__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ape-data-row__dot {
	width: 6px; height: 6px; border-radius: 50%;
	background: var(--ape-dot);
	box-shadow: 0 0 8px var(--ape-dot);
}

.ape-ring {
	position: relative;
	flex: 0 1 auto;
	display: grid;
	place-items: center;
	width: 128px;
	max-width: 46%;
	height: auto !important;
	aspect-ratio: 1;
	filter: drop-shadow(0 0 10px rgba(69, 214, 255, .16));
}
.ape-ring svg {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
	transform-origin: 50% 50%;
	transform-box: fill-box;
	overflow: visible;
}
.ape-ring circle { fill: none; stroke-width: 12; vector-effect: non-scaling-stroke; }
.ape-ring__track { stroke: #1a252f; opacity: .92; }
.ape-ring__progress {
	stroke: var(--ape-segment-color, var(--ape-glow));
	stroke-dasharray: var(--ape-progress, 0) var(--ape-progress-gap, 100);
	stroke-linecap: butt !important;
	shape-rendering: geometricPrecision;
	will-change: stroke-dasharray;
}
.ape-ring__center {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	text-align: center;
}
.ape-ring__value {
	font-family: Montserrat, sans-serif;
	font-size: 22px;
	font-weight: 300;
	line-height: 30px;
	letter-spacing: -.03em;
	text-shadow: 0 0 18px rgba(69, 214, 255, .22);
}
.ape-ring__label {
	margin-top: 5px;
	color: var(--ape-muted);
	font-size: 8px;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ape-card__footer {
	position: relative;
	z-index: 2;
	margin-top: 16px;
	padding-top: 13px;
	border-top: 1px solid rgba(132, 164, 184, .13);
}

.ape-astronomy-button-wrap { display: flex; width: 100%; justify-content: center; }

.ape-standalone-button {
	width: 300px;
	max-width: 100%;
	min-height: 48px !important;
	padding: 12px 12px 12px 16px !important;
	border-radius: 5px !important;
}

.ape-button {
	--ape-glow: #45d6ff;
	--ape-button-bg: #071016;
	--ape-button-hover-bg: #10232d;
	--ape-button-border: #1b2b36;
	--ape-button-speed: 7s;
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	min-height: 44px;
	padding: 10px 11px 10px 13px;
	border: 1px solid var(--ape-button-border);
	border-radius: 4px;
	overflow: hidden;
	color: #dce7ef;
	background:
		linear-gradient(180deg, rgba(255,255,255,.06), transparent 42%),
		var(--ape-button-bg);
	box-shadow:
		0 5px 0 #01060a,
		0 10px 19px rgba(0,0,0,.42),
		inset 0 1px 0 rgba(255,255,255,.08),
		inset 0 -12px 22px rgba(0,0,0,.3),
		0 0 13px rgba(69,214,255,.08);
	font-size: 9px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .13em;
	text-decoration: none;
	text-transform: uppercase;
	transform: translateY(0) perspective(600px) rotateX(0deg);
	transition:
		color .24s ease,
		background .24s ease,
		border-color .24s ease,
		box-shadow .24s ease,
		transform .24s ease;
}
.ape-button:hover,
.ape-button:focus-visible {
	color: #fff;
	background:
		linear-gradient(180deg, rgba(255,255,255,.075), transparent 42%),
		var(--ape-button-hover-bg);
	border-color: var(--ape-glow);
	box-shadow:
		0 7px 0 #01060a,
		0 15px 28px rgba(0,0,0,.48),
		inset 0 1px 0 rgba(255,255,255,.12),
		inset 0 -13px 22px rgba(0,0,0,.24),
		0 0 22px rgba(69,214,255,.22);
	transform: translateY(-2px) perspective(600px) rotateX(2deg);
}
.ape-button:active {
	box-shadow:
		0 2px 0 #01060a,
		0 6px 12px rgba(0,0,0,.38),
		inset 0 2px 12px rgba(0,0,0,.5),
		0 0 17px rgba(69,214,255,.18);
	transform: translateY(3px) perspective(600px) rotateX(-1deg);
}

.ape-button::before,
.ape-button::after { content: ""; position: absolute; pointer-events: none; }

.ape-space-button--stars::before {
	inset: 0;
	z-index: 0;
	opacity: .5;
	background-image:
		radial-gradient(circle, rgba(255,255,255,.95) 0 1px, transparent 1.4px),
		radial-gradient(circle, rgba(120,224,255,.75) 0 .7px, transparent 1.2px),
		radial-gradient(circle, rgba(255,255,255,.55) 0 .6px, transparent 1px);
	background-size: 43px 29px, 61px 37px, 79px 47px;
	animation: ape-space-stars var(--ape-button-speed) linear infinite;
}
.ape-space-button--comet::after {
	inset: -70% -30%;
	z-index: 0;
	background: linear-gradient(108deg, transparent 39%, rgba(110,222,255,.12) 47%, rgba(255,255,255,.42) 50%, rgba(110,222,255,.1) 53%, transparent 61%);
	transform: translateX(-65%) rotate(3deg);
	animation: ape-space-comet var(--ape-button-speed) ease-in-out infinite;
}

.ape-space-button__label,
.ape-space-button__planet { position: relative; z-index: 2; }
.ape-space-button__label  { text-shadow: 0 0 9px rgba(69,214,255,.3); }

.ape-space-button__stars {
	display: block;
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}
.ape-space-button__stars i {
	position: absolute;
	left: var(--x);
	top: var(--y);
	width: var(--s);
	height: var(--s);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 3px #fff, 0 0 7px var(--ape-glow);
	animation: ape-space-twinkle 2.5s ease-in-out var(--d) infinite;
}

.ape-space-button__planet {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	border: 1px solid rgba(92,221,255,.62);
	border-radius: 50%;
	background:
		radial-gradient(circle at 35% 30%, rgba(255,255,255,.22), transparent 24%),
		linear-gradient(145deg, #0c3343, #02090e 70%);
	box-shadow:
		inset -5px -6px 10px rgba(0,0,0,.55),
		inset 2px 2px 5px rgba(255,255,255,.06),
		0 0 11px rgba(69,214,255,.2);
}
.ape-space-button--orbit .ape-space-button__planet::before {
	content: "";
	position: absolute;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: #e7fbff;
	box-shadow: 0 0 4px #fff, 0 0 9px var(--ape-glow);
	transform: translateX(14px);
	transform-origin: -14px center;
	animation: ape-space-orbit var(--ape-button-speed) linear infinite;
}
.ape-space-button__planet span { transition: transform .25s ease; }
.ape-button:hover .ape-space-button__planet span,
.ape-button:focus-visible .ape-space-button__planet span { transform: translateX(2px); }

@keyframes ape-star-drift {
	to { background-position: 170px 120px, -220px 160px, 190px -120px, -250px -170px, 280px 210px; }
}
@keyframes ape-nebula-spin { to { transform: rotate(360deg); } }
@keyframes ape-heading-line {
	0%, 100% { transform: scaleX(.72); opacity: .62; }
	50% { transform: scaleX(1.25); opacity: 1; }
}
@keyframes ape-title-glow {
	0%, 100% { text-shadow: 0 0 4px rgba(69,214,255,.22), 0 0 10px transparent; }
	50% { text-shadow: 0 0 6px rgba(255,255,255,.58), 0 0 16px var(--ape-glow); }
}
@keyframes ape-space-stars { to { background-position: 86px 24px, -73px 39px, 94px -47px; } }
@keyframes ape-space-comet {
	0%, 34% { transform: translateX(-65%) rotate(3deg); opacity: 0; }
	45% { opacity: .8; }
	68%, 100% { transform: translateX(65%) rotate(3deg); opacity: 0; }
}
@keyframes ape-space-twinkle {
	0%, 100% { opacity: .18; transform: scale(.65); }
	50% { opacity: 1; transform: scale(1.35); }
}
@keyframes ape-space-orbit { to { transform: translateX(14px) rotate(360deg); } }

@media (max-width: 1024px) {
	.ape-ring { width: 124px; }
}
@media (max-width: 767px) {
	.ape-astro-progress { width: 100%; min-height: 290px; padding: 16px 15px 15px; }
	.ape-ring { width: 112px; }
	.ape-standalone-button { width: 100% !important; }
	.ape-data-row { font-size: 8px; }
	.ape-health-legend { gap: 6px; }
}

/* --------------------------------------------------------------------------
 * 3D space background (starfield / nebula / moon)
 * -------------------------------------------------------------------------- */
.space-section {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.space-section > :not(.ape-space-background) { position: relative; z-index: 1; }

.ape-space-background {
	--ape-space-bg: #0A111A;
	--ape-space-deep: #000000;
	--ape-space-glow: #45D6FF;
	--ape-star-color: #F4FBFF;
	--ape-nebula-color: #264A73;
	--ape-nebula-opacity: .42;
	--ape-moon-color: #DCE7EF;
	--ape-moon-size: 148px;
	--ape-moon-x: 86%;
	--ape-moon-y: 30%;
	--ape-moon-opacity: .15;
	--ape-vignette: .62;
	--ape-space-opacity: 1;
	--ape-moon-shift-x: 0px;
	--ape-moon-shift-y: 0px;
	--ape-nebula-x: 0px;
	--ape-nebula-y: 0px;
	--ape-dust-x: 0px;
	--ape-dust-y: 0px;
	position: absolute;
	inset: 0;
	z-index: 0;
	isolation: isolate;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background:
		radial-gradient(circle at 75% 12%, color-mix(in srgb, var(--ape-space-glow) 10%, transparent), transparent 35%),
		radial-gradient(circle at 15% 85%, color-mix(in srgb, var(--ape-nebula-color) 18%, transparent), transparent 42%),
		linear-gradient(150deg, var(--ape-space-bg), var(--ape-space-deep) 78%);
	opacity: var(--ape-space-opacity);
	perspective: 1000px;
	transform-style: preserve-3d;
	pointer-events: none;
}

.ape-space-background__canvas,
.ape-space-background__nebula,
.ape-space-background__dust,
.ape-space-background__vignette {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}
.ape-space-background__canvas { z-index: 2; display: block; }

.ape-space-background__nebula {
	z-index: 1;
	inset: -32%;
	width: 164%;
	height: 164%;
	opacity: var(--ape-nebula-opacity);
	background:
		radial-gradient(ellipse at 32% 43%, color-mix(in srgb, var(--ape-nebula-color) 74%, transparent) 0, transparent 35%),
		radial-gradient(ellipse at 69% 56%, color-mix(in srgb, var(--ape-space-glow) 34%, transparent) 0, transparent 30%),
		conic-gradient(from 30deg at 50% 50%, transparent, color-mix(in srgb, var(--ape-nebula-color) 36%, transparent), transparent 38%, color-mix(in srgb, var(--ape-space-glow) 18%, transparent), transparent 70%);
	filter: blur(34px) saturate(1.15);
	transform: translate3d(var(--ape-nebula-x), var(--ape-nebula-y), -80px) rotate(0deg) scale(1.02);
	animation: ape-space-nebula-orbit 42s linear infinite;
	will-change: transform;
}

.ape-space-background__dust {
	z-index: 3;
	opacity: .22;
	background-image:
		radial-gradient(circle at 12% 18%, rgba(255,255,255,.9) 0 1px, transparent 1.5px),
		radial-gradient(circle at 73% 22%, color-mix(in srgb, var(--ape-space-glow) 80%, white) 0 .8px, transparent 1.5px),
		radial-gradient(circle at 43% 72%, rgba(255,255,255,.62) 0 .7px, transparent 1.4px),
		radial-gradient(circle at 86% 81%, rgba(255,255,255,.55) 0 1px, transparent 1.6px);
	background-size: 190px 170px, 250px 230px, 310px 270px, 370px 330px;
	transform: translate3d(var(--ape-dust-x), var(--ape-dust-y), 30px);
	animation: ape-space-dust-drift 36s linear infinite;
}

.ape-space-background__vignette {
	z-index: 5;
	background:
		radial-gradient(ellipse at center, transparent 32%, color-mix(in srgb, rgba(0,0,0,var(--ape-vignette)) 55%, transparent) 74%, rgba(0,0,0,var(--ape-vignette)) 100%),
		linear-gradient(180deg, rgba(0,0,0,.14), transparent 24%, transparent 72%, rgba(0,0,0,.28));
}

.ape-space-background__moon {
	position: absolute;
	left: var(--ape-moon-x);
	top: var(--ape-moon-y);
	z-index: 4;
	width: var(--ape-moon-size);
	max-width: none;
	aspect-ratio: 1;
	border-radius: 50%;
	opacity: var(--ape-moon-opacity);
	background:
		radial-gradient(circle at 33% 28%, rgba(255,255,255,.9), transparent 9%),
		radial-gradient(circle at 31% 31%, color-mix(in srgb, var(--ape-moon-color) 92%, white), color-mix(in srgb, var(--ape-moon-color) 62%, #8293a0) 47%, #45515b 72%, #111820 100%);
	box-shadow:
		inset -24px -20px 38px rgba(0,0,0,.68),
		inset 10px 8px 18px rgba(255,255,255,.12),
		0 0 18px color-mix(in srgb, var(--ape-space-glow) 28%, transparent),
		0 0 55px color-mix(in srgb, var(--ape-space-glow) 18%, transparent),
		0 25px 70px rgba(0,0,0,.72);
	transform: translate3d(calc(-50% + var(--ape-moon-shift-x)), calc(-50% + var(--ape-moon-shift-y)), 105px) rotateX(4deg) rotateY(-8deg);
	transform-style: preserve-3d;
	will-change: transform;
	animation: ape-space-moon-float 13s ease-in-out infinite;
}
.ape-space-background__moon::before,
.ape-space-background__moon::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	pointer-events: none;
}
.ape-space-background__moon::before {
	z-index: 2;
	box-shadow:
		inset 7px 7px 16px rgba(255,255,255,.08),
		inset -12px -15px 24px rgba(0,0,0,.5);
}
.ape-space-background__moon::after { z-index: 3; }
.ape-moon-phase--full .ape-space-background__moon::after {
	background: radial-gradient(circle at 70% 30%, transparent 35%, rgba(0,0,0,.08) 100%);
}
.ape-space-background--no-moon .ape-space-background__moon { display: none; }

.ape-space-background__crater {
	position: absolute;
	z-index: 1;
	border-radius: 50%;
	background: rgba(33,43,50,.24);
	box-shadow:
		inset 2px 2px 4px rgba(0,0,0,.42),
		1px 1px 2px rgba(255,255,255,.08);
}
.ape-space-background__crater--1 { left: 24%; top: 23%; width: 13%; height: 13%; }
.ape-space-background__crater--2 { left: 57%; top: 18%; width: 8%; height: 8%; }
.ape-space-background__crater--3 { left: 62%; top: 55%; width: 17%; height: 17%; }
.ape-space-background__crater--4 { left: 31%; top: 66%; width: 10%; height: 10%; }
.ape-space-background__crater--5 { left: 42%; top: 44%; width: 6%; height: 6%; }

@keyframes ape-space-nebula-orbit {
	to { transform: translate3d(var(--ape-nebula-x), var(--ape-nebula-y), -80px) rotate(360deg) scale(1.02); }
}
@keyframes ape-space-dust-drift {
	to { background-position: 240px 130px, -280px 170px, 330px -210px, -370px -190px; }
}
@keyframes ape-space-moon-float {
	0%, 100% {
		transform: translate3d(calc(-50% + var(--ape-moon-shift-x)), calc(-50% + var(--ape-moon-shift-y)), 105px) rotateX(4deg) rotateY(-8deg) rotateZ(-1deg);
	}
	50% {
		transform: translate3d(calc(-50% + var(--ape-moon-shift-x)), calc(-53% + var(--ape-moon-shift-y)), 118px) rotateX(7deg) rotateY(-4deg) rotateZ(2deg);
	}
}

@media (max-width: 1024px) {
	.ape-space-background { --ape-moon-size: 145px; --ape-moon-x: 84%; --ape-moon-y: 24%; }
}
@media (max-width: 767px) {
	.ape-space-background { --ape-moon-size: 105px; --ape-moon-x: 78%; --ape-moon-y: 22%; }
}

@media (prefers-reduced-motion: reduce) {
	.ape-card--starfield::before,
	.ape-card--starfield::after,
	.ape-card__title,
	.ape-card__title::after,
	.ape-space-button--stars::before,
	.ape-space-button--comet::after,
	.ape-space-button__stars i,
	.ape-space-button--orbit .ape-space-button__planet::before,
	.ape-space-background__nebula,
	.ape-space-background__dust,
	.ape-space-background__moon { animation: none !important; }
	.ape-button { transition: none; }
}

/* --------------------------------------------------------------------------
 * HOME — page specific
 * -------------------------------------------------------------------------- */
.hero-home {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 700px;
	padding: 80px 0;
	background-image: url("../images/hero-home.png");
	background-position: center center;
	background-size: cover;
}
.hero-home .hero-title {
	width: 51%;
	max-width: 51%;
	font-family: "IBM Plex Mono", monospace;
	font-size: 58px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 66px;
	color: #E3EAF2;
	margin-bottom: 20px;
}
.hero-home .hero-text {
	width: 39%;
	max-width: 39%;
	font-family: Montserrat, sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 28px;
	color: #FFFFFF;
	margin-bottom: 20px;
}
.hero-buttons { display: flex; flex-direction: row; gap: 20px; }

@media (max-width: 1024px) {
	.hero-home { padding: 60px 20px; }
	.hero-home .hero-title { width: 74%; max-width: 74%; font-size: 52px; line-height: 60px; }
	.hero-home .hero-text  { width: 58%; max-width: 58%; font-size: 18px; line-height: 26px; }
}
@media (max-width: 767px) {
	.hero-home { min-height: 400px; background-repeat: no-repeat; }
	.hero-home .hero-title { width: 96%; max-width: 96%; font-size: 28px; line-height: 36px; }
	.hero-home .hero-text  { width: 88%; max-width: 88%; font-size: 16px; line-height: 24px; }
}

/* Mission command section */
.mission-section {
	background-color: var(--space);
	padding: 80px 0;
}
.mission-section .section-inner { display: flex; flex-direction: column; gap: 20px; }
.mission-row {
	display: flex;
	flex-direction: row;
	gap: 20px;
	margin-top: 20px;
}

/* Globe card */
.globe-card {
	position: relative;
	isolation: isolate;
	width: 30%;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
	background-color: #000000;
	border: 1px solid var(--accent-border);
	border-radius: 10px;
	padding: 0 15px;
	overflow: hidden;
}
.globe-card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: url("../images/network.png");
	background-size: cover;
	background-position: center;
	opacity: 0.16;
	border-radius: inherit;
}
.globe-card__meta {
	display: flex;
	justify-content: space-between;
	gap: 20px;
}
.globe-card__meta .meta-left {
	font-family: "IBM Plex Mono", monospace;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 20px;
	color: var(--muted);
}
.globe-card__meta .meta-right {
	font-family: Montserrat, sans-serif;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 20px;
	color: var(--muted);
	text-align: end;
}
.globe-card__img {
	width: 150px;
	height: 150px;
	object-fit: cover;
	object-position: center;
	border: 1px solid var(--accent);
	border-radius: 300px;
}

/* AI decision panel */
.ai-panel {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	border: 1px solid var(--accent-border);
	border-radius: 5px;
	padding: 20px;
}
.ai-panel__label {
	font-family: "IBM Plex Mono", monospace;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 22px;
	color: var(--muted);
}
.ai-panel__sub {
	font-family: Montserrat, sans-serif;
	font-size: 10px;
	font-weight: 400;
	text-transform: uppercase;
	line-height: 16px;
	color: var(--muted);
}
.ai-panel__action {
	margin-top: 5px;
	font-family: "IBM Plex Mono", monospace;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 20px;
	color: var(--muted);
}
.ai-panel__impact {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 5px;
}
.ai-panel__stats { display: flex; flex-direction: row; gap: 20px; }
.ai-panel__stat { display: flex; flex-direction: column; justify-content: center; }
.ai-panel__stat-value {
	font-family: Montserrat, sans-serif;
	font-size: 30px;
	font-weight: 400;
	text-transform: uppercase;
	line-height: 35px;
	color: var(--muted);
}
.ai-panel__stat-label {
	font-family: Montserrat, sans-serif;
	font-size: 10px;
	font-weight: 400;
	text-transform: uppercase;
	line-height: 16px;
	color: var(--muted);
}

@media (max-width: 1024px) {
	.mission-section { padding: 60px 20px; }
	.mission-row { flex-wrap: wrap; }
	.globe-card { width: 49%; }
	.ai-panel { width: 49%; flex: 0 0 49%; }
	.mission-row .ape-astro-progress-wrap { width: 48%; }
}
@media (max-width: 767px) {
	.globe-card { width: 100%; padding-top: 20px; padding-bottom: 20px; }
	.ai-panel { width: 100%; flex: 1 1 100%; }
	.mission-row .ape-astro-progress-wrap { width: 100%; }
	.globe-card__meta .meta-left,
	.globe-card__meta .meta-right,
	.ai-panel__label,
	.ai-panel__sub,
	.ai-panel__action,
	.ai-panel__stat-value,
	.ai-panel__stat-label { font-size: 14px; line-height: 22px; }
}

/* Value statement section */
.value-section {
	position: relative;
	isolation: isolate;
	padding: 80px 0;
	background-color: #000000;
}
.value-section::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: url("../images/globe.jpg");
	background-position: center center;
	background-size: cover;
	opacity: 0.16;
}
@media (min-width: 1025px) {
	.value-section::before { background-attachment: fixed; }
}
.value-section .section-inner {
	display: flex;
	flex-direction: row;
	gap: 20px 50px;
}
.value-col { flex: 1 1 0; display: flex; flex-direction: column; }
.value-col > *:not(:last-child) { margin-bottom: 20px; }

.value-images {
	flex: 1 1 0;
	display: flex;
	flex-direction: row;
	gap: 20px;
	padding-right: 20px;
}
.value-images .img-col {
	flex: 1 1 0;
	min-height: 500px;
	display: flex;
	flex-direction: column;
}
.value-images .img-col--top    { justify-content: flex-start; }
.value-images .img-col--bottom { justify-content: flex-end; }
.value-images img {
	height: 400px;
	width: 100%;
	object-fit: cover;
	object-position: center;
	border: 2px solid var(--accent);
	border-radius: 5px;
}

@media (max-width: 1024px) {
	.value-section { padding: 60px 20px; }
	.value-section .section-inner { flex-direction: column-reverse; }
	.value-images .img-col { min-height: 400px; }
	.value-images img { height: 350px; }
}
@media (max-width: 767px) {
	.value-section { padding: 50px 10px; }
	.value-images { padding-right: 0; }
	.value-images .img-col--bottom { display: none; }
	.value-images img { height: 300px; }
}

/* System description section */
.system-section { padding: 80px 0; }
.system-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-top: 20px;
}
@media (max-width: 1024px) {
	.system-section { padding: 60px 20px; }
	.system-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	.system-section { padding: 50px 10px; }
	.system-grid { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
 * INFORMATION — page specific
 * -------------------------------------------------------------------------- */
.hero-info {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 500px;
	padding: 80px 0;
	background-image: url("../images/hero-info.jpg");
	background-position: center center;
	background-size: cover;
}
.hero-info::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: #000000;
	opacity: 0.5;
}
.hero-info .hero-label { margin-bottom: 20px; }
.hero-info .hero-title {
	width: 51%;
	max-width: 51%;
	font-family: "IBM Plex Mono", monospace;
	font-size: 58px;
	font-weight: 600;
	text-transform: uppercase;
	line-height: 66px;
	color: #E3EAF2;
	margin-bottom: 20px;
}
.hero-info .hero-text {
	width: 39%;
	max-width: 39%;
	font-family: Montserrat, sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 28px;
	color: #FFFFFF;
}
@media (max-width: 1024px) {
	.hero-info { padding: 60px 20px; }
	.hero-info::before { opacity: 0.26; }
	.hero-info .hero-title { width: 63%; max-width: 63%; font-size: 52px; line-height: 60px; }
	.hero-info .hero-text  { width: 58%; max-width: 58%; font-size: 18px; line-height: 26px; }
}
@media (max-width: 767px) {
	.hero-info { min-height: 350px; background-repeat: no-repeat; }
	.hero-info .hero-label { width: 64%; max-width: 64%; }
	.hero-info .hero-title { width: 96%; max-width: 96%; font-size: 28px; line-height: 36px; }
	.hero-info .hero-text  { width: 88%; max-width: 88%; font-size: 16px; line-height: 24px; }
}

/* Value proposition section */
.prop-section {
	background-color: var(--space);
	padding: 80px 0;
}
.prop-section .section-inner {
	display: flex;
	flex-direction: row;
	gap: 20px 50px;
}
.prop-col { flex: 1 1 0; display: flex; flex-direction: column; }
.prop-col > *:not(:last-child) { margin-bottom: 20px; }
.prop-text {
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
	color: #FFFFFF;
}
.prop-text p + p { margin-top: 1em; }

.prop-images {
	flex: 1 1 0;
	display: flex;
	flex-direction: row;
	gap: 20px;
	padding-right: 20px;
}
.prop-images .img-col {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.prop-images .img-astronaut {
	height: 500px;
	width: 100%;
	object-fit: cover;
	object-position: center;
	border: 2px solid var(--accent);
	border-radius: 10px;
}
.prop-images .img-dashboard {
	height: 400px;
	width: 100%;
	object-fit: cover;
	object-position: center;
	border: 2px solid var(--accent);
	border-radius: 10px;
}
@media (max-width: 1024px) {
	.prop-section { padding: 60px 20px; }
	.prop-section .section-inner { flex-direction: column-reverse; }
	.prop-text { font-size: 18px; line-height: 26px; }
}
@media (max-width: 767px) {
	.prop-section { padding: 50px 10px; }
	.prop-text { font-size: 16px; line-height: 24px; }
	.prop-images { padding-right: 0; }
	.prop-images .img-astronaut,
	.prop-images .img-dashboard { height: 300px; }
}

/* Core capabilities / mission applications */
.capability-section {
	position: relative;
	min-height: 350px;
}
.capability-section .section-content { padding: 80px 0; }
.capability-section .section-inner {
	display: flex;
	flex-direction: row;
	gap: 20px 50px;
}
.capability-col { flex: 1 1 0; display: flex; flex-direction: column; }
.capability-col > *:not(:last-child) { margin-bottom: 20px; }

.applications-col {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.applications-col > *:not(:last-child) { margin-bottom: 20px; }
.applications-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(2, 1fr);
	gap: 30px;
}
@media (max-width: 1024px) {
	.capability-section .section-content { padding: 60px 20px; }
	.capability-section .section-inner { flex-direction: column-reverse; }
}
@media (max-width: 767px) {
	.capability-section .section-content { padding: 50px 10px; }
	.applications-grid { grid-template-columns: 1fr; grid-template-rows: none; }
}

/* Contact section */
.contact-section {
	position: relative;
	isolation: isolate;
	background-color: var(--space);
	padding: 80px 0;
}
.contact-section::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: url("../images/astronaut.jpeg");
	background-position: center center;
	background-size: cover;
	opacity: 0.16;
}
@media (min-width: 1025px) {
	.contact-section::before { background-attachment: fixed; }
}
.contact-section .section-inner {
	display: flex;
	flex-direction: row;
	gap: 50px;
}

.glass-card {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px;
	background: #5E6BFF26;
	border-radius: 16px;
	box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
	backdrop-filter: blur(4.1px);
	-webkit-backdrop-filter: blur(4.1px);
	border: 1px solid rgba(255, 255, 255, 0.17);
}

.contact-text {
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
	color: #FFFFFF;
}

.contact-boxes {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 0 30px;
}
.contact-box {
	width: 75%;
	max-width: 75%;
	padding: 20px;
}
.contact-box__wrapper {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	text-align: start;
}
.contact-box__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px;
	border-radius: 50%;
	background-color: var(--accent);
}
.contact-box__icon svg {
	width: 1em;
	height: 1em;
	font-size: 20px;
	fill: #FFFFFF;
}
.contact-box__title {
	margin-bottom: 5px;
	color: #FFFFFF;
	font-family: Montserrat, sans-serif;
	font-size: 14px;
	font-weight: 400;
	text-transform: capitalize;
	line-height: 14px;
}
.contact-box__desc {
	font-family: Montserrat, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	color: var(--muted);
}

/* Contact form */
.contact-form .form-fields {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -5px -25px;
}
.contact-form .field-group {
	width: 100%;
	padding: 0 5px;
	margin-bottom: 25px;
}
.contact-form .field {
	width: 100%;
	background-color: transparent;
	border: 1px solid #69727d;
	border-radius: 0;
	padding: 8px 12px;
	min-height: 40px;
	color: #FFFFFF;
	font-family: "IBM Plex Mono", monospace;
	font-size: 18px;
	font-weight: 500;
	line-height: 26px;
	outline: none;
	transition: border-color .3s;
}
.contact-form .field::placeholder { color: rgba(255, 255, 255, .55); }
.contact-form .field:focus { border-color: var(--accent); }
.contact-form textarea.field { resize: vertical; min-height: auto; }

.contact-form .field-group--submit { width: 50%; }
.contact-form .submit-btn {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--accent);
	color: #ffffff;
	border: none;
	border-radius: 0;
	padding: 14px 26px;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 500;
	cursor: pointer;
	transition: color .3s;
}
.contact-form .submit-btn:hover { color: #000000; }

.form-message {
	width: 100%;
	padding: 0 5px;
	margin-bottom: 25px;
	font-family: Montserrat, sans-serif;
	font-size: 14px;
	line-height: 22px;
}
.form-message--success { color: #42b883; }
.form-message--error   { color: #EB2B2B; }

@media (max-width: 1024px) {
	.contact-section { padding: 60px 20px; }
	.contact-text { font-size: 18px; line-height: 26px; }
}
@media (max-width: 767px) {
	.contact-section { padding: 50px 10px; }
	.contact-section .section-inner { flex-direction: column; }
	.contact-text { font-size: 16px; line-height: 24px; }
	.contact-boxes { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
 * Footer
 * -------------------------------------------------------------------------- */
.site-footer { background-color: var(--night); }

.footer-main {
	position: relative;
	padding: 30px 10px;
}
/* animated gradient top border */
.footer-main::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 2px;
	background: linear-gradient(90deg, #7B8CFF, #8B5CF6, #C15CFF, #FF5E87, #7B8CFF);
	background-size: 300% 100%;
	animation: gradientMove 7s linear infinite;
}

.footer-inner {
	display: flex;
	flex-direction: row;
	gap: 5px;
}

.footer-brand {
	width: 27%;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.footer-logo-link { width: 66%; max-width: 66%; display: block; }
.footer-logo-link img { width: 100%; }
.footer-tagline {
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: #FFFFFF;
}

.footer-links {
	width: 55%;
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
}
.footer-menu,
.footer-legal {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	margin: 0 -11px;
}
.footer-menu li,
.footer-legal li { margin: 0 11px; }
.footer-menu a span,
.footer-menu li span,
.footer-legal li span {
	color: #FFFFFF;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 400;
	text-transform: uppercase;
	transition: color .3s;
}

.footer-social-col {
	width: 26%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-end;
	gap: 10px;
}
.footer-social {
	display: flex;
	gap: 5px;
	justify-content: center;
}
.social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: calc(18px + 1em);
	height: calc(18px + 1em);
	font-size: 18px;
	padding: .5em;
	border-radius: 50%;
	background-color: #4551E0;
	transition: transform .3s;
}
.social-icon:hover { animation: social-pulse-shrink 1s infinite; }
@keyframes social-pulse-shrink {
	to { transform: scale(.9); }
}
.social-icon svg { width: 1em; height: 1em; fill: #FFFFFF; }

.footer-copy {
	width: 100%;
	text-align: end;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: #FFFFFF;
}

.footer-bottom { background-color: #000000; padding: 20px 0; min-height: 60px; display: flex; align-items: center; }
.footer-bottom > div { width: 100%; }
.footer-bottom p {
	width: 100%;
	text-align: center;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	font-weight: 600;
	color: #FFFFFF;
}

@media (max-width: 1024px) {
	.footer-main { padding: 30px 8px; }
	.footer-inner { flex-wrap: wrap; }
	.footer-brand { width: 50%; }
	.footer-links { width: 49%; flex-direction: column; align-items: flex-start; }
	.footer-links .footer-menu { margin-bottom: 20px; }
	.footer-social-col { width: 100%; align-items: center; padding-top: 20px; }
	.footer-copy { text-align: center; }
}
@media (max-width: 767px) {
	.footer-main { padding: 30px 10px; }
	.footer-inner { gap: 20px; }
	.footer-brand { width: 100%; }
	.footer-links { width: 100%; }
	.footer-menu a span,
	.footer-legal li span { font-size: 15px; }
	.footer-social-col { align-items: flex-start; padding-top: 0; }
	.footer-social { justify-content: flex-start; }
	.footer-copy { text-align: start; font-size: 15px; }
	.footer-bottom p { text-align: start; font-size: 15px; padding: 0 10px; }
}

/* --------------------------------------------------------------------------
 * Scroll to top
 * -------------------------------------------------------------------------- */
.scroll-top-icon {
	display: none;
	position: fixed;
	right: 30px;
	bottom: 30px;
	z-index: 99;
	width: 2.1em;
	height: 2.1em;
	text-align: center;
	cursor: pointer;
	color: #ffffff;
	border-radius: 2px;
	background-color: #046bd2;
	font-size: 15px;
	align-items: center;
	justify-content: center;
}
.scroll-top-icon.is-visible { display: flex; }
.scroll-top-icon svg {
	width: 1.6em;
	fill: currentColor;
	transform: rotate(180deg);
}
@media (max-width: 921px) {
	.scroll-top-icon svg { width: 1em; }
}
