/**
 * Sponsors & Grants page styles (pages/template-sponsors.php)
 * Hero is a shared component (components/page-hero.css); the enquiry form's
 * own styles are in components/sponsor-form.css.
 *
 * 1. Principal Sponsor
 * 2. Our Sponsors
 * 3. Sponsorship Packages
 * 4. Charitable Grants & Community Impact
 * 5. Become A Sponsor
 * 6. Responsive
 */

/* ============================ PRINCIPAL SPONSOR ============================ */
.principal-sponsor {
	padding-block: var(--space-96);
}

.principal-sponsor__panel {
	position: relative;
	display: grid;
	grid-template-columns: calc(420 * var(--u)) minmax(0, 1fr);
	align-items: center;
	overflow: hidden;
	background: var(--black);
	border-radius: var(--radius-lg);
}

.principal-sponsor__panel::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: var(--space-10);
	min-height: 6px;
	background: linear-gradient(90deg, var(--crumb-divider) 0 33.4%, var(--primary-color) 33.4% 66.7%, var(--accent-color) 66.7% 100%);
}

.principal-sponsor__logo-wrap {
	padding: calc(52 * var(--u)) 0 calc(52 * var(--u)) calc(52 * var(--u));
}

.principal-sponsor__logo-card {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: calc(210 * var(--u));
	padding: calc(57 * var(--u)) var(--space-40);
	background: var(--white);
	border-radius: var(--radius-lg);
}

.principal-sponsor__logo {
	display: block;
	width: 100%;
	height: calc(96 * var(--u));
	min-height: 56px;
	object-fit: contain;
}

.principal-sponsor__logo.image-empty {
	min-height: 96px;
}

.principal-sponsor__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-16);
	padding: var(--space-56) var(--space-56) calc(54 * var(--u));
}

.principal-sponsor__badge {
	padding: calc(10.5 * var(--u)) calc(22 * var(--u));
	font-weight: var(--font-weight-black);
	letter-spacing: 0.02em;
	border-radius: var(--radius-md);
}

.principal-sponsor__name {
	padding-top: var(--space-4);
	font-size: var(--fs-sponsor-name);
	font-weight: var(--font-weight-black);
	line-height: 1.02;
	letter-spacing: -0.03em;
	color: var(--white);
}

.principal-sponsor__tagline {
	margin-top: calc(-4 * var(--u));
	font-size: var(--fs-28);
	font-weight: var(--font-weight-bold);
	line-height: 1.02;
	color: var(--accent-color);
}

.principal-sponsor__text {
	max-width: calc(871 * var(--u));
	font-size: var(--fs-intro);
	font-weight: var(--font-weight-light);
	line-height: 1.55;
	color: var(--text-color-light);
}

.principal-sponsor__cta {
	gap: var(--space-16);
	padding-top: var(--space-16);
}

.principal-sponsor__cta .mfc-btn {
	padding-inline: calc(41 * var(--u));
}

.principal-sponsor__btn-ghost {
	border-color: var(--text-color);
}

/* ============================ OUR SPONSORS ============================ */
.our-sponsors .section-description {
	max-width: calc(646 * var(--u));
}

.our-sponsors__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--space-30);
}

.sponsor-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--white);
	border: var(--stroke-thin) solid var(--border-color);
	border-radius: var(--radius-lg);
	color: var(--heading-color);
}

.sponsor-card__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 345.5 / 230.33;
	padding: calc(34 * var(--u)) calc(38 * var(--u));
	border-bottom: var(--stroke-thin) solid var(--border-color);
}

.sponsor-card__logo-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.sponsor-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: calc(26 * var(--u)) calc(28 * var(--u)) calc(28 * var(--u));
}

.sponsor-card__sector {
	margin-bottom: var(--space-6);
	font-size: var(--fs-24);
	font-weight: var(--font-weight-bold);
	line-height: 1.45;
	color: var(--text-color);
}

.sponsor-card__name {
	font-size: var(--fs-card-heading);
	font-weight: var(--font-weight-black);
	line-height: 1.15;
	letter-spacing: -0.015em;
	color: var(--heading-color);
}

.sponsor-card__text {
	padding-top: calc(10.8 * var(--u));
	font-size: var(--fs-24);
	font-weight: var(--font-weight-light);
	line-height: 1.45;
	color: var(--text-color);
}

.sponsor-card__web {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: var(--space-10);
	margin-top: auto;
	padding-top: calc(22 * var(--u));
	color: var(--heading-color);
}

.sponsor-card__web .has-underline {
	padding-bottom: var(--space-2);
}

