/* BCCSC Homepage Banner */
.bccsc-banner {
	--bccsc-bg: #0d2a5c;
	--bccsc-accent: #c8102e;
	position: relative;
	width: 100%;
	line-height: 0;
}
.bccsc-banner__viewport {
	position: relative;
	width: 100%;
	aspect-ratio: var(--bccsc-ratio, 16 / 9);
	overflow: hidden;
	background: var(--bccsc-bg);
	touch-action: pan-y;
}
.bccsc-banner__track {
	display: flex;
	height: 100%;
	transition: transform .6s cubic-bezier(.4, 0, .2, 1);
	will-change: transform;
}
.bccsc-banner__slide {
	flex: 0 0 100%;
	height: 100%;
	position: relative;
}
.bccsc-banner .bccsc-banner__slide a,
.bccsc-banner .bccsc-banner__slide picture {
	display: block;
	width: 100%;
	height: 100%;
}
.bccsc-banner .bccsc-banner__img {
	display: block;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	-webkit-user-drag: none;
	user-select: none;
}

/* Controls: reset theme button styles first */
.bccsc-banner button {
	all: unset;
	box-sizing: border-box;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.bccsc-banner button:focus-visible {
	outline: 2px solid var(--bccsc-accent);
	outline-offset: 2px;
}
.bccsc-banner svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.bccsc-banner .bccsc-banner__arrow {
	position: absolute;
	top: calc(50% - 15px);
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .85);
	color: var(--bccsc-bg);
	opacity: 0;
	transition: opacity .2s, background .2s;
	z-index: 2;
}
.bccsc-banner .bccsc-banner__arrow--prev { left: 20px; }
.bccsc-banner .bccsc-banner__arrow--next { right: 20px; }
.bccsc-banner:hover .bccsc-banner__arrow,
.bccsc-banner .bccsc-banner__arrow:focus-visible { opacity: 1; }
.bccsc-banner .bccsc-banner__arrow:hover { background: #fff; }

.bccsc-banner__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 12px 0 4px;
	line-height: 1;
}
.bccsc-banner__dots { display: flex; gap: 8px; }
.bccsc-banner .bccsc-banner__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgba(13, 42, 92, .25);
	transition: background .2s, width .2s;
}
.bccsc-banner .bccsc-banner__dot[aria-current="true"] {
	width: 24px;
	border-radius: 5px;
	background: var(--bccsc-accent);
}
.bccsc-banner .bccsc-banner__pause {
	display: flex;
	color: var(--bccsc-bg);
}
.bccsc-banner__pause svg { width: 14px; height: 14px; }
.bccsc-banner__pause .i-play { display: none; fill: currentColor; }
.bccsc-banner.is-paused .bccsc-banner__pause .i-play { display: block; }
.bccsc-banner.is-paused .bccsc-banner__pause .i-pause { display: none; }

/* Phones */
@media (max-width: 767px) {
	.bccsc-banner.has-mobile .bccsc-banner__viewport {
		aspect-ratio: var(--bccsc-mratio, 1 / 1);
	}
	/* Slides without a mobile image: show the whole desktop image, letterboxed */
	.bccsc-banner.has-mobile .bccsc-banner__slide.no-mobile .bccsc-banner__img {
		object-fit: contain;
	}
	.bccsc-banner .bccsc-banner__arrow { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.bccsc-banner__track { transition: none; }
}
