/* SAD Term Loop v1.1.0 */
.sad-tl {
	--sad-tl-cols: 3;
	--sad-tl-rows: 1;
	--sad-tl-gap: 24px;
	--sad-tl-arrow-size: 44px;
	--sad-tl-arrow-offset: 12px;
	--sad-tl-arrow-color: #0043B0;
	--sad-tl-arrow-bg: #fff;
	--sad-tl-arrow-hover-color: #fff;
	--sad-tl-arrow-hover-bg: #0043B0;
	--sad-tl-dot-size: 8px;
	--sad-tl-dot-color: #DDE3EA;
	--sad-tl-dot-active: #0043B0;
	--sad-tl-dots-gap: 24px;
	position: relative;
}

.sad-tl__item { min-width: 0; }

/* Grid ------------------------------------------------------------------ */
.sad-tl--grid .sad-tl__track {
	display: grid;
	grid-template-columns: repeat(var(--sad-tl-cols), minmax(0, 1fr));
	gap: var(--sad-tl-gap);
}

/* Carousel: columns of N rows, snapping horizontally -------------------- */
.sad-tl__viewport { position: relative; }

.sad-tl--carousel .sad-tl__track {
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(var(--sad-tl-rows), auto);
	grid-auto-columns: calc((100% - (var(--sad-tl-cols) - 1) * var(--sad-tl-gap)) / var(--sad-tl-cols));
	gap: var(--sad-tl-gap);
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.sad-tl--carousel .sad-tl__track::-webkit-scrollbar { display: none; }
.sad-tl--carousel .sad-tl__track:focus-visible { outline: 2px solid var(--sad-tl-dot-active); outline-offset: 4px; }
.sad-tl--carousel .sad-tl__item { scroll-snap-align: start; }

/* Equal-height cards ---------------------------------------------------- */
.sad-tl--equal .sad-tl__item { display: flex; flex-direction: column; }
.sad-tl--equal .sad-tl__item > .elementor { flex: 1 1 auto; display: flex; flex-direction: column; }
.sad-tl--equal .sad-tl__item > .elementor > .e-con,
.sad-tl--equal .sad-tl__item > .elementor > .elementor-section { flex: 1 1 auto; }

/* Arrows (specificity beats Kit/theme button styles) -------------------- */
.sad-tl .sad-tl__nav {
	position: absolute;
	top: 50%;
	z-index: 3;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--sad-tl-arrow-size);
	height: var(--sad-tl-arrow-size);
	min-height: 0;
	padding: 0;
	margin: 0;
	border: 1px solid rgba(0, 0, 0, .08);
	border-radius: 50%;
	background: var(--sad-tl-arrow-bg);
	color: var(--sad-tl-arrow-color);
	box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
	font-size: 0;
	line-height: 1;
	cursor: pointer;
	transition: background-color .2s, color .2s, opacity .2s;
}
.sad-tl .sad-tl__nav:hover,
.sad-tl .sad-tl__nav:focus-visible {
	background: var(--sad-tl-arrow-hover-bg);
	color: var(--sad-tl-arrow-hover-color);
}
.sad-tl .sad-tl__nav svg { width: 42%; height: 42%; }
.sad-tl .sad-tl__nav--prev { left: var(--sad-tl-arrow-offset); }
.sad-tl .sad-tl__nav--next { right: var(--sad-tl-arrow-offset); }
.sad-tl .sad-tl__nav--next svg { transform: scaleX(-1); }
.sad-tl .sad-tl__nav[disabled] { opacity: .35; cursor: default; pointer-events: none; }

/* Dots ------------------------------------------------------------------ */
.sad-tl .sad-tl__dots {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: var(--sad-tl-dots-gap);
}
.sad-tl .sad-tl__dot {
	width: var(--sad-tl-dot-size);
	height: var(--sad-tl-dot-size);
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--sad-tl-dot-color);
	cursor: pointer;
	transition: width .25s, background-color .25s;
}
.sad-tl .sad-tl__dot[aria-current="true"] {
	width: calc(var(--sad-tl-dot-size) * 3);
	background: var(--sad-tl-dot-active);
}

/* Nothing to scroll: hide controls -------------------------------------- */
.sad-tl.is-static .sad-tl__nav,
.sad-tl.is-static .sad-tl__dots { display: none; }

.sad-tl-notice {
	padding: 16px;
	border: 1px dashed #DDE3EA;
	background: #F4F6F8;
	font-size: 14px;
	text-align: center;
}

