.media {
	padding-block: 3.5rem 6rem;
	background: var(--c-white);
	border-block: 1px solid var(--c-border);
  margin-block-start: 0;
}

.media__label {
	margin-block-end: 1.75rem;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	text-align: center;
	color: var(--c-muted);
}

/* Before Splide mounts this is a plain centred row, which is also what the
   editor shows — so the section never looks broken mid-load. */
.media__track {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 2.5rem;
}

.media__logo {
	display: grid;
	place-items: center;
	margin: 0;
}

.media__logo img {
	max-block-size: 2rem;
	inline-size: auto;
	max-inline-size: 100%;
	object-fit: contain;
}

/* --------------------------------------------------------------- mounted */
.media__track:has(.splide) {
	display: block;
	gap: 0;
}

.media__splide {
	position: relative;
	padding-inline: 3.75rem;
}

.media__splide .splide__slide {
	display: grid;
	place-items: center;
	padding-inline: 1.5rem;
	padding-block: 1rem;
	border-inline-end: 0.0625rem solid var(--c-border);
}

/* ---------------------------------------------------------------- arrows */
.media__splide .splide__arrow {
	position: absolute;
	inset-block-start: 50%;
	display: grid;
	place-items: center;
	inline-size: 2.5rem;
	block-size: 2.5rem;
	padding: 0;
	background: var(--c-white);
	border: 1.5px solid var(--c-border);
	border-radius: 50%;
	cursor: pointer;
	translate: 0 -50%;
	transition: border-color 0.2s, background-color 0.2s, opacity 0.2s;
}

.media__splide .splide__arrow--prev {
	inset-inline-start: 0;
}

.media__splide .splide__arrow--next {
	inset-inline-end: 0;
}

/* Splide ships a filled triangle; the design uses a thin arrow glyph. */
.media__splide .splide__arrow svg {
	display: none;
}

.media__splide .splide__arrow::before {
	font-family: var(--ff-sans);
	font-size: 0.875rem;
	line-height: 1;
	color: var(--c-mid);
	transition: color 0.2s;
}

.media__splide .splide__arrow--prev::before {
	content: "\2190";
}

.media__splide .splide__arrow--next::before {
	content: "\2192";
}

.media__splide .splide__arrow:hover:not(:disabled)::before {
	color: var(--c-gold-dk);
}

/* ------------------------------------------------------------ pagination */
.media__splide .splide__pagination {
	position: absolute;
	left: 0;
	display: flex;
	justify-content: center;
	gap: 0.375rem;
	margin: 1.125rem 0 0;
	padding: 0;
  width: 100%;
}

.media__splide .splide__pagination__page {
	inline-size: 0.5rem;
	block-size: 0.5rem;
	margin: 0;
	padding: 0;
	background: var(--c-border);
	border: 0;
	border-radius: 50%;
	opacity: 1;
	cursor: pointer;
	transform: none;
	transition: background-color 0.2s, inline-size 0.2s;
}

.media__splide .splide__pagination__page.is-active {
	inline-size: 1.375rem;
	background: var(--c-gold);
	border-radius: 0.25rem;
	transform: none;
}

@media (width <= 48rem) {
	.media {
		padding-block: 2.25rem 4.5rem;
	}

	.media__track {
		gap: 1.5rem;
	}

	.media__splide {
		padding-inline: 2.75rem;
	}

	.media__splide .splide__arrow {
		inline-size: 2rem;
		block-size: 2rem;
	}

	.media__splide .splide__slide {
		padding-inline: 0.75rem;
	}

	.media__logo img {
		max-block-size: 1.75rem;
	}
}

@media (width <= 23.4375rem) {
	.media {
		padding-block: 2rem 4rem;
	}

	.media__splide {
		padding-inline: 2.25rem;
	}

	.media__splide .splide__arrow {
		inline-size: 1.75rem;
		block-size: 1.75rem;
	}
}