.rche-characters .rche-section-head {
	margin-bottom: 15px;
}

.rche-characters .rcec-grid {
	display: flex;
	grid-template-columns: none;
	gap: 11px;
	overflow-x: auto;
	padding: 0 0 8px;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	scrollbar-color: rgba(6,64,137,.22) transparent;
}

.rche-characters .rcec-card {
	flex: 0 0 calc((100% - 33px) / 4);
	height: clamp(250px,26vw,380px);
	border-radius: 17px;
	scroll-snap-align: start;
}

.rche-characters .rcec-copy {
	right: 17px;
	bottom: 17px;
	left: 17px;
}

.rche-characters .rcec-copy strong {
	color: #fff;
	font-size: clamp(14px,1.35vw,19px);
	font-weight: 570;
	line-height: 1.15;
}

@media (max-width: 700px) {
	.rche-characters {
		width: 100%;
		margin-top: 27px;
		overflow: hidden;
	}

	.rche-characters .rche-section-head {
		margin: 0 14px 12px;
	}

	.rche-characters .rche-section-head h2 {
		font-size: 20px !important;
	}

	.rche-characters .rcec-grid {
		gap: 10px;
		margin: 0;
		padding: 0 12% 10px;
		overflow-x: auto;
		scroll-padding-inline: 12%;
		scrollbar-width: none;
	}

	.rche-characters .rcec-grid::-webkit-scrollbar { display: none; }

	.rche-characters .rcec-card {
		display: block;
		flex: 0 0 76%;
		height: auto;
		aspect-ratio: 3/4;
		overflow: hidden;
		border: 0;
		border-radius: 16px;
		background: #e9eef1;
		box-shadow: 0 13px 30px rgba(25,43,58,.14);
		scroll-snap-align: center;
	}

	.rche-characters .rcec-card > img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		aspect-ratio: auto;
		object-fit: cover;
	}

	.rche-characters .rcec-wash {
		display: block;
		background: linear-gradient(0deg,rgba(5,15,24,.5),transparent 48%);
	}

	.rche-characters .rcec-copy {
		position: absolute;
		inset: auto 16px 17px;
		min-height: 0;
		padding: 0;
	}

	.rche-characters .rcec-copy strong {
		color: #fff;
		font-size: 16px;
		white-space: normal;
	}
}

/* Mobile stacked single-card carousel. */
@media (max-width: 700px) {
	.rche-characters .rcec-grid {
		position: relative;
		display: block;
		height: min(86vw, 430px);
		margin: 0;
		padding: 0;
		overflow: visible;
		touch-action: pan-y;
		scroll-snap-type: none;
	}

	.rche-characters .rcec-card {
		position: absolute;
		top: 0;
		left: 50%;
		display: block;
		width: 62%;
		height: auto;
		aspect-ratio: 3/4;
		border-radius: 12px;
		opacity: 0;
		pointer-events: none;
		transform: translateX(-50%) scale(.84);
		transition: opacity .35s ease,transform .5s cubic-bezier(.2,.75,.2,1),filter .35s ease;
	}

	.rche-characters .rcec-card.is-active {
		z-index: 3;
		opacity: 1;
		pointer-events: auto;
		filter: none;
		transform: translateX(-50%) scale(1);
	}

	.rche-characters .rcec-card.is-prev {
		z-index: 1;
		opacity: .72;
		pointer-events: auto;
		filter: brightness(.78);
		transform: translateX(-96%) scale(.88);
	}

	.rche-characters .rcec-card.is-next {
		z-index: 2;
		opacity: .78;
		pointer-events: auto;
		filter: brightness(.82);
		transform: translateX(-4%) scale(.88);
	}

	.rche-characters .rcec-card:not(.is-active):not(.is-prev):not(.is-next) {
		visibility: hidden;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rche-characters .rcec-card { transition: none !important; }
}
