/* ==========================================================================
   1. GLOBAL RESET, DESIGN TOKENS & BASE STYLES
   ========================================================================== */
:root {
	--purple-dark: #321041;
	--purple-main: #4C185B;
	--pink-accent: #e33269;
	--pink-hover: #c7144e;
	--text-light: #ffffff;
	--text-gray: #e0e0e0;
	--bg-light: #f8f9fa;
	--transition-speed: 0.3s;
	--card-bg: #f7f3fd;
	--text-main: #2d1b4e;
	--text-muted: #6a5a80;
	font-size: 16px;
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 700;
}



a {
	color: var(--pink-accent);

	&:hover {
		color: var(--pink-hover);
	}
}



body,
td,
li,
textarea,
input,
select {
	font-family: 'Heebo', sans-serif;
	font-size: 16px;

}

body {
	background-color: #ffffff;
	color: #333;
}

.d-none {
	display: none !important;
}

.hidden-desktop {
	display: none;
}

.has-circles {
	position: relative;
	overflow: hidden;

	&::before {
		content: '';
		position: absolute;
		width: 300px;
		height: 300px;
		right: 300px;
		bottom: -80px;
		background: #E233691A;
		border-radius: 150px;
		flex: none;
		order: 3;
		flex-grow: 0;
		z-index: 3;
		will-change: transform;
		animation: floatCircleRight 32s ease-in-out infinite alternate;
		pointer-events: none;
	}


	&::after {
		content: '';
		position: absolute;
		width: 500px;
		height: 500px;
		left: -100px;
		top: -200px;
		background: rgba(226, 51, 105, 0.1);
		border-radius: 250px;
		flex: none;
		order: 0;
		flex-grow: 0;
		z-index: 0;
		will-change: transform;
		animation: floatCircleLeft 44s ease-in-out infinite alternate;
		pointer-events: none;
	}
}



.container {
	padding: 80px 10%;

	h1 {
		font-size: 40px;
		margin-bottom: 20px;
	}

	h2 {
		font-size: 32px;
		margin-bottom: 10px;
		padding-top: 10px;
	}

	h3 {
		font-size: 24px;
		margin-bottom: 10px;
		padding-top: 10px;
	}

	p {
		font-size: 16px;
		margin-bottom: 10px;
	}


	ul {
		margin-bottom: 20px;
		padding: 0 20px;
		padding-top: 10px;
	}

	ul li {
		font-size: 16px;
		padding-inline-start: 10px;
	}

}



/* ==========================================================================
   2. SHARED LAYOUT COMPONENTS (Header, Top Bar, Navigation & Footer)
   ========================================================================== */
.top-bar {
	background-color: var(--purple-dark);
	color: var(--text-light);
	display: flex;
	justify-content: center;
	gap: 30px;
	padding: 8px 20px;
	font-size: 13px;
	font-weight: 400;
}

.top-bar a {
	color: var(--text-light);
	text-decoration: none;
	transition: color var(--transition-speed) ease;
}

.top-bar a:hover {
	color: var(--text-gray);
}

.main-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 10%;
	background: #fff;
	transition: box-shadow var(--transition-speed) ease;
	box-shadow: 0px 2px 16px 0px #3B0F6E0F;


}

/* Clean sticky class with zero animation lag */
.main-nav.sticky {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 1000;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Spacer blocks the page from jumping when nav detaches */
.sticky-spacer {
	display: none;
}

.sticky-spacer.active {
	display: block;
}


/* Container to keep CTA and Burger locked on one line on mobile */
.mobile-actions {
	display: flex;
	align-items: center;
	gap: 15px;
}

/* Base setup for the toggle button */
.menu-toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
	z-index: 1005;
	/* Keeps button on top of everything */
}

.menu-toggle span {
	display: block;
	width: 25px;
	height: 3px;
	background-color: var(--purple-dark);
	transition: all 0.2s ease;
}

.logo {
	font-size: 28px;
	font-weight: bold;
	color: var(--purple-dark);

	a {
		text-decoration: none;
		color: inherit;
		transition: opacity var(--transition-speed) ease;
	}

	a:hover {
		opacity: 0.85;
	}

	svg {
		display: block;
	}
}

.nav-links {
	display: flex;
	gap: 25px;
	list-style: none;
}

.nav-links a {
	text-decoration: none;
	color: #333;
	font-weight: 600;
	transition: color var(--transition-speed) ease, border-color var(--transition-speed) ease;
	border-bottom: 2px solid transparent;
	padding-bottom: 4px;
}

.nav-links a:hover {
	color: var(--purple-main);
	border-bottom-color: var(--purple-main);
}

.nav-links a.active {
	color: var(--purple-main);
	border-bottom: 2px solid var(--purple-main);
	font-weight: 700;
}

