/*
 * TOPOSEL About Us / Contact Us / Compliance — shared page styles.
 * Header, banner, CTA band and footer come from toposel-blog.css.
 * Everything here is scoped to .toposel-page (the page wrapper).
 * Values measured on the reference site at 1470px.
 */

.toposel-page {
	--toposel-primary: #4E2FDA;
	--toposel-heading: #090B0E;
	--toposel-copy: #3D4C5E;
	--toposel-soft-bg: #EDEAFB;
	--toposel-border: #E1E3E8;
}

.toposel-page .toposel-page-container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 20px;
}

.toposel-page .toposel-label {
	margin: 0;
	color: var(--toposel-primary);
	font-size: 16px;
	font-weight: 700;
	line-height: 20px;
}

.toposel-page .toposel-section-heading {
	margin: 0;
	color: var(--toposel-heading);
	font-size: 44px;
	font-weight: 600;
	line-height: 48px;
	letter-spacing: normal;
}
.toposel-page .toposel-section-heading--light {
	color: #FFFFFF;
}

.toposel-page .toposel-section-text {
	margin: 0;
	color: var(--toposel-copy);
	font-size: 16px;
	line-height: 24px;
}

.toposel-page .toposel-admin-notice {
	margin: 12px 0 0;
	padding: 10px 12px;
	border-left: 4px solid #d63638;
	background: #fcf0f1;
	color: #3c434a;
	font-size: 14px;
}

.toposel-page .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Scroll animations (only once JS has started; without JS everything is visible) ---------- */

/* Headings: letters rise and fade in one after another (reference "animated-heading": 0.5s, 0.04s per letter). */
.toposel-page.toposel-anim-ready [data-toposel-split] .toposel-split-word {
	display: inline-block;
	white-space: nowrap;
}
.toposel-page.toposel-anim-ready [data-toposel-split] .toposel-split-char {
	display: inline-block;
	opacity: 0;
	transform: translateY(20px);
}
.toposel-page.toposel-anim-ready [data-toposel-split].is-visible .toposel-split-char {
	animation: toposelFadeUp 0.5s ease forwards;
}

/* Blocks: fadeInUp / fadeInLeft (Elementor entrance animations, 1.25s). */
.toposel-page.toposel-anim-ready [data-toposel-anim] {
	opacity: 0;
}
.toposel-page.toposel-anim-ready [data-toposel-anim].is-visible {
	animation-duration: 1.25s;
	animation-fill-mode: both;
	animation-timing-function: ease;
}
.toposel-page.toposel-anim-ready [data-toposel-anim="fade-up"].is-visible {
	animation-name: toposelFadeInUp;
}
.toposel-page.toposel-anim-ready [data-toposel-anim="fade-left"].is-visible {
	animation-name: toposelFadeInLeft;
}

@keyframes toposelFadeUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
@keyframes toposelFadeInUp {
	from {
		opacity: 0;
		transform: translate3d(0, 100%, 0);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
@keyframes toposelFadeInLeft {
	from {
		opacity: 0;
		transform: translate3d(-100%, 0, 0);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 1024px) {
	.toposel-page .toposel-section-heading {
		font-size: 36px;
		line-height: 1.15;
	}
}

@media (max-width: 767px) {
	.toposel-page .toposel-page-container {
		padding: 0 16px;
	}
	.toposel-page .toposel-section-heading {
		font-size: 30px;
	}
	/* Sideways entrances could widen the page on phones: fade up instead. */
	.toposel-page.toposel-anim-ready [data-toposel-anim="fade-left"].is-visible {
		animation-name: toposelFadeInUp;
	}
}

@media (prefers-reduced-motion: reduce) {
	.toposel-page.toposel-anim-ready [data-toposel-anim],
	.toposel-page.toposel-anim-ready [data-toposel-split] .toposel-split-char {
		opacity: 1;
		transform: none;
		animation: none !important;
	}
}
