#ffc-pp-marketing {
  background-image:
    radial-gradient(circle at 85% 10%, rgba(215, 161, 59, .24), transparent 30%),
    linear-gradient(135deg, #171526 0%, #2b1743 56%, #511e31 100%);
}

/* 0.1.9: keep the current upper Promotion Toolkit, but prevent the shared
 * Panel One and Share the Festival previews from expanding to full-card size. */
.ffc-pp-toolkit-section.is-speaker .ffc-pp-toolkit-collection + .ffc-pp-toolkit-collection .ffc-pp-toolkit-format,
.ffc-pp-toolkit-section:not(.is-speaker) .ffc-pp-toolkit-format {
	width: 100%;
	max-width: 280px;
	justify-self: start;
}

.ffc-pp-toolkit-section:not(.is-speaker) .ffc-pp-toolkit-formats,
.ffc-pp-toolkit-section.is-speaker .ffc-pp-toolkit-collection + .ffc-pp-toolkit-collection .ffc-pp-toolkit-formats {
	grid-template-columns: repeat(2, minmax(0, 280px));
	justify-content: start;
}

.ffc-pp-toolkit-section:not(.is-speaker) .ffc-pp-toolkit-primary {
	aspect-ratio: 4 / 5;
}

@media (max-width: 720px) {
	.ffc-pp-toolkit-section.is-speaker .ffc-pp-toolkit-collection + .ffc-pp-toolkit-collection .ffc-pp-toolkit-format,
	.ffc-pp-toolkit-section:not(.is-speaker) .ffc-pp-toolkit-format {
		max-width: 210px;
	}

	.ffc-pp-toolkit-section:not(.is-speaker) .ffc-pp-toolkit-formats,
	.ffc-pp-toolkit-section.is-speaker .ffc-pp-toolkit-collection + .ffc-pp-toolkit-collection .ffc-pp-toolkit-formats {
		grid-template-columns: minmax(0, 210px);
	}
}

/* 0.2.5: Participant Portal 0.4.9 renders Section 03 inside
 * #ffc-pp-promotion, not the retired #ffc-pp-marketing container. Restore
 * the approved compact hierarchy: a small primary card and a true alternate
 * thumbnail. Full-resolution download URLs are not changed. */
.ffc-pp-toolkit-panel .ffc-pp-toolkit-formats {
	grid-template-columns: repeat(auto-fit, minmax(108px, 142px)) !important;
	justify-content: start !important;
	align-items: start;
	gap: 12px !important;
}

.ffc-pp-toolkit-panel .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) {
	width: 100% !important;
	max-width: 142px !important;
	justify-self: start !important;
}

.ffc-pp-toolkit-panel .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) .ffc-pp-toolkit-primary {
	min-height: 0 !important;
	max-height: 178px !important;
}

.ffc-pp-toolkit-panel .ffc-pp-toolkit-format--square:not(.ffc-pp-share-festival-three) .ffc-pp-toolkit-primary {
	max-height: 142px !important;
}

.ffc-pp-toolkit-panel .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) .ffc-pp-toolkit-primary img {
	width: 100% !important;
	height: 100% !important;
	max-height: inherit !important;
	object-fit: contain !important;
}

.ffc-pp-toolkit-panel .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) .ffc-pp-toolkit-alt {
	grid-template-columns: 30px minmax(0, 1fr) !important;
	min-height: 30px !important;
}

.ffc-pp-toolkit-panel .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) .ffc-pp-toolkit-alt img {
	width: 30px !important;
	height: 30px !important;
	object-fit: cover !important;
}

.ffc-pp-toolkit-panel .ffc-pp-toolkit-format.ffc-pp-share-festival-three {
	grid-template-columns: repeat(3, 112px) !important;
	width: fit-content !important;
	max-width: 100% !important;
	gap: 10px !important;
}

.ffc-pp-toolkit-panel .ffc-pp-share-festival-three .ffc-pp-toolkit-primary,
.ffc-pp-toolkit-panel .ffc-pp-share-festival-three .ffc-pp-toolkit-alt {
	width: 112px !important;
	max-width: 112px !important;
}

.ffc-pp-toolkit-panel .ffc-pp-share-festival-three .ffc-pp-toolkit-primary img,
.ffc-pp-toolkit-panel .ffc-pp-share-festival-three .ffc-pp-toolkit-alt img {
	width: 100% !important;
	height: 176px !important;
	max-height: 176px !important;
	object-fit: contain !important;
}