.btn-cta-top {
	background-color: var(--pink-accent);
	color: #fff;
	padding: 11px 28px;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-weight: bold;
	transition: background-color var(--transition-speed) ease, transform var(--transition-speed) ease;
	font-size: 16px;
	text-decoration: none;
}

.btn-cta-top:hover {
	background-color: var(--pink-hover);
	/* transform: translateY(-1px); */
}

footer {
	background-color: #fff;
	padding: 60px 10% 20px;
	border-top: 1px solid #eee;
}

.footer-grid {
	display: flex;
	justify-content: space-around;
	flex-wrap: wrap;
	gap: 40px;
	margin-bottom: 40px;
}

.footer-col h4 {
	color: var(--purple-dark);
	margin-bottom: 15px;
	font-size: 12px;
}

.footer-col.main h4 {
	font-size: 20px;
}

.footer-col ul {
	list-style: none;
}

.footer-col ul li {
	margin-bottom: 10px;
}

.footer-col ul li a {
	text-decoration: none;
	color: #666;
	font-size: 13px;
	transition: color var(--transition-speed) ease;
}

.footer-col ul li a:hover {
	color: var(--pink-hover);
}

.footer-bottom {
	/* border-top: 1px solid #eee; */
	padding-top: 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: space-between;
	font-size: 12px;
	color: #1A1128;

	a {
		text-decoration: none;
		color: inherit;
		transition: color var(--transition-speed) ease;

	}

	a:hover {
		color: var(--pink-hover);
	}
}

/* ==========================================================================
   3. HERO BLOCKS & HEADER VARIATIONS
   ========================================================================== */
/* Index / Main Hero */
.hero {
	color: var(--text-light);
	text-align: right;
	padding: 100px 10% 100px;
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	/* min-height: 550px; */
	/* Optional: ensures a consistent height boundary */
}

/* Dynamic Image Handling */
.hero-bg-img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	z-index: 1;
}

/* Linear Gradient Overlay Layer */
.hero:not(.hero-variant)::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, rgba(74, 21, 75, 0.9), rgba(50, 16, 65, 0.9));
	z-index: 2;

}


/* Stays on Top of Overlay and Image */
.hero-content {
	position: relative;
	z-index: 3;
	width: 100%;
	margin: 0 auto;
}



.hero-divider svg {
	position: relative;
	display: block;
	width: calc(100% + 1.3px);
	height: 100px;
}


.hero.hero-variant {
	background: initial;
	/* background: #F5F2FB; */
}

.hero h1 {
	font-size: 56px;
	margin-bottom: 0px;
	/* letter-spacing: -1px; */
}

.hero h2 {
	font-size: 40px;
	margin-bottom: 60px;
	/* letter-spacing: -1px; */

}

.hero h1 span,
.hero-variant-content h1 span,
.hero-corporate h1 span,
.contact-hero h1 span {
	color: var(--pink-accent);
}

.hero p {
	font-size: 24px;
	font-weight: 400;
	max-width: 700px;
	margin: 0 0 100px;
	color: rgba(255, 255, 255, 0.68);
}

.hero p.eyebrow {
	font-size: 16px;
	max-width: 700px;
	margin: 0 0 20px;
	color: rgba(255, 255, 255, 0.55);
	display: flex;
	align-items: center;
	gap: 8px;

	span {
		color: #A87DE8;
		font-size: 12px;
	}
}

.hero.hero-variant p.eyebrow {
	color: #1A1128;

	font-size: 12px;
	font-weight: 600;

	span {
		color: #E23369;
	}
}



.hero-buttons {
	display: flex;
	justify-content: start;
	gap: 16px;
}

.btn-hero {
	padding: 15px 34px;
	border-radius: 4px;
	font-size: 20px;
	font-weight: bold;
	cursor: pointer;
	border: none;
	text-decoration: none;
	transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease, transform var(--transition-speed) ease, box-shadow var(--transition-speed) ease;
}

.btn-hero.primary {
	background-color: #fff;
	color: var(--purple-dark);
}

