/* ==========================================================================
   Automora Testimonial Slider
   Defaults = Figma Home 1 testimonials (3:875, "side" layout) and
   Home 2 testimonials (6:4602, "split" layout).
   ========================================================================== */

:where(.e-con, .e-con-inner) > .elementor-widget-automora-testimonials { width: 100%; min-width: 0; }

.am-ts {
	--am-ts-spv: 2; --am-ts-gap: 20px;
	--am-ts-photo-w: 242px; --am-ts-photo-h: auto;
	--am-ts-author-gap: 40px; --am-ts-star: 12.6px; --am-ts-logo-h: 22px;
	--am-ts-nav-gap: 48px; --am-ts-arrow: 56px;
	--am-ts-arrow-fg: #F9F9F9; --am-ts-arrow-bg: var(--am-w-card, #180F0F); --am-ts-arrow-line: var(--am-w-line, #251616);
	--am-ts-arrow-fg-h: #fff; --am-ts-arrow-bg-h: var(--am-w-orange, #FD430B); --am-ts-arrow-line-h: var(--am-w-orange, #FD430B);
	--am-ts-track: #402C2C; --am-ts-bar: var(--am-w-orange, #FD430B); --am-ts-bar-h: 2px;
	position: relative; width: 100%; color: var(--am-w-text);
}
.am-ts:focus-visible { outline: none; }

.am-ts__viewport { position: relative; overflow: hidden; outline: none; }
.am-ts--bleed .am-ts__viewport { overflow: visible; }
.am-ts__viewport:focus-visible { outline: 2px solid var(--am-w-orange); outline-offset: 6px; border-radius: 30px; }
.am-ts__track { display: flex; gap: var(--am-ts-gap); will-change: transform; }
.am-ts--drag .am-ts__viewport { cursor: grab; touch-action: pan-y; }
.am-ts.is-dragging .am-ts__viewport { cursor: grabbing; }
.am-ts.is-dragging .am-ts__track { user-select: none; -webkit-user-select: none; }
.am-ts__track img { -webkit-user-drag: none; user-select: none; }
.am-ts__track.is-css { transition: transform .7s var(--am-w-ease); }

.am-ts__slide {
	flex: 0 0 calc((100% - (var(--am-ts-spv) - 1) * var(--am-ts-gap)) / var(--am-ts-spv));
	min-width: 0; display: flex;
	container-type: inline-size; container-name: am-ts;
}