@media (max-width: 720px) {
	.ffc-pp-toolkit-panel .ffc-pp-toolkit-formats {
		grid-template-columns: repeat(2, 112px) !important;
		gap: 9px !important;
		overflow-x: auto;
	}

	.ffc-pp-toolkit-panel .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) {
		max-width: 112px !important;
	}

	.ffc-pp-toolkit-panel .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) .ffc-pp-toolkit-primary {
		max-height: 140px !important;
	}

	.ffc-pp-toolkit-panel .ffc-pp-toolkit-format--square:not(.ffc-pp-share-festival-three) .ffc-pp-toolkit-primary {
		max-height: 112px !important;
	}

	.ffc-pp-toolkit-panel .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) .ffc-pp-toolkit-alt {
		grid-template-columns: 24px minmax(0, 1fr) !important;
		min-height: 24px !important;
	}

	.ffc-pp-toolkit-panel .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) .ffc-pp-toolkit-alt img {
		width: 24px !important;
		height: 24px !important;
	}

	.ffc-pp-toolkit-panel .ffc-pp-toolkit-format.ffc-pp-share-festival-three {
		grid-template-columns: repeat(3, 96px) !important;
		max-width: calc(100vw - 64px) !important;
		overflow-x: auto;
	}

	.ffc-pp-toolkit-panel .ffc-pp-share-festival-three .ffc-pp-toolkit-primary,
	.ffc-pp-toolkit-panel .ffc-pp-share-festival-three .ffc-pp-toolkit-alt {
		width: 96px !important;
		max-width: 96px !important;
	}

	.ffc-pp-toolkit-panel .ffc-pp-share-festival-three .ffc-pp-toolkit-primary img,
	.ffc-pp-toolkit-panel .ffc-pp-share-festival-three .ffc-pp-toolkit-alt img {
		height: 152px !important;
		max-height: 152px !important;
	}
}

/* 0.2.0: only the three-image Share the Festival collection becomes an
 * equal-size gallery. Speaker and panel-group collections remain untouched. */
.ffc-pp-toolkit-format.ffc-pp-share-festival-three {
	display: grid;
	grid-template-columns: repeat(3, minmax(150px, 220px));
	grid-template-rows: auto auto;
	gap: 10px;
	align-items: start;
	width: 100%;
	max-width: none;
	padding-bottom: 4px;
	overflow-x: auto;
	border: 0;
	background: transparent;
}

/* 0.2.2: use the approved compact announcement scale for every Panel One,
 * Panel Two and Panel Three participant. The client-side class is applied by
 * participant name and does not depend on all four formats being available. */
.ffc-pp-toolkit-section.ffc-pp-participant-speaker-compact .ffc-pp-toolkit-format {
	width: 100%;
	max-width: 280px;
	justify-self: start;
}

.ffc-pp-toolkit-section.ffc-pp-participant-speaker-compact .ffc-pp-toolkit-formats {
	grid-template-columns: repeat(2, minmax(0, 280px));
	justify-content: start;
}

@media (max-width: 720px) {
	.ffc-pp-toolkit-section.ffc-pp-participant-speaker-compact .ffc-pp-toolkit-format {
		max-width: 210px;
	}

	.ffc-pp-toolkit-section.ffc-pp-participant-speaker-compact .ffc-pp-toolkit-formats {
		grid-template-columns: repeat(2, minmax(0, 210px));
		overflow-x: auto;
	}
}

.ffc-pp-share-festival-three .ffc-pp-toolkit-primary {
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	min-height: 0;
	max-height: none !important;
	aspect-ratio: 9 / 16 !important;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 10px;
}

.ffc-pp-share-festival-three .ffc-pp-toolkit-format-actions {
	display: contents;
}

.ffc-pp-share-festival-three .ffc-pp-toolkit-download {
	grid-column: 1;
	grid-row: 2;
	align-self: start;
}

.ffc-pp-share-festival-three .ffc-pp-toolkit-alt {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: auto auto;
	gap: 0;
	align-self: start;
	min-height: 0;
	padding: 0;
	overflow: hidden;
	border-radius: 10px;
	font-size: .72rem;
	text-align: center;
}

.ffc-pp-share-festival-three .ffc-pp-toolkit-alt:nth-of-type(2) {
	grid-column: 2;
	grid-row: 1 / 3;
}

.ffc-pp-share-festival-three .ffc-pp-toolkit-alt:nth-of-type(3) {
	grid-column: 3;
	grid-row: 1 / 3;
}

.ffc-pp-share-festival-three .ffc-pp-toolkit-alt img {
	width: 100%;
	height: auto;
	aspect-ratio: 9 / 16;
	border-radius: 0;
	background: #050a12;
	object-fit: contain;
}

.ffc-pp-share-festival-three .ffc-pp-toolkit-alt span {
	display: block;
	padding: 9px 7px;
}

@media (max-width: 720px) {
	.ffc-pp-toolkit-format.ffc-pp-share-festival-three {
		grid-template-columns: repeat(3, minmax(145px, 68vw));
		scroll-snap-type: x proximity;
	}

	.ffc-pp-share-festival-three .ffc-pp-toolkit-primary,
	.ffc-pp-share-festival-three .ffc-pp-toolkit-alt {
		scroll-snap-align: start;
	}
}

.ffc-pp-card .ffc-pp-assets {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  max-width: 100%;
  margin-top: 28px;
}

.ffc-pp-asset {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 16px;
  background: rgba(17, 14, 30, .78);
  box-shadow: 0 14px 32px rgba(0, 0, 0, .2);
}