.btn-hero.primary:hover {
	background-color: var(--bg-light);
	/* transform: translateY(-2px); */
	color: var(--pink-hover);

	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.btn-hero.secondary {
	background-color: var(--pink-accent);
	color: #fff;
}

.btn-hero.secondary:hover {
	background-color: var(--pink-hover);
	/* transform: translateY(-2px); */
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Hero Arc Divider */
.hero-divider {
	position: absolute;
	bottom: -1px;
	/* Avoids a sub-pixel gap line */
	left: 0;
	width: 100%;
	overflow: hidden;
	line-height: 0;
	z-index: 4;
}

.hero-divider svg {
	position: relative;
	display: block;
	width: 100%;
	height: 100px;
	/* Adjust this height to make the curve deeper or shallower */
}

/* Advisory / Alternative Hero Layout */
.hero-variant {
	background-color: #fff;
	padding: 50px 10%;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.hero-variant-content {
	max-width: 750px;
}

.hero-variant-content h1 {
	font-size: 52px;
	color: #4C185B;
	margin-bottom: 20px;
	line-height: 1.1;
}

.hero-variant-content p {
	font-size: 20px;
	color: #1A1128;
	line-height: 1.6;
	margin-bottom: 40px;
}

.btn-hero-purple,
.btn-purple-pill {
	background-color: var(--purple-dark);
	color: #fff;
	padding: 12px 25px;
	border-radius: 4px;
	text-decoration: none;
	font-weight: bold;
	display: inline-block;
	transition: background-color var(--transition-speed) ease, transform var(--transition-speed) ease;
}

.btn-hero-purple:hover,
.btn-purple-pill:hover {
	background-color: var(--purple-main);
	/* transform: translateY(-2px); */
}

/* Corporate / Organizations Hero Layout */
.hero-corporate {
	background-color: #fff;
	padding: 60px 10% 40px;
	text-align: center;
}

.hero-corporate .meta-tag {
	font-size: 14px;
	color: var(--purple-main);
	font-weight: bold;
	margin-bottom: 10px;
}

.hero-corporate h1 {
	font-size: 40px;
	color: var(--purple-dark);
	margin-bottom: 20px;
}

/* Contact Page Hero */
.contact-hero {
	text-align: center;
	padding: 60px 10% 60px;
	background-color: #fff;
}

.contact-hero h1 {
	font-size: 40px;
	color: var(--purple-dark);
	margin-bottom: 15px;
}

.contact-hero p {
	font-size: 16px;
	color: #666;
	max-width: 600px;
	margin: 0 auto;
	line-height: 1.6;
}

/* Text Break Mid-Page Banner */
.purple-break-banner {
	color: #fff;
	padding: 120px 15%;
	text-align: center;
	line-height: 1.5;
	position: relative;
	/* Uses dynamic variable from CF, falls back to standard image if empty */
	background: linear-gradient(135deg, rgba(74, 21, 75, 0.9), rgba(50, 16, 65, 0.9)),
		var(--banner-bg, url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?q=80&w=2070')) no-repeat center center/cover;
	background-attachment: fixed;
}

/* Keeps the typography sharp and floating clean above the background overlay stack */
.banner-content {
	position: relative;
	z-index: 2;
	max-width: 1000px;
	margin: 0 auto;
}

.purple-break-banner h3 {
	font-size: 28px;
	margin-bottom: 30px;
	font-weight: 600;
}

.purple-break-banner p {
	font-size: 18px;
}

/* ==========================================================================
   4. TICKERS & METRICS BAR
   ========================================================================== */

.ticker-bar {
	background-color: var(--pink-accent);
	color: #fff;
	padding: 12px 0;
	overflow: hidden;
	white-space: nowrap;
}

.ticker-content {
	display: inline-flex;
	width: max-content;
	gap: 30px;
	padding-inline-end: 30px;
	/* Crucial: Matches the gap so the 50% cut is perfect */
	font-weight: 600;
	font-size: 15px;
	animation: infinite-slide 36s linear infinite;
}

.ticker-content span::after {
	content: '✦';
	color: rgba(255, 255, 255, 0.35);
	margin-inline-start: 30px;
}

@keyframes infinite-slide {
	0% {
		transform: translate3d(0, 0, 0);
	}

	100% {
		transform: translate3d(25%, 0, 0);
	}
}

.stats,
.stats-bar {
	background-color: var(--purple-dark);
	color: #fff;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	justify-content: space-around;
	padding: 40px 10%;
	text-align: center;
}

.stats-bar {
	padding: 25px 10%;
}

.stat-item h2,
.stat-box h2 {
	font-size: 30px;
	color: #fff;
	margin-bottom: 5px;
	direction: ltr;
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
}

.stat-box h2 {
	font-size: 28px;
}

.stat-item p,
.stat-box p {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.5);
}

/* ==========================================================================
   5. MODULAR GRIDS, SERVICE CARDS & FLOWS
   ========================================================================== */
/* Split Feature Block (Index Page) */
/* Split Feature Block (Index Page) */
.features-split {
	display: flex;
	flex-wrap: wrap;
}

.feature-box {
	flex: 1;
	min-width: 300px;
	padding: 60px 10%;
	position: relative;
	overflow: hidden;
	display: flex;
}

/* Image Core Rules */
.box-bg-img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	z-index: 1;
}

/* Common Overlay Structure */
.feature-box::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
}

/* Specific Tints */
.feature-box.light::after {
	background: linear-gradient(rgba(248, 249, 250, 0.85), rgba(248, 249, 250, 0.85));
}

.feature-box.dark::after {
	background: linear-gradient(rgba(74, 21, 75, 0.9), rgba(74, 21, 75, 0.9));
}

/* Layout Content Wrapper Stack */
.feature-box .box-content {
	position: relative;
	z-index: 3;
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

/* Inherited Typography Tweaks */
.feature-box p {
	font-size: 20px;
	margin-bottom: 15px;
}

.feature-box.light .box-content {
	color: #1A1128;
}

.feature-box.light p {
	color: #64607A;
}

.feature-box.dark .box-content {
	color: #fff;
}

.feature-box.dark p {
	color: rgba(255, 255, 255, 0.65);
}

.tag-badge {
	align-self: flex-start;
	background: #4B195829;
	padding: 5px 15px;
	border-radius: 20px;
	font-size: 13px;
	margin-bottom: 20px;
	display: inline-block;
	color: var(--purple-main);


}

.dark .tag-badge {
	background: rgba(255, 255, 255, 0.2);
	color: rgba(255, 255, 255, 0.6);

}


.feature-box h3,
.grid-intro-text h2,
.services-section h2,
.process-section h2,
.numbered-process h2,
.about-content h2,
.dark-standards-text h2,
.responsible-text h2 {
	font-size: 34px;
	margin-bottom: 15px;
	line-height: 40px;
}

.video-section h2 {
	font-size: 38px;
	margin-bottom: 15px;
	line-height: 43px;
}

.video-section h2 span,
.process-section h2 span,
.feature-box h3 span,
.grid-intro-text h2 span,
.services-section h2 span,
.numbered-process h2 span,
.about-content h2 span,
.dark-standards-text h2 span,
.responsible-text h2 span {
	color: var(--pink-accent);
}

.feature-box ul {
	list-style: none;
	margin-bottom: 40px;
}

.feature-box ul li {
	margin-bottom: 12px;
	position: relative;
	padding-right: 20px;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.8);
	display: flex;
	align-items: center;
}

.feature-box.light ul li {
	color: #1A1128;
}

.feature-box ul li::before {
	content: "•";
	color: var(--pink-accent);
	position: absolute;
	right: 0;
	font-size: 20px;
}

.btn-box {
	display: inline-block;
	padding: 12px 25px;
	border-radius: 4px;
	text-decoration: none;
	text-align: right;
	font-weight: bold;
	transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease, transform var(--transition-speed) ease;
}

.light .btn-box {
	background-color: var(--purple-dark);
	color: #fff;
}

.light .btn-box:hover {
	background-color: var(--purple-main);
	/* transform: translateY(-2px); */

}

.dark .btn-box {
	background-color: #fff;
	color: var(--pink-accent);
}

.dark .btn-box:hover {
	background-color: var(--bg-light);
	/* transform: translateY(-2px); */
	color: var(--pink-hover);

}

/* Standard Section Layout wrappers */
.services-section,
.process-section,
.numbered-process {
	padding: 80px 10%;
	text-align: center;
}

.numbered-process,
.services-section {
	text-align: right;
}

.services-section {
	background-color: #F5F2FB;
}

/* Grid Layouts for Info Modules */
.numbered-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 25px;
	padding-top: 20px;
}

