.skip-link {
	position: absolute;
	translate: 0 -50px;
	left: 0;
	background: var(--dark);
	color: var(--white);
	padding: calc(var(--item-gap) * 0.5) calc(var(--item-gap) * 0.75);
	z-index: 100;
	text-decoration: none;
	font-size: var(--text-sm);
	font-weight: 600;
	transition: translate var(--trans-fast);

	&:focus {
		translate: 0;
	}
}

.text-center {
	text-align: center;
}

/* Text Sizes */
.text-xs {
	font-size: var(--text-xs) !important;
}

.text-2xs {
	font-size: var(--text-2xs) !important;
}

.text-sm {
	font-size: var(--text-sm) !important;
}

.text-base {
	font-size: var(--text-base) !important;
}

.text-lg {
	font-size: var(--text-lg) !important;
}

.text-xl {
	font-size: var(--text-xl) !important;
}

.text-underline {
	text-decoration: underline !important;
}

/* Layout & Spacing */
.hidden {
	display: none !important;
}

.mobile-pad {
	padding: 0 var(--mobile-pad) !important;
}

.content-width {
	max-width: var(--content-width);
	margin: 0 auto;
	padding: 0 var(--header-pad-x);
}

:is(.bg-dark, .bg-dark-tint, .bg-dark-dim, .bg-white, .bg-medium, .bg-medium-tint, .bg-medium-dim, .bg-light, .bg-light-tint, .bg-light-dim) {
	.bg-image::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 1;
	}
}

:is(.bg-dark, .bg-dark-tint, .bg-dark-dim) .bg-image::after {
	background: rgba(var(--dark-rgb), 0.5);
}

.bg-white .bg-image::after {
	background: rgba(var(--white-rgb), 0.5);
}

:is(.bg-medium, .bg-medium-tint, .bg-medium-dim) .bg-image::after {
	background: rgba(var(--medium-rgb), 0.5);
}

:is(.bg-light, .bg-light-tint, .bg-light-dim) .bg-image::after {
	background: rgba(var(--light-rgb), 0.5);
}

:is(
		.bg-dark,
		.bg-dark-tint,
		.bg-dark-dim,
		.bg-white,
		.bg-medium,
		.bg-medium-tint,
		.bg-medium-dim,
		.bg-light,
		.bg-light-tint,
		.bg-light-dim,
		.bg-gray,
		.bg-gray-tint,
		.bg-gray-dim,
		.bg-green,
		.bg-blue,
		.bg-red,
		.bg-orange,
		.notice_type_success,
		.notice_type_info,
		.notice_type_danger,
		.notice_type_warning
	)
	:is(
		a:not(.btn):not(.hero-tag),
		a:not(.btn):not(.hero-tag):visited,
		a:not(.btn):not(.hero-tag):hover,
		a:not(.btn):not(.hero-tag):focus,
		a:not(.btn):not(.hero-tag):active
	) {
	color: currentColor;
}

.bg-image-dark-gradient::after,
.bg-image-light-gradient::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}

.bg-image-dark-gradient::after {
	background: linear-gradient(to top, rgba(var(--black-rgb), 0.7) 0%, rgba(var(--black-rgb), 0.2) 50%, transparent 100%);
}

.bg-image-light-gradient::after {
	background: linear-gradient(to top, rgba(var(--white-rgb), 0.7) 0%, rgba(var(--white-rgb), 0.2) 50%, transparent 100%);
}

.parallax {
	min-height: 400px;
	display: flex;
	flex-direction: column;

	.bg-image {
		z-index: 0;
		overflow: hidden;
		height: 100%;

		.jarallax {
			height: 100%;
		}
	}

	.container {
		position: relative;
		z-index: 1;
		flex: 1;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
}

@media (max-width: 767px) {
	/* Mobile AOS: shared initial state */
	[data-aos].aos-mob-up,
	.aos-mob-up [data-aos],
	[data-aos].aos-mob-down,
	.aos-mob-down [data-aos],
	[data-aos].aos-mob-left,
	.aos-mob-left [data-aos],
	[data-aos].aos-mob-right,
	.aos-mob-right [data-aos],
	[data-aos].aos-mob-zoom,
	.aos-mob-zoom [data-aos],
	[data-aos].aos-mob-flip,
	.aos-mob-flip [data-aos] {
		opacity: 0 !important;
		transition-property: transform, opacity !important;
	}

	/* Mobile AOS: individual initial transforms */
	[data-aos].aos-mob-up,
	.aos-mob-up [data-aos] {
		transform: translate3d(0, 100px, 0) !important;
	}

	[data-aos].aos-mob-down,
	.aos-mob-down [data-aos] {
		transform: translate3d(0, -100px, 0) !important;
	}

	[data-aos].aos-mob-left,
	.aos-mob-left [data-aos] {
		transform: translate3d(100px, 0, 0) !important;
	}

	[data-aos].aos-mob-right,
	.aos-mob-right [data-aos] {
		transform: translate3d(-100px, 0, 0) !important;
	}

	[data-aos].aos-mob-zoom,
	.aos-mob-zoom [data-aos] {
		transform: scale(0.6) !important;
	}

	[data-aos].aos-mob-flip,
	.aos-mob-flip [data-aos] {
		transform: perspective(2500px) rotateX(-100deg) !important;
	}

	/* Mobile AOS: shared animated translate reset */
	[data-aos].aos-mob-up.aos-animate,
	.aos-mob-up [data-aos].aos-animate,
	[data-aos].aos-mob-down.aos-animate,
	.aos-mob-down [data-aos].aos-animate,
	[data-aos].aos-mob-left.aos-animate,
	.aos-mob-left [data-aos].aos-animate,
	[data-aos].aos-mob-right.aos-animate,
	.aos-mob-right [data-aos].aos-animate {
		transform: translate3d(0, 0, 0) !important;
		opacity: 1 !important;
	}

	/* Mobile AOS: individual animated transforms */
	[data-aos].aos-mob-zoom.aos-animate,
	.aos-mob-zoom [data-aos].aos-animate {
		transform: scale(1) !important;
		opacity: 1 !important;
	}

	[data-aos].aos-mob-flip.aos-animate,
	.aos-mob-flip [data-aos].aos-animate {
		transform: perspective(2500px) rotateX(0) !important;
		opacity: 1 !important;
	}
}