.sponsor-card__web-icon {
	display: inline-flex;
	width: calc(20 * var(--u));
	height: calc(20 * var(--u));
	min-width: 14px;
	min-height: 14px;
}

.sponsor-card__web-icon svg {
	width: 100%;
	height: 100%;
}

.sponsor-card__web:hover .has-underline {
	color: var(--primary-color);
}

.sponsor-card--cta {
	background: var(--black);
	border-color: var(--black);
}

.sponsor-card__logo--cta {
	border-bottom-color: var(--border-dark);
}

.sponsor-card__plus {
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(110 * var(--u));
	height: calc(110 * var(--u));
	min-width: 72px;
	min-height: 72px;
	color: var(--accent-color);
	border: var(--stroke-bold) dashed var(--text-color);
	border-radius: var(--radius-full);
	transition: transform var(--transition-base), border-color var(--transition-base);
}

.sponsor-card__plus svg,
.sponsor-card__plus img {
	width: calc(44 * var(--u));
	height: calc(44 * var(--u));
	min-width: 28px;
	min-height: 28px;
	object-fit: contain;
}

.sponsor-card--cta .sponsor-card__sector {
	color: var(--accent-color);
}

.sponsor-card--cta .sponsor-card__name {
	color: var(--white);
}

.sponsor-card--cta .sponsor-card__text {
	color: var(--text-color-light);
}

.sponsor-card--cta .sponsor-card__web {
	color: var(--white);
}

.sponsor-card--cta:hover .sponsor-card__plus,
.sponsor-card--cta:focus-visible .sponsor-card__plus {
	border-color: var(--accent-color);
	transform: rotate(90deg);
}

.our-sponsors__note {
	display: flex;
	align-items: center;
	gap: calc(22 * var(--u));
	margin-top: var(--space-56);
	padding: var(--space-30) var(--space-36);
	background: var(--white);
	border: var(--stroke-thin) solid var(--border-color);
	border-radius: var(--radius-lg);
}

.our-sponsors__note-icon,
.charitable-grants__note-icon {
	display: inline-flex;
	flex: none;
	width: calc(48 * var(--u));
	height: calc(48 * var(--u));
	min-width: 30px;
	min-height: 30px;
	color: var(--primary-color);
}

.charitable-grants__note-icon {
	width: calc(44 * var(--u));
	height: calc(44 * var(--u));
	color: var(--accent-dark);
}

:is(.our-sponsors__note-icon, .charitable-grants__note-icon) :is(svg, img) {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

:is(.our-sponsors__note-text, .charitable-grants__note-text) {
	font-size: var(--fs-intro);
	font-weight: var(--font-weight-light);
	line-height: 1.5;
	color: var(--text-color);
}

:is(.our-sponsors__note-text, .charitable-grants__note-text) strong {
	font-weight: var(--font-weight-bold);
	color: var(--heading-color);
}

/* ============================ SPONSORSHIP PACKAGES ============================ */
.sponsorship-packages .section-description {
	max-width: calc(636 * var(--u));
}

.sponsorship-packages__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--space-30);
}

.package-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: calc(1047 * var(--u));
	padding: calc(62 * var(--u)) calc(34 * var(--u)) calc(34 * var(--u));
	overflow: hidden;
	background: var(--white);
	border: var(--stroke-thin) solid var(--border-color);
	border-radius: var(--radius-lg);
}

.package-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: var(--space-8);
	min-height: 5px;
	background: var(--accent-current);
}

.package-card.accent-grey {
	--accent-current: var(--crumb-divider);
}

.package-card--featured {
	border-color: var(--black);
	box-shadow: var(--shadow-raised);
}

.package-card__badge {
	position: absolute;
	top: var(--space-8);
	right: 0;
	padding: calc(7.5 * var(--u)) var(--space-20);
	font-size: var(--fs-24);
	font-weight: var(--font-weight-black);
	line-height: 1.55;
	color: var(--white);
	background: var(--primary-color);
	border-bottom-left-radius: var(--radius-lg);
}

.package-card__name {
	font-size: var(--fs-value-title);
	font-weight: var(--font-weight-black);
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--heading-color);
}

.package-card__subtitle {
	padding-top: var(--space-6);
	min-height: calc(93 * var(--u));
	font-size: var(--fs-24);
	line-height: 1.4;
	color: var(--text-color);
}

.package-card__price-block {
	display: flex;
	flex-direction: column;
	gap: var(--space-8);
	margin-bottom: var(--space-26);
	padding-bottom: var(--space-24);
	border-bottom: var(--stroke-thin) solid var(--border-color);
}

