/* =========================
   Shared page foundation
   ========================= */

.partner-page {
	--container-max: 1400px;
	--page-gutter: 64px;

	--color-gold: #B7955C;
	--color-green: #2A5236;
	--color-text: #363636;
	--color-cream: #F0EEEA;

--font-h1: 70px;
	--font-h2: 50px;
	--font-h3: 38px;
	--font-h4: 27px;
	--font-h5: 26px;
	--font-h6: 19px;
	--font-body: 23px;

	--button-padding-y: 22px;
	--button-padding-x: 36px;

	font-family: 'Verlag', sans-serif;
	-webkit-font-smoothing: antialiased;
	color: var(--color-text);
}

.partner-page,
.partner-page *,
.partner-page *::before,
.partner-page *::after {
	box-sizing: border-box;
}

.partner-page section {
	position: relative;
}

.partner-page .container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--page-gutter);
}

.partner-page .container--fluid {
	max-width: none;
}

.partner-page .content {
	min-width: 0;
}


/* =========================
   Shared typography
   ========================= */

.partner-page .content :where(h1, h2, h3, h4, h5, h6, p) {
	margin-block-start: 0;
	margin-block-end: 0;
	font-family: inherit;
	overflow-wrap: break-word;
}

.partner-page .content h1 {
	font-size: var(--font-h1);
	font-weight: 900;
	line-height: 1.08;
}

.partner-page .content h2 {
	font-size: var(--font-h2);
	font-weight: 900;
	line-height: 1.12;
}

.partner-page .content h3 {
	font-size: var(--font-h3);
	font-weight: 700;
	line-height: 1.16;
}

.partner-page .content h4 {
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
}

.partner-page .content h5 {
	font-size: var(--font-h5);
	font-weight: 500;
	line-height: 1.25;
}

.partner-page .content h6 {
	font-size: var(--font-h6);
	font-weight: 700;
	line-height: 1.3;
}

.partner-page .content p {
	font-size: var(--font-body);
	font-weight: 400;
	line-height: 1.2;
}

.partner-page .content :where(h1, h2, h3, h4, h5, h6, p) a {
	color: inherit;
}


/* =========================
   Shared WYSIWYG button
   ========================= */

.partner-page .content h6 a {
	display: inline-block;
	max-width: 100%;
	padding: var(--button-padding-y) var(--button-padding-x);
	border-radius: 999px;

	background-color: var(--color-gold);
	color: #fff;

	font-size: inherit;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;

	transition: background-color 180ms ease;
}

.partner-page .content h6 a::after {
	content: "\2192";
	display: inline-block;
	margin-left: 0.65em;
}

.partner-page .content h6 a:hover {
	background-color: #94733f;
}

.partner-page .content h6 a:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 5px;
}


/* =========================
   Hero
   ========================= */

.partner-page .hero {
	isolation: isolate;
	display: flex;

	min-height: 80vh;
	min-height: 80svh;

	background-color: #252525;
	color: #fff;
	

}

.partner-page .hero__image {
	position: absolute;
	inset: 0;
	z-index: -2;

	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;

}

.partner-page .hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;

	background: linear-gradient(
		65deg,
		rgba(0, 0, 0, 0.82) 0%,
		rgba(0, 0, 0, 0.55) 30%,
		rgba(0, 0, 0, 0.18) 60%,
		rgba(0, 0, 0, 0) 85%
	);
}

.partner-page .hero {
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: stretch;

	min-height: 80vh;
	min-height: 80svh;
	padding: 0;

	background-color: #252525;
	color: #fff;
}

.partner-page .hero > .container {
	display: flex;
	flex: 0 0 auto;
	align-self: stretch;
	align-items: flex-start;

	margin-top: auto;
	margin-bottom: 0;
	padding-block: 100px 72px;
}

.partner-page .hero__content {
	width: 100%;
	max-width: 800px;
}



.partner-page .hero__content > * + * {
	margin-block-start: 24px;
}

.partner-page .hero__content > h6 {
	margin-block-start: 20px;
}

.partner-page .hero__content > h4 {
	font-size: 30px;
}


/* =========================
   Benefits
   ========================= */

.partner-page .benefits {
	padding-block: 60px 64px;
	background-color: var(--color-cream);
	color: var(--color-text);
}

.partner-page .benefits__heading {
	color: var(--color-green);
	text-align: center;
}

.partner-page .benefits__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	gap: 64px 32px;
	margin-top: 80px;
}

.partner-page .benefits__item {
	display: flex;
	align-items: flex-start;
	gap: 24px;

	/* Up to four columns; items wrap when space is limited. */
	flex: 0 0 calc((100% - 96px) / 4);
	min-width: min(100%, 320px);
}

