.sr-only{
	position:absolute!important;
	clip:rect(1px,1px,1px,1px);
	clip-path:inset(50%);
	width:1px;
	height:1px;
	overflow:hidden;
	white-space:nowrap;
}

.cw-testimonial-shelf-wrapper{
	--cw-testimonial-gap:24px;
	--cw-testimonial-collapsed-width:320px;
	--cw-testimonial-expanded-width:400px;
	--cw-testimonial-bleed:80px;
	--cw-testimonial-active-scale:1;
	--cw-testimonial-card-padding:16px;
	--cw-testimonial-open-duration:380ms;
	--cw-testimonial-reveal-duration:240ms;
	--cw-testimonial-reveal-delay:140ms;
	position:relative;
}

.cw-testimonial-shelf{
	display:flex;
	gap:var(--cw-testimonial-gap);
	list-style:none;
	margin:0;
	padding:6px 0;
	overflow-x:auto;
	overflow-y:visible;
	scroll-snap-type:x proximity;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
	list-style:none!important;
	align-items:stretch;
}

.cw-testimonial-shelf::-webkit-scrollbar{
	display:none;
}

.cw-testimonial-shelf-wrapper.bleed-right .cw-testimonial-shelf{
	padding-right:var(--cw-testimonial-bleed);
}

.cw-testimonial-shelf-wrapper.bleed-both .cw-testimonial-shelf{
	padding-left:var(--cw-testimonial-bleed);
	padding-right:var(--cw-testimonial-bleed);
}

.cw-testimonial-shelf__item{
	flex:0 0 var(--cw-testimonial-collapsed-width);
	width:var(--cw-testimonial-collapsed-width);
	max-width:100%;
	scroll-snap-align:start;
	transform-origin:center center;
	position:relative;
	z-index:1;
	overflow:hidden;
	transition:
		flex-basis var(--cw-testimonial-open-duration) ease,
		width var(--cw-testimonial-open-duration) ease,
		transform var(--cw-testimonial-open-duration) ease,
		opacity 220ms ease;
	will-change:flex-basis, width, transform;
}

.cw-testimonial-shelf__item.is-active{
	flex-basis:var(--cw-testimonial-expanded-width);
	width:var(--cw-testimonial-expanded-width);
	transform:scale(var(--cw-testimonial-active-scale));
	z-index:2;
}

.cw-testimonial-shelf__item > *{
	height:100%;
}

.cw-testimonial-card{
	height:100%;
	width:var(--cw-testimonial-collapsed-width);
	min-width:var(--cw-testimonial-collapsed-width);
	max-width:var(--cw-testimonial-collapsed-width);
	box-sizing:border-box;
	background:transparent;
	padding:0;
	overflow:visible;
	transition:
		background-color 220ms ease,
		padding 220ms ease,
		width var(--cw-testimonial-open-duration) ease,
		min-width var(--cw-testimonial-open-duration) ease,
		max-width var(--cw-testimonial-open-duration) ease;
}

.cw-testimonial-shelf__item.is-active .cw-testimonial-card{
	width:var(--cw-testimonial-expanded-width);
	min-width:var(--cw-testimonial-expanded-width);
	max-width:var(--cw-testimonial-expanded-width);
	background:#F8F8F8;
	padding:var(--cw-testimonial-card-padding);
}

.cw-testimonial-card__toggle{
	appearance:none;
	-webkit-appearance:none;
	background:none;
	border:0;
	padding:0;
	margin:0;
	width:100%;
	text-align:inherit;
	font:inherit;
	color:inherit;
	cursor:pointer;
	transition:opacity 180ms ease, visibility 0s linear 180ms;
}

.cw-testimonial-card__toggle:focus-visible{
	outline:2px solid currentColor;
	outline-offset:4px;
}

.cw-testimonial-shelf__item.is-active .cw-testimonial-card__toggle{
	opacity:0;
	visibility:hidden;
	pointer-events:none;
}