.services-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 25px;
	padding-top: 20px;
}

.service-card {
	flex: 1 1 calc(33.333% - 25px);
}


.service-card,
.step-card {
	background: #fff;
	padding: 30px;
	border-radius: 8px;
	border-top: 4px solid var(--purple-main);
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
	text-align: right;
	transition: transform var(--transition-speed) ease, box-shadow var(--transition-speed) ease, border-color var(--transition-speed) ease;
}



.service-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 25px rgba(74, 21, 75, 0.08);
	border-top-color: var(--pink-accent);
}

/* Numbered Step Variant */
.step-card {
	background: #4C185B1A;
	border-top: none;
	padding: 40px 30px;
	position: relative;
}

.step-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
}

.step-number {
	font-size: 48px;
	font-weight: bold;
	color: white;
	top: 15px;
	left: 25px;
	transition: color var(--transition-speed) ease;
}

.step-card:hover .step-number {
	color: rgba(227, 50, 105, 0.25);
}

.service-card h3,
.step-card h3 {
	font-size: 18px;
	color: var(--purple-main);
	margin-bottom: 15px;
}

.service-card p,
.step-card p {
	font-size: 14px;
	color: #64607A;
	line-height: 1.6;
}

.services-footer-note {
	background: #f1ecf6;
	padding: 15px;
	border-radius: 6px;
	font-size: 14px;
	color: var(--purple-dark);
	display: inline-block;
	margin-top: 20px;
}

/* ==========================================================================
   6. SPLIT BLOCK VARIATIONS & STRUCTURAL MEDIA ELEMENTS
   ========================================================================== */
.about-section,
.grid-intro-section,
.split-intro,
.responsible-split {
	padding: 80px 10%;
	display: flex;
	align-items: start;
	gap: 80px;
	background-color: #fff;
}

.meta-tag {
	color: #4C185B;
	font-weight: 600;
	font-size: 12px;
	margin-bottom: 10px;
}

.about-section {


	h2 {
		font-size: 36px;
		line-height: 43px;
	}

	p {
		font-size: 20px;
		color: #64607A;
	}
}