.package-card__price {
	font-size: var(--fs-price);
	font-weight: var(--font-weight-black);
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--heading-color);
}

.package-card__price-note,
.package-card__terms {
	font-size: var(--fs-24);
	line-height: 1.55;
	color: var(--text-color);
}

.package-card__terms {
	padding-top: var(--space-8);
}

.package-card__items {
	display: flex;
	flex-direction: column;
	gap: calc(27 * var(--u));
	margin: 0 0 var(--space-40);
	padding: 0;
	list-style: none;
}

.package-card__item {
	position: relative;
	padding-left: calc(34 * var(--u));
	font-size: var(--fs-18);
	line-height: 1.45;
	color: var(--heading-color);
}

.package-card__item--excluded {
	color: var(--text-color);
}

.package-card__mark {
	position: absolute;
	top: var(--space-4);
	left: 0;
	display: inline-flex;
	width: calc(20 * var(--u));
	height: calc(20 * var(--u));
	min-width: 14px;
	min-height: 14px;
	color: var(--accent-dark);
}

.package-card__item--excluded .package-card__mark {
	color: var(--crumb-divider);
}

.package-card__mark svg {
	width: 100%;
	height: 100%;
}

.package-card__button {
	width: 100%;
	margin-top: auto;
	text-transform: none;
}

.sponsorship-packages__prospectus {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-40);
	margin-top: var(--space-26);
	padding: calc(58 * var(--u)) calc(46 * var(--u)) calc(44 * var(--u));
	overflow: hidden;
	background: var(--black);
	border-radius: var(--radius-lg);
}

.sponsorship-packages__prospectus::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: var(--space-8);
	min-height: 5px;
	background: linear-gradient(90deg, var(--crumb-divider) 0 33.4%, var(--primary-color) 33.4% 66.7%, var(--accent-color) 66.7% 100%);
}

.sponsorship-packages__prospectus-copy {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	gap: var(--space-8);
	min-width: min(100%, 320px);
}

.sponsorship-packages__prospectus-title {
	font-size: var(--fs-statement);
	font-weight: var(--font-weight-black);
	line-height: 1.02;
	letter-spacing: -0.022em;
	color: var(--white);
}

.sponsorship-packages__prospectus-text {
	max-width: calc(911 * var(--u));
	font-size: var(--fs-intro);
	line-height: 1.5;
	color: var(--text-color-light);
}

.sponsorship-packages__prospectus-btn {
	gap: 0;
	padding-inline: calc(41 * var(--u));
}

.sponsorship-packages__download-icon {
	display: inline-flex;
	width: calc(22 * var(--u));
	height: calc(22 * var(--u));
	min-width: 16px;
	min-height: 16px;
}

.sponsorship-packages__download-icon :is(svg, img) {
	width: 100%;
	height: 100%;
}

.sponsorship-packages__note {
	max-width: calc(1240 * var(--u));
	margin-top: var(--space-26);
	font-size: var(--fs-24);
	line-height: 1.55;
	color: var(--text-color);
}

/* ============================ CHARITABLE GRANTS & COMMUNITY IMPACT ============================ */
.charitable-grants {
	padding-top: calc(144 * var(--u));
}

.charitable-grants .section-head__copy {
	max-width: none;
}

.charitable-grants .section-description {
	max-width: calc(560 * var(--u));
}

.charitable-grants__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-30);
}

.grant-card {
	display: flex;
	flex-direction: column;
	gap: var(--space-12);
	padding: calc(39 * var(--u)) calc(35 * var(--u)) calc(35 * var(--u));
	background: var(--white);
	border: var(--stroke-thin) solid var(--border-color);
	border-radius: var(--radius-lg);
}

.grant-card__icon {
	display: inline-flex;
	width: calc(46 * var(--u));
	height: calc(46 * var(--u));
	min-width: 30px;
	min-height: 30px;
	color: var(--primary-color);
}