.ffc-pp-asset img {
  display: block;
  width: 100%;
  height: 360px;
  object-fit: contain;
  background: #0d1624;
}

.ffc-pp-asset > div {
  padding: 20px;
}

.ffc-pp-card .ffc-pp-asset h3 {
  margin: 0 0 5px;
  font-size: 1.15rem;
  color: #fff !important;
}

.ffc-pp-card .ffc-pp-asset p {
  margin: 0 0 18px;
  color: #f1e9dc !important;
}

.ffc-pp-campaign-divider {
  position: relative;
  max-width: 100%;
  margin: 38px 0 0;
  padding-top: 30px;
  border-top: 1px solid rgba(255, 255, 255, .2);
}

.ffc-pp-card .ffc-pp-campaign-divider h3 {
  margin: 4px 0 8px;
  font-size: clamp(1.25rem, 2.5vw, 1.8rem);
  color: #fff !important;
}

.ffc-pp-card .ffc-pp-campaign-divider > p:not(.ffc-pp-kicker) {
  max-width: 760px;
  color: #f1e9dc !important;
}

.ffc-pp-assets--campaigns .ffc-pp-asset img {
  height: 390px;
}

@media (max-width: 700px) {
  .ffc-pp-card .ffc-pp-assets {
    grid-template-columns: 1fr;
  }

  .ffc-pp-asset img {
    height: 310px;
  }

  .ffc-pp-assets--campaigns .ffc-pp-asset img {
    height: 360px;
  }
}

/* 0.2.3: the portal's current collection markup no longer reliably carries
 * the former is-speaker/adjacent-collection classes. Keep every Section 03
 * preview at thumbnail scale without changing the full-resolution download. */
#ffc-pp-marketing .ffc-pp-toolkit-section .ffc-pp-toolkit-formats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 210px)) !important;
	justify-content: start !important;
	align-items: start;
	gap: 14px;
}

#ffc-pp-marketing .ffc-pp-toolkit-section .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) {
	width: 100% !important;
	max-width: 210px !important;
	justify-self: start !important;
}

#ffc-pp-marketing .ffc-pp-toolkit-section .ffc-pp-toolkit-primary {
	min-height: 0 !important;
}

#ffc-pp-marketing .ffc-pp-toolkit-section .ffc-pp-toolkit-primary img {
	display: block;
	width: auto !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: 260px !important;
	margin: 0 auto;
	object-fit: contain !important;
}

/* The approved main poster and its two creative alternatives stay together,
 * but each is shown as a small, equal-height preview. */
#ffc-pp-marketing .ffc-pp-toolkit-format.ffc-pp-share-festival-three {
	grid-template-columns: repeat(3, minmax(120px, 160px)) !important;
	width: fit-content !important;
	max-width: 100% !important;
	gap: 10px;
}

#ffc-pp-marketing .ffc-pp-share-festival-three .ffc-pp-toolkit-primary,
#ffc-pp-marketing .ffc-pp-share-festival-three .ffc-pp-toolkit-alt {
	width: 160px !important;
	max-width: 160px !important;
}

#ffc-pp-marketing .ffc-pp-share-festival-three .ffc-pp-toolkit-primary img,
#ffc-pp-marketing .ffc-pp-share-festival-three .ffc-pp-toolkit-alt img {
	width: auto !important;
	max-width: 160px !important;
	height: 250px !important;
	max-height: 250px !important;
	margin: 0 auto;
	object-fit: contain !important;
}

@media (max-width: 720px) {
	#ffc-pp-marketing .ffc-pp-toolkit-section .ffc-pp-toolkit-formats {
		grid-template-columns: repeat(2, minmax(0, 160px)) !important;
		gap: 10px;
		overflow-x: auto;
	}

	#ffc-pp-marketing .ffc-pp-toolkit-section .ffc-pp-toolkit-format:not(.ffc-pp-share-festival-three) {
		max-width: 160px !important;
	}

	#ffc-pp-marketing .ffc-pp-toolkit-section .ffc-pp-toolkit-primary img {
		max-height: 220px !important;
	}

	#ffc-pp-marketing .ffc-pp-toolkit-format.ffc-pp-share-festival-three {
		grid-template-columns: repeat(3, 135px) !important;
		max-width: calc(100vw - 64px) !important;
		overflow-x: auto;
	}

	#ffc-pp-marketing .ffc-pp-share-festival-three .ffc-pp-toolkit-primary,
	#ffc-pp-marketing .ffc-pp-share-festival-three .ffc-pp-toolkit-alt {
		width: 135px !important;
		max-width: 135px !important;
	}

	#ffc-pp-marketing .ffc-pp-share-festival-three .ffc-pp-toolkit-primary img,
	#ffc-pp-marketing .ffc-pp-share-festival-three .ffc-pp-toolkit-alt img {
		max-width: 135px !important;
		height: 215px !important;
		max-height: 215px !important;
	}
}
