.np-partners-page {
	--np-purple: #921bcd;
	--np-purple-dark: #681197;
	--np-purple-soft: #f5eafd;
	--np-green: #1ba920;
	--np-green-dark: #117a17;
	--np-green-soft: #eaf8eb;
	--np-ink: #27222c;
	--np-muted: #706978;
	--np-line: #ece6ef;
	--np-soft: #fbf9fc;
	--np-shadow: 0 24px 70px rgba(57, 24, 72, .11);
	margin: 0;
	color: var(--np-ink);
	background: #fff;
	font-family: "FF Shamel Sans One", Tahoma, Arial, sans-serif;
	line-height: 1.9;
	overflow: hidden;
}

.np-partners-page,
.np-partners-page * {
	box-sizing: border-box;
}

.np-partners-page h1,
.np-partners-page h2,
.np-partners-page p {
	margin-top: 0;
}

.np-partners-page img {
	display: block;
	max-width: 100%;
}

.np-container {
	width: min(1180px, calc(100% - 40px));
	margin-inline: auto;
}

.np-eyebrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 58px;
	margin-bottom: 20px;
	padding: 8px 42px 8px 88px;
	border: 2px solid #a467df;
	border-radius: 999px;
	color: #5f16aa;
	background-color: #fbf8ff;
	background-image: url("../../img/icons/awareness-ribbon.svg");
	background-repeat: no-repeat;
	background-position: left 15px center;
	background-size: 46px 46px;
	box-shadow: 0 6px 15px rgba(91, 35, 145, .18), inset 0 0 18px rgba(171, 112, 224, .08);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}

.np-eyebrow::before {
	content: "";
	position: absolute;
	left: 72px;
	top: 13px;
	bottom: 13px;
	width: 1px;
	height: auto;
	border-radius: 0;
	background: #ded4e8;
}

.np-eyebrow::after {
	content: "";
	position: absolute;
	right: -20px;
	top: 50%;
	width: 42px;
	height: 42px;
	background: url("../../img/icons/green-leaf.svg") center / contain no-repeat;
	transform: translateY(-50%) rotate(-8deg);
}

.np-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 23px;
	border-radius: 14px;
	font-weight: 700;
	transition: transform .25s ease, background-color .25s ease;
}

.np-btn-primary {
	color: #fff;
	background: var(--np-purple);
	box-shadow: 0 14px 32px rgba(146, 27, 205, .24);
}

.np-btn-primary:hover {
	background: var(--np-purple-dark);
	transform: translateY(-2px);
}

.np-btn-white {
	position: relative;
	z-index: 2;
	flex: 0 0 auto;
	color: var(--np-purple-dark);
	background: #fff;
}

.np-btn-white:hover {
	transform: translateY(-2px);
}

.np-hero {
	position: relative;
	isolation: isolate;
	padding: 88px 0 98px;
	background:
		radial-gradient(circle at 82% 22%, rgba(146, 27, 205, .14), transparent 31%),
		radial-gradient(circle at 12% 85%, rgba(27, 169, 32, .11), transparent 27%),
		linear-gradient(180deg, #fff 0%, #fdfbfe 100%);
}

.np-hero::before {
	content: "";
	position: absolute;
	top: -210px;
	left: -210px;
	z-index: -1;
	width: 460px;
	height: 460px;
	border: 76px solid rgba(146, 27, 205, .035);
	border-radius: 50%;
}

.np-hero-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 76px;
}

.np-hero-copy {
	max-width: 650px;
}

.np-hero-copy h1 {
	margin-bottom: 20px;
	font-size: clamp(42px, 5.4vw, 70px);
	line-height: 1.22;
	letter-spacing: -1.7px;
}

.np-hero-copy h1 span {
	color: var(--np-purple);
}

.np-hero-copy p {
	max-width: 640px;
	margin-bottom: 30px;
	color: var(--np-muted);
	font-size: 18px;
}

.np-hero-logos {
	position: relative;
	min-height: 440px;
}

.np-hero-logos::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 330px;
	height: 330px;
	border: 1px dashed rgba(146, 27, 205, .22);
	border-radius: 50%;
	transform: translate(-50%, -50%);
}

.np-floating-logo {
	position: absolute;
	display: grid;
	place-items: center;
	width: 210px;
	height: 145px;
	padding: 24px;
	border: 1px solid rgba(236, 230, 239, .92);
	border-radius: 26px;
	background: rgba(255, 255, 255, .96);
	box-shadow: var(--np-shadow);
}

.np-floating-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.np-floating-logo--one {
	top: 18px;
	right: 35px;
	transform: rotate(4deg);
}