.grant-card__icon :is(svg, img) {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.grant-card__title {
	padding-top: var(--space-20);
	font-size: var(--fs-32);
	font-weight: var(--font-weight-black);
	line-height: 1.2;
	letter-spacing: -0.022em;
	color: var(--heading-color);
	text-transform: capitalize;
}

.grant-card__text {
	font-size: var(--fs-24);
	line-height: 1.55;
	color: var(--text-color);
}

.grant-card__points {
	display: flex;
	flex-direction: column;
	gap: var(--space-8);
	margin: 0;
	padding: var(--space-2) 0 0;
	list-style: none;
}

.grant-card__points li {
	position: relative;
	padding-left: calc(22 * var(--u));
	font-size: var(--fs-18);
	line-height: 1.93;
	color: var(--heading-color);
}

.grant-card__points li::before {
	content: "";
	position: absolute;
	top: calc(13 * var(--u));
	left: 0;
	width: calc(9 * var(--u));
	height: calc(9 * var(--u));
	min-width: 6px;
	min-height: 6px;
	background: var(--primary-color);
	border-radius: var(--radius-xs);
}

.charitable-grants__impact {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--space-8);
	margin-top: var(--space-40);
	padding: calc(59 * var(--u)) var(--space-56) var(--space-56);
	overflow: hidden;
	background: var(--black);
	border-radius: var(--radius-lg);
}

.charitable-grants__impact::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: var(--space-10);
	min-height: 6px;
	background: linear-gradient(90deg, var(--crumb-divider) 0 33.4%, var(--primary-color) 33.4% 66.7%, var(--accent-color) 66.7% 100%);
}

.charitable-grants__impact-title {
	font-size: var(--fs-panel-title);
	font-weight: var(--font-weight-black);
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--white);
	text-transform: capitalize;
}

.charitable-grants__impact-text {
	max-width: calc(996 * var(--u));
	font-size: var(--fs-intro);
	line-height: 1.55;
	color: var(--text-color-light);
}

.charitable-grants__stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--space-40);
	padding-top: var(--space-32);
}

.charitable-grants__stat {
	display: flex;
	flex-direction: column;
	gap: var(--space-14);
	padding-top: var(--space-28);
	border-top: var(--space-4) solid var(--border-dark);
}

.charitable-grants__stat-value {
	font-size: var(--fs-72);
	font-weight: var(--font-weight-black);
	line-height: 1;
	letter-spacing: -0.045em;
	color: var(--accent-color);
}

.charitable-grants__stat-label {
	font-size: var(--fs-24);
	line-height: 1.4;
	color: var(--text-color-light);
}

.charitable-grants__funders {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-20);
	margin: var(--space-40) 0 0;
	padding: 0;
	list-style: none;
}

.charitable-grants__funder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(220 * var(--u));
	min-width: 140px;
	height: calc(120 * var(--u));
	min-height: 80px;
	padding: var(--space-16);
	font-weight: var(--font-weight-bold);
	color: var(--heading-color);
	background: var(--white);
	border: var(--stroke-thin) solid var(--border-color);
	border-radius: var(--radius-lg);
}