/* Card ------------------------------------------------------------------- */
.am-ts__card {
	position: relative; display: grid; width: 100%; box-sizing: border-box; overflow: hidden;
	background-color: var(--am-w-card, #180F0F); border-radius: 30px;
}
.am-ts__photo { grid-area: photo; position: relative; overflow: hidden; border-radius: 20.842px; background-color: #180F0F; }
.am-ts__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 46% 50%; }
.am-ts__review { grid-area: review; display: flex; flex-direction: column; gap: 15px; min-width: 0; }
.am-ts__author { grid-area: author; display: flex; flex-direction: column; gap: 4.5px; min-width: 0; }

.am-ts__quote { margin: 0; padding: 0; border: 0; quotes: none; font-family: var(--am-w-body); font-size: 16px; font-weight: 400; line-height: 1.65; letter-spacing: -0.005em; color: #FEFAFA; font-style: normal; text-align: left; }
.am-ts__quote::before, .am-ts__quote::after { content: none; }
.am-ts__quote p { margin: 0 0 .6em; }
.am-ts__quote p:last-child { margin-bottom: 0; }
.am-ts__name.am-ts__name { font-family: var(--am-w-head); font-size: 18px; font-weight: 600; font-style: normal; line-height: 1.3; letter-spacing: -0.01em; color: #FEFAFA; overflow-wrap: anywhere; }
.am-ts__role { font-family: var(--am-w-body); font-size: 14px; font-weight: 400; line-height: 1.4; letter-spacing: 0; color: rgba(249, 249, 249, .6); }
.am-ts__logo { display: block; margin-top: 10px; }
.am-ts__logo img { display: block; width: auto; max-width: 160px; height: var(--am-ts-logo-h); object-fit: contain; }

/* Rating. */
.am-ts__rating { position: relative; display: inline-flex; align-self: flex-start; line-height: 0; }
.am-ts__stars { display: inline-flex; gap: calc(var(--am-ts-star) * .36); white-space: nowrap; }
.am-ts__stars svg { flex: none; width: var(--am-ts-star); height: calc(var(--am-ts-star) * .957); max-width: none; }
.am-ts__stars--base { color: #402C2C; }
.am-ts__stars--fill { position: absolute; top: 0; left: 0; overflow: hidden; color: var(--am-w-orange, #FD430B); }

/* Layout: side (Home 1) - photo left, review + author right, vertically centred. */
.am-ts--side .am-ts__card {
	grid-template-columns: min(var(--am-ts-photo-w), 45%) minmax(0, 1fr);
	grid-template-rows: 1fr auto auto 1fr;
	grid-template-areas: "photo ." "photo review" "photo author" "photo .";
	column-gap: 29px; padding: 6px 16px 6px 6px; min-height: 282px;
}
.am-ts--side .am-ts__photo { min-height: 270px; height: var(--am-ts-photo-h); }
.am-ts--side .am-ts__author { margin-top: var(--am-ts-author-gap); }
.am-ts--side .am-ts__review, .am-ts--side .am-ts__author { padding-block: 0; }
.am-ts--side .am-ts__card--no-photo { grid-template-columns: minmax(0, 1fr); grid-template-areas: "." "review" "author" "."; padding: 30px; }

/* Layout: split (Home 2) - name top-left, photo top-right, review below. */
.am-ts--split .am-ts__card {
	--am-ts-author-gap: 17px;
	grid-template-columns: minmax(0, 1fr) min(var(--am-ts-photo-w), 50%);
	grid-template-areas: "author photo" "review review";
	grid-template-rows: auto auto;
	align-content: start;
	column-gap: 24px; padding: 12px 12px 32px 32px;
}
.am-ts--split .am-ts__photo { height: var(--am-ts-photo-h); min-height: 215px; }
.am-ts--split .am-ts__author { align-self: start; padding-top: 20px; gap: 6px; }
.am-ts--split .am-ts__review { margin-top: 28px; padding-right: 20px; gap: 16px; }
.am-ts--split .am-ts__name.am-ts__name { font-size: 22px; line-height: 1.15; }
.am-ts--split .am-ts__role { font-size: 14px; }
.am-ts--split .am-ts__card--no-photo { grid-template-columns: minmax(0, 1fr); grid-template-areas: "author" "review"; padding: 30px; }

/* Layout: quote - review first, small round avatar beside the author. */
.am-ts--quote .am-ts__card {
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-rows: 1fr auto;
	grid-template-areas: "review review" "photo author";
	column-gap: 14px; padding: 32px;
}
.am-ts--quote .am-ts__photo { width: min(var(--am-ts-photo-w), 56px); height: min(var(--am-ts-photo-w), 56px); border-radius: 50%; margin-top: var(--am-ts-author-gap); align-self: center; }
.am-ts--quote .am-ts__author { margin-top: var(--am-ts-author-gap); justify-content: center; }
.am-ts--quote .am-ts__quote { font-size: 16px; line-height: 1.5; }
.am-ts--quote .am-ts__name.am-ts__name { font-size: 16px; }
.am-ts--quote .am-ts__role { font-size: 14px; }
.am-ts--quote .am-ts__card--no-photo { grid-template-areas: "review review" "author author"; }

/* Narrow cards (container query on the slide, so it follows slides-per-view). */
@container am-ts (max-width: 479px) {
	.am-ts--side .am-ts__card {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto auto auto;
		grid-template-areas: "photo" "review" "author";
		padding: 6px 6px 26px; min-height: 0;
	}
	.am-ts--side .am-ts__photo { min-height: 0; height: 240px; margin-bottom: 22px; }
	.am-ts--side .am-ts__review, .am-ts--side .am-ts__author { padding-inline: 18px; }
	.am-ts--side .am-ts__author { margin-top: 28px; }
	.am-ts--split .am-ts__card { grid-template-columns: minmax(0, 1fr) 42%; padding: 10px 10px 24px 22px; min-height: 0; column-gap: 14px; }
	.am-ts--split .am-ts__photo { min-height: 150px; margin-right: 0; }
	.am-ts--split .am-ts__review { padding-right: 10px; margin-top: 20px; }
	.am-ts--quote .am-ts__card { padding: 24px; }
}
@container am-ts (min-width: 640px) {
	.am-ts--side .am-ts__quote, .am-ts--split .am-ts__quote { font-size: 17px; }
}

/* Navigation ------------------------------------------------------------- */
.am-ts__nav { display: flex; align-items: center; gap: 24px; margin-top: var(--am-ts-nav-gap); }
.am-ts__progress { position: relative; flex: 1 1 auto; height: max(var(--am-ts-bar-h), 1.5px); }
.am-ts__progress::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; background: var(--am-ts-track); transform: translateY(-50%); }
.am-ts__bar { position: absolute; left: 0; top: 50%; height: var(--am-ts-bar-h); border-radius: var(--am-ts-bar-h); background: var(--am-ts-bar); transform: translateY(-50%); }
.am-ts__arrows { display: flex; flex: none; gap: 12px; margin-left: auto; }

/* Shield the arrow <button>s from Elementor Site Settings > Buttons. */
.am-ts button.am-ts__arrow, .am-ts button.am-ts__arrow:hover, .am-ts button.am-ts__arrow:focus {
	display: inline-flex; align-items: center; justify-content: center;
	width: var(--am-ts-arrow); height: var(--am-ts-arrow); min-width: 0; margin: 0; padding: 0;
	border: 1px solid var(--am-ts-arrow-line); border-radius: 50%;
	background-color: var(--am-ts-arrow-bg); color: var(--am-ts-arrow-fg); box-shadow: none;
	font-family: inherit; font-size: inherit; font-weight: inherit; line-height: 1; letter-spacing: normal; text-transform: none;
	cursor: pointer; transition: background-color .35s var(--am-w-ease), border-color .35s var(--am-w-ease), color .35s var(--am-w-ease), opacity .35s;
}
@media (hover: hover) {
	.am-ts button.am-ts__arrow:hover { background-color: var(--am-ts-arrow-bg-h); border-color: var(--am-ts-arrow-line-h); color: var(--am-ts-arrow-fg-h); }
}
.am-ts button.am-ts__arrow:focus-visible { outline: 2px solid var(--am-w-orange); outline-offset: 3px; }
.am-ts button.am-ts__arrow[disabled] { opacity: .4; cursor: default; }
.am-ts__arrow svg { width: 20px; height: auto; transition: transform .45s var(--am-w-ease); }
.am-ts__arrow--prev svg { transform: scaleX(-1); }
@media (hover: hover) {
	.am-ts button.am-ts__arrow--next:hover svg { transform: translateX(3px); }
	.am-ts button.am-ts__arrow--prev:hover svg { transform: scaleX(-1) translateX(3px); }
}

@media (max-width: 767px) {
	.am-ts__nav { gap: 16px; }
	.am-ts__arrows { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
	.am-ts__track.is-css, .am-ts button.am-ts__arrow, .am-ts__arrow svg { transition: none; }
}

/* Photo always fills its frame (any image ratio). */
.am-ts .am-ts__photo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 25%; }
.am-ts--quote .am-ts__photo img { object-position: center; }