.np-floating-logo--two {
	top: 155px;
	left: 0;
	width: 230px;
	height: 160px;
	transform: rotate(-4deg);
}

.np-floating-logo--three {
	right: 65px;
	bottom: 10px;
	width: 190px;
	height: 135px;
	transform: rotate(2deg);
}

.np-section {
	padding: 100px 0;
}

.np-section-soft {
	background: var(--np-soft);
}

.np-section-head {
	max-width: 760px;
	margin: 0 auto 48px;
	text-align: center;
}

.np-section-head h2 {
	margin-bottom: 14px;
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.35;
}

.np-section-head p {
	margin-bottom: 0;
	color: var(--np-muted);
	font-size: 16px;
}

.np-partners-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.np-partner-card {
	display: grid;
	place-items: center;
	min-height: 190px;
	padding: 30px;
	border: 1px solid var(--np-line);
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 10px 34px rgba(57, 24, 72, .055);
	transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.np-partner-card:hover {
	border-color: rgba(146, 27, 205, .24);
	box-shadow: 0 20px 48px rgba(57, 24, 72, .10);
	transform: translateY(-6px);
}

.np-partner-card img {
	width: 100%;
	height: 115px;
	object-fit: contain;
}

.np-cta-wrap {
	padding: 0 0 100px;
	background: var(--np-soft);
}

.np-cta {
	position: relative;
	overflow: hidden;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 40px;
	padding: 50px;
	border-radius: 32px;
	color: #fff;
	background: linear-gradient(120deg, var(--np-purple-dark), var(--np-purple) 56%, #aa3ce0);
}

.np-cta::before {
	content: "";
	position: absolute;
	bottom: -165px;
	left: -85px;
	width: 310px;
	height: 310px;
	border: 66px solid rgba(255, 255, 255, .055);
	border-radius: 50%;
}

.np-cta h2 {
	position: relative;
	z-index: 2;
	margin-bottom: 10px;
	font-size: clamp(28px, 3.5vw, 43px);
	line-height: 1.4;
}

.np-cta p {
	position: relative;
	z-index: 2;
	max-width: 720px;
	margin-bottom: 0;
	color: rgba(255, 255, 255, .78);
}

.np-cta-kicker {
	position: relative;
	z-index: 2;
	display: block;
	margin-bottom: 8px;
	color: #c6f4c8;
	font-size: 13px;
	font-weight: 700;
}

@media (max-width: 960px) {
	.np-hero-grid {
		grid-template-columns: 1fr;
		gap: 42px;
	}

	.np-hero-copy {
		margin-inline: auto;
		text-align: center;
	.np-eyebrow {
		min-height: 50px;
		padding: 7px 34px 7px 72px;
		background-position: left 12px center;
		background-size: 38px 38px;
		font-size: 15px;
	}

	.np-eyebrow::before {
		left: 60px;
		top: 11px;
		bottom: 11px;
	}

	.np-eyebrow::after {
		right: -17px;
		width: 36px;
		height: 36px;
	}

	}

	.np-hero-logos {
		width: min(560px, 100%);
		margin-inline: auto;
	}

	.np-partners-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.np-cta {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.np-btn-white {
		justify-self: center;
	}
}

@media (max-width: 700px) {
	.np-container {
		width: min(100% - 26px, 1180px);
	}

	.np-hero {
		padding: 58px 0 68px;
	}

	.np-hero-copy h1 {
		font-size: 38px;
	}

	.np-hero-copy p {
		font-size: 15px;
	}

	.np-hero-logos {
		min-height: 330px;
	}

	.np-hero-logos::before {
		width: 250px;
		height: 250px;
	}

	.np-floating-logo {
		width: 155px;
		height: 110px;
		padding: 18px;
		border-radius: 21px;
	}

	.np-floating-logo--one {
		right: 10px;
	}

	.np-floating-logo--two {
		top: 112px;
		left: 0;
		width: 165px;
		height: 118px;
	}

	.np-floating-logo--three {
		right: 36px;
		bottom: 0;
		width: 145px;
		height: 104px;
	}

	.np-section {
		padding: 74px 0;
	}

	.np-partners-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}

	.np-partner-card {
		min-height: 145px;
		padding: 20px;
		border-radius: 19px;
	}

	.np-partner-card img {
		height: 90px;
	}

	.np-cta-wrap {
		padding-bottom: 74px;
	}

	.np-cta {
		padding: 34px 22px;
		border-radius: 25px;
	}

	.np-btn {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.np-partner-card,
	.np-btn {
		transition: none;
	}
}
