.mpt {
	--mpt-arrow-color: #6e6e6d;
	--mpt-arrow-color-hover: var(--mpt-arrow-color);
	--mpt-arrow-bg: transparent;
	--mpt-arrow-bg-hover: transparent;
	--mpt-arrow-padding: 8px;
	--mpt-arrow-radius: 0px;
	--mpt-dot-color: #6e6e6d;
	--mpt-dot-color-hover: var(--mpt-dot-color);
	--mpt-mark: #000;
	--mpt-mark-size: 120px;
	--mpt-mark-inset: 6%;
	--mpt-mark-top: 40px;
	--mpt-arrow-size: 26px;
	--mpt-arrow-inset: 2.5%;
	--mpt-dot-size: 7px;
	--mpt-dot-gap: 12px;
	--mpt-speed: 450ms;
	position: relative;
	background-color: #f5ddd7;
	padding: 80px 140px 60px;
}

/* ---------- Decorative quotation marks ---------- */

.mpt--quotes::before,
.mpt--quotes::after {
	position: absolute;
	top: var(--mpt-mark-top);
	z-index: 1;
	font-size: var(--mpt-mark-size);
	line-height: 1;
	color: var(--mpt-mark);
	pointer-events: none;
	user-select: none;
}

.mpt--quotes::before {
	content: "\201C";
	left: var(--mpt-mark-inset);
}

.mpt--quotes::after {
	content: "\201D";
	right: var(--mpt-mark-inset);
}

/* ---------- Viewport and track ---------- */

.mpt-viewport {
	position: relative;
	overflow: hidden;
}

.mpt-slide {
	margin: 0;
}

/* Fade: slides stack on top of each other */

.mpt--fade .mpt-track {
	display: grid;
}

.mpt--fade .mpt-slide {
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--mpt-speed) ease, visibility var(--mpt-speed) ease;
}

.mpt--fade .mpt-slide.is-active {
	opacity: 1;
	visibility: visible;
}

/* Slide: single row that translates sideways */

.mpt--slide .mpt-track {
	display: flex;
	direction: ltr;
	will-change: transform;
	transition: transform var(--mpt-speed) cubic-bezier(0.4, 0, 0.2, 1);
}

.mpt--slide .mpt-slide {
	flex: 0 0 100%;
	min-width: 100%;
	opacity: 0.999;
}

/* Suppress the transform animation while dragging */
.mpt--slide.is-dragging .mpt-track {
	transition: none;
}

/* ---------- Text ---------- */

.mpt-quote {
	margin: 0;
	padding: 0;
	border: 0;
	text-align: center;
	color: #000;
	font-size: 32px;
	font-weight: 300;
	line-height: 1.5;
	quotes: none;
}

.mpt-quote p {
	margin: 0 0 0.5em;
}

.mpt-quote p:last-child {
	margin-bottom: 0;
}

.mpt-author {
	margin-top: 26px;
	text-align: center;
	color: #000;
	font-size: 13px;
	letter-spacing: 1.3px;
}

/* ---------- Arrows ---------- */

.mpt button.mpt-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: var(--mpt-arrow-padding);
	border: 0;
	border-radius: var(--mpt-arrow-radius);
	background-color: var(--mpt-arrow-bg) !important;
	background-image: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	color: var(--mpt-arrow-color) !important;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	cursor: pointer;
	opacity: 0.8;
	transition: opacity 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.mpt button.mpt-arrow:hover,
.mpt button.mpt-arrow:focus-visible {
	color: var(--mpt-arrow-color-hover) !important;
	background-color: var(--mpt-arrow-bg-hover) !important;
	opacity: 1;
}

.mpt button.mpt-arrow:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 6px;
}

.mpt-arrow svg {
	width: var(--mpt-arrow-size);
	height: calc(var(--mpt-arrow-size) * 1.6);
	display: block;
}

.mpt-arrow--prev {
	left: var(--mpt-arrow-inset);
}

.mpt-arrow--next {
	right: var(--mpt-arrow-inset);
}

/* ---------- Dots ---------- */

.mpt-dots {
	display: flex;
	direction: ltr;
	justify-content: center;
	gap: var(--mpt-dot-gap);
	margin-top: 28px;
}

.mpt button.mpt-dot {
	width: var(--mpt-dot-size);
	height: var(--mpt-dot-size);
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: var(--mpt-dot-color) !important;
	background-image: none !important;
	box-shadow: none !important;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	opacity: 0.35;
	cursor: pointer;
	transition: opacity 0.2s ease, background-color 0.2s ease;
}

.mpt button.mpt-dot:hover {
	background-color: var(--mpt-dot-color-hover) !important;
	opacity: 0.7;
}

.mpt button.mpt-dot.is-active {
	opacity: 1;
}

.mpt button.mpt-dot:focus-visible {
	outline: 2px solid var(--mpt-dot-color);
	outline-offset: 4px;
}

/* ---------- Editor-only empty state ---------- */

.mpt-empty {
	padding: 40px;
	background: #f5f5f5;
	color: #555;
	text-align: center;
	font-size: 14px;
}

/* ---------- Responsive ---------- */

@media (max-width: 1024px) {
	.mpt {
		padding: 60px 90px 50px;
	}
}

@media (max-width: 767px) {
	.mpt {
		padding: 48px 24px 40px;
	}

	.mpt--marks-desktop::before,
	.mpt--marks-desktop::after {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mpt-slide,
	.mpt--slide .mpt-track {
		transition: none !important;
	}
}