.charitable-grants__funder-logo {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.charitable-grants__note {
	display: flex;
	align-items: center;
	gap: calc(22 * var(--u));
	margin-top: var(--space-40);
	padding: calc(31 * var(--u)) calc(37 * var(--u));
	background: var(--white);
	border: var(--stroke-thin) solid var(--border-color);
	border-radius: var(--radius-lg);
}

/* ============================ BECOME A SPONSOR ============================ */
.become-a-sponsor__head {
	display: flex;
	flex-direction: column;
	gap: calc(22 * var(--u));
	margin-bottom: var(--space-60);
}

.become-a-sponsor__head .section-heading {
	padding-top: 0;
}

.become-a-sponsor__intro {
	max-width: calc(710 * var(--u));
	font-size: var(--fs-32);
	font-weight: var(--font-weight-light);
	line-height: 1.45;
	color: var(--heading-color);
}

.become-a-sponsor__cols {
	display: grid;
	grid-template-columns: minmax(0, 932fr) minmax(0, 478fr);
	align-items: start;
	gap: calc(70 * var(--u));
	padding-top: calc(38 * var(--u));
}

.become-a-sponsor__aside {
	display: flex;
	flex-direction: column;
	gap: var(--space-24);
}

.become-panel {
	display: flex;
	flex-direction: column;
	gap: calc(22 * var(--u));
	padding: var(--space-40) calc(38 * var(--u));
	background: var(--white);
	border: var(--stroke-thin) solid var(--border-color);
	border-radius: var(--radius-lg);
}

.become-panel__title {
	font-size: var(--fs-32);
	font-weight: var(--font-weight-black);
	line-height: 1.02;
	letter-spacing: -0.022em;
	color: var(--heading-color);
	text-transform: capitalize;
}

.become-panel__benefits {
	display: flex;
	flex-direction: column;
	gap: var(--space-20);
	margin: 0;
	padding: 0;
	list-style: none;
}

.become-panel__benefit {
	display: flex;
	align-items: flex-start;
	gap: var(--space-16);
}

.become-panel__icon {
	display: inline-flex;
	flex: none;
	width: calc(30 * var(--u));
	height: calc(30 * var(--u));
	min-width: 20px;
	min-height: 20px;
	margin-top: var(--space-2);
	color: var(--primary-color);
}

.become-panel__icon :is(svg, img) {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.become-panel__benefit-copy {
	display: flex;
	flex-direction: column;
	font-size: var(--fs-intro);
	line-height: 1.4;
}

.become-panel__benefit-copy strong {
	font-weight: var(--font-weight-bold);
	color: var(--heading-color);
}

.become-panel__benefit-copy span {
	font-weight: var(--font-weight-light);
	color: var(--text-color);
}

.become-panel--dark {
	background: var(--black);
	border-color: var(--black);
}

.become-panel--dark .become-panel__title {
	color: var(--white);
}

.become-panel__reach {
	display: flex;
	flex-direction: column;
	gap: var(--space-18);
}

.become-panel__figure {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding-left: var(--space-18);
	border-left: calc(5 * var(--u)) solid var(--accent-color);
}

.become-panel__figure strong {
	font-size: var(--fs-panel-title);
	font-weight: var(--font-weight-black);
	line-height: 1.05;
	letter-spacing: -0.03em;
	color: var(--white);
}

.become-panel__figure span {
	font-size: var(--fs-24);
	line-height: 1.55;
	color: var(--text-color-light);
}

.become-panel--talk {
	gap: var(--space-8);
	padding-bottom: var(--space-48);
}

.become-panel__text {
	padding: var(--space-14) 0 var(--space-4);
	font-size: var(--fs-intro);
	font-weight: var(--font-weight-light);
	line-height: 1.45;
	color: var(--text-color);
}

.become-panel__link {
	padding-top: var(--space-12);
	font-size: var(--fs-intro);
	font-weight: var(--font-weight-bold);
	line-height: 1.55;
	color: var(--heading-color);
}

.become-panel__link:hover {
	color: var(--primary-color);
}

/* ============================ RESPONSIVE ============================ */

/* --- XL --- */
@media (max-width: 1400px) {
	.package-card__subtitle {
		min-height: 0;
	}
}

/* --- LG --- */
@media (max-width: 1200px) {
	.our-sponsors__grid,
	.sponsorship-packages__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.package-card {
		min-height: 0;
	}

	.become-a-sponsor__cols {
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
		gap: 32px;
	}
}

/* --- MD / Tablet --- */
@media (max-width: 992px) {
	.principal-sponsor {
		padding-block: var(--section-spacing);
	}

	.principal-sponsor__panel {
		grid-template-columns: minmax(0, 1fr);
	}

	.principal-sponsor__logo-wrap {
		padding: 40px 28px 0;
	}

	.principal-sponsor__logo-card {
		max-width: 368px;
		min-height: 160px;
		padding: 36px 28px;
	}

	.principal-sponsor__copy {
		padding: 28px 28px 32px;
	}

	.charitable-grants {
		padding-top: var(--section-spacing);
	}

	.charitable-grants__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	.charitable-grants__impact {
		padding: 36px 28px 32px;
	}

	.charitable-grants__stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
	}

	.become-a-sponsor__cols {
		grid-template-columns: minmax(0, 1fr);
		padding-top: 0;
	}

	.become-a-sponsor__head {
		margin-bottom: 32px;
	}
}

/* --- SM / Mobile --- */
@media (max-width: 768px) {
	.our-sponsors__grid {
		gap: 16px;
	}

	.sponsorship-packages__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	.package-card {
		padding: 40px 24px 24px;
	}

	.package-card__item {
		padding-left: 28px;
		font-size: 15px;
	}

	.sponsorship-packages__prospectus {
		gap: 20px;
		padding: 36px 22px 26px;
	}

	.our-sponsors__note,
	.charitable-grants__note {
		align-items: flex-start;
		gap: 14px;
		padding: 20px;
	}

	.grant-card__points li {
		font-size: 15px;
	}

	.become-a-sponsor__intro {
		font-size: 20px;
	}

	.become-panel {
		padding: 28px 22px;
	}
}

/* --- XS / Small Mobile --- */
@media (max-width: 575px) {
	.our-sponsors__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.charitable-grants__stats {
		grid-template-columns: minmax(0, 1fr);
	}

	.principal-sponsor__cta .mfc-btn,
	.sponsorship-packages__prospectus-btn {
		width: 100%;
	}
}