.about-image,
.about-content,
.grid-intro-text,
.split-intro-image,
.split-intro-text,
.responsible-text,
.responsible-image {
	flex: 1;
}

.about-content p {
	margin-bottom: 16px;
}

.about-image,
.split-intro-image,
.responsible-image {
	border-radius: 12px;
	overflow: hidden;
}

.about-image img,
.split-intro-image img,
.responsible-image img {
	width: 100%;
	display: block;
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
	transition: transform var(--transition-speed) ease, box-shadow var(--transition-speed) ease;
}

.about-image img:hover,
.split-intro-image img:hover,
.responsible-image img:hover {
	transform: scale(1.02);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
}

/* Highlight Pills inside Blocks */
.pill-grid {
	margin-top: 40px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px;
}

.pill-item {
	background-color: #F5F2FB;
	color: var(--purple-dark);
	padding: 20px 24px;
	border-radius: 12px;
	font-weight: 400;
	text-align: center;
	font-size: 20px;
	transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease;
}

.pill-item:hover {
	background-color: var(--purple-main);
	color: #fff;
}

.grid-intro-images {
	flex: 1;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 15px;
}

.grid-intro-images img {
	width: 100%;
	border-radius: 8px;
	object-fit: cover;
	transition: transform var(--transition-speed) ease;
}

.grid-intro-images img:hover {
	transform: scale(1.03);
}

.grid-intro-images img.tall {
	grid-row: span 2;
	height: 100%;
}

.responsible-pills {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 25px;
}

.resp-pill {
	background: #fdfafb;
	border-right: 4px solid var(--pink-hover);
	padding: 15px;
	font-size: 14px;
	font-weight: 600;
	transition: border-color var(--transition-speed) ease, background-color var(--transition-speed) ease, transform var(--transition-speed) ease;
}

.resp-pill:hover {
	border-right-color: var(--purple-main);
	background-color: #f1ecf6;
	transform: translateX(-5px);
}

/* ==========================================================================
   7. INTERACTIVE DESIGN BLOCKS (Video, Processes & Global Dark Sheets)
   ========================================================================== */
/* Video Section Frame */
.video-section {
	padding: 80px 10%;
	text-align: center;
	background-color: #fafafa;
}

.video-container {
	position: relative;
	max-width: 800px;
	margin: 0 auto;
	cursor: pointer;
	border-radius: 8px;
	overflow: hidden;
}

.video-container img {
	width: 100%;
	border-radius: 8px;
	display: block;
	aspect-ratio: 16/9;
	object-fit: cover;
}

.js-player-mount {
	position: relative;
	overflow: hidden;
}

.play-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	transition: background-color var(--transition-speed) ease;
	z-index: 1;
}

.video-container:hover .play-overlay {
	background: rgba(0, 0, 0, 0.35);
}

.play-button {
	width: 80px;
	height: 80px;
	background-color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
	transition: transform var(--transition-speed) ease, background-color var(--transition-speed) ease;
}

.video-container:hover .play-button {
	transform: scale(1.1);
	background-color: var(--pink-accent);
}

.play-button::after {
	content: "";
	display: block;
	width: 0;
	height: 0;
	border-top: 12px solid transparent;
	border-bottom: 12px solid transparent;
	border-left: 20px solid var(--purple-dark);
	margin-right: -6px;
	/* transform: rotate(180deg); */
	transition: border-left-color var(--transition-speed) ease;
}

.video-container:hover .play-button::after {
	border-left-color: #fff;
}


/* Corporate Dark Standards Block */
.dark-standards {
	background-color: var(--purple-dark);
	color: #fff;
	padding: 80px 10%;
	display: flex;
	gap: 80px;
	align-items: start;
	background-image: radial-gradient(circle at top right, rgba(224, 30, 90, 0.15), transparent);
}

.dark-standards-text {
	flex: 1;
}

.dark-standards-text p {
	color: var(--text-gray);
	line-height: 1.7;
	margin-bottom: 15px;
}

.dark-standards-list {
	background: rgba(255, 255, 255, 0.06);
	padding: 30px;
	flex: 1;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 8px;
	width: 100%;

	h3 {
		font-size: 24px;
		padding-bottom: 17px;
		margin-bottom: 17px;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);


	}

}

.dark-standards-list ul {
	list-style: none;

}


.dark-standards-list li {
	padding: 7px 0;
	/* border-bottom: 1px solid rgba(255, 255, 255, 0.1); */
	font-size: 15px;
	transition: padding-right var(--transition-speed) ease, color var(--transition-speed) ease;
	/* margin-bottom: 12px; */
	position: relative;
	padding-right: 20px;
	display: flex;
	align-items: center;

	&::before {
		content: "•";
		color: #A87DE8;
		position: absolute;
		right: 0;
		line-height: 1;
		font-size: 32px;
	}
}

