/* [bf_testimonials] carousel — see inc/testimonials.php. */
.bft { position: relative; }
.bft-track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 3rem) / 3);
	gap: 1.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	padding: .5rem 0 1rem;
}
.bft-track::-webkit-scrollbar { display: none; }
.bft-track:focus-visible { outline: 2px solid #E0BB7F; outline-offset: 6px; }

.bft-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 2rem;
	margin: 0;
	padding: 3.25rem 2.25rem 2.25rem;
	background: #FBFAF7;
	border: 1px solid rgba(13, 15, 14, .11);
	scroll-snap-align: start;
	transition: transform .5s cubic-bezier(.22, .61, .36, 1), box-shadow .5s cubic-bezier(.22, .61, .36, 1);
}
.bft-card::before {
	content: '\201C';
	position: absolute;
	top: .9rem;
	left: 2.1rem;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 4.5rem;
	line-height: 1;
	color: #E0BB7F;
}
.bft-card::after {
	content: '';
	position: absolute;
	left: -1px;
	right: -1px;
	top: -1px;
	height: 2px;
	background: #E0BB7F;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .7s cubic-bezier(.22, .61, .36, 1);
}
.bft-card:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -30px rgba(13, 15, 14, .3); }
.bft-card:hover::after { transform: scaleX(1); }

.bft-quote { margin: 0; padding: 0; border: 0; quotes: none; }
.bft-quote p {
	margin: 0 0 .8em;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-size: 1.4rem;
	line-height: 1.5;
	color: #0D0F0E;
}
.bft-quote p:last-child { margin-bottom: 0; }

.bft-by { display: flex; flex-direction: column; gap: .35rem; padding-top: 1.25rem; border-top: 1px solid rgba(13, 15, 14, .11); }
.bft-name { font-family: 'Archivo', sans-serif; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #007BC1; }
.bft-role { font-family: 'Inter', sans-serif; font-size: .82rem; color: #3A3A35; }

.bft-nav { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1.5rem; }
.bft-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: 1px solid #0D0F0E;
	border-radius: 0;
	background: transparent;
	color: #0D0F0E;
	font-size: 1.05rem;
	cursor: pointer;
	transition: background-color .3s, color .3s, opacity .3s;
}
.bft-btn:hover, .bft-btn:focus-visible { background: #0D0F0E; color: #fff; }
.bft-btn:disabled { opacity: .3; cursor: default; background: transparent; color: #0D0F0E; }
.bft.is-static .bft-nav { display: none; }

@media (max-width: 1024px) {
	.bft-track { grid-auto-columns: calc((100% - 1.5rem) / 2); }
}
@media (max-width: 767px) {
	.bft-track { grid-auto-columns: 86%; gap: 1rem; }
	.bft-card { padding: 3rem 1.6rem 1.75rem; }
	.bft-card::before { left: 1.5rem; }
	.bft-quote p { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
	.bft-track { scroll-behavior: auto; }
	.bft-card, .bft-card::after { transition: none; }
}
