@charset "UTF-8";

/**
 * Related-review carousel.
 *
 * The card surface mirrors the latest-review cards on the custom front page.
 * The existing Cocoon related query and links remain untouched.
 */

body.sl-design-system.single-post #related-entries.sl-related-carousel {
	position: relative;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__controls {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--sl-space-2);
	margin: calc(-1 * var(--sl-space-3)) 0 var(--sl-space-4);
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__status {
	min-width: 4.5em;
	margin-right: var(--sl-space-2);
	color: var(--sl-color-text-muted);
	font-family: var(--sl-font-display);
	font-size: var(--sl-font-size-xs);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.08em;
	text-align: right;
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__button {
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 11%);
	border-radius: 50%;
	color: var(--sl-color-text-primary);
	background: #151920;
	box-shadow: none;
	cursor: pointer;
	transition:
		border-color var(--sl-motion-fast) var(--sl-ease-standard),
		color var(--sl-motion-fast) var(--sl-ease-standard),
		background-color var(--sl-motion-fast) var(--sl-ease-standard),
		transform var(--sl-motion-fast) var(--sl-ease-standard);
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__button:hover {
	border-color: rgb(240 208 23 / 48%);
	color: var(--sl-color-brand);
	background: #1c2028;
	transform: translateY(-1px);
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__button:focus-visible,
body.sl-design-system.single-post #related-entries .sl-related-carousel__track:focus-visible {
	outline: 2px solid var(--sl-color-brand);
	outline-offset: 3px;
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__button svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__track,
body.sl-design-system.single-post #related-entries .related-list.sl-related-carousel__track {
	--sl-related-gap: clamp(0.75rem, 1.5vw, 1.25rem);
	position: relative;
	display: flex !important;
	grid-template-columns: none;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch;
	gap: var(--sl-related-gap);
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0 0 var(--sl-space-4);
	box-sizing: border-box;
	overflow-x: auto;
	overflow-y: hidden;
	overflow-anchor: none;
	overscroll-behavior-inline: contain;
	scroll-behavior: smooth;
	scroll-padding-inline: 0;
	scroll-snap-type: x mandatory;
	scrollbar-color: rgb(240 208 23 / 30%) transparent;
	scrollbar-width: thin;
	touch-action: pan-x pan-y;
	-webkit-overflow-scrolling: touch;
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__track.is-jumping {
	scroll-behavior: auto;
	scroll-snap-type: none;
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__track.is-dragging {
	cursor: grabbing;
	scroll-behavior: auto;
	scroll-snap-type: none;
	user-select: none;
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__track > .sl-related-carousel__slide {
	width: clamp(210px, calc(25% - 1rem), 280px) !important;
	min-width: 0;
	flex: 0 0 clamp(210px, calc(25% - 1rem), 280px);
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

/* Same visual language as TOP > 最新レビュー. */
body.sl-design-system.single-post #related-entries .sl-review-card {
	overflow: hidden;
	border-color: rgb(255 255 255 / 9%) !important;
	border-radius: 14px;
	background: var(--sl-color-surface) !important;
	box-shadow: 0 12px 34px rgb(0 0 0 / 22%);
}

body.sl-design-system.single-post #related-entries .sl-review-card__inner {
	background: linear-gradient(160deg, #121720, #0c1016);
}

body.sl-design-system.single-post #related-entries .sl-review-card:hover {
	border-color: rgb(229 189 66 / 38%) !important;
	box-shadow: 0 20px 45px rgb(0 0 0 / 34%), 0 0 24px rgb(229 189 66 / 5%);
}

body.sl-design-system.single-post #related-entries .sl-review-card__media {
	aspect-ratio: 1.36 / 1;
	border-radius: 13px 13px 0 0;
}

body.sl-design-system.single-post #related-entries .sl-review-card__media::after {
	position: absolute;
	inset: auto 0 0;
	height: 40%;
	background: linear-gradient(to top, #11151d, transparent);
	content: "";
	pointer-events: none;
}

body.sl-design-system.single-post #related-entries .sl-review-card__body {
	min-height: 190px;
	padding: 1rem 1rem 1.15rem !important;
}

body.sl-design-system.single-post #related-entries .sl-review-card__code {
	color: #d7d3c9;
	font-family: var(--sl-font-display);
	font-size: 0.8rem;
	font-weight: 650;
	letter-spacing: 0.05em;
}

body.sl-design-system.single-post #related-entries .sl-review-card__title {
	min-height: 3.1em;
	margin-top: 0.45rem !important;
	color: #f0eee8;
	font-size: clamp(0.78rem, 1.1vw, 0.92rem) !important;
	font-weight: 650;
	line-height: 1.55;
}

body.sl-design-system.single-post #related-entries .sl-review-card__tags {
	margin-top: auto;
	padding-top: 0.85rem;
}

body.sl-design-system.single-post #related-entries .sl-tag {
	font-size: 0.58rem;
}

body.sl-design-system.single-post #related-entries .sl-card-overlays :where(.sl-rating-capsule, .sl-badge) {
	border-radius: 8px;
	background: rgb(6 8 11 / 76%);
	backdrop-filter: blur(9px);
}

body.sl-design-system.single-post #related-entries .sl-review-card__meta {
	margin-top: var(--sl-space-3);
	padding-top: var(--sl-space-3);
}

body.sl-design-system.single-post #related-entries .sl-related-carousel__track.is-static {
	overflow-x: hidden;
	scroll-snap-type: none;
}

body.sl-design-system.single-post #related-entries.is-static .sl-related-carousel__controls {
	display: none;
}

@media (max-width: 1180px) {
	body.sl-design-system.single-post #related-entries .sl-related-carousel__track > .sl-related-carousel__slide {
		width: calc(33.333% - 0.85rem) !important;
		flex-basis: calc(33.333% - 0.85rem);
	}
}

@media (max-width: 900px) {
	body.sl-design-system.single-post #related-entries .sl-related-carousel__track > .sl-related-carousel__slide {
		width: 42% !important;
		flex-basis: 42%;
	}
}

@media (max-width: 680px) {
	body.sl-design-system.single-post main.main,
	body.sl-design-system.single-post #related-entries.sl-related-carousel,
	body.sl-design-system.single-post #related-entries .sl-related-carousel__track {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	body.sl-design-system.single-post #related-entries .sl-related-carousel__controls {
		margin-top: calc(-1 * var(--sl-space-2));
	}

	body.sl-design-system.single-post #related-entries .sl-related-carousel__track {
		margin-inline: 0;
		padding-right: 0;
		scroll-padding-inline: 0;
	}

	body.sl-design-system.single-post #related-entries .sl-related-carousel__track > .sl-related-carousel__slide {
		width: clamp(210px, 74%, 420px) !important;
		flex-basis: clamp(210px, 74%, 420px);
	}
}

@media (max-width: 430px) {
	body.sl-design-system.single-post #related-entries .sl-related-carousel__button {
		width: 40px;
		height: 40px;
	}

	body.sl-design-system.single-post #related-entries .sl-related-carousel__status {
		margin-right: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.sl-design-system.single-post #related-entries .sl-related-carousel__track {
		scroll-behavior: auto;
	}
}
