.ts-repair-carousel__button:is(:hover, :focus-visible) {
	background: var(--ts-red);
	border-color: var(--ts-red);
	color: var(--ts-white);
}

/* Repair services carousel and image accordions. */
.ts-repair-showcase {
	display: grid;
	gap: clamp(1.25rem, 3vw, 2rem);
	margin-left: 50% !important;
	margin-right: 0 !important;
	max-width: none;
	transform: translateX(-50%);
	width: min(92rem, calc(100vw - clamp(2rem, 5vw, 5rem)));
}

.ts-repair-showcase__header {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	justify-content: center;
	text-align: center;
}

.ts-repair-showcase__header h2 { margin: 0; }

.ts-repair-showcase > .wp-block-buttons {
	display: flex;
	justify-content: center;
	width: 100%;
}

.ts-repair-carousel__controls {
	display: flex;
	gap: 0.55rem;
}

.ts-repair-carousel__button {
	align-items: center;
	background: var(--ts-white);
	border: 1px solid rgb(16 19 22 / 18%);
	border-radius: 50%;
	color: var(--ts-ink);
	cursor: pointer;
	display: inline-flex;
	height: 2.8rem;
	justify-content: center;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
	width: 2.8rem;
}

.ts-repair-carousel__button:focus-visible { outline: 0.2rem solid var(--ts-red); outline-offset: 0.15rem; }

.ts-repair-carousel__track {
	display: grid;
	gap: clamp(0.9rem, 2vw, 1.4rem);
	grid-auto-columns: calc((100% - clamp(1.8rem, 4vw, 2.8rem)) / 3);
	grid-auto-flow: column;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	padding: 0.35rem 0.2rem 1.35rem;
	scroll-behavior: smooth;
	scroll-snap-type: inline mandatory;
	scrollbar-color: var(--ts-red) rgb(16 19 22 / 9%);
	scrollbar-width: thin;
}

.ts-repair-slide {
	background: var(--ts-ink);
	border-radius: 0.8rem;
	box-shadow: 0 0.75rem 1.8rem rgb(16 19 22 / 14%);
	isolation: isolate;
	min-height: clamp(18rem, 30vw, 25rem);
	overflow: hidden;
	position: relative;
	scroll-snap-align: start;
}

.ts-repair-slide img {
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
	width: 100%;
	z-index: -2;
}

.ts-repair-slide::after {
	background: linear-gradient(180deg, transparent 40%, rgb(8 10 12 / 88%) 100%);
	content: "";
	inset: 0;
	position: absolute;
	z-index: -1;
}

.ts-repair-slide:hover img { transform: scale(1.045); }

.ts-repair-slide h3 {
	bottom: 0;
	color: var(--ts-white);
	font-size: clamp(1.15rem, 2vw, 1.6rem);
	left: 0;
	margin: 0;
	padding: 1.25rem;
	position: absolute;
	right: 0;
	text-transform: uppercase;
}

.ts-repair-accordion {
	display: flex;
	gap: 0.65rem;
	height: clamp(22rem, 36vw, 30rem);
	overflow: hidden;
}

.ts-repair-accordion__panel {
	background: var(--ts-ink);
	border: 0;
	border-radius: 0.75rem;
	color: var(--ts-white);
	cursor: pointer;
	flex: 1 1 0;
	isolation: isolate;
	min-width: 0;
	overflow: hidden;
	padding: 0;
	position: relative;
	text-align: left;
	transition: flex-grow 500ms cubic-bezier(0.22, 1, 0.36, 1), filter 220ms ease;
}

.ts-repair-accordion__panel img {
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
	z-index: -2;
}

.ts-repair-accordion__panel::after {
	background: linear-gradient(180deg, rgb(8 10 12 / 4%) 35%, rgb(8 10 12 / 88%) 100%);
	content: "";
	inset: 0;
	position: absolute;
	z-index: -1;
}

.ts-repair-accordion__panel:not(.is-active) { filter: saturate(0.72) brightness(0.82); }
.ts-repair-accordion__panel.is-active { flex-grow: 3; }
.ts-repair-accordion__panel:focus-visible { outline: 0.22rem solid var(--ts-red); outline-offset: -0.22rem; }

.ts-repair-accordion__label {
	bottom: 0;
	font-family: "Oswald", sans-serif;
	font-size: clamp(1rem, 1.8vw, 1.45rem);
	font-weight: 700;
	left: 50%;
	line-height: 1.15;
	opacity: 1;
	padding: clamp(1rem, 2.5vw, 1.6rem);
	position: absolute;
	right: auto;
	text-transform: uppercase;
	transform: translateX(-50%) rotate(180deg);
	transition: opacity 240ms ease 120ms, transform 240ms ease 120ms;
	white-space: nowrap;
	writing-mode: vertical-rl;
}

.ts-repair-accordion__panel.is-active .ts-repair-accordion__label {
	left: 0;
	opacity: 1;
	right: 0;
	transform: translateY(0);
	white-space: normal;
	writing-mode: horizontal-tb;
}

@media (max-width: 781px) {
	.ts-repair-carousel__track { grid-auto-columns: 86%; }
	.ts-repair-accordion { flex-direction: column; height: 31rem; }
	.ts-repair-accordion__panel { min-height: 0; }
	.ts-repair-accordion__panel.is-active { flex-grow: 4; }
	.ts-repair-accordion__label {
		bottom: auto;
		left: 1rem;
		right: 1rem;
		top: 50%;
		transform: translateY(-50%);
		white-space: normal;
		writing-mode: horizontal-tb;
	}
	.ts-repair-accordion__panel.is-active .ts-repair-accordion__label {
		bottom: 0;
		left: 0;
		right: 0;
		top: auto;
	}}

@media (max-width: 420px) {
	.ts-repair-showcase__header { align-items: center; flex-direction: column; }
	.ts-repair-carousel__track { grid-auto-columns: 92%; }}