.dark-standards-list li:hover {
	padding-right: 28px;
	color: var(--pink-accent);
}

.dark-standards-list li:last-child {
	border-bottom: none;
}


/* Flow Layout */

.flow-wrapper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 75px;
}

.card {
	background-color: #F5F2FB;
	border: 1px solid #3B0F6E80;
	border-radius: 16px;
	padding: 16px;
	min-height: 112px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	transition: transform 0.3s ease;
}

.card:hover {
	transform: translateY(-5px);
}

.card h3 {
	color: var(--text-main);
	font-size: 15px;
	margin: 0 0 10px 0;
	font-weight: 700;
}

.card p {
	color: var(--text-muted);
	font-size: 14px;
	margin: 0;
	line-height: 1.5;
}

/* Column Sizing */
.col-step {
	flex: 1 1 20%;
}

.col-arrows {
	flex: 0 0 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	color: var(--pink-accent);

}

.col-split {
	flex: 1 1 22%;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.col-split-arrows {
	flex: 0 0 50px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-around;
	height: 340px;
	color: var(--pink-accent);

}

/* Base SVG Arrow - pointing straight left by default */
.arrow-svg {
	width: 32px;
	height: 32px;
	/* stroke: var(--pink-accent); */
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Desktop Rotations (RTL flow goes right to left) */
.rot-left {
	transform: rotate(0deg);
}

.rot-up-left {
	transform: rotate(45deg);
}

.rot-down-left {
	transform: rotate(-45deg);
}


/* ==========================================================================
   8. CONTACT FORM, SIDEBARS & LOCATIONS
   ========================================================================== */
.contact-container {
	max-width: 1280px;
	margin: 0 auto 80px;
	padding: 0 10%;
	display: flex;
	flex-wrap: wrap;
	gap: 50px;
}

.contact-form-card {
	flex: 1.3;
	background: #fff;
	padding: 40px;
	border-radius: 8px;
	box-shadow: 0 10px 30px rgba(74, 21, 75, 0.05);
	border-top: 4px solid var(--purple-main);
}

.contact-form-card h2 {
	font-size: 24px;
	color: var(--purple-dark);
	margin-bottom: 25px;
}

.form-group-row {
	display: flex;
	gap: 20px;
	margin-bottom: 20px;
}

.form-group {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.form-group label {
	font-size: 14px;
	font-weight: 600;
	color: #444;
	margin-bottom: 8px;
}

.form-group input,
.form-group select,
.form-group textarea {
	padding: 12px 15px;
	border: 1px solid #e2daf0;
	border-radius: 4px;
	font-size: 15px;
	background-color: #fcfbfe;
	color: #333;
	outline: none;
	transition: border-color var(--transition-speed) ease, background-color var(--transition-speed) ease;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
	border-color: var(--purple-main);
	background-color: #fff;
}

.form-group textarea {
	resize: vertical;
	min-height: 120px;
}

.btn-submit {
	background-color: var(--pink-accent);
	color: #fff;
	padding: 14px 30px;
	border: none;
	border-radius: 4px;
	font-size: 16px;
	font-weight: bold;
	cursor: pointer;
	width: 100%;
	transition: background-color var(--transition-speed) ease, transform var(--transition-speed) ease;
	margin-top: 10px;
}

.btn-submit:hover {
	background-color: var(--pink-hover);
	/* transform: translateY(-1px); */
}

/* Sidebar Channels styling */
.contact-info-sidebar {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 25px;
}

.info-channel-box {
	background-color: #fbf9fc;
	border-right: 4px solid var(--purple-main);
	padding: 20px;
	border-radius: 0 8px 8px 0;
	transition: transform var(--transition-speed) ease, background-color var(--transition-speed) ease;
}

.info-channel-box:hover {
	transform: translateX(-5px);
	background-color: #f5f0f9;
}

.info-channel-box h3 {
	font-size: 16px;
	color: var(--purple-dark);
	margin-bottom: 10px;
}

.info-channel-box p,
.info-channel-box a {
	font-size: 14px;
	color: var(--purple-dark);
	text-decoration: none;
	line-height: 1.6;
	transition: color var(--transition-speed) ease;
}

.info-channel-box a:hover {
	color: var(--pink-accent);
}


/* ==========================================================================
   9. CUSTOMER OPINIONS & SOCIAL PROOF
   ========================================================================== */
.testimonials {
	padding: 80px 10%;
	background-color: #F5F2FB;
	text-align: center;
}

.testimonials h2 {
	font-size: 32px;
	color: #1A1128;
	margin-bottom: 40px;
}

.testimonials h2 span {
	color: var(--pink-accent);
}

.testimonial-grid {
	display: flex;
	gap: 20px;
	justify-content: center;
	flex-wrap: wrap;
}

.testimonial-card {
	direction: rtl;
	background: #fff;
	padding: 30px;
	border-radius: 8px;
	border-width: 1px 1px 3px 1px;
	border-style: solid;
	border-color: #3B0F6E12;


	flex: 1;
	/* min-width: 280px; */
	/* max-width: 500px; */
	text-align: right;
	/* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); */

	display: flex;
	flex-direction: column;
	justify-content: space-between;
	transition: transform var(--transition-speed) ease, box-shadow var(--transition-speed) ease;
	height: calc(100% - 10px);
	margin: 5px 0;

}


.testimonial-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}


.stars {
	color: #ffb400;
	font-size: 18px;
	margin-bottom: 15px;
}

.testimonial-card p {
	font-size: 16px;
	color: #444444;
	line-height: 1.6;
	margin-bottom: 20px;
}

.user-info {
	display: flex;
	align-items: center;
	gap: 12px;
	border-top: 1px solid #eee;
	padding-top: 15px;
}

.avatar {
	width: 40px;
	height: 40px;
	background-color: var(--purple-main);
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	font-size: 14px;
}

.user-details h4 {
	font-size: 15px;
	color: #1A1128;
}

.user-details span {
	font-size: 12px;
	color: #64607A;
}

/* ==========================================================================
   10. BOTTOM ACQUISITION BANNERS (CTA)
   ========================================================================== */
.cta-bottom,
.cta-bottom-variant {
	background: linear-gradient(135deg, var(--purple-dark), var(--purple-main));
	color: #fff;
	padding: 60px 10%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
	overflow: hidden;

	a {
		z-index: 5;
	}
}


/* Animations */
@keyframes floatCircleRight {
	0% {
		transform: translate(0, 0) scale(1);
	}

	50% {
		/* Moves left and up, slightly shrinks */
		transform: translate(-240px, -20px) scale(0.85);
	}

	100% {
		/* Moves further left but drops down */
		transform: translate(+20px, 85px) scale(1.05);
	}
}

@keyframes floatCircleLeft {
	0% {
		transform: translate(0, 0);
	}

	50% {
		/* Moves right and down */
		transform: translate(330px, 40px);
	}

	100% {
		/* Drifts left and way up */
		transform: translate(-75px, -30px);
	}
}

.cta-bottom h2,
.cta-bottom-variant h2 {
	font-size: 38px;
	margin-bottom: 10px;
}

.cta-bottom p,
.cta-bottom-variant p {
	font-size: 20px;
	color: #FFFFFFA6;

}

.btn-cta-bottom,
.btn-cta-bottom-white {
	background-color: #fff;
	color: var(--purple-dark);
	padding: 15px 35px;
	border: none;
	border-radius: 4px;
	font-size: 16px;
	font-weight: bold;
	cursor: pointer;
	text-decoration: none;
	transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease, transform var(--transition-speed) ease;
}

.btn-cta-bottom:hover,
.btn-cta-bottom-white:hover {
	background-color: var(--pink-accent);
	color: #fff;
	/* transform: translateY(-2px); */
}


.splide {
	position: relative;
}

.splide__arrows button {
	cursor: pointer;
	background: transparent;
	border: none;
	padding: 2px;
	margin: 0;
	display: block;
	position: absolute;
	color: var(--purple-main);
	transition: color 0.3s ease;

	&:hover {
		color: var(--pink-hover);
		color: var(--pink-hover);

	}
}

.splide__arrow--prev {
	top: 50%;
	transform: translateY(-50%) rotate(180deg);
	right: -50px;
}

.splide__arrow--next {
	left: -50px;
	top: 50%;
	transform: translateY(-50%);
}


/* ==========================================================================
   11. MEDIA QUERIES & RESPONSIVE RECONCILIATION
   ========================================================================== */
@media (max-width: 992px) {

	.numbered-grid {
		grid-template-columns: 1fr 1fr;
	}

	.service-card {
		flex: 1 1 calc(50% - 25px);
	}

	/* Force main nav bar to stay as a tight horizontal row */
	.main-nav {
		display: flex !important;
		flex-direction: row !important;
		justify-content: space-between !important;
		align-items: center !important;
		padding: 15px 5% !important;
		position: relative;
		/* Context anchor for the absolute drawer dropdown */
	}

	.menu-toggle {
		display: flex;
		/* Reveal burger on mobile */
	}

	/* Absolute mobile dropdown box specs */
	.nav-links {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		background-color: #ffffff;
		flex-direction: column !important;
		gap: 0 !important;
		padding: 10px 0;
		box-shadow: 0 10px 15px rgba(0, 0, 0, 0.08);
		border-top: 1px solid #eee;
		z-index: 1004;
	}

	/* Force visibility when active target state is triggered */
	.nav-links.open {
		display: flex !important;
	}

	.nav-links li {
		width: 100%;
		text-align: center;
	}

	.nav-links a {
		display: block;
		padding: 15px 0;
		width: 100%;
	}

	.nav-links a.active {
		border-bottom: none;
		background-color: #fbf9fc;
		color: var(--pink-accent);
	}

	/* Quick design adjustments for the action assets on small viewports */
	.btn-cta-top {
		padding: 8px 14px;
		font-size: 13px;
	}

	/* Morphing burger icons to X shape when open */
	.menu-toggle.open span:nth-child(1) {
		transform: translateY(8px) rotate(45deg);
	}

	.menu-toggle.open span:nth-child(2) {
		opacity: 0;
	}

	.menu-toggle.open span:nth-child(3) {
		transform: translateY(-8px) rotate(-45deg);
	}


	.flow-wrapper {
		flex-direction: column;
		margin-top: 50px;
	}

	.col-step,
	.col-split,
	.col-arrows,
	.col-split-arrows {
		width: 100%;
		flex: none;
	}

	.col-split {
		gap: 15px;
	}

	.col-arrows,
	.col-split-arrows {
		height: auto;
		padding: 10px 0;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	/* Hide extra desktop split arrows on mobile, show only one centered down arrow */
	.col-split-arrows .arrow-svg:not(:first-child) {
		display: none;
	}

	/* Force all mobile arrows to point straight down */
	.col-arrows .arrow-svg,
	.col-split-arrows .arrow-svg {
		transform: rotate(-90deg) !important;
	}

	.contact-container {
		flex-direction: column;
		/* align-items: center; */
		gap: 20px;
	}

	.contact-hero {
		padding: 40px 10% 40px;
	}


}

@media (max-width: 768px) {

	.splide__arrow--prev {
		right: -35px;

	}

	.splide__arrow--next {
		left: -35px;

	}

	/* Narrow the slider track so content doesn't hit the arrows */
	.splide__track {
		width: 95%;
		margin: 0 auto;
	}

	.hero {
		padding: 60px 10%;

		h1 {
			font-size: 45px;
			margin-bottom: 10px;
		}

		h2 {
			font-size: 32px;
			margin-bottom: 40px;
		}

		p {
			margin-bottom: 50px;
			font-size: 20px;
		}

		.btn-hero {
			padding: 12px 24px;
			font-size: 18px;
		}
	}

	.stats,
	.stats-bar {
		grid-template-columns: repeat(2, 1fr);
	}


	.main-nav,
	.hero-buttons,
	.stats,
	.stats-bar,
	.features-split,
	.about-section,
	.grid-intro-section,
	.split-intro,
	.responsible-split,
	.services-grid,
	.numbered-grid,
	.flowchart-container,
	.dark-standards,
	.contact-container,
	.form-group-row,
	.cta-bottom,
	.cta-bottom-variant,
	.footer-grid {
		flex-direction: column;
		/* align-items: center; */
		gap: 20px;
		/* text-align: center; */
	}

	.features-split {
		gap: 0;
	}

	.cta-bottom,
	.cta-bottom-variant {
		align-items: center;
		text-align: center;

	}

	.footer-grid {
		align-items: start;
		text-align: right;
		margin-bottom: 0;
	}

	footer {
		padding: 40px 10% 20px
	}

	.footer-col ul li {
		margin-bottom: 5px;
	}

	.grid-intro-images,
	.pill-grid,
	.services-grid,
	.numbered-grid {
		grid-template-columns: 1fr;
	}

	.contact-form-card,
	.contact-info-sidebar {
		width: 100%;
	}

	.contact-form-card {
		padding: 25px;
	}

	.info-channel-box {
		text-align: right;
		border-right: 4px solid var(--purple-main);
		border-left: none;
		border-radius: 4px;
	}

	.nav-links {
		flex-direction: column;
		align-items: center;
	}

	.feature-box {
		padding: 40px 5%;

		.tag-badge {
			margin-bottom: 12px;
		}

		p {
			font-size: 18px;
		}
	}


	.feature-box h3,
	.grid-intro-text h2,
	.services-section h2,
	.numbered-process h2,
	.about-content h2,
	.dark-standards-text h2,
	.responsible-text h2 {
		font-size: 28px;
		margin-bottom: 14px;
		line-height: 32px;
	}

	.about-section,
	.grid-intro-section,
	.split-intro,
	.video-section,
	.testimonials,
	.responsible-split {
		padding: 40px 10%;
	}

	.about-content {
		p {
			font-size: 17px;
			margin-bottom: 12px;
		}
	}

	.video-section h2 {
		font-size: 30px;
		margin-bottom: 14px;
		line-height: 32px;
	}

	.testimonials h2 {
		font-size: 27px;
		margin-bottom: 30px;
	}

	.cta-bottom {
		padding: 30px 10%;

		h2 {
			font-size: 32px;
		}

		p {
			font-size: 18px;
		}

	}

	.pill-item {
		padding: 12px 16px;
		font-size: 18px;
	}

	.hidden-mobile {
		display: none;
	}

	.hidden-desktop {
		display: revert;
	}

	.step-number {
		position: absolute;

	}

}