.fbpf {
	--fbpf-gap: 20px;
	--fbpf-border: rgba(0, 0, 0, .1);
	--fbpf-muted: rgba(0, 0, 0, .55);
	--fbpf-accent: #1877f2;
	--fbpf-radius: 12px;
	position: relative;
	margin: 1.5em 0;
}

/* JS 尚未啟動前：先用格線排版，避免閃動 */
.fbpf:not(.fbpf-ready) .swiper-wrapper {
	display: grid;
	gap: var(--fbpf-gap);
	grid-template-columns: repeat(var(--fbpf-cols-m), minmax(0, 1fr));
}
@media (min-width: 768px) {
	.fbpf:not(.fbpf-ready) .swiper-wrapper { grid-template-columns: repeat(var(--fbpf-cols-t), minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.fbpf:not(.fbpf-ready) .swiper-wrapper { grid-template-columns: repeat(var(--fbpf-cols), minmax(0, 1fr)); }
}
.fbpf:not(.fbpf-ready) .fbpf-nav { display: none; }

.fbpf .swiper-slide { height: auto; }

.fbpf-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--fbpf-border);
	border-radius: var(--fbpf-radius);
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
	transition: box-shadow .2s, transform .2s;
}
.fbpf-card:hover {
	box-shadow: 0 6px 18px rgba(0, 0, 0, .1);
	transform: translateY(-2px);
}

.fbpf-img {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #f2f3f5;
}
.fbpf-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.fbpf-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: .5em;
	padding: 14px 16px 16px;
}
.fbpf-date {
	font-size: .82em;
	color: var(--fbpf-muted);
}
.fbpf-text {
	flex: 1;
	font-size: .95em;
	line-height: 1.65;
	word-break: break-word;
}
.fbpf-more {
	align-self: flex-start;
	font-size: .88em;
	font-weight: 600;
	color: var(--fbpf-accent);
	text-decoration: none;
}
.fbpf-more:hover { text-decoration: underline; }

/* 導覽列 */
.fbpf-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-top: 16px;
}
.fbpf-prev,
.fbpf-next {
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid var(--fbpf-border);
	border-radius: 50%;
	background: #fff;
	color: inherit;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}
.fbpf-prev:hover,
.fbpf-next:hover { border-color: var(--fbpf-accent); color: var(--fbpf-accent); }
.fbpf-prev.swiper-button-disabled,
.fbpf-next.swiper-button-disabled { opacity: .35; cursor: default; }

.fbpf .fbpf-pagination {
	position: static;
	width: auto;
	display: flex;
	gap: 2px;
}
.fbpf .swiper-pagination-bullet-active { background: var(--fbpf-accent); }

/* 篇數沒超過欄數時：隱藏導覽，等同靜態格線 */
.fbpf.fbpf-locked .fbpf-nav { display: none; }

.fbpf-error { color: #b32d2e; }
