/* Remove Elementor/theme widget spacing without changing surrounding containers. */
.elementor-widget-bac-hero-slider,
.elementor-widget-bac-hero-slider:not(:last-child),
.elementor-widget-bac-hero-slider > .elementor-widget-container {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0;
	padding-bottom: 0;
	border: 0;
	outline: 0;
	line-height: 0;
}

/*
 * Elementor boxed-container correction.
 * Only a container whose direct inner wrapper hosts the BAC Hero Slider is reset.
 * The class selectors are added by the widget script as a fallback for :has().
 */
.e-con:has(> .e-con-inner > .elementor-widget-bac-hero-slider),
.e-con.bac-hero-slider-host {
	--container-max-width: 100%;
	--content-width: 100%;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-block-start: 0px;
	--padding-block-end: 0px;
	--padding-inline-start: 0px;
	--padding-inline-end: 0px;
	--gap: 0px;
	--row-gap: 0px;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	border-top: 0 !important;
	border-bottom: 0 !important;
	outline: 0;
	box-shadow: none;
	row-gap: 0 !important;
}

.e-con:has(> .e-con-inner > .elementor-widget-bac-hero-slider)::before,
.e-con:has(> .e-con-inner > .elementor-widget-bac-hero-slider)::after,
.e-con.bac-hero-slider-host::before,
.e-con.bac-hero-slider-host::after {
	border-top: 0 !important;
	border-bottom: 0 !important;
	box-shadow: none !important;
}

.e-con-inner:has(> .elementor-widget-bac-hero-slider),
.e-con-inner.bac-hero-slider-host-inner {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	outline: 0;
	box-shadow: none;
	gap: 0 !important;
	row-gap: 0 !important;
	background-color: transparent;
	line-height: 0;
}

.e-con-inner:has(> .elementor-widget-bac-hero-slider)::before,
.e-con-inner:has(> .elementor-widget-bac-hero-slider)::after,
.e-con-inner.bac-hero-slider-host-inner::before,
.e-con-inner.bac-hero-slider-host-inner::after {
	display: none !important;
	content: none !important;
}

.bac-hero-slider,
.bac-hero-slider-wrapper,
.bac-hero-slider.swiper {
	--bac-red: #ed1c24;
	--bac-black: #050505;
	--bac-slider-height: 650px;
	--bac-hero-viewport-width: 100vw;
	position: relative;
	width: var(--bac-hero-viewport-width);
	max-width: var(--bac-hero-viewport-width);
	height: var(--bac-slider-height);
	min-height: 300px;
	margin-top: 0;
	margin-right: calc(50% - (var(--bac-hero-viewport-width) / 2));
	margin-bottom: 0;
	margin-left: calc(50% - (var(--bac-hero-viewport-width) / 2));
	padding: 0;
	border: 0;
	outline: 0;
	overflow: hidden;
	background: var(--bac-black);
	color: #fff;
	display: block;
	font-family: Inter, "Helvetica Neue", Arial, sans-serif;
	line-height: 0;
	box-sizing: border-box;
}

.bac-hero-slider *,
.bac-hero-slider *::before,
.bac-hero-slider *::after { box-sizing: border-box; }

.bac-hero-slider .swiper-wrapper,
.bac-hero-slider-wrapper .swiper-wrapper,
.bac-hero-slider__slide {
	height: 100%;
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
	border: 0;
	outline: 0;
}

.bac-hero-slider__slide {
	--bac-overlay-opacity: .72;
	--bac-desktop-x: 50%;
	--bac-desktop-y: 50%;
	--bac-mobile-x: 50%;
	--bac-mobile-y: 50%;
	position: relative;
	display: flex;
	margin-top: 0;
	margin-bottom: 0;
	padding: 0;
	border: 0;
	outline: 0;
	isolation: isolate;
	overflow: hidden;
	background: var(--bac-black);
}

.bac-hero-slider__slide--top { align-items: flex-start; }
.bac-hero-slider__slide--center { align-items: center; }
.bac-hero-slider__slide--bottom { align-items: flex-end; }

.bac-hero-slider__background,
.bac-hero-slider__overlay {
	position: absolute;
	inset: 0;
	z-index: -2;
	pointer-events: none;
}

.bac-hero-slider__background {
	background-color: var(--bac-black);
	background-image: var(--bac-desktop-image);
	background-position: var(--bac-desktop-x) var(--bac-desktop-y);
	background-repeat: no-repeat;
	background-size: cover;
}

.bac-hero-slider__overlay {
	z-index: -1;
	background: linear-gradient(90deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.68) 45%, rgba(0,0,0,.18) 100%);
	opacity: var(--bac-overlay-opacity);
}

.bac-hero-slider__content-shell {
	display: flex;
	align-items: inherit;
	width: 100%;
	max-width: 1200px;
	height: 100%;
	margin: 0 auto;
	padding: 64px;
}