.partner-page .benefits__icon {
	display: block;
	flex: 0 0 76px;
	width: 76px;
	height: 76px;
	object-fit: contain;
}

.partner-page .benefits__text {
	flex: 1;
	min-width: 0;
}

.partner-page .benefits__text h4 {
	color: var(--color-gold);
}

.partner-page .benefits__text p {
	margin-block-start: 0;
}

.partner-page .benefits__statement {
	width: 100%;
	margin-top: 80px;
	padding-top: 48px;
	border-top: 2px solid var(--color-gold);
}

.partner-page .benefits__statement {
	text-align: center;
	font-size: 23px;
	font-weight: bold;
}

/* Statement alignment is controlled in the WYSIWYG editor. */

.partner-page .benefits__statement > * + * {
	margin-block-start: 20px;
}


.partner-page .benefits > .container {
	max-width: 1400px;
}




/* =========================
   Photo gallery
   ========================= */

.partner-page .photo-gallery {
	padding-block: 60px 64px;

	background-color: #171717;
	background-image: url("../img/marble.jpg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.partner-page .photo-gallery__heading {
	color: var(--color-gold);
	text-align: center;
	text-transform: uppercase;
}

.partner-page .photo-gallery__grid {
	display: grid;
	grid-template-columns: 3fr 3fr 4fr;
	grid-template-rows: repeat(14, minmax(0, 1fr));
	gap: 18px;

	aspect-ratio: 1.58;
	margin-top: 60px;
}

.partner-page .photo-gallery__item {
	position: relative;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	border: 5px solid var(--color-gold);
}

.partner-page .photo-gallery__image {
	position: absolute;
	inset: 0;

	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* Large top-left image */

.partner-page .photo-gallery__item:nth-child(1) {
	grid-column: 1 / 3;
	grid-row: 1 / 8;
}

/* Top-right image */

.partner-page .photo-gallery__item:nth-child(2) {
	grid-column: 3 / 4;
	grid-row: 1 / 7;
}

/* Bottom-left image */

.partner-page .photo-gallery__item:nth-child(3) {
	grid-column: 1 / 2;
	grid-row: 8 / 15;
}

/* Bottom-middle image */

.partner-page .photo-gallery__item:nth-child(4) {
	grid-column: 2 / 3;
	grid-row: 8 / 15;
}

/* Bottom-right image */

.partner-page .photo-gallery__item:nth-child(5) {
	grid-column: 3 / 4;
	grid-row: 7 / 15;
}


.partner-page .photo-gallery > .container {
	max-width: 1400px;
}



/* =========================
   Concepts and awards
   ========================= */

.partner-page .concepts {
	padding-block: 64px;
	background-color: var(--color-cream);
	color: var(--color-text);
}

.partner-page .concepts > .container {
	max-width: 1400px;
}

.partner-page .concepts__intro {
	display: flex;
	align-items: center;
	gap: 64px;
}

.partner-page .concepts__portrait {
	flex: 0 1 40%;
	max-width: 460px;
	min-width: 0;
	aspect-ratio: 1;
	overflow: hidden;
	border: 5px solid var(--color-gold);
	border-radius: 50%;
}

.partner-page .concepts__portrait img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.partner-page .concepts__description {
	flex: 1;
	min-width: 0;
}

.partner-page .concepts__description h2 {
	color: var(--color-green);
}

.partner-page .concepts__description > * + * {
	margin-block-start: 24px;
}

/* Awards */

.partner-page .concepts__awards {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	gap: 40px;

	margin-top: 48px;
	padding-top: 48px;
	border-top: 2px solid var(--color-gold);
}

.partner-page .award {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;

	flex: 0 1 calc((100% - 150px) / 2);
	min-width: 0;
}

.partner-page .award__laurel {
	display: block;
	flex: 0 0 64px;
	width: 64px;
	height: 160px;
	object-fit: contain;
}

.partner-page .award__laurel--right {
	transform: scaleX(-1);
}

.partner-page .award__content {
	flex: 1;
	min-width: 0;
	text-align: center;
}

.partner-page .award__content > * + * {
	margin-block-start: 0;
}

.partner-page .award__publication {
	font-weight: 500;
}

.partner-page .award__title {
	color: var(--color-text);
}

.partner-page .award__year {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
}

.partner-page .award__year span {
	flex-shrink: 0;
	font-weight: 700;
}

.partner-page .award__year::before,
.partner-page .award__year::after {
	content: "";
	flex: 0 1 72px;
	height: 1px;
	background-color: var(--color-gold);
}


/* =========================
   Bottom CTA
   ========================= */

.partner-page .partner-cta {
	padding-block: 64px;
	background-color: var(--color-green);
	color: #fff;
}

.partner-page .partner-cta > .container {
	max-width: 1400px;
}

.partner-page .partner-cta__content {
	text-align: center;
}

.partner-page .partner-cta__content :where(h2, p) {
	color: inherit;
}

.partner-page .partner-cta__content > * + * {
	margin-block-start: 24px;
}

.partner-page .partner-cta__content > p {
	max-width: 950px;
	margin-inline: auto;
}

.partner-page .partner-cta__content > h6 {
	margin-block-start: 48px;
}

/* Preserve the button capitalization entered in the editor. */

.partner-page .partner-cta__content h6 a {
	text-transform: none;
	border: none !important;
}


/* =========================
   1440px and below
   ========================= */

@media screen and (max-width: 1440px) {
	
	

	
	.partner-page {
		--page-gutter: 48px;

		--font-h1: 70px;
	--font-h2: 46px;
	--font-h3: 38px;
		--font-h4: 27px;
	--font-h5: 26px;
		--font-h6: 19px;
	--font-body: 23px;
		
		


		

		--button-padding-y: 20px;
		--button-padding-x: 32px;
	}

	.partner-page .hero__content {
		max-width: 800px;
	}

	.partner-page .hero > .container {
		padding-block: 88px 60px;
	}

	.partner-page .benefits {
		padding-block: 64px 56px;
	}

	.partner-page .benefits__list {
		margin-top: 64px;
		row-gap: 48px;
	}

	.partner-page .benefits__statement {
		margin-top: 64px;
		padding-top: 40px;
	}
	
	
	.partner-page .photo-gallery {
		padding-block: 64px 56px;
	}
	
	.partner-page .photo-gallery__grid {
		margin-top: 56px;
		gap: 16px;
	}
	
	.partner-page .photo-gallery__item {
		border-width: 4px;
	}
	
	
	
	
	.partner-page .concepts {
		padding-block: 56px;
	}
	
	.partner-page .concepts__intro {
		gap: 48px;
	}
	
	.partner-page .concepts__portrait {
		border-width: 4px;
	}
	
	
	.partner-page .partner-cta {
		padding-block: 56px;
	}
	
	
	.partner-page .hero__content > h4 {
		font-size: 26px;
	}
	
}


/* =========================
   1024px and below
   ========================= */

@media screen and (max-width: 1024px) {
	
	
	.partner-page .hero__content {
		max-width: 500px;
	}
	
	.partner-page {
		--page-gutter: 32px;

		--font-h1: 45px;
		--font-h2: 36px;
		--font-h3: 36px;
		--font-h4: 29px;
		--font-h5: 25px;
		--font-h6: 15px;
		--font-body: 22px;

		--button-padding-y: 14px;
		--button-padding-x: 22px;
	}
	

	
	
	

	.partner-page .hero > .container {
		padding-block: 80px 48px;
	}

	.partner-page .benefits__item {
		gap: 18px;
	}

	.partner-page .benefits__icon {
		flex-basis: 64px;
		width: 64px;
		height: 64px;
	}
	
	.partner-page .benefits {
		padding-block: 50px 50px;
	}
	
	
	.partner-page .photo-gallery__grid {
		margin-top: 44px;
		gap: 12px;
	}
	
	.partner-page .photo-gallery__item {
		border-width: 3px;
	}
	
	
	
	.partner-page .concepts__intro {
		gap: 32px;
	}
	
	.partner-page .concepts__portrait {
		border-width: 3px;
	}
	
	.partner-page .concepts__awards {
		gap: 24px;
	}
	
	.partner-page .award {
		flex-basis: calc((100% - 24px) / 2);
		gap: 10px;
	}
	
	.partner-page .award__laurel {
		flex-basis: 42px;
		width: 42px;
		height: 130px;
	}
	
	.partner-page .partner-cta {
		padding-block: 48px;
	}
	
	.partner-page .partner-cta__content > h6 {
		margin-block-start: 36px;
	}
	
}


/* =========================
   725px and below
   ========================= */

@media screen and (max-width: 725px) {
	.partner-page {
		--page-gutter: 24px;

		--font-h1: 44px;
		--font-h2: 36px;
		--font-h3: 30px;
		--font-h4: 25px;
		--font-h5: 22px;
		--font-h6: 16px;
		--font-body: 20px;

		--button-padding-y: 17px;
		--button-padding-x: 24px;
	}

	.partner-page .hero > .container {
		padding-block: 72px 40px;
	}

	.partner-page .hero::before {
		background: linear-gradient(
			35deg,
			rgba(0, 0, 0, 0.88) 0%,
			rgba(0, 0, 0, 0.60) 45%,
			rgba(0, 0, 0, 0.12) 100%
		);
	}

	.partner-page .hero__content > * + * {
		margin-block-start: 20px;
	}

	.partner-page .hero__content > h6 {
		margin-block-start: 30px;
	}

	.partner-page .hero__content br {
		display: none;
	}

	.partner-page .benefits {
		padding-block: 48px 40px;
	}

	.partner-page .benefits__list {
		margin-top: 40px;
		gap: 32px;
	}

	.partner-page .benefits__item {
		flex-basis: 100%;
		min-width: 0;
	}

	.partner-page .benefits__statement {
		margin-top: 40px;
		padding-top: 32px;
	}
	
	.partner-page .photo-gallery {
		padding-block: 48px 40px;
	}
	
	.partner-page .photo-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
		grid-auto-rows: auto;
	
		aspect-ratio: auto;
		margin-top: 32px;
		gap: 12px;
	}
	
	.partner-page .photo-gallery__item:nth-child(n) {
		grid-column: auto;
		grid-row: auto;
		aspect-ratio: 1 / 1;
	}
	
	.partner-page .photo-gallery__item:first-child {
		grid-column: 1 / -1;
		aspect-ratio: 16 / 10;
	}
	
	.partner-page .photo-gallery__item {
		border-width: 2px;
	}
	
	
	.partner-page .concepts {
		padding-block: 40px;
	}
	
	.partner-page .concepts__intro {
		flex-direction: column;
		gap: 32px;
	}
	
	.partner-page .concepts__portrait {
		flex: none;
		width: 75%;
		max-width: 340px;
		border-width: 2px;
	}
	
	.partner-page .concepts__description {
		width: 100%;
	}
	
	.partner-page .concepts__description > * + * {
		margin-block-start: 20px;
	}
	
	.partner-page .concepts__awards {
		margin-top: 36px;
		padding-top: 32px;
		gap: 32px;
	}
	
	.partner-page .award {
		flex-basis: 100%;
		max-width: 460px;
		gap: 16px;
	}
	
	.partner-page .award__laurel {
		flex-basis: 48px;
		width: 48px;
		height: 140px;
	}
	
	.partner-page .partner-cta {
		padding-block: 40px;
	}
	
	.partner-page .partner-cta__content > * + * {
		margin-block-start: 20px;
	}
	
	.partner-page .partner-cta__content > h6 {
		margin-block-start: 28px;
	}
}


/* =========================
   420px and below
   ========================= */

@media screen and (max-width: 420px) {
	.partner-page {
		--page-gutter: 20px;

		--font-h1: 36px;
		--font-h2: 30px;
		--font-h3: 26px;
		--font-h4: 23px;
		--font-h5: 21px;
		--font-h6: 14px;
		--font-body: 18px;

		--button-padding-y: 16px;
		--button-padding-x: 20px;
	}

	.partner-page .hero > .container {
		padding-block: 64px 32px;
	}

	.partner-page .benefits__item {
		gap: 16px;
	}

	.partner-page .benefits__icon {
		flex-basis: 52px;
		width: 52px;
		height: 52px;
	}
	
	
	.partner-page .photo-gallery__grid {
		gap: 8px;
	}
	
	
	.partner-page .award {
		gap: 10px;
	}
	
	.partner-page .award__laurel {
		flex-basis: 36px;
		width: 36px;
		height: 120px;
	}
	
	.partner-page .award__year {
		gap: 10px;
	}
}





/* =========================
   Optional gallery photos 6–9
   ========================= */

.partner-page .photo-gallery__extras {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: 18px;
}

.partner-page .photo-gallery__extra {
	position: relative;
	min-width: 0;
	overflow: hidden;

	border: 5px solid var(--color-gold);
	aspect-ratio: 16 / 10;
}

/* An unpaired final photo fills both columns. */
.partner-page .photo-gallery__extra:last-child:nth-child(odd) {
	grid-column: 1 / -1;
	aspect-ratio: 16 / 9;
}

/* Match the spacing and borders of the original gallery. */

@media screen and (max-width: 1440px) {
	.partner-page .photo-gallery__extras {
		gap: 16px;
		margin-top: 16px;
	}

	.partner-page .photo-gallery__extra {
		border-width: 4px;
	}
}

@media screen and (max-width: 1024px) {
	.partner-page .photo-gallery__extras {
		gap: 12px;
		margin-top: 12px;
	}

	.partner-page .photo-gallery__extra {
		border-width: 3px;
	}
}

@media screen and (max-width: 725px) {
	.partner-page .photo-gallery__extra {
		border-width: 2px;
	}

	/* Give full-width photos more height on smaller screens. */
	.partner-page .photo-gallery__extra:last-child:nth-child(odd) {
		aspect-ratio: 16 / 9;
	}
}

@media screen and (max-width: 420px) {
	.partner-page .photo-gallery__extras {
		gap: 8px;
		margin-top: 8px;
	}
}