.fdm-rps {
	--fdm-per-view: 3.3;
	--fdm-gap: 28px;
	--fdm-img-offset: 96px;
	--fdm-title: #11301C;
	--fdm-text: #4a4a4a;
	--fdm-link: #e9a11b;
	--fdm-dot: #d0d0d0;
	--fdm-dot-active: #000;
	position: relative;
	width: 100%;
}

.fdm-rps-track {
	position: relative;
	display: flex;
	gap: var(--fdm-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 8px 6px 24px;
	cursor: grab;
}
.fdm-rps-track::-webkit-scrollbar { display: none; }

.fdm-rps-track.is-dragging {
	cursor: grabbing;
	scroll-snap-type: none;
	user-select: none;
}
.fdm-rps-track.is-dragging a { pointer-events: none; }

.fdm-rps-track a,
.fdm-rps-track img {
	-webkit-user-drag: none;
	user-select: none;
}

.fdm-rps-item {
	flex: 0 0 calc((100% - (var(--fdm-per-view) - 1) * var(--fdm-gap)) / var(--fdm-per-view));
	min-width: 0;
	scroll-snap-align: start;
	padding-top: var(--fdm-img-offset);
	padding-left: 10px;
}

.fdm-rps-card {
	height: 100%;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.14);
	padding: 0 15px 22px;
	display: flex;
	flex-direction: column;
}

/* image sits above the card box (offset look) */
.fdm-rps-thumb {
	position: relative;
	display: block;
	margin-top: calc(var(--fdm-img-offset) * -1);
	aspect-ratio: 16 / 9.6;
	border-radius: 6px;
	overflow: hidden;
	background: #1b3a29;
}

.fdm-rps-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	pointer-events: none;
	transition: transform 0.4s ease;
}
.fdm-rps-card:hover .fdm-rps-thumb img { transform: scale(1.04); }

.fdm-rps-body {
	padding-top: 22px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.fdm-rps-title {
	margin: 0 0 14px;
	font-size: 19px;
	line-height: 1.2em;
	font-weight: 600;
	font-family: "Manrope", Sans-serif;
}
.fdm-rps-title a:hover {
	color: var(--fdm-link);
}
.fdm-rps-title a {
	color: var(--fdm-title);
	text-decoration: none;
}
.fdm-rps-title a:hover { opacity: 0.85; }

.fdm-rps-excerpt {
	margin: 0 0 4px;
	font-size: 14px;
	line-height: 1.5em;
	font-family: "Manrope", Sans-serif;
	font-weight: 500;
	color: var(--fdm-text);
}

.fdm-rps-more {
	font-size: 12px;
	font-weight: 700;
	color: var(--fdm-link);
	text-decoration: none;
}
.fdm-rps-more:hover { text-decoration: none; }

/* pagination bars (span, not button, so theme button styles never apply) */
.fdm-rps-dots {
	display: flex;
	justify-content: center;
	gap: 9px;
	margin-top: 6px;
}

.fdm-rps-dot {
	display: block;
	width: 36px;
	height: 4px;
	background: var(--fdm-dot);
	cursor: pointer;
	position: relative;
	outline: none;
	border-radius: 16px;
	-webkit-tap-highlight-color: transparent;
}
.fdm-rps-dot.is-active { background: var(--fdm-dot-active); }
.fdm-rps-dot:focus-visible { outline: 2px solid var(--fdm-dot-active); outline-offset: 3px; }

/* bigger tap area without changing the look */
.fdm-rps-dot::before {
	content: "";
	position: absolute;
	inset: -10px -2px;
}

@media (max-width: 767px) {
	.fdm-rps { --fdm-img-offset: 80px; }
	.fdm-rps-title { font-size: 17px; }
	.fdm-rps-dot { width: 24px; }
}