.bac-hero-slider__content { width: min(100%, 760px); line-height: 1.5; }
.bac-hero-slider__slide--align-center .bac-hero-slider__content { margin-right: auto; margin-left: auto; }
.bac-hero-slider__slide--align-right .bac-hero-slider__content { margin-left: auto; }

.bac-hero-slider__eyebrow {
	margin: 0 0 18px;
	color: var(--bac-red);
	font-size: 14px;
	font-weight: 850;
	letter-spacing: .2em;
	line-height: 1.2;
	text-transform: uppercase;
}

.bac-hero-slider__heading {
	max-width: 900px;
	margin: 0;
	color: #fff;
	font-size: clamp(56px, 5.2vw, 74px);
	font-weight: 950;
	letter-spacing: -.045em;
	line-height: .96;
	text-transform: uppercase;
}

.bac-hero-slider__description {
	max-width: 650px;
	margin-top: 24px;
	color: #fff;
	font-size: 20px;
	font-weight: 450;
	line-height: 1.5;
}

.bac-hero-slider__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: 52px;
	margin-top: 32px;
	padding: 16px 28px;
	border: 0 solid transparent;
	background: var(--bac-red);
	clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
	color: #fff;
	font-size: 13px;
	font-weight: 850;
	letter-spacing: .13em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 180ms ease, transform 180ms ease;
}

.bac-hero-slider__button span { font-size: 18px; transition: transform 180ms ease; }
.bac-hero-slider__button--preview { cursor: default; }
.bac-hero-slider__button:hover,
.bac-hero-slider__button:focus-visible { background: #b90f18; color: #fff; transform: translateY(-2px); }
.bac-hero-slider__button:hover span,
.bac-hero-slider__button:focus-visible span { transform: translateX(3px); }

.bac-hero-slider a:focus-visible,
.bac-hero-slider button:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }

.bac-hero-slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 1px solid rgba(255,255,255,.28);
	border-radius: 0;
	background: rgba(5,5,5,.55);
	color: #fff;
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color 160ms ease, border-color 160ms ease;
}
.bac-hero-slider__arrow:hover { border-color: var(--bac-red); background: var(--bac-red); }
.bac-hero-slider__arrow svg { width: 24px; height: 24px; }
.bac-hero-slider__arrow--prev { left: 22px; }
.bac-hero-slider__arrow--next { right: 22px; }
.bac-hero-slider__arrow.swiper-button-disabled { opacity: .35; cursor: default; }

.bac-hero-slider__pagination {
	position: absolute;
	right: 0;
	bottom: 24px !important;
	left: 0;
	z-index: 5;
	display: flex;
	justify-content: center;
	gap: 7px;
}
.bac-hero-slider__pagination .swiper-pagination-bullet { width: 28px; height: 3px; margin: 0 !important; border-radius: 0; background: rgba(255,255,255,.55); opacity: 1; transition: width 160ms ease, background-color 160ms ease; }
.bac-hero-slider__pagination .swiper-pagination-bullet-active { width: 48px; background: var(--bac-red); }

@media (max-width: 1024px) {
	.bac-hero-slider { --bac-slider-height: 560px; }
	.bac-hero-slider__content-shell { padding: 48px; }
	.bac-hero-slider__heading { font-size: clamp(44px, 6vw, 56px); }
	.bac-hero-slider__description { font-size: 18px; }
	.bac-hero-slider__arrow--prev { left: 14px; }
	.bac-hero-slider__arrow--next { right: 14px; }
}

@media (max-width: 767px) {
	.bac-hero-slider { --bac-slider-height: 540px; }
	.bac-hero-slider__background { background-image: var(--bac-mobile-image); background-position: var(--bac-mobile-x) var(--bac-mobile-y); }
	.bac-hero-slider__overlay { background: linear-gradient(0deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.68) 60%, rgba(0,0,0,.2) 100%); }
	.bac-hero-slider__content-shell { padding: 32px 24px 46px; }
	.bac-hero-slider__eyebrow { margin-bottom: 14px; font-size: 12px; }
	.bac-hero-slider__heading { font-size: clamp(34px, 10vw, 42px); line-height: 1; }
	.bac-hero-slider__description { margin-top: 18px; font-size: 16px; line-height: 1.45; }
	.bac-hero-slider__button { min-height: 50px; margin-top: 24px; padding: 15px 23px; }
	.bac-hero-slider__arrow { top: auto; bottom: 18px; width: 42px; height: 42px; transform: none; }
	.bac-hero-slider__arrow--prev { left: 18px; }
	.bac-hero-slider__arrow--next { right: 18px; }
	.bac-hero-slider__pagination { bottom: 36px !important; padding: 0 72px; }
	.bac-hero-slider__pagination .swiper-pagination-bullet { width: 18px; }
	.bac-hero-slider__pagination .swiper-pagination-bullet-active { width: 30px; }
}

@media (prefers-reduced-motion: reduce) {
	.bac-hero-slider *,
	.bac-hero-slider *::before,
	.bac-hero-slider *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
