/**
 * hero.css
 * The homepage hero slider: viewport, track, slides, captions, navigation
 * arrows, pagination dots and the fallback panel.
 */

.jpm-hero {
	position: relative;
	border-radius: var(--jpm-radius-lg);
	overflow: hidden;
	box-shadow: var(--jpm-shadow);
	background: var(--jpm-color-primary-dark);
	aspect-ratio: 16 / 8;
	min-height: 320px;
}

.jpm-hero__viewport {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.jpm-hero__track {
	list-style: none;
	margin: 0;
	padding: 0;
	height: 100%;
}

.jpm-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 600ms ease;
}

.jpm-hero__slide[hidden] {
	display: none;
}

.jpm-hero__slide.is-active {
	opacity: 1;
	position: relative;
	height: 100%;
}

.jpm-hero__media {
	position: absolute;
	inset: 0;
}

.jpm-hero__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.jpm-hero__caption {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	background: linear-gradient(180deg, rgba(8, 63, 97, 0) 35%, rgba(8, 63, 97, 0.82) 100%);
	padding: clamp(1.25rem, 4vw, 2.5rem);
}

.jpm-hero__caption-inner {
	max-width: 640px;
	color: #fff;
}

.jpm-hero__title {
	color: #fff;
	font-size: clamp(1.5rem, 4vw, 2.6rem);
	margin-bottom: 0.5rem;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.jpm-hero__text {
	color: rgba(255, 255, 255, 0.94);
	font-size: clamp(0.95rem, 2vw, 1.1rem);
}

.jpm-hero__text a {
	color: #fff;
}

/* Fallback */
.jpm-hero__fallback {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 2rem;
	background:
		radial-gradient(circle at 30% 20%, rgba(26, 127, 179, 0.55), transparent 55%),
		linear-gradient(135deg, var(--jpm-color-primary-dark), var(--jpm-color-primary));
}

.jpm-hero__fallback .jpm-hero__title {
	font-size: clamp(1.6rem, 4vw, 2.8rem);
}

.jpm-hero__hint a {
	color: var(--jpm-color-accent);
	font-weight: 600;
}

/* Navigation arrows */
.jpm-hero__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, 0.85);
	color: var(--jpm-color-primary-dark);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: var(--jpm-shadow-sm);
	transition: background var(--jpm-transition), transform var(--jpm-transition);
	z-index: 5;
}

.jpm-hero__nav:hover,
.jpm-hero__nav:focus {
	background: #fff;
}

.jpm-hero__nav--prev {
	left: 1rem;
}

.jpm-hero__nav--prev .jpm-icon {
	transform: rotate(180deg);
}

.jpm-hero__nav--next {
	right: 1rem;
}

/* Dots */
.jpm-hero__dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.9rem;
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	z-index: 5;
}

.jpm-hero__dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.8);
	background: transparent;
	cursor: pointer;
	padding: 0;
	transition: background var(--jpm-transition), transform var(--jpm-transition);
}

.jpm-hero__dot[aria-selected="true"] {
	background: #fff;
	transform: scale(1.2);
}
