/* featured-post-carousel — full-bleed dark hero slider on the journal index.
   CSS scroll-snap track; arrows/bullets driven by assets/js/featured-post-carousel.js. */

.featured-post-carousel {
	--image-height: 325px;
	--fpc-arrow-size: 36px;
	background-color: var(--color-soft-black);
	color: var(--color-soft-white);
	display: block;
	position: relative;
}

@media screen and (min-width: 1024px) {
	.featured-post-carousel { --image-height: 540px; }
}

@media screen and (min-width: 1280px) {
	.featured-post-carousel { --fpc-arrow-size: 46px; }
}

@media screen and (min-width: 1600px) {
	.featured-post-carousel { --image-height: 640px; }
}

.featured-post-carousel a { color: var(--color-brass-1); }

/* ----------------------------------------------------------------- track */

.featured-post-carousel__track {
	display: flex;
	-ms-overflow-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.featured-post-carousel__track::-webkit-scrollbar { display: none; }

.featured-post-carousel__slide {
	flex: 0 0 100%;
	min-width: 0;
	scroll-snap-align: start;
}

/* ----------------------------------------------------------------- image */

.featured-post-carousel__image-wrap {
	margin-bottom: 0;
	min-height: var(--image-height);
	position: relative;
}

.featured-post-carousel__image-wrap::after {
	background: linear-gradient(180deg, #0000 38.83%, #000c);
	bottom: 0;
	content: "";
	height: 100%;
	left: 0;
	max-height: 200px;
	position: absolute;
	right: 0;
	width: 100%;
}

.featured-post-carousel__image {
	height: 100%;
	left: 0;
	object-fit: cover;
	position: absolute;
	top: 0;
	width: 100%;
}

/* --------------------------------------------------------------- details */

.featured-post-carousel__details {
	padding-bottom: 30px;
	padding-top: 30px;
}

@media screen and (min-width: 1024px) {
	.featured-post-carousel__details {
		padding-bottom: 60px;
		padding-top: 60px;
	}
}

.featured-post-carousel__column { --typography-spacing: 1.25rem; }

.featured-post-carousel__category { margin-bottom: 3px; }

.featured-post-carousel__meta-time {
	align-items: center;
	display: flex;
	gap: 7px;
	margin-bottom: 10px;
}

.featured-post-carousel__link {
	align-items: center;
	display: flex;
	text-decoration: none;
}

.featured-post-carousel__link svg { margin: 1px 0 0 5px; }

/* --------------------------------------------------------- arrows/bullets */

.featured-post-carousel__nav {
	align-items: center;
	display: flex;
	gap: 20px;
	justify-content: center;
	left: 0;
	position: absolute;
	top: calc(var(--image-height) - var(--fpc-arrow-size));
	width: 100%;
	z-index: 1;
}

@media screen and (min-width: 1024px) {
	.featured-post-carousel__nav {
		top: calc(var(--image-height) - var(--fpc-arrow-size) - 20px);
	}
}

.featured-post-carousel__arrow {
	align-items: center;
	background-color: transparent;
	border: 1px solid #fefefc66;
	border-radius: 50%;
	color: var(--color-soft-white);
	cursor: pointer;
	display: none;
	height: var(--fpc-arrow-size);
	justify-content: center;
	opacity: 0.85;
	padding: 0;
	transition-duration: var(--transition-time);
	transition-property: all;
	transition-timing-function: var(--transition-easing);
	user-select: none;
	width: var(--fpc-arrow-size);
}

@media screen and (min-width: 1024px) {
	.featured-post-carousel__arrow { display: inline-flex; }
}

@media (hover: hover) {
	.featured-post-carousel__arrow:hover { background-color: #ffffff1a; }
}

.featured-post-carousel__arrow:disabled {
	cursor: auto;
	opacity: 0.3;
	pointer-events: none;
}

.featured-post-carousel__arrow svg { scale: 0.8; }

@media screen and (min-width: 1280px) {
	.featured-post-carousel__arrow svg { scale: 1; }
}

.featured-post-carousel__arrow--right svg { transform: rotate(180deg); }

.featured-post-carousel__bullets {
	align-items: center;
	display: flex;
	gap: 16px;
	justify-content: center;
	min-height: 8px;
}

.featured-post-carousel__bullet {
	background-color: var(--color-gray-500);
	border: none;
	border-radius: 20px;
	cursor: pointer;
	font-size: 0;
	height: 10px;
	line-height: 1;
	opacity: 0.85;
	padding: 0;
	transition-duration: var(--transition-time);
	transition-property: all;
	transition-timing-function: var(--transition-easing);
	width: 10px;
}

.featured-post-carousel__bullet[aria-current="true"] {
	background-color: var(--color-soft-white);
	box-shadow: 0 0 0 2px var(--color-soft-white);
	opacity: 1;
}