.cw-testimonial-card__body{
	display:block;
	width:var(--cw-testimonial-expanded-width);
	min-width:var(--cw-testimonial-expanded-width);
	max-width:var(--cw-testimonial-expanded-width);
	box-sizing:border-box;
	overflow:hidden;
	max-height:0;
	opacity:0;
	visibility:hidden;
	transform:translateY(10px);
	transition:
		max-height var(--cw-testimonial-open-duration) ease,
		opacity var(--cw-testimonial-reveal-duration) ease,
		transform var(--cw-testimonial-reveal-duration) ease,
		visibility 0s linear var(--cw-testimonial-open-duration);
	will-change:max-height, opacity, transform;
}

/* Body is only revealed after JS adds .is-body-visible */
.cw-testimonial-shelf__item.is-body-visible .cw-testimonial-card__body{
	max-height:2000px;
	opacity:1;
	visibility:visible;
	transform:translateY(0);
	transition:
		max-height var(--cw-testimonial-open-duration) ease,
		opacity var(--cw-testimonial-reveal-duration) ease,
		transform var(--cw-testimonial-reveal-duration) ease,
		visibility 0s linear 0s;
}

.cw-testimonial-card__body > *:first-child{
	margin-top:0;
}

.cw-testimonial-card__body > *:last-child{
	margin-bottom:0;
}

.cw-testimonial-card__body-inner,
.cw-testimonial-card__quote,
.cw-testimonial-card__media{
	max-width:100%;
}

.cw-testimonial-card__media iframe,
.cw-testimonial-card__media video{
	display:block;
	width:100%;
	max-width:100%;
	height:auto;
}

.cw-testimonial-card__body .elementor-widget-text-editor,
.cw-testimonial-card__body .elementor-widget-heading,
.cw-testimonial-card__body .elementor-widget-video,
.cw-testimonial-card__body .elementor-widget-button{
	margin-bottom:0;
}

@media (prefers-reduced-motion: reduce){
	.cw-testimonial-shelf__item,
	.cw-testimonial-card,
	.cw-testimonial-card__toggle,
	.cw-testimonial-card__body{
		transition:none !important;
		transform:none !important;
	}
}

/* -----------------------------------------------------------
   Focus visibility fixes
   Prevent keyboard focus rings being clipped by the shelf/card
   ----------------------------------------------------------- */

.cw-testimonial-shelf{
	padding:10px 6px;
	scroll-padding-inline:6px;
}

/* Let focus outlines render outside each card */
.cw-testimonial-shelf__item{
	overflow:visible;
}

/* Give focused controls enough internal breathing room */
.cw-testimonial-card__toggle{
	border-radius:8px;
}

/* Clear, visible focus style for the collapsed button */
.cw-testimonial-card__toggle:focus-visible{
	outline:2px solid currentColor;
	outline-offset:4px;
}

/* Whole-card focus after testimonial opens */
.cw-testimonial-card:focus-visible{
	outline:2px solid currentColor;
	outline-offset:4px;
	border-radius:8px;
}

/* Prevent the active card focus ring being swallowed by its own background/padding */
.cw-testimonial-shelf__item.is-active .cw-testimonial-card{
	position:relative;
}

@media (max-width: 1024px){
	.cw-testimonial-shelf-wrapper{
		--cw-testimonial-collapsed-width:280px;
		--cw-testimonial-expanded-width:400px;
		--cw-testimonial-bleed:48px;
	}
}

@media (max-width: 767px){
	.cw-testimonial-shelf-wrapper{
		--cw-testimonial-collapsed-width:86vw;
		--cw-testimonial-expanded-width:86vw;
		--cw-testimonial-bleed:16px;
		--cw-testimonial-active-scale:1;
	}

	.cw-testimonial-shelf{
		gap:16px;
	}

	.cw-testimonial-card{
		width:100%;
		min-width:100%;
		max-width:100%;
	}

	.cw-testimonial-card__body{
		width:100%;
		min-width:100%;
		max-width:100%;
	}
}
