/* ==========================================================================
   Forest Messenger — 站内版式
   位置：assets/css/fm-store.css
   依赖：style.css 里的 :root 变量
   只写三类东西：① 站体外壳（头部购物袋、移动抽屉） ② 分类页版式
   ③ 内容页 / 文章排版。Woo 组件样式在 fm-woo.css，别混进来。
   ========================================================================== */

/* ---------- 基础补充 ---------- */
.screen-reader-text,
.fm-skip {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}
.fm-skip:focus {
	position: fixed !important;
	top: 10px;
	left: 10px;
	z-index: 999;
	width: auto;
	height: auto;
	padding: 10px 16px;
	clip: auto;
	clip-path: none;
	background: var(--forest-dark);
	color: var(--white);
	font-size: 11px;
	letter-spacing: .1em;
}
img { max-width: 100%; height: auto; }
.fm-main { display: block; }

/* style.css 给 .fm-wrap 设了 overflow:hidden，那会让它变成滚动容器，
   顶部的 sticky 导航就失效（一滚就跟着走）。改用 clip：横向照样裁，
   但不产生滚动容器，sticky 保得住。 */
.fm-wrap {
	overflow: visible;
	overflow-x: clip;
}

/* ---------- 头部：购物袋与移动菜单 ---------- */
/* 左右两侧统一：每项英文一行、中文一行，两行共用一条中轴（居中对齐）。
   之前左侧左对齐、右侧右对齐，中线对不上，看着像"散开"。
   项间距左右一致（20px），两侧簇仍各自贴住容器左右边缘，跟页面内容对齐。 */
.fm-links--left,
.fm-links--right {
	align-items: center;
	gap: 20px;
}
.fm-link-stack {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	line-height: 1;
	text-align: center;
}
.fm-link-stack__en {
	color: var(--muted);
	font-size: 13px;
	letter-spacing: .07em;
	white-space: nowrap;
}
.fm-link-stack__cn {
	color: #8b9d92;
	font-size: 12px;
	letter-spacing: .16em;
	white-space: nowrap;
}
.fm-bag.fm-link-stack .fm-link-stack__en {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--forest);
}
.fm-bag.fm-link-stack:hover .fm-link-stack__en,
.fm-link-stack:hover .fm-link-stack__en {
	color: var(--forest);
}

.fm-bag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--forest);
}
/* 购物袋跟着右侧其余三项走同一个两行节奏，别被上面的 inline-flex 拽回单行 */
.fm-bag.fm-link-stack {
	align-items: center;
	gap: 5px;
}
/* 角标比英文行高，放大就会把这组顶高；收小一号，四组底部对齐 */
.fm-bag.fm-link-stack .fm-cart-count {
	min-width: 17px;
	height: 17px;
	padding: 0 3px;
	font-size: 10px;
}
.fm-cart-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	background: var(--forest-dark);
	color: var(--white);
	font-size: 9.5px;
	letter-spacing: .04em;
	line-height: 1;
}
.fm-mobile {
	appearance: none;
	border: 0;
	background: none;
	padding: 0;
	cursor: pointer;
	font: inherit;
	color: var(--forest);
}

/* 移动抽屉 */
.fm-drawer {
	position: fixed;
	inset: 0 0 auto;
	z-index: 98;
	padding: 18px 24px 26px;
	background: var(--cloud);
	border-bottom: 1px solid var(--line);
	box-shadow: 0 18px 40px rgba(20, 55, 45, .08);
}
.fm-drawer a {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	padding: 15px 0;
	border-bottom: 1px solid var(--line);
	color: var(--forest-dark);
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.fm-drawer__en {
	color: var(--forest-dark);
	font-size: 14px;
	letter-spacing: .1em;
}
.fm-drawer__cn {
	color: var(--muted);
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: none;
}
.fm-drawer a em {
	font-style: normal;
	color: var(--muted);
	font-size: 11px;
	letter-spacing: .14em;
}
.fm-drawer[hidden] { display: none; }

/* ---------- 分类页：页头 ---------- */
.fm-col-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
	align-items: end;
	gap: 40px;
	padding: 54px 0 34px;
}
.fm-col-title {
	margin: 0;
	font: 300 clamp(38px, 5vw, 62px)/1 var(--serif);
	letter-spacing: -.03em;
	color: var(--forest-dark);
}
.fm-col-title .fm-cn {
	margin-top: 14px;
	color: var(--forest);
	font-size: .3em;
	letter-spacing: .22em;
}
.fm-col-head__note {
	margin: 0;
	color: var(--bark);
	font-size: 12.5px;
	line-height: 1.75;
}
.fm-col-head__note-cn {
	margin: 8px 0 0;
	color: var(--muted);
	font-size: 11.5px;
	line-height: 1.8;
	letter-spacing: .02em;
}

/* 计数行 */
.fm-col-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	padding: 12px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	color: var(--muted);
	font-size: 9.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.fm-col-meta span:last-child { margin-left: auto; }

/* ---------- 分类切换条 ---------- */
.fm-switch {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0 0 44px;
	border-bottom: 1px solid var(--line);
}
.fm-switch__item {
	display: inline-flex;
	align-items: baseline;
	gap: 7px;
	padding: 13px 18px;
	color: var(--muted);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color .2s ease, border-color .2s ease;
}
.fm-switch__item span {
	font-size: 10.5px;
	letter-spacing: .18em;
	text-transform: none;
	opacity: .8;
}
.fm-switch__item:hover { color: var(--forest); }
.fm-switch__item.is-current {
	color: var(--forest-dark);
	border-bottom-color: var(--forest-dark);
}
.fm-switch__item:first-child { padding-left: 0; }

/* ---------- 商品卡补充（Woo 覆盖内容里的自定义节点） ---------- */
.fm-grid { align-items: start; }
.fm-card__media {
	display: block;
	position: relative;
	background: var(--mist);
	box-shadow: inset 0 0 0 1px rgba(191, 206, 195, .9);
	overflow: hidden;
}
.fm-card__media img {
	aspect-ratio: 380 / 400;
	object-fit: cover;
}
.fm-card__placeholder {
	display: grid;
	place-items: center;
	aspect-ratio: 380 / 400;
	color: #7c8f84;
	font-size: 9.5px;
	letter-spacing: .16em;
	text-align: center;
	line-height: 2;
	background:
		linear-gradient(180deg, rgba(255, 253, 247, .55), rgba(255, 253, 247, 0)),
		var(--mist);
}
.fm-card__body { display: flex; flex-direction: column; }
.fm-card__price { margin-top: 16px; }
.fm-card__price .price {
	margin: 0 !important;
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--forest);
}
.fm-card__price .fm-price-tbc { font-size: 18px; }

/* 辅助格：3 列最后一格空着时填进来 */
.fm-helper-tile {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 520px;
	border: 1px solid var(--line);
	background: rgba(255, 253, 247, .55);
}
.fm-helper-tile__inner { text-align: center; padding: 34px; }
.fm-helper-tile__kicker {
	margin: 0 0 20px;
	color: var(--tea);
	font-size: 9.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.fm-helper-tile__line {
	margin: 0;
	color: var(--bark);
	font: 400 21px/1.45 var(--serif);
}
.fm-helper-tile__cn {
	margin: 10px 0 0;
	color: var(--muted);
	font-size: 11.5px;
	line-height: 1.9;
	letter-spacing: .06em;
}
.fm-helper-tile__link {
	display: inline-block;
	margin-top: 26px;
	padding-bottom: 3px;
	border-bottom: 1px solid var(--forest);
	color: var(--forest);
	font-size: 9.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
}

/* 组合页：两列宽卡（设计稿这一页不是 3×3，是 2 张宽图） */
.fm-cat-sets .fm-woo ul.products { grid-template-columns: repeat(2, 1fr); }
.fm-cat-sets .fm-card__media img,
.fm-cat-sets .fm-card__placeholder { aspect-ratio: 620 / 420; }
.fm-cat-sets .fm-card__placeholder { font-size: 10px; }
.fm-reason__pending {
	color: var(--muted);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
}

/* 空结果 */
.fm-empty {
	padding: 70px 0 40px;
	max-width: 520px;
}
.fm-empty__title {
	margin: 0;
	font: 300 30px/1.2 var(--serif);
	color: var(--forest-dark);
}
.fm-empty__cn { margin: 10px 0 0; color: var(--forest); font-size: 13px; letter-spacing: .1em; }
.fm-empty__note { margin: 20px 0 26px; color: var(--muted); font-size: 12px; line-height: 1.9; }

/* ==========================================================================
   分类专属带（band）
   ========================================================================== */
.fm-band { padding: 96px 0; }
.fm-band__title {
	margin: 16px 0 0;
	font: 300 clamp(30px, 3.4vw, 44px)/1.12 var(--serif);
	letter-spacing: -.02em;
	color: var(--forest-dark);
}
.fm-band__title .fm-cn {
	display: block;
	margin-top: 14px;
	font-size: .42em;
	letter-spacing: .16em;
	color: var(--forest);
	opacity: .9;
}
.fm-band__lead {
	max-width: 720px;
	margin: 26px 0 0;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.9;
}
.fm-band__lead span { display: block; margin-top: 9px; font-size: 12px; }
.fm-band__fact {
	margin: 40px 0 0;
	padding-top: 18px;
	border-top: 1px solid var(--line);
	color: var(--muted);
	font-size: 10.5px;
	line-height: 1.85;
	letter-spacing: .02em;
}
.fm-band__fact span { display: block; margin-top: 6px; }
.fm-band__link { margin: 26px 0 0; }
.fm-band__link a {
	color: var(--forest);
	font-size: 10.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--forest);
	padding-bottom: 3px;
}

/* 熟普：琥珀四步 */
.fm-band--ripe {
	background: linear-gradient(180deg, #f7ebd7 0%, #f1e3cd 100%);
}
.fm-band--ripe .fm-band__title { color: #4c3418; }
.fm-band--ripe .fm-band__title .fm-cn { color: #8d5d23; }
.fm-band--ripe .fm-band__lead { color: #6d543a; }
.fm-band--ripe .fm-band__fact { border-color: rgba(141, 93, 35, .3); color: #7a6044; }

.fm-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	margin: 46px 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(141, 93, 35, .35);
}
.fm-steps__item {
	padding: 22px 24px 0 0;
	border-right: 1px solid rgba(141, 93, 35, .22);
}
.fm-steps__item:last-child { border-right: 0; }
.fm-steps__num {
	color: var(--tea);
	font-size: 11px;
	letter-spacing: .16em;
}
.fm-steps__item h3 {
	margin: 26px 0 0;
	font: 400 20px/1.25 var(--serif);
	color: #4c3418;
}
.fm-steps__item h3 span {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	letter-spacing: .16em;
	color: #8d5d23;
}
.fm-steps__item p {
	margin: 14px 0 0;
	color: #6d543a;
	font-size: 11.5px;
	line-height: 1.8;
}

/* 生普：绿色时间轴 */
.fm-band--raw { background: #e8eeea; }
.fm-band--raw .fm-band__title { color: #1c3f31; }
.fm-band--raw .fm-band__title .fm-cn { color: #3f6152; }

.fm-timeline {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin: 54px 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid #9fb9b7;
}
.fm-timeline__item {
	position: relative;
	padding: 26px 26px 0 0;
}
.fm-timeline__item:last-child { padding-right: 0; }
.fm-timeline__year {
	display: block;
	color: var(--tea);
	font-size: 10px;
	letter-spacing: .18em;
}
.fm-timeline__dot {
	position: absolute;
	top: -4px;
	left: 0;
	width: 7px;
	height: 7px;
	background: var(--forest);
	border-radius: 50%;
}
.fm-timeline__item h3 {
	margin: 22px 0 0;
	font: 400 19px/1.3 var(--serif);
	color: var(--forest);
}
.fm-timeline__item h3 span {
	display: block;
	margin-top: 5px;
	font-size: 11.5px;
	letter-spacing: .16em;
	color: #4f6a5b;
}
.fm-timeline__item p {
	margin: 12px 0 0;
	color: var(--muted);
	font-size: 11.5px;
	line-height: 1.8;
}

/* 產地：介绍 + 四座山 */
.fm-band--origin { background: var(--white); }
.fm-origin-intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
	gap: 48px;
	align-items: start;
}
.fm-origin-intro__aside .fm-band__lead { margin-top: 0; }

.fm-mountains-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 44px 40px;
	margin: 56px 0 0;
}
.fm-mountain__media {
	display: grid;
	place-items: center;
	aspect-ratio: 580 / 340;
	background: var(--mist);
	box-shadow: inset 0 0 0 1px rgba(191, 206, 195, .9);
	color: #7c8f84;
	font-size: 9px;
	letter-spacing: .16em;
	text-align: center;
	line-height: 2;
}
.fm-mountain__index {
	margin: 16px 0 0;
	color: var(--tea);
	font-size: 9.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.fm-mountain__name {
	margin: 10px 0 0;
	font: 400 24px/1.2 var(--serif);
	color: var(--bark);
}
.fm-mountain__name span {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	letter-spacing: .16em;
	color: var(--forest);
}
.fm-mountain__facts {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	margin: 18px 0 0;
	border-top: 1px solid var(--line);
}
.fm-mountain__facts > div {
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
}
.fm-mountain__facts dt {
	color: var(--muted);
	font-size: 9px;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.fm-mountain__facts dd {
	margin: 6px 0 0;
	color: var(--forest-dark);
	font: 400 14px/1.4 var(--serif);
}
.fm-mountain__profile {
	margin: 16px 0 0;
	color: var(--bark);
	font-size: 12px;
	line-height: 1.75;
}
.fm-mountain__profile-cn {
	margin: 7px 0 0;
	color: var(--muted);
	font-size: 11.5px;
	line-height: 1.8;
}
.fm-mountain__lot {
	margin: 14px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--line);
	color: var(--muted);
	font-size: 9.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.fm-origin-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	margin: 60px 0 0;
	padding: 40px 44px;
	background: var(--forest-dark);
	color: var(--white);
}
.fm-origin-cta .fm-kicker { color: var(--tea-light); }
.fm-origin-cta h3 {
	margin: 12px 0 0;
	font: 300 26px/1.3 var(--serif);
}
.fm-origin-cta h3 span {
	display: block;
	margin-top: 8px;
	font-size: 12px;
	letter-spacing: .14em;
	color: #c6d7c4;
}
.fm-origin-cta .fm-btn {
	border-color: #c6d7c4;
	color: var(--white);
}

/* 組合：两盒对比 */
.fm-band--sets { background: var(--cloud); }
.fm-reasons {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
	margin: 46px 0 0;
}
.fm-reason {
	padding: 30px;
	border: 1px solid var(--line);
	background: var(--white);
	display: flex;
	flex-direction: column;
}
.fm-reason__kicker {
	margin: 0;
	color: var(--tea);
	font-size: 9.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.fm-reason__title {
	margin: 16px 0 0;
	font: 400 27px/1.15 var(--serif);
	color: var(--forest-dark);
}
.fm-reason__title span {
	display: block;
	margin-top: 7px;
	font-size: 13px;
	letter-spacing: .18em;
	color: var(--forest);
}
.fm-reason__body {
	margin: 20px 0 0;
	color: var(--bark);
	font-size: 12.5px;
	line-height: 1.8;
}
.fm-reason__body-cn {
	margin: 8px 0 0;
	color: var(--muted);
	font-size: 11.5px;
	line-height: 1.85;
}
.fm-reason__product {
	margin: 26px 0 0;
	padding-top: 18px;
	border-top: 1px solid var(--line);
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 9px;
	font-size: 12px;
	color: var(--forest-dark);
}
.fm-reason__for {
	color: var(--muted);
	font-size: 9.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.fm-reason__product a {
	color: var(--forest-dark);
	font-family: var(--serif);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}
.fm-reason__product a em {
	font-style: normal;
	margin-left: 6px;
	font-size: 12px;
	letter-spacing: .12em;
	color: var(--forest);
}
.fm-reason__price { margin-left: auto; font-size: 11px; color: var(--muted); }
.fm-reason__price .fm-price-tbc { font-size: 15px; }

/* ==========================================================================
   收尾带（订阅）
   ========================================================================== */
.fm-closing {
	padding: 86px 0;
	background: var(--forest);
	color: var(--white);
}
.fm-closing__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 460px);
	gap: 48px;
	align-items: start;
}
.fm-closing .fm-kicker { color: var(--tea-light); }
.fm-closing__title {
	margin: 16px 0 0;
	font: 300 clamp(28px, 3.2vw, 40px)/1.15 var(--serif);
	letter-spacing: -.01em;
}
.fm-closing__title .fm-cn {
	display: block;
	margin-top: 13px;
	font-size: .42em;
	letter-spacing: .16em;
	color: #e8cf94;
}
.fm-closing__copy {
	margin: 0;
	color: #c6d7c4;
	font-size: 12px;
	line-height: 1.9;
}
.fm-closing__copy span { display: block; margin-top: 7px; }
.fm-subscribe {
	display: flex;
	margin-top: 22px;
	border-bottom: 1px solid rgba(213, 224, 209, .5);
}
.fm-subscribe input {
	flex: 1 1 auto;
	height: 44px;
	border: 0;
	background: transparent;
	color: var(--white);
	font-family: var(--sans);
	font-size: 12px;
	letter-spacing: .04em;
}
.fm-subscribe input::placeholder { color: rgba(213, 224, 209, .7); }
.fm-subscribe button {
	appearance: none;
	border: 0;
	background: none;
	color: var(--tea-light);
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	cursor: pointer;
	padding: 0 0 0 16px;
}
.fm-subscribe__note {
	margin: 12px 0 0;
	color: #e8cf94;
	font-size: 10.5px;
	letter-spacing: .04em;
}

/* ==========================================================================
   单品页补充（Woo 输出 + 我们的结构）
   ========================================================================== */
.fm-pdp__title {
	margin: 14px 0 0;
	font: 300 clamp(30px, 3.4vw, 40px)/1.08 var(--serif);
	letter-spacing: -.02em;
	color: var(--forest-dark);
	text-wrap: balance; /* 468 宽里别把最后一个词甩成孤行 */
}
.fm-pdp__cn {
	margin: 10px 0 0;
	color: var(--forest);
	font-size: 14px;
	letter-spacing: .2em;
}
.fm-pdp__tasting {
	margin: 16px 0 0;
	color: var(--muted);
	font-size: 12.5px;
	line-height: 1.8;
}
.fm-pdp__price {
	margin: 26px 0 0;
	padding-top: 22px;
	border-top: 1px solid var(--line);
}
.fm-pdp__price .price {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	font: 300 26px/1.2 var(--serif);
	color: var(--forest-dark);
}
.fm-pdp__price .fm-price-tbc { font-size: 26px; }

/* 规格表
 * 标签贴左、值贴右 —— 每条细线两端都有东西压着，内容少的时候也不会
 * 出现「一条线甩出去半截空着」的感觉。
 */
.fm-specs { margin: 24px 0 0; padding: 0; }
.fm-specs__row {
	display: grid;
	grid-template-columns: minmax(0, auto) minmax(0, 1fr);
	gap: 4px 20px;
	align-items: baseline;
	padding: 13px 0;
	border-top: 1px solid var(--line);
}
.fm-specs__row:last-child { border-bottom: 1px solid var(--line); }
.fm-specs dt {
	color: var(--muted);
	font-size: 9.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.fm-specs dt em {
	font-style: normal;
	margin-left: 7px;
	font-size: 10.5px;
	letter-spacing: .16em;
	color: #8b9d92;
}
.fm-specs dd {
	margin: 0;
	color: var(--forest-dark);
	font: 400 14px/1.5 var(--serif);
	text-align: right;
}

/* 组合内容（只有组合商品有） */
.fm-pdp__set { margin: 26px 0 0; }
.fm-pdp__set .fm-kicker { margin-bottom: 10px; }
.fm-pdp__set ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--line);
}
.fm-pdp__set li {
	padding: 10px 0;
	border-bottom: 1px solid var(--line);
	color: var(--forest-dark);
	font: 400 13.5px/1.5 var(--serif);
}
.fm-pdp__set li::before {
	content: "—";
	margin-right: 10px;
	color: var(--tea);
	font-size: 11px;
}

/* 购买区 */
.fm-pdp__buy { margin: 26px 0 0; }
.fm-pdp__buy form.cart {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}
.fm-pdp__enquire { width: 100%; justify-content: center; }
.fm-pdp__buy-note {
	margin: 12px 0 0;
	color: var(--muted);
	font-size: 10.5px;
	line-height: 1.8;
}
/* 政策入口：不再折叠成手风琴，直接给两条链接，点过去看全文 */
.fm-pdp__policies {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 26px;
	margin: 26px 0 0;
	padding: 16px 0 0;
	list-style: none;
	border-top: 1px solid var(--line);
}
.fm-pdp__policies a {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	color: var(--forest);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
}
.fm-pdp__policies a:hover { color: var(--tea); }
.fm-pdp__policies span {
	color: var(--muted);
	font-family: var(--serif);
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: none;
}

/* ==========================================================================
   单品页 · 说明区（左栏主图下方，不折叠）
   整块在 600 的左栏里：文字在上，4 张细节图 2×2 跟在下面，每格 293×220。
   ========================================================================== */
.fm-pdp__desc {
	margin: 0;
	padding: 44px 0 0;
	border-top: 1px solid var(--line);
}
.fm-pdp__desc-head { display: flex; flex-direction: column; gap: 10px; }
.fm-pdp__desc-head .fm-kicker { margin: 0; }
.fm-pdp__desc-title {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin: 0;
	font: 300 clamp(24px, 2.3vw, 30px)/1.15 var(--serif);
	letter-spacing: -.015em;
	color: var(--forest-dark);
}
.fm-pdp__desc-title .fm-cn {
	font-family: var(--serif);
	font-size: 13px;
	letter-spacing: .22em;
	color: var(--muted);
}

.fm-pdp__desc-body {
	max-width: 36em;
	margin: 22px 0 0;
	color: var(--bark);
	font-family: var(--sans);
	font-size: 13.5px;
	font-weight: 300;
	line-height: 1.95;
}
.fm-pdp__desc-body > *:first-child { margin-top: 0; }
.fm-pdp__desc-body > *:last-child { margin-bottom: 0; }
.fm-pdp__desc-body p { margin: 0 0 16px; }
.fm-pdp__desc-body h2,
.fm-pdp__desc-body h3 {
	margin: 34px 0 12px;
	padding-top: 20px;
	border-top: 1px solid var(--line);
	font-family: var(--serif);
	font-weight: 400;
	font-size: 17px;
	line-height: 1.35;
	letter-spacing: 0;
	color: var(--forest-dark);
}
.fm-pdp__desc-body h4 {
	margin: 24px 0 8px;
	font-family: var(--sans);
	font-weight: 500;
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-pdp__desc-body ul,
.fm-pdp__desc-body ol { margin: 0 0 16px; padding-left: 18px; }
.fm-pdp__desc-body li { margin: 0 0 8px; }
.fm-pdp__desc-body li::marker { color: var(--tea); }
.fm-pdp__desc-body strong { font-weight: 500; color: var(--forest-dark); }
.fm-pdp__desc-body em { font-style: italic; color: var(--forest); }
.fm-pdp__desc-body a {
	color: var(--forest);
	text-decoration: none;
	border-bottom: 1px solid rgba(31, 74, 58, .3);
}
.fm-pdp__desc-body a:hover { border-bottom-color: var(--forest); }
.fm-pdp__desc-body blockquote {
	margin: 26px 0;
	padding: 0 0 0 20px;
	border-left: 2px solid var(--tea-light);
	font-family: var(--serif);
	font-size: 15px;
	line-height: 1.7;
	color: var(--forest);
}
.fm-pdp__desc-body table { width: 100%; border-collapse: collapse; margin: 0 0 16px; font-size: 12px; }
.fm-pdp__desc-body th,
.fm-pdp__desc-body td { padding: 9px 0; border-bottom: 1px solid var(--line); text-align: left; }

/* 还没有写说明的商品：给一句，不留空白 */
.fm-pdp__desc-empty {
	max-width: 36em;
	margin: 22px 0 0;
	color: var(--muted);
	font-family: var(--sans);
	font-size: 12.5px;
	font-weight: 300;
	line-height: 1.9;
}

/* 4 张细节图：插在「說明」正文与第一个小标题（品飲等）之间，600 栏里 2×2，每格 293×220。
   没图的位置留品牌化空位，等实拍图 */
.fm-pdp__figures {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin: 32px 0 0;
	align-content: start;
}

/* 图后面接回正文：把第一个标题推远一点，并让它重新带上分隔线 */
.fm-pdp__desc-body--rest > *:first-child { margin-top: 30px; }
.fm-pdp__desc-body--rest > h2:first-child,
.fm-pdp__desc-body--rest > h3:first-child {
	margin-top: 34px;
	padding-top: 24px;
	border-top: 1px solid var(--line);
}
.fm-pdp__figures-kicker {
	grid-column: 1 / -1;
	margin: 0 0 2px;
}
.fm-pdp__figure {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--mist);
	border: 1px solid var(--line);
}
.fm-pdp__figure.is-filled { background: var(--cloud); }
.fm-pdp__figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fm-pdp__figure-empty {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	color: #7f9488;
	font-family: var(--sans);
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-align: center;
	line-height: 1.5;
}
.fm-pdp__figure-empty em {
	font-style: normal;
	margin-top: 4px;
	font-size: 9px;
	letter-spacing: .1em;
	text-transform: none;
	color: #9aac9f;
}

@media (max-width: 560px) {
	.fm-pdp__figures { grid-template-columns: 1fr; }
	.fm-pdp__desc { padding-top: 34px; }
}

/* 数量步进：JS 在原生 input 两侧插按钮 */
.fm-qty {
	display: inline-flex;
	align-items: stretch;
	height: 48px;
	border: 1px solid var(--line);
}
.fm-qty button {
	width: 34px;
	border: 0;
	background: none;
	color: var(--forest);
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
}
.fm-qty button:hover { background: var(--mist); }
.fm-qty input.qty {
	width: 48px;
	height: 46px;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: 12.5px;
	color: var(--forest-dark);
	-moz-appearance: textfield;
}
.fm-qty input.qty::-webkit-outer-spin-button,
.fm-qty input.qty::-webkit-inner-spin-button { appearance: none; margin: 0; }

/* 手风琴 */
.fm-acc-group { margin: 34px 0 0; border-top: 1px solid var(--line); }
.fm-acc { border-bottom: 1px solid var(--line); }
.fm-acc summary {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 17px 0;
	cursor: pointer;
	list-style: none;
	color: var(--forest-dark);
}
.fm-acc summary::-webkit-details-marker { display: none; }
.fm-acc__en { font-size: 9.5px; letter-spacing: .16em; }
.fm-acc__cn { font-size: 11px; letter-spacing: .16em; color: var(--muted); }
.fm-acc__icon {
	margin-left: auto;
	position: relative;
	width: 11px;
	height: 11px;
	flex: 0 0 auto;
}
.fm-acc__icon:before,
.fm-acc__icon:after {
	position: absolute;
	top: 5px;
	left: 0;
	width: 11px;
	height: 1px;
	background: var(--forest);
	content: "";
}
.fm-acc__icon:after { transform: rotate(90deg); transition: transform .2s ease; }
.fm-acc[open] .fm-acc__icon:after { transform: rotate(0); }
.fm-acc__panel {
	padding: 0 0 22px;
	color: var(--muted);
	font-size: 12.5px;
	line-height: 1.9;
}
.fm-acc__panel p:first-child { margin-top: 0; }

/* 相关商品 */
.fm-woo section.related {
	margin: 20px 0 0;
	padding: 70px 0 0;
	border-top: 1px solid var(--line);
}
.fm-woo section.related > h2 {
	margin: 0 0 34px;
	font: 300 28px/1.2 var(--serif);
	color: var(--forest-dark);
}

/* ==========================================================================
   内容页 / 文章
   ========================================================================== */
.fm-page { padding: 56px 0 96px; }
.fm-page__head { max-width: 780px; margin: 0 0 40px; }
.fm-page__head--center { margin-left: auto; margin-right: auto; text-align: center; }
.fm-page__title {
	margin: 14px 0 0;
	font: 300 clamp(32px, 4vw, 50px)/1.08 var(--serif);
	letter-spacing: -.03em;
	color: var(--forest-dark);
}
.fm-page__title-cn {
	margin: 12px 0 0;
	color: var(--forest);
	font-size: 13px;
	letter-spacing: .18em;
}

.fm-prose {
	max-width: 760px;
	color: var(--bark);
	font-size: 15px;
	line-height: 1.95;
}
.fm-prose > * + * { margin-top: 1.2em; }
.fm-prose h2 {
	margin-top: 2.2em;
	font: 300 32px/1.2 var(--serif);
	letter-spacing: -.02em;
	color: var(--forest-dark);
}
.fm-prose h3 {
	margin-top: 1.9em;
	font: 400 22px/1.3 var(--serif);
	color: var(--forest);
}
.fm-prose h4 {
	margin-top: 1.6em;
	font: 500 12px/1.5 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-prose a {
	color: var(--forest);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
.fm-prose blockquote {
	margin: 2em 0;
	padding: 4px 0 4px 24px;
	border-left: 1px solid var(--forest);
	color: var(--forest);
	font: 300 21px/1.6 var(--serif);
}
.fm-prose ul,
.fm-prose ol { padding-left: 1.2em; }
.fm-prose li + li { margin-top: .5em; }
.fm-prose img { margin: 2em 0; }
.fm-prose hr {
	margin: 2.6em 0;
	border: 0;
	border-top: 1px solid var(--line);
}
.fm-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}
.fm-prose th,
.fm-prose td {
	padding: 12px 0;
	border-bottom: 1px solid var(--line);
	text-align: left;
}
.fm-prose th {
	font: 500 10px/1.4 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-prose figure { margin: 2em 0; }
.fm-prose figcaption {
	margin-top: 10px;
	color: var(--muted);
	font-size: 11px;
	letter-spacing: .04em;
}

/* 通栏页面不改容器 */
.fm-main--bleed .fm-container { width: 100%; max-width: none; }

/* 文章列表 */
.fm-journal__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 52px 40px;
}
.fm-post__media {
	display: block;
	background: var(--mist);
	box-shadow: inset 0 0 0 1px rgba(191, 206, 195, .9);
}
.fm-post__media img { aspect-ratio: 620 / 420; object-fit: cover; }
.fm-post__placeholder {
	display: grid;
	place-items: center;
	aspect-ratio: 620 / 420;
	color: #7c8f84;
	font-size: 9px;
	letter-spacing: .16em;
	text-align: center;
	line-height: 2;
}
.fm-post__meta {
	display: flex;
	gap: 8px;
	margin: 18px 0 0;
	color: var(--muted);
	font-size: 9.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.fm-post__title {
	margin: 12px 0 0;
	font: 400 24px/1.3 var(--serif);
	color: var(--bark);
}
.fm-post__title-cn {
	margin: 8px 0 0;
	color: var(--forest);
	font-size: 12.5px;
	letter-spacing: .12em;
}
.fm-post__excerpt {
	margin: 12px 0 0;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.85;
}
.fm-post__link {
	display: inline-block;
	margin-top: 16px;
	color: var(--forest);
	font-size: 9.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--forest);
	padding-bottom: 3px;
}

/* 分页 */
.fm-pagination { margin: 64px 0 0; }
.fm-pagination .nav-links {
	display: flex;
	gap: 8px;
	justify-content: center;
	font-size: 10px;
	letter-spacing: .12em;
}
.fm-pagination .page-numbers {
	padding: 9px 13px;
	border: 1px solid var(--line);
	color: var(--muted);
}
.fm-pagination .page-numbers.current {
	background: var(--forest-dark);
	border-color: var(--forest-dark);
	color: var(--white);
}

/* Woo 自己的分页（商品归档用这个，不是上面的 the_posts_pagination） */
.fm-woo .woocommerce-pagination { margin: 64px 0 0; }
.fm-woo .woocommerce-pagination ul {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}
.fm-woo .woocommerce-pagination ul li { margin: 0; border: 0; }
.fm-woo .woocommerce-pagination .page-numbers {
	display: inline-block;
	padding: 9px 13px;
	border: 1px solid var(--line);
	color: var(--muted);
	font-size: 10px;
	letter-spacing: .12em;
}
.fm-woo .woocommerce-pagination .page-numbers.current {
	background: var(--forest-dark);
	border-color: var(--forest-dark);
	color: var(--white);
}

/* 购物车 / 结算页的内层：不要 760 的正文宽度 */
.fm-woo-page { max-width: none; }
.fm-woo-page h2,
.fm-woo-page h3 {
	font-family: var(--serif);
	font-weight: 400;
	color: var(--forest-dark);
}
.fm-woo-page a { color: var(--forest); }

/* 上一篇 / 下一篇 */
.fm-postnav {
	display: flex;
	justify-content: space-between;
	gap: 30px;
	padding-top: 34px;
	border-top: 1px solid var(--line);
}
.fm-postnav__item {
	max-width: 46%;
	color: var(--forest-dark);
	font: 400 17px/1.4 var(--serif);
}
.fm-postnav__item span {
	display: block;
	margin-bottom: 8px;
	color: var(--muted);
	font: 500 9px/1 var(--sans);
	letter-spacing: .16em;
}
.fm-postnav__item--next { text-align: right; margin-left: auto; }

/* 404 */
.fm-404 { max-width: 640px; }
.fm-404__note {
	margin: 26px 0 30px;
	color: var(--muted);
	font-size: 12.5px;
	line-height: 1.9;
}

/* ==========================================================================
   页脚
   ========================================================================== */
.fm-footer {
	padding: 0;
	background: var(--forest-dark);
	color: #d5e0d1;
}
.fm-footer-top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 48px;
	padding: 56px 0 40px;
}
.fm-footer-brand { font: 400 17px/1 var(--serif); letter-spacing: .1em; }
.fm-footer-brand small {
	display: block;
	margin-top: 7px;
	font: 11px var(--sans);
	letter-spacing: .2em;
	color: #9fb4a4;
}
.fm-footer-brand p {
	margin: 22px 0 0;
	color: #9fb4a4;
	font-size: 11.5px;
	line-height: 1.9;
}
.fm-footer-groups {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.fm-footer-title {
	margin: 0 0 16px;
	color: var(--tea-light);
	font-size: 9px;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.fm-footer-group a {
	display: block;
	margin-bottom: 10px;
	color: #c6d7c4;
	font-size: 11px;
	letter-spacing: .03em;
	line-height: 1.6;
}
.fm-footer-group a:hover { color: var(--white); }
.fm-footer-bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px;
	padding: 20px 0 26px;
	border-top: 1px solid rgba(198, 215, 196, .18);
	color: #8fa697;
	font-size: 9.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
}

/* ==========================================================================
   响应式
   ========================================================================== */
@media (max-width: 1020px) {
	.fm-col-head { grid-template-columns: 1fr; gap: 24px; align-items: start; }
	.fm-col-head__aside { max-width: 560px; }
	.fm-origin-intro,
	.fm-closing__inner { grid-template-columns: 1fr; gap: 26px; }
	.fm-steps { grid-template-columns: repeat(2, 1fr); }
	.fm-steps__item:nth-child(2) { border-right: 0; }
	.fm-steps__item:nth-child(1),
	.fm-steps__item:nth-child(2) { border-bottom: 1px solid rgba(141, 93, 35, .22); }
	.fm-timeline { grid-template-columns: repeat(2, 1fr); }
	.fm-timeline__item:nth-child(2) { padding-right: 0; }
	.fm-footer-top { grid-template-columns: 1fr; gap: 36px; }
	.fm-journal__list { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
	.fm-col-head { padding: 34px 0 26px; }
	.fm-col-meta { gap: 16px; font-size: 9px; }
	.fm-col-meta span:last-child { margin-left: 0; }
	.fm-switch { margin-bottom: 30px; overflow-x: auto; flex-wrap: nowrap; }
	.fm-switch__item { white-space: nowrap; padding: 12px 14px; }
	.fm-band { padding: 66px 0; }
	.fm-steps,
	.fm-timeline { grid-template-columns: 1fr; }
	.fm-steps__item { border-right: 0; border-bottom: 1px solid rgba(141, 93, 35, .22); padding-bottom: 22px; }
	.fm-timeline__item { padding-right: 0; padding-bottom: 26px; }
	.fm-mountains-grid,
	.fm-reasons { grid-template-columns: 1fr; }
	.fm-helper-tile { min-height: 260px; }
	.fm-origin-cta { padding: 30px 24px; }
	.fm-closing { padding: 60px 0; }
	.fm-page { padding: 34px 0 66px; }
	.fm-footer-groups { grid-template-columns: 1fr 1fr; }
	.fm-postnav { flex-direction: column; gap: 20px; }
	.fm-postnav__item { max-width: 100%; text-align: left; }
}

/* ---------- 首屏：文案 + 竖图 ----------
   设计稿 Hero 是两块：文案 700、视觉 620，视觉里一张 380×500 的竖图
   加一个有机轮廓。图来自首页「特色图片」，没设就是空图位。 */
.fm-hero-inner {
	display: grid;
	grid-template-columns: minmax(0, 700px) minmax(0, 1fr);
	align-items: end;
	gap: 40px;
}
.fm-hero-copy {
	width: 100%;
	max-width: 700px;
}
.fm-hero-visual {
	position: relative;
	display: grid;
	place-items: end center;
	min-height: 620px;
}
.fm-hero-outline {
	position: absolute;
	left: 50%;
	bottom: 26px;
	width: min(444px, 100%);
	height: min(564px, calc(100% - 40px));
	border: 1px solid rgba(31, 74, 58, .3);
	border-radius: 52% 48% 70% 30%;
	transform: translateX(-50%) rotate(-9deg);
}
.fm-hero-image {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: min(380px, 78%);
	aspect-ratio: 380 / 500;
	margin: 0 0 0 auto;
	overflow: hidden;
	background:
		linear-gradient(180deg, rgba(255, 253, 247, .5), rgba(255, 253, 247, 0)),
		var(--mist);
}
.fm-hero-image__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fm-hero-image__empty {
	color: #7c8f84;
	font-size: 9.5px;
	letter-spacing: .16em;
	line-height: 2;
	text-align: center;
}

@media (max-width: 980px) {
	.fm-hero-inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.fm-hero-visual {
		min-height: 420px;
	}
	.fm-hero-outline {
		bottom: 12px;
		height: calc(100% - 24px);
	}
	.fm-hero-image {
		width: min(300px, 68%);
		margin: 0 auto;
	}
}

/* ==========================================================================
   Forest Archive · 森林與茶樹檔案（十座茶山）
   数据来源：茶.docx / 设计稿 2:1351。比例尺 0–2,500 m，大图与表格小条共用。
   图版留空是有意的：产地照片必须实拍。
   ========================================================================== */
.fm-ar {
	padding: 56px 0 96px;
}

/* 页头 */
.fm-ar-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
}
.fm-ar-head__title {
	margin: 14px 0 0;
	font: 300 clamp(40px, 5.6vw, 64px)/1.04 var(--serif);
	letter-spacing: -.035em;
	color: var(--forest-dark);
}
.fm-ar-head__cn {
	margin: 14px 0 0;
	font: 400 24px/1.3 var(--serif);
	color: var(--forest);
}
.fm-ar-head__meta {
	flex: 0 0 auto;
	padding-bottom: 6px;
	text-align: right;
}
.fm-ar-head__meta span {
	display: block;
}
.fm-ar-head__meta span:first-child {
	font: 500 10px/1.6 var(--sans);
	letter-spacing: .18em;
	color: var(--muted);
}
.fm-ar-head__meta span:last-child {
	margin-top: 2px;
	font: 400 14px/1.4 var(--serif);
	letter-spacing: .12em;
	color: var(--forest);
}
.fm-ar-rule {
	margin: 26px 0 0;
	height: 1px;
	background: var(--line);
}

/* 引言 */
.fm-ar-intro {
	max-width: 780px;
	padding: 56px 0 0;
}
.fm-ar-intro__lead {
	margin: 0;
	font: 400 34px/1.5 var(--serif);
	letter-spacing: -.015em;
	color: var(--forest-dark);
}
.fm-ar-intro__lead-cn {
	margin: 18px 0 0;
	font: 400 16px/1.7 var(--serif);
	color: var(--forest);
	letter-spacing: .04em;
}
.fm-ar-intro__body {
	margin: 28px 0 0;
	font: 400 15px/1.9 var(--sans);
	color: var(--bark);
}
.fm-ar-intro__body-cn {
	margin: 10px 0 0;
	font: 400 14px/2 var(--sans);
	color: var(--muted);
}

/* 海拔一览 */
.fm-ar-elev {
	margin-top: 96px;
}
.fm-ar-elev__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.fm-ar-legend {
	display: flex;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	font: 400 9px/1 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-ar-legend li {
	display: flex;
	align-items: center;
	gap: 7px;
}
.fm-ar-dot {
	width: 7px;
	height: 7px;
	display: block;
}
.fm-ar-dot--menghai { background: var(--tea); }
.fm-ar-dot--mengla { background: var(--moss); }

.fm-ar-chart {
	margin-top: 34px;
}
.fm-ar-chart__body {
	position: relative;
	padding-bottom: 4px;
}
.fm-ar-chart__grid {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 246px;
	right: 0;
	background-image: linear-gradient(to right, var(--line) 1px, transparent 1px);
	background-size: 20% 100%;
	opacity: .85;
}
.fm-ar-chart__row {
	position: relative;
	display: grid;
	grid-template-columns: 246px minmax(0, 1fr);
	align-items: center;
	height: 28px;
}
.fm-ar-chart__label {
	padding-right: 18px;
	font: 400 11px/1 var(--sans);
	letter-spacing: .04em;
	color: var(--forest);
	text-align: right;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.fm-ar-chart__track {
	position: relative;
	height: 100%;
}
.fm-ar-bar {
	position: absolute;
	top: 50%;
	height: 8px;
	margin-top: -4px;
	display: block;
	min-width: 2px;
}
.fm-ar-bar--menghai { background: var(--tea); }
.fm-ar-bar--mengla { background: var(--moss); }
.fm-ar-bar--mini {
	height: 6px;
	margin-top: -3px;
}
.fm-ar-chart__axis {
	position: relative;
	height: 24px;
	margin-left: 246px;
	border-top: 1px solid var(--line);
	font: 400 9px/1 var(--sans);
	letter-spacing: .1em;
	color: var(--muted);
}
.fm-ar-chart__axis span {
	position: absolute;
	top: 9px;
	transform: translateX(-50%);
	white-space: nowrap;
}
.fm-ar-chart__axis span:first-child { transform: none; }
.fm-ar-chart__axis span:last-child { transform: translateX(-100%); }
.fm-ar-chart__note {
	margin: 22px 0 0;
	font: 400 11px/1.7 var(--sans);
	color: var(--muted);
}
.fm-ar-chart__note span {
	display: block;
	margin-top: 3px;
}

/* 县区块 */
.fm-ar-sec {
	margin-top: 104px;
}
.fm-ar-sec__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
}
.fm-ar-sec__title {
	margin: 0;
	font: 400 30px/1.2 var(--serif);
	letter-spacing: -.02em;
	color: var(--forest-dark);
}
.fm-ar-sec__kicker {
	margin: 0;
	font: 400 9px/1 var(--sans);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-ar-sec__lead {
	max-width: 640px;
	margin: 40px 0 0;
	font: 400 15px/1.85 var(--sans);
	color: var(--bark);
}
.fm-ar-sec__lead-cn {
	margin: 10px 0 0;
	font: 400 13px/1.9 var(--sans);
	color: var(--muted);
}

/* 图版（留空，等实拍） */
.fm-ar-plate {
	position: relative;
	margin: 40px 0 0;
	height: 340px;
	display: grid;
	place-items: center;
	background: var(--mist);
	border: 1px solid var(--line);
	overflow: hidden;
}
.fm-ar-plate--mengla { background: #dfe7e1; }
.fm-ar-plate::after {
	content: "";
	position: absolute;
	inset: 16px;
	border: 1px dashed rgba(31, 74, 58, .28);
	pointer-events: none;
}
.fm-ar-plate__label {
	position: relative;
	z-index: 1;
	padding: 9px 16px;
	background: rgba(244, 242, 233, .92);
	font: 500 9px/1 var(--sans);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--forest);
}

/* 表格 */
.fm-ar-table {
	margin-top: 44px;
}
.fm-ar-table__head,
.fm-ar-row {
	display: grid;
	grid-template-columns: 132px minmax(0, 1fr) 185px 150px 166px 146px;
	gap: 24px;
	align-items: start;
}
.fm-ar-table__head {
	padding-bottom: 14px;
	border-bottom: 2px solid var(--forest);
}
.fm-ar-th {
	font: 600 9px/1.4 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--forest);
}
.fm-ar-th--idx { grid-column: 1; }
.fm-ar-th__scale {
	display: flex;
	justify-content: space-between;
	margin-top: 6px;
	font: 400 9px/1 var(--sans);
	letter-spacing: .08em;
	color: var(--muted);
}
.fm-ar-row {
	padding: 22px 0 0;
	border-top: 1px solid var(--line);
	margin-top: 0;
}
.fm-ar-idx {
	font: 600 10px/1.6 var(--sans);
	letter-spacing: .12em;
	color: var(--tea);
}
.fm-ar-name {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.fm-ar-name__en {
	font: 400 18px/1.3 var(--serif);
	color: var(--forest-dark);
}
.fm-ar-name__cn {
	font: 400 12px/1.4 var(--sans);
	letter-spacing: .08em;
	color: var(--muted);
}
.fm-ar-alt {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.fm-ar-alt__num {
	font: 400 12px/1.3 var(--sans);
	color: var(--bark);
	white-space: nowrap;
}
.fm-ar-alt__sub {
	font: 400 10px/1.3 var(--sans);
	color: var(--muted);
	white-space: nowrap;
}
.fm-ar-track {
	position: relative;
	display: block;
	width: 100%;
	height: 6px;
	background: rgba(203, 213, 202, .5);
}
.fm-ar-garden,
.fm-ar-yield,
.fm-ar-age {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.fm-ar-garden {
	font: 400 12px/1.5 var(--sans);
	color: var(--bark);
}
.fm-ar-age__en {
	font: 400 11px/1.5 var(--sans);
	color: var(--bark);
}
.fm-ar-age__cn {
	font: 400 10px/1.6 var(--sans);
	color: var(--muted);
}
.fm-ar-yield__en {
	font: 400 12px/1.5 var(--sans);
	color: var(--bark);
}
.fm-ar-yield__cn {
	font: 400 10px/1.6 var(--sans);
	color: var(--muted);
}
.fm-ar-dash {
	font: 400 12px/1.5 var(--sans);
	color: var(--muted);
	cursor: help;
}
.fm-ar-note {
	margin: 4px 0 26px;
	padding-left: 156px;
	font: 400 11px/1.7 var(--sans);
	color: var(--muted);
}
.fm-ar-note span {
	display: block;
	margin-top: 3px;
}

/* 资料说明 */
.fm-ar-record {
	margin-top: 104px;
	padding-top: 34px;
	border-top: 1px solid var(--line);
}
.fm-ar-record__title {
	margin: 12px 0 0;
	font: 400 11px/1.4 var(--sans);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-ar-record__row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin-top: 40px;
}
.fm-ar-record__cell {
	min-height: 215px;
	padding-top: 18px;
	border-top: 1px solid var(--line);
}
.fm-ar-record__label {
	margin: 0 0 12px;
	font: 400 12px/1.7 var(--sans);
	color: var(--forest);
}
.fm-ar-record__cell p {
	margin: 0;
	font: 400 11px/1.75 var(--sans);
	color: var(--bark);
}
.fm-ar-record__cell p span {
	display: block;
	margin-top: 8px;
	color: var(--muted);
}

/* 结尾横幅 */
.fm-ar-band {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-top: 104px;
	padding: 56px;
	background: var(--white);
	border: 1px solid var(--line);
}
.fm-ar-band__lead {
	max-width: 700px;
	margin: 24px 0 0;
	font: 400 30px/1.5 var(--serif);
	color: var(--forest-dark);
}
.fm-ar-band__lead-cn {
	margin: 18px 0 0;
	font: 400 15px/1.6 var(--serif);
	color: var(--forest);
	letter-spacing: .04em;
}
.fm-ar-band__link {
	flex: 0 0 auto;
	padding-bottom: 8px;
	font: 400 12px/1 var(--sans);
	letter-spacing: .16em;
	color: var(--forest);
	border-bottom: 1px solid currentColor;
}

@media (max-width: 1080px) {
	.fm-ar-chart__grid { left: 170px; }
	.fm-ar-chart__row { grid-template-columns: 170px minmax(0, 1fr); }
	.fm-ar-chart__axis { margin-left: 170px; }
	.fm-ar-record__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.fm-ar-head { flex-direction: column; align-items: flex-start; gap: 22px; }
	.fm-ar-head__meta { text-align: left; }
	.fm-ar-intro__lead { font-size: 26px; }
	.fm-ar-elev { margin-top: 72px; }
	.fm-ar-elev__head { flex-direction: column; align-items: flex-start; gap: 14px; }

	.fm-ar-chart__grid { left: 118px; }
	.fm-ar-chart__row { grid-template-columns: 118px minmax(0, 1fr); height: 26px; }
	.fm-ar-chart__label { font-size: 10px; padding-right: 12px; }
	.fm-ar-chart__axis { margin-left: 118px; }

	.fm-ar-sec { margin-top: 76px; }
	.fm-ar-sec__head { flex-direction: column; align-items: flex-start; gap: 8px; }
	.fm-ar-plate { height: 220px; }

	/* 表格转卡片：每行两块，编号与海拔并排 */
	.fm-ar-table__head { display: none; }
	.fm-ar-row {
		grid-template-columns: 40px minmax(0, 1fr);
		gap: 6px 16px;
		padding: 20px 0;
	}
	.fm-ar-name { grid-column: 2; }
	.fm-ar-alt { grid-column: 2; margin-top: 6px; }
	.fm-ar-garden,
	.fm-ar-age,
	.fm-ar-yield { grid-column: 2; }
	.fm-ar-garden { display: block; }
	.fm-ar-garden::before { content: "古茶園 · "; color: var(--muted); font-size: 10px; }
	.fm-ar-note { padding-left: 0; }

	.fm-ar-record { margin-top: 76px; }
	.fm-ar-record__row { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.fm-ar-record__cell { min-height: 0; padding: 18px 0 22px; }

	.fm-ar-band {
		flex-direction: column;
		align-items: flex-start;
		gap: 26px;
		margin-top: 72px;
		padding: 32px 24px;
	}
	.fm-ar-band__lead { font-size: 22px; }
}

/* 表头 2px 分隔线已足够，第一行不再叠一条 1px */
.fm-ar-table__head + .fm-ar-row { border-top: 0; }
.fm-ar-idx { align-self: start; }

/* --------------------------------------------------------------------------
   2.1.10 · 拆成「总览 + 两个县」两级，每座茶山配一张照片
   -------------------------------------------------------------------------- */

/* 返回链接 */
.fm-ar-crumb {
	display: inline-block;
	margin: 0 0 30px;
	font: 400 11px/1 var(--sans);
	letter-spacing: .14em;
	color: var(--muted);
}
.fm-ar-crumb:hover { color: var(--forest); }

/* 茶山照片 · 每座山 5 张，一屏一张，图下一条 ‹ 1/5 › 翻页条。
   一山一栏，图固定 750 × 500（3:2）居中，与上传尺寸 1:1 */
.fm-ar-photo {
	margin: 0;
	width: 100%;
	display: block;
	overflow: hidden;
	background: var(--mist);
	border: 1px solid var(--line);
}
.fm-ar-photo__view {
	position: relative;
	display: grid;
	aspect-ratio: 750 / 500;
	place-items: center;
	overflow: hidden;
}
.fm-ar-photo__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	opacity: 0;
	transition: opacity .18s ease;
}
.fm-ar-photo__img.is-on { opacity: 1; }
.fm-ar-photo__empty {
	position: relative;
	font: 500 8px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	text-align: center;
	color: #8ba396;
}
/* 空图位上的尺寸提示：告诉上传的人该给多大，别自己乱裁 */
.fm-ar-photo__empty em {
	display: block;
	font: 400 7.5px/1.5 var(--sans);
	font-style: normal;
	letter-spacing: .1em;
	color: #93a89b;
}

/* 翻页条：左箭头 / 1-5 / 右箭头。88px 宽放得下，不压画面 */
.fm-ar-photo__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-top: 1px solid var(--line);
	background: var(--white);
}
.fm-ar-photo__btn {
	width: 22px;
	height: 18px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--forest);
	font: 500 13px/1 var(--sans);
	cursor: pointer;
}
.fm-ar-photo__btn:hover:not(:disabled) { background: var(--mist); }
.fm-ar-photo__btn:disabled { color: #c8d3ca; cursor: default; }
.fm-ar-photo__count {
	color: var(--muted);
	font: 400 8px/1 var(--sans);
	letter-spacing: .06em;
	white-space: nowrap;
}
/* 只有一张时不显示翻页条，省那一行高度 */
.fm-ar-photo--single .fm-ar-photo__nav { display: none; }
.fm-ar-th--photo { font-size: 8px; }

/* --------------------------------------------------------------------------
   县页 · 茶山卡片：一山一栏，图在上、信息在下
   整页收成一条 750 的竖栏（标题、导语、图、数据、备注同一条左边缘），
   图固定 750 × 500（3:2），和上传尺寸 1:1，不缩不放
   -------------------------------------------------------------------------- */
.fm-ar--county { max-width: 750px; }

/* 目录条：五座山的名字排一排，每格顶上一条细线，点了落到下面那一栏 */
.fm-ar-jump {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0 20px;
	margin: 34px 0 0;
}
.fm-ar-jump__item {
	display: grid;
	gap: 8px;
	padding: 13px 0 0;
	border-top: 1px solid var(--line);
	color: var(--forest);
	transition: border-color .18s ease, color .18s ease;
}
.fm-ar-jump__item:hover,
.fm-ar-jump__item:focus-visible {
	border-top-color: var(--forest);
	color: var(--forest-dark);
	outline: none;
}
.fm-ar-jump__idx {
	font: 500 10px/1 var(--sans);
	letter-spacing: .16em;
	color: var(--tea);
}
.fm-ar-jump__en {
	overflow: hidden;
	font: 400 16px/1.15 var(--serif);
	letter-spacing: -.005em;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.fm-ar-jump__cn {
	overflow: hidden;
	font: 400 12px/1.35 var(--sans);
	letter-spacing: .1em;
	color: var(--muted);
	white-space: nowrap;
	text-overflow: ellipsis;
}

.fm-ar-cards {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 92px;
	margin-top: 56px;
}
.fm-ar-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 750px;
	margin: 0 auto;
	scroll-margin-top: 104px; /* 站点导航是 sticky 的，锚点落下来别被压住 */
}
.fm-ar-card .fm-ar-photo__btn { width: 58px; height: 34px; font-size: 17px; }
.fm-ar-card .fm-ar-photo__count { font-size: 11px; letter-spacing: .1em; }

/* 图框自带 1px 描边，这里不再画第二条线，只留 24px 间距 */
.fm-ar-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	margin-top: 24px;
}
.fm-ar-card__idx {
	margin: 0;
	font: 500 10px/1 var(--sans);
	letter-spacing: .18em;
	color: var(--tea);
}
.fm-ar-card__name { margin: 10px 0 0; }
.fm-ar-card__en {
	display: block;
	font: 400 30px/1.16 var(--serif);
	letter-spacing: -.015em;
	color: var(--forest-dark);
}
.fm-ar-card__cn {
	display: block;
	margin-top: 7px;
	font: 400 14px/1.4 var(--sans);
	letter-spacing: .12em;
	color: var(--forest);
}

/* 四项数据排 2 × 2：750 宽下单列每行只有一句话，太散 */
.fm-ar-card__facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 48px;
	margin: 26px 0 0;
}
.fm-ar-card__facts dt {
	font: 500 10px/1.3 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-ar-card__facts dd {
	margin: 7px 0 0;
	font: 400 14px/1.65 var(--sans);
	color: var(--ink);
}
.fm-ar-card__facts dd em {
	margin-left: 6px;
	font-style: normal;
	font-size: 11px;
	color: var(--muted);
}
.fm-ar-card__facts .fm-ar-track { margin-top: 9px; }
.fm-ar-card__sub {
	display: block;
	margin-top: 3px;
	font-size: 11.5px;
	line-height: 1.5;
	color: var(--muted);
}

/* 备注：把资料里多出来的口径、另说、别名放这儿，不塞进上面四格。
   750 宽一行能排 100 多字，读起来太长，所以英文 / 中文各占一列。 */
.fm-ar-card__note {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 44px;
	margin: 28px 0 0;
	padding-top: 20px;
	border-top: 1px solid var(--line);
	font: 400 12px/1.85 var(--sans);
	color: var(--muted);
}
.fm-ar-card__note-en { display: block; }
.fm-ar-card__note-cn {
	display: block;
	color: #7d8f83;
}

/* 编号移进山名格里（省一列给照片） */
.fm-ar-name__idx {
	font: 600 10px/1 var(--sans);
	letter-spacing: .12em;
	color: var(--tea);
	margin-bottom: 4px;
}
.fm-ar-name { gap: 6px; }

/* 两个县入口 */
.fm-ar-split { margin-top: 104px; }
.fm-ar-split__head { max-width: 780px; }
.fm-ar-split__title {
	margin: 12px 0 0;
	font: 400 34px/1.4 var(--serif);
	letter-spacing: -.02em;
	color: var(--forest-dark);
}
.fm-ar-split__title-cn {
	margin: 14px 0 0;
	font: 400 16px/1.6 var(--serif);
	letter-spacing: .04em;
	color: var(--forest);
}
.fm-ar-entries {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin-top: 48px;
}
.fm-ar-entry {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--line);
	background: var(--white);
	transition: border-color .2s ease;
}
a.fm-ar-entry:hover { border-color: var(--forest); }
.fm-ar-entry.is-pending { opacity: .72; }
.fm-ar-entry__plate {
	position: relative;
	margin: 0;
	height: 260px;
	display: grid;
	place-items: center;
	overflow: hidden;
	background: var(--mist);
	border-bottom: 1px solid var(--line);
}
.fm-ar-entry__plate::after {
	content: "";
	position: absolute;
	inset: 14px;
	border: 1px dashed rgba(31, 74, 58, .26);
	pointer-events: none;
}
.fm-ar-entry__label {
	position: relative;
	z-index: 1;
	padding: 8px 14px;
	background: rgba(244, 242, 233, .92);
	font: 500 9px/1 var(--sans);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--forest);
}
.fm-ar-entry__label em {
	display: block;
	margin-top: 5px;
	font: 400 8px/1 var(--sans);
	font-style: normal;
	letter-spacing: .12em;
	color: var(--muted);
}
.fm-ar-entry__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 26px 26px 24px;
}
.fm-ar-entry__count {
	margin: 0;
	font: 400 9px/1 var(--sans);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-ar-entry__title {
	margin: 14px 0 0;
	font: 400 30px/1.15 var(--serif);
	letter-spacing: -.02em;
	color: var(--forest-dark);
}
.fm-ar-entry__cn {
	margin: 8px 0 0;
	font: 400 13px/1 var(--sans);
	letter-spacing: .16em;
	color: var(--forest);
}
.fm-ar-entry__list {
	margin: 18px 0 0;
	font: 400 12px/2 var(--sans);
	color: var(--muted);
}
.fm-ar-entry__go {
	margin-top: auto;
	padding-top: 26px;
	font: 400 11px/1.4 var(--sans);
	letter-spacing: .14em;
	color: var(--forest);
}

/* 县页表格下方的空缺说明 */
.fm-ar-dashnote {
	margin: 22px 0 0;
	font: 400 11px/1.7 var(--sans);
	color: var(--muted);
}
.fm-ar-dashnote span { display: block; margin-top: 3px; }

@media (max-width: 1080px) {
	.fm-ar-table__head,
	.fm-ar-row { grid-template-columns: 108px minmax(0, 1fr) 160px 132px 148px 128px; gap: 18px; }
	.fm-ar-table .fm-ar-photo { width: 108px; }
	.fm-ar-entry__plate { height: 220px; }
}

@media (max-width: 900px) {
	.fm-ar-split { margin-top: 76px; }
	.fm-ar-split__title { font-size: 26px; }
	.fm-ar-entries { grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 32px; }
	.fm-ar-entry__plate { height: 200px; }

	/* 一行变一张卡：照片占满宽度，其余依次堆叠 */
	.fm-ar-table__head { display: none; }
	.fm-ar-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
		padding: 20px 0 24px;
	}
	.fm-ar-table .fm-ar-photo {
		width: 100%;
		margin-bottom: 4px;
	}
	/* 一山一栏在手机上不换列，只是图跟着容器缩宽 */
	.fm-ar-cards { gap: 56px; }
	.fm-ar-jump { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 18px; margin-top: 28px; }
	.fm-ar-card__en { font-size: 24px; }
	.fm-ar-card__facts { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.fm-ar-card__note { grid-template-columns: minmax(0, 1fr); gap: 10px 0; }
	.fm-ar-photo__btn { width: 48px; height: 34px; font-size: 16px; }
	.fm-ar-photo__count { font-size: 11px; }
	.fm-ar-name,
	.fm-ar-alt,
	.fm-ar-garden,
	.fm-ar-age,
	.fm-ar-yield { grid-column: 1; }
	.fm-ar-alt { margin-top: 2px; }
}

/* 表头标签 140px 放不下 "ANCIENT GARDEN · 古茶園"，收一点字距，不换行 */
.fm-ar-th {
	font-size: 8.5px;
	letter-spacing: .1em;
	line-height: 1.5;
	white-space: nowrap;
}
.fm-ar-th--photo { font-size: 8px; }
.fm-ar-entry__plate { height: 240px; }

/* 入口图版有图时：铺满、盖掉占位标签与虚线框 */
.fm-ar-entry__plate.is-filled::after { display: none; }
.fm-ar-entry__img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

/* 文章页头图：之前没有样式，1240px 的图会顶破 1180 容器 */
.fm-article__hero {
	max-width: 1000px;
	margin: 44px auto 48px;
}
.fm-article__hero img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 620 / 420;
	object-fit: cover;
}
/* 单篇正文与居中的页头对齐，不再贴左 */
.fm-article .fm-prose {
	margin-left: auto;
	margin-right: auto;
}

/* ==========================================================================
 * 子分类切换（產地 → 勐海縣 / 勐臘縣）
 * 挂在主切换条下面；-30px 是为了抵掉 .fm-switch 的 44px 下边距，
 * 实际留 14px 视觉间距，改上面那条的间距时这里要一起看。
 * ========================================================================== */
.fm-subswitch {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: -30px 0 44px;
}
.fm-subswitch__label {
	margin-right: 6px;
	color: var(--muted);
	font: 500 9px/1 var(--sans);
	letter-spacing: .18em;
	text-transform: uppercase;
}
.fm-subswitch__item {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	padding: 7px 12px;
	border: 1px solid var(--line);
	color: var(--forest);
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.fm-subswitch__item span {
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: none;
	color: var(--muted);
}
.fm-subswitch__item:hover { border-color: var(--forest); }
.fm-subswitch__item.is-current {
	background: var(--forest);
	border-color: var(--forest);
	color: var(--white);
}
.fm-subswitch__item.is-current span { color: rgba(255, 253, 247, .72); }

/* ==========================================================================
 * 產地 两县入口（在四座山记录之前）
 * ========================================================================== */
.fm-counties { margin: 56px 0 0; }
.fm-counties__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin: 18px 0 0;
}
.fm-county {
	display: flex;
	flex-direction: column;
	gap: 9px;
	padding: 26px 28px 24px;
	border: 1px solid var(--line);
	background: var(--white);
	transition: border-color .2s ease, transform .2s ease;
}
.fm-county:hover { border-color: var(--forest); transform: translateY(-2px); }
.fm-county__kicker {
	color: var(--tea);
	font: 500 9px/1 var(--sans);
	letter-spacing: .18em;
	text-transform: uppercase;
}
.fm-county__name {
	display: flex;
	align-items: baseline;
	gap: 12px;
	color: var(--forest-dark);
	font: 300 30px/1.1 var(--serif);
}
.fm-county__name em {
	color: var(--muted);
	font: 400 13px/1 var(--sans);
	font-style: normal;
	letter-spacing: .16em;
}
.fm-county__note {
	color: var(--muted);
	font-size: 12.5px;
	line-height: 1.7;
}
.fm-county__go {
	margin-top: 6px;
	color: var(--forest);
	font-size: 9.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
}

/* ==========================================================================
 * 单品页底部推荐
 * 熟普/生普 4 款、產地县页 4 款、組合 2 款
 * ========================================================================== */
.fm-rel {
	margin: 96px 0 0;
	padding: 44px 0 96px;
	border-top: 1px solid var(--line);
}
.fm-rel__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
}
.fm-rel__title {
	margin: 12px 0 0;
	font: 300 clamp(26px, 2.6vw, 34px)/1.12 var(--serif);
	letter-spacing: -.02em;
	color: var(--forest-dark);
}
.fm-rel__title .fm-cn {
	display: block;
	margin-top: 10px;
	font-size: .46em;
	letter-spacing: .16em;
	color: var(--forest);
	opacity: .9;
}
.fm-rel__note {
	max-width: 560px; /* 320 太窄、430 也会折：补上中文后这一句约 500px，宽度留够才能一行放完 */
	margin: 0;
	color: var(--muted);
	font-size: 12.5px;
	line-height: 1.7;
}
.fm-rel__note-cn { opacity: .82; }

/* 組合态补位格：站内已经有 .fm-helper-tile（分类页最后一格用的同一个），
   这里只把它压到与卡片同高 —— 它自带 min-height:520，会比卡片高出一点。 */
.fm-rel__tile { min-height: 0; height: 100%; }
/* 选择器必须带 .fm-woo：fm-woo.css 在 fm-store.css 之后加载，
   里面有一条 .fm-woo ul.products { margin: 0; row-gap: 56px }，
   与本文件原来的 .fm-rel ul.products 同权重但更晚，会把 40px 间距和 44px 行距一起吃掉。
   加一层 .fm-woo 把权重提到 (0,3,1) 才压得住。 */
.fm-woo .fm-rel ul.products {
	margin-top: 40px;
	column-gap: 20px;
	row-gap: 44px;
}
.fm-rel ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
/* 組合只有 2 款：仍按 3 栏排，卡片宽度与商店页一致（1180 三栏 = 380），
   不走两栏——两栏会把卡片撑到 570 宽，图位比别处大一倍。 */
.fm-rel ul.products.columns-2 { grid-template-columns: repeat(3, 1fr); }

@media (max-width: 960px) {
	.fm-counties__grid { grid-template-columns: 1fr; }
	.fm-rel ul.products.columns-4 { grid-template-columns: repeat(2, 1fr); }
	.fm-rel ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
	.fm-rel { margin-top: 72px; padding-bottom: 72px; }
}
@media (max-width: 620px) {
	.fm-subswitch { margin-top: -22px; }
	.fm-rel ul.products.columns-4,
	.fm-rel ul.products.columns-2 { grid-template-columns: 1fr; }
	.fm-rel__head { align-items: flex-start; }
}
/* ==========================================================================
   单品页 · 底部购买条
   滚过上面那块购买区之后才浮出来，固定在视口底部。
   不用 position: sticky —— 网格里的 sticky 会被整个 .product 容器夹住，
   会压到说明区上（这一点已实测过）；这里用 fixed，完全不参与文档流。
   显示 / 隐藏的开关在 assets/js/fm.js 第 4 节，靠 .is-visible 一个类。
   ========================================================================== */
.fm-buybar {
	position: fixed;
	z-index: 98;
	right: 0;
	bottom: 0;
	left: 0;
	background: var(--white);
	border-top: 1px solid var(--line);
	box-shadow: 0 -10px 30px rgba(20, 55, 45, .07);
	opacity: 0;
	visibility: hidden;
	transform: translateY(100%);
	transition: transform .34s cubic-bezier(.22, .61, .36, 1), opacity .2s ease, visibility 0s linear .34s;
}
.fm-buybar.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition: transform .34s cubic-bezier(.22, .61, .36, 1), opacity .18s ease, visibility 0s;
}
.fm-buybar__inner {
	display: flex;
	align-items: center;
	gap: 18px;
	min-height: 76px;
	padding: 12px 0;
}
.fm-buybar__media {
	flex: none;
	width: 44px;
	height: 44px;
	overflow: hidden;
	background: var(--mist);
	border: 1px solid var(--line);
}
.fm-buybar__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fm-buybar__meta {
	flex: 1 1 auto;
	min-width: 0;
}
.fm-buybar__name {
	margin: 0;
	overflow: hidden;
	color: var(--forest-dark);
	font: 400 15px/1.3 var(--serif);
	letter-spacing: -.005em;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.fm-buybar__cn {
	margin: 3px 0 0;
	overflow: hidden;
	color: var(--muted);
	font-size: 10.5px;
	letter-spacing: .16em;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.fm-buybar__price { flex: none; }
.fm-buybar__price .price {
	margin: 0;
	color: var(--forest-dark);
	font: 400 18px/1.2 var(--serif);
	white-space: nowrap;
}
.fm-buybar__price .fm-price-tbc { font-size: 15px; }
.fm-buybar__action { flex: none; }
.fm-buybar__action .fm-btn {
	min-width: 196px;
	justify-content: center;
}
.fm-buybar__action form.cart {
	display: block;
	margin: 0;
}
.fm-buybar__close {
	flex: none;
	width: 34px;
	height: 34px;
	margin-left: -4px;
	padding: 0;
	border: 1px solid transparent;
	background: none;
	color: var(--muted);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	transition: color .18s ease, border-color .18s ease;
}
.fm-buybar__close:hover {
	border-color: var(--line);
	color: var(--forest);
}
.fm-buybar__close:focus-visible {
	outline: 1px solid var(--forest);
	outline-offset: 2px;
}

@media (max-width: 860px) {
	.fm-buybar__inner { gap: 12px; min-height: 70px; padding: 10px 0; }
	.fm-buybar__action .fm-btn { min-width: 0; padding: 0 14px; font-size: 11px; }
	.fm-buybar__price .price { font-size: 16px; }
}
@media (max-width: 620px) {
	.fm-buybar__media { display: none; }
	.fm-buybar__cn { display: none; }
	.fm-buybar__inner { min-height: 64px; }
	.fm-buybar__close { width: 30px; height: 30px; }
}
@media (max-width: 460px) {
	.fm-buybar__price { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.fm-buybar,
	.fm-buybar.is-visible { transition: none; }
}

/* 页脚底部留出购买条的高度：条固定在视口底部，到头也不该压住版权行。
   只在单品页加，别的页面没有这条，不多这一截空。 */
.single-product .fm-footer { padding-bottom: 96px; }
@media (max-width: 620px) {
	.single-product .fm-footer { padding-bottom: 84px; }
}

/* ==========================================================================
 * 三个内容页：Origins / Brewing / Start Here（2.2.6）
 *
 * 画布出处：2:870（Origins）／2:1054（Brewing）／2:1225（Start Here）
 * 共用件：页头 .fm-pghead、区块小标题 .fm-sechead、空图位 .fm-plate、
 *        影片格 .fm-film、收尾行动 .fm-cta、通栏底色 .fm-bleed
 * 原则：图位与影片位一律留空，标好尺寸，等实拍与成片；不塞 AI 图。
 * ========================================================================== */

/* ---------- 通栏底色 ----------
   三页都在 1180 容器里，但设计稿的色带是通栏的。
   用一层 100vw 的伪元素往外铺，靠 .fm-wrap 的 overflow-x: clip 收边，
   不会撑出横向滚动条（滚动条那条 15px 不会让页面抖）。 */
.fm-bleed {
	position: relative;
	isolation: isolate;
}
.fm-bleed::before {
	position: absolute;
	z-index: -1;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	background: var(--bleed, var(--cloud));
	content: "";
}

/* ---------- 页头 ---------- */
.fm-pghead {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
}
.fm-pghead__title {
	margin: 14px 0 0;
	font: 300 clamp(40px, 5.6vw, 64px)/1.04 var(--serif);
	letter-spacing: -.035em;
	color: var(--forest-dark);
}
.fm-pghead__cn {
	margin: 12px 0 0;
	font: 400 26px/1.25 var(--serif);
	letter-spacing: .08em;
	color: var(--forest);
}
.fm-pghead__meta {
	flex: 0 0 auto;
	padding-bottom: 8px;
	text-align: right;
}
.fm-pghead__meta span { display: block; }
.fm-pghead__meta span:first-child {
	font: 500 10px/1.6 var(--sans);
	letter-spacing: .18em;
	color: var(--muted);
}
.fm-pghead__meta span:last-child {
	margin-top: 3px;
	font: 400 14px/1.4 var(--serif);
	letter-spacing: .12em;
	color: var(--forest);
}
.fm-pghead__rule {
	margin: 72px 0 0;
	height: 1px;
	background: var(--line);
}

/* ---------- 区块小标题：左边小字，右边一行说明 ---------- */
.fm-sechead {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
}
.fm-sechead .fm-kicker { margin: 0; }
.fm-sechead__note {
	margin: 0;
	font: 400 10.5px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-sechead--dark .fm-kicker { color: var(--tea-light); }
.fm-sechead--dark .fm-sechead__note { color: #9db5a8; }

/* ---------- 空图位 ---------- */
.fm-plate {
	position: relative;
	display: grid;
	margin: 0;
	place-items: center;
	overflow: hidden;
	background: var(--mist);
	box-shadow: inset 0 0 0 1px rgba(191, 206, 195, .9);
}
.fm-plate::after {
	position: absolute;
	inset: 10px;
	border: 1px solid rgba(191, 206, 195, .8);
	content: "";
	pointer-events: none;
}
.fm-plate__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fm-plate__empty {
	position: relative;
	z-index: 1;
	padding: 0 12px;
	color: #7c8f84;
	font: 500 9.5px/1.9 var(--sans);
	letter-spacing: .18em;
	text-transform: uppercase;
	text-align: center;
}
.fm-plate__empty em {
	display: block;
	margin-top: 2px;
	color: #93a89b;
	font: 400 8px/1.5 var(--sans);
	font-style: normal;
	letter-spacing: .12em;
}
.fm-plate--understory { aspect-ratio: 532 / 600; }
.fm-plate--card { aspect-ratio: 372 / 248; }
.fm-plate--wide { aspect-ratio: 1180 / 460; }
.fm-plate--door { aspect-ratio: 372 / 240; }
.fm-plate--kind { aspect-ratio: 566 / 320; }

/* ---------- 影片格（空态） ----------
   深林绿 + 细描边 + 同心圆徽标（双圆 + 三角）。徽标三档：lg 200 / md 160 / sm 84。 */
.fm-film {
	position: relative;
	display: grid;
	margin: 0;
	place-items: center;
	overflow: hidden;
	background: radial-gradient(125% 125% at 28% 18%, #1f4a3a 0%, #14372d 56%, #0a211a 100%);
	box-shadow: inset 0 0 0 1px rgba(139, 163, 150, .22);
}
.fm-film__badge { display: block; color: #e4c58e; opacity: .92; }
.fm-film__badge svg { display: block; width: 160px; height: 160px; }
.fm-film--lg .fm-film__badge svg { width: 200px; height: 200px; }
.fm-film--sm .fm-film__badge svg { width: 84px; height: 84px; }
.fm-film__cap {
	position: absolute;
	right: 0;
	bottom: 18px;
	left: 0;
	margin: 0;
	color: #9fb6a9;
	font: 500 9.5px/1.6 var(--sans);
	letter-spacing: .24em;
	text-transform: uppercase;
	text-align: center;
}
.fm-film__video { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ---------- 收尾行动 ---------- */
.fm-cta {
	margin-top: 96px;
	padding: 96px 0;
	text-align: center;
	--bleed: var(--white);
}
.fm-cta__title {
	margin: 0;
	color: var(--forest-dark);
	font: 400 clamp(26px, 3vw, 34px)/1.2 var(--serif);
	letter-spacing: -.015em;
}
.fm-cta__cn {
	margin: 12px 0 0;
	color: var(--forest);
	font: 400 14px/1.6 var(--sans);
	letter-spacing: .08em;
}
.fm-cta__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 26px;
}

/* ==========================================================================
 * Origins
 * ========================================================================== */
.fm-og, .fm-bw, .fm-sh { padding: 104px 0 0; }

/* 论点：左字右图 */
.fm-og-thesis {
	display: grid;
	grid-template-columns: 560px 532px;
	gap: 88px;
	align-items: start;
	padding: 88px 0 0;
}
.fm-og-lead {
	margin: 0;
	color: var(--forest-dark);
	font: 400 clamp(30px, 3.4vw, 42px)/1.3 var(--serif);
	letter-spacing: -.02em;
}
.fm-og-lead__cn {
	margin: 22px 0 0;
	color: var(--forest);
	font: 400 19px/1.65 var(--serif);
	letter-spacing: .04em;
}
.fm-og-record {
	max-width: 430px;
	margin-top: 46px;
	padding-top: 18px;
	border-top: 1px solid var(--line);
}
.fm-og-record__en {
	margin: 0;
	color: var(--muted);
	font: 400 10.5px/1.9 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
}
.fm-og-record__cn {
	margin: 5px 0 0;
	color: #8a9c90;
	font: 400 11px/1.9 var(--sans);
	letter-spacing: .12em;
}

/* 产区分布图 */
.fm-og-map { padding: 118px 0 0; }
.fm-og-map__plate {
	position: relative;
	display: grid;
	margin: 24px 0 0;
	place-items: center;
	overflow: hidden;
	aspect-ratio: 1180 / 480;
	border: 1px solid #b9d1d0;
	background: var(--mist);
}
.fm-og-map__lines {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	color: #7fa3a0;
	opacity: .45;
}
.fm-og-map__lines path { fill: none; stroke: currentColor; stroke-width: 1; }
/* 点的左边缘对齐实测 x，纵向以圆心定位；标记点 16px，编号 11px */
.fm-og-map__marker {
	position: absolute;
	display: flex;
	align-items: center;
	gap: 10px;
	transform: translate(0, -50%);
	color: var(--forest-dark);
	font: 500 11px/1 var(--sans);
	letter-spacing: .14em;
}
.fm-og-map__marker i {
	display: block;
	width: 16px;
	height: 16px;
	border: 1px solid var(--forest-dark);
	border-radius: 50%;
	background: rgba(255, 253, 247, .7);
}
.fm-og-map__cap {
	position: absolute;
	bottom: 36px;
	left: 40px;
	margin: 0;
	color: #5f9199;
	font: 400 11px/1.6 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
}
/* 图例：上面一条通栏细线（画布是一整条，不是每格各一条），下面三栏齐排 */
.fm-og-legend {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 48px;
	margin: 0;
	padding: 22px 0 0;
	border-top: 1px solid var(--line);
	list-style: none;
}
.fm-og-legend li {
	color: var(--forest);
	font: 400 14.5px/1.5 var(--serif);
	letter-spacing: .04em;
}
.fm-og-legend span {
	margin-right: 12px;
	color: var(--tea);
	font: 500 10px/1 var(--sans);
	letter-spacing: .14em;
}

/* 三条产地记录 */
.fm-og-records {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	padding: 174px 0 0;
}
.fm-og-card { display: flex; flex-direction: column; }
.fm-og-card__idx {
	margin: 20px 0 0;
	color: var(--tea);
	font: 500 10px/1 var(--sans);
	letter-spacing: .16em;
}
.fm-og-card__name {
	margin: 7px 0 0;
	color: var(--forest-dark);
	font: 400 18px/1.45 var(--serif);
	letter-spacing: .02em;
}
.fm-og-card__facts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 20px 0 0;
	padding-top: 15px;
	border-top: 1px solid var(--line);
}
.fm-og-card__facts dt {
	margin: 0;
	color: #8a9c90;
	font: 400 9.5px/1.6 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
}
.fm-og-card__facts dd {
	margin: 5px 0 0;
	color: var(--forest);
	font: 400 12px/1.5 var(--sans);
}
.fm-og-card__pending {
	margin: 18px 0 0;
	color: #a4b2a6;
	font: 400 9.5px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
}

/* 深色档案条 */
.fm-og-band {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 60px;
	margin-top: 118px;
	padding: 96px 0;
	color: var(--white);
	--bleed: var(--forest-dark);
}
.fm-og-band__kicker {
	margin: 0 0 20px;
	color: var(--tea-light);
	font: 500 10px/1.6 var(--sans);
	letter-spacing: .2em;
	text-transform: uppercase;
}
.fm-og-band__lead {
	max-width: 640px;
	margin: 0;
	font: 400 30px/1.4 var(--serif);
	letter-spacing: -.01em;
}
.fm-og-band__cn {
	margin: 15px 0 0;
	color: #c6d7c4;
	font: 400 15px/1.7 var(--serif);
	letter-spacing: .04em;
}
.fm-og-band__link {
	flex: 0 0 auto;
	padding-bottom: 6px;
	border-bottom: 1px solid rgba(228, 197, 142, .55);
	color: var(--tea-light);
	font: 400 10.5px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
}
.fm-og-band__link:hover { border-bottom-color: var(--tea-light); }

/* ==========================================================================
 * Brewing
 * ========================================================================== */

/* 影片主视觉：茶色渐变通栏，左字右片。
   上沿比页头分隔线低 36px —— 色带紧贴那条线会把线吃掉，留出一点米白让线露出来；
   减掉的 36 从 padding-top 里扣回去，所以文字与下沿的位置跟画布一模一样。 */
.fm-bw-hero {
	display: grid;
	grid-template-columns: 460px 600px;
	justify-content: space-between;
	gap: 56px;
	align-items: center;
	margin: 36px 0 0;
	padding: 52px 0 88px;
	--bleed: linear-gradient(133deg, #f0d9a0 0%, #e0b36a 55%, #c98b45 100%);
}
.fm-bw-hero__lead {
	margin: 0;
	color: #2b3f2c;
	font: 400 clamp(28px, 3.2vw, 40px)/1.28 var(--serif);
	letter-spacing: -.02em;
}
.fm-bw-hero__cn {
	margin: 18px 0 0;
	color: #3d4a34;
	font: 400 19px/1.6 var(--serif);
	letter-spacing: .06em;
}
.fm-bw-hero__body {
	max-width: 460px;
	margin: 26px 0 0;
	color: #4a4128;
	font: 400 14px/1.85 var(--sans);
}
.fm-bw-hero__body-cn {
	max-width: 460px;
	margin: 8px 0 0;
	color: #6b5636;
	font: 400 12px/1.9 var(--sans);
	letter-spacing: .03em;
}

/* 四个步骤 */
.fm-bw-steps { padding: 118px 0 0; }
.fm-bw-steps__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin-top: 28px;
}
.fm-bw-step { display: flex; flex-direction: column; }
.fm-film--step { box-shadow: inset 0 0 0 1px rgba(139, 163, 150, .18); }
.fm-bw-step__idx {
	margin: 18px 0 0;
	color: var(--tea);
	font: 500 10px/1 var(--sans);
	letter-spacing: .16em;
}
.fm-bw-step__name {
	margin: 7px 0 0;
	color: var(--forest-dark);
	font: 400 17px/1.4 var(--serif);
	letter-spacing: .02em;
}
.fm-bw-step__desc {
	margin: 12px 0 0;
	color: var(--muted);
	font: 400 12px/1.75 var(--sans);
}
.fm-bw-step__desc-cn {
	margin: 5px 0 0;
	color: #8a9c90;
	font: 400 12px/1.75 var(--sans);
	letter-spacing: .03em;
}

/* 冲泡参数表 */
.fm-bw-numbers {
	margin-top: 118px;
	padding: 96px 0;
	--bleed: var(--white);
}
.fm-bw-table {
	width: 100%;
	margin-top: 34px;
	border-collapse: collapse;
	table-layout: fixed;
}
.fm-bw-table th,
.fm-bw-table td {
	padding: 18px 0;
	text-align: left;
	vertical-align: baseline;
}
.fm-bw-table thead th {
	padding-bottom: 12px;
	border-bottom: 1px solid var(--forest-dark);
	color: var(--forest);
	font: 500 9.5px/1.5 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
}
.fm-bw-table tbody th {
	color: var(--forest-dark);
	font: 400 15px/1.5 var(--serif);
	letter-spacing: .02em;
}
.fm-bw-table tbody tr { border-bottom: 1px solid var(--line); }
.fm-bw-table tbody td {
	color: var(--muted);
	font: 400 13px/1.5 var(--sans);
	letter-spacing: .04em;
}
.fm-bw-table th:first-child { width: 42%; }
.fm-bw-table__note {
	margin: 14px 0 0;
	color: #a4b2a6;
	font: 400 9.5px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
}

/* 茶席影片：深色通栏 */
.fm-bw-ambient {
	margin-top: 0;
	padding: 96px 0;
	color: var(--white);
	--bleed: var(--forest-dark);
}
.fm-bw-ambient .fm-film { margin-top: 32px; }

/* ==========================================================================
 * Start Here
 * ========================================================================== */
/* 主张：画布上文字块 900 宽、整体居中，文字本身左对齐 */
.fm-sh-manifesto {
	max-width: 900px;
	margin: 0 auto;
	padding: 96px 0 0;
}
.fm-sh-manifesto__lead {
	margin: 0;
	color: var(--forest-dark);
	font: 400 clamp(30px, 3.6vw, 44px)/1.34 var(--serif);
	letter-spacing: -.02em;
}
.fm-sh-manifesto__cn {
	margin: 24px 0 0;
	color: var(--forest);
	font: 400 18px/1.7 var(--serif);
	letter-spacing: .05em;
}
.fm-sh-manifesto__rule {
	display: block;
	width: 64px;
	height: 1px;
	margin-top: 32px;
	background: var(--forest);
	opacity: .55;
}

/* 通栏大图 */
.fm-sh-wide {
	margin-top: 96px;
	padding: 96px 0;
	--bleed: var(--white);
}

/* 三种入门 */
.fm-sh-doors { padding: 118px 0 0; }
.fm-sh-doors__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin-top: 28px;
}
.fm-sh-door { display: flex; flex-direction: column; }
.fm-sh-door__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 24px 24px 26px;
	border: 1px solid var(--line);
	border-top: 0;
	background: var(--white);
}
.fm-sh-door__label {
	margin: 0;
	color: var(--tea);
	font: 500 10px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
}
.fm-sh-door__name {
	margin: 8px 0 0;
	color: var(--forest-dark);
	font: 400 19px/1.4 var(--serif);
	letter-spacing: .02em;
}
.fm-sh-door__desc {
	margin: 12px 0 0;
	color: var(--muted);
	font: 400 12px/1.75 var(--sans);
}
.fm-sh-door__desc-cn {
	margin: 5px 0 0;
	color: #8a9c90;
	font: 400 12px/1.75 var(--sans);
	letter-spacing: .03em;
}
.fm-sh-door__link {
	margin-top: 18px;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--forest);
	color: var(--forest);
	font: 500 10px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	align-self: flex-start;
}

/* 生普与熟普 */
.fm-sh-kinds {
	margin-top: 118px;
	padding: 96px 0;
	--bleed: var(--white);
}
.fm-sh-kinds__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 48px;
	margin-top: 30px;
}
.fm-sh-kind__name {
	margin: 22px 0 0;
	color: var(--forest-dark);
	font: 400 24px/1.35 var(--serif);
	letter-spacing: .02em;
}
.fm-sh-kind__desc {
	max-width: 470px;
	margin: 14px 0 0;
	color: var(--muted);
	font: 400 13px/1.85 var(--sans);
}
.fm-sh-kind__desc-cn {
	max-width: 470px;
	margin: 6px 0 0;
	color: #8a9c90;
	font: 400 13px/1.85 var(--sans);
	letter-spacing: .03em;
}

/* 深色收尾 */
.fm-sh-closing {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 48px;
	padding: 96px 0;
	color: var(--white);
	--bleed: var(--forest-dark);
}
.fm-sh-closing__lead {
	margin: 0;
	font: 400 30px/1.4 var(--serif);
	letter-spacing: -.01em;
}
.fm-sh-closing__cn {
	margin: 14px 0 0;
	color: #c6d7c4;
	font: 400 15px/1.7 var(--serif);
	letter-spacing: .04em;
}
.fm-sh-closing__actions {
	display: flex;
	flex: 0 0 auto;
	flex-wrap: wrap;
	gap: 12px;
}
.fm-btn--light { border-color: var(--tea-light); background: var(--tea-light); color: var(--forest-dark); }
.fm-btn--ghost { border-color: rgba(198, 215, 196, .5); color: #dbe7d8; }

/* ==========================================================================
 * 三个内容页 · 断点
 * ========================================================================== */
@media (max-width: 1100px) {
	.fm-og-thesis { grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; }
	.fm-bw-hero { grid-template-columns: minmax(0, 1fr) 420px; gap: 40px; }
}

@media (max-width: 960px) {
	.fm-pghead { flex-direction: column; align-items: flex-start; gap: 22px; }
	.fm-pghead__meta { padding-bottom: 0; text-align: left; }

	.fm-og-thesis { grid-template-columns: 1fr; gap: 40px; padding-top: 56px; }
	.fm-og-thesis__photo { order: 2; }
	.fm-og-map,
	.fm-og-records { padding-top: 84px; }
	.fm-og-records { grid-template-columns: repeat(2, 1fr); row-gap: 44px; }
	.fm-og-band { margin-top: 84px; flex-direction: column; align-items: flex-start; gap: 32px; padding: 72px 0; }
	.fm-og-legend { grid-template-columns: 1fr; gap: 14px; }

	.fm-bw-hero { grid-template-columns: 1fr; gap: 40px; margin-top: 28px; padding: 44px 0 72px; }
	.fm-bw-steps,
	.fm-sh-doors { padding-top: 84px; }
	.fm-bw-steps__grid { grid-template-columns: repeat(2, 1fr); row-gap: 40px; }
	.fm-bw-numbers { margin-top: 84px; padding: 72px 0; }
	.fm-bw-ambient { padding: 72px 0; }

	.fm-sh-manifesto { padding-top: 72px; }
	.fm-sh-wide { margin-top: 72px; padding: 72px 0; }
	.fm-sh-kinds { margin-top: 84px; padding: 72px 0; }
	.fm-sh-kinds__grid { grid-template-columns: 1fr; gap: 40px; }
	.fm-sh-closing { flex-direction: column; align-items: flex-start; gap: 28px; padding: 72px 0; }

	.fm-cta { margin-top: 72px; padding: 72px 0; }
}

@media (max-width: 620px) {
	.fm-og-records,
	.fm-bw-steps__grid,
	.fm-sh-doors__grid { grid-template-columns: 1fr; row-gap: 44px; }

	.fm-pghead__title { font-size: 40px; }
	.fm-pghead__cn { font-size: 22px; }
	.fm-og-lead,
	.fm-bw-hero__lead,
	.fm-sh-manifesto__lead { font-size: 27px; }
	.fm-og-band__lead,
	.fm-sh-closing__lead { font-size: 24px; }
	.fm-cta__title { font-size: 24px; }

	.fm-sechead { flex-direction: column; align-items: flex-start; gap: 8px; }
	.fm-film__badge svg { width: 120px; height: 120px; }
	.fm-film--sm .fm-film__badge svg { width: 64px; height: 64px; }

	.fm-bw-table { table-layout: auto; }
	.fm-bw-table th,
	.fm-bw-table td { padding: 14px 6px 14px 0; font-size: 11px; }
	.fm-bw-table th:first-child { width: 34%; }
	.fm-bw-table tbody th { font-size: 12.5px; }
	.fm-og-legend li { font-size: 13px; }
	.fm-og-map__cap { bottom: 12px; left: 12px; font-size: 8.5px; }
	.fm-og-map__marker i { width: 18px; height: 18px; }
}

/* ==========================================================================
   单山页 · Tea Mountain（/forest-archive/{county}/{slug}/）
   同一条 750 竖栏：面包屑 → 山名 → 图 → 四格数据 → 三段正文 → 相关推荐
   ========================================================================== */

/* 面包屑 */
.fm-bc {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 9px;
	margin: 0 0 40px;
	font: 400 10px/1.4 var(--sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-bc a { color: var(--muted); }
.fm-bc a:hover { color: var(--forest); }
.fm-bc__sep { color: #b6c6ba; }
.fm-bc__now { color: var(--forest); }

/* 山名区 */
.fm-ms-head { padding-bottom: 4px; }
.fm-ms-head__en {
	margin: 16px 0 0;
	font: 400 54px/1.06 var(--serif);
	letter-spacing: -.035em;
	color: var(--forest-dark);
}
.fm-ms-head__cn {
	margin: 14px 0 0;
	font: 400 20px/1.4 var(--sans);
	letter-spacing: .16em;
	color: var(--forest);
}
.fm-ms-head__region {
	margin: 18px 0 0;
	font: 400 11px/1.6 var(--sans);
	letter-spacing: .08em;
	color: var(--muted);
}

/* 主图：和县页同一套 750 × 500 */
.fm-ms-photo { margin: 48px 0 0; }

/* 四格数据：单山页没有对比对象，不出海拔条，纯数值 */
.fm-ms-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: 44px 0 0;
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}
.fm-ms-facts > div {
	padding: 20px 22px 22px;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.fm-ms-facts dt {
	font: 500 9.5px/1.3 var(--sans);
	letter-spacing: .17em;
	text-transform: uppercase;
	color: var(--muted);
}
.fm-ms-facts dd {
	margin: 9px 0 0;
	font: 400 14px/1.7 var(--sans);
	color: var(--ink);
}
.fm-ms-facts dd em {
	margin-left: 6px;
	font-style: normal;
	font-size: 11px;
	color: var(--muted);
}

/* 正文三段 */
.fm-ms-sec { margin: 72px 0 0; }
.fm-ms-sec__title { margin: 0; }
.fm-ms-sec__en {
	display: block;
	font: 500 10px/1.3 var(--sans);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--tea);
}
.fm-ms-sec__cn {
	display: block;
	margin-top: 12px;
	font: 400 23px/1.35 var(--serif);
	letter-spacing: .04em;
	color: var(--forest-dark);
}
.fm-ms-sec__lead {
	margin: 18px 0 0;
	font: 400 13.5px/1.75 var(--sans);
	letter-spacing: .01em;
	color: var(--muted);
}
.fm-ms-sec__body {
	margin: 20px 0 0;
	font: 400 15.5px/2.05 var(--sans);
	letter-spacing: .015em;
	color: var(--ink);
	text-align: justify;
}

/* 待补提示：不编数字，把缺口摆出来 */
.fm-ms-pending {
	margin: 64px 0 0;
	padding: 18px 20px;
	border: 1px dashed #c3d0c6;
	background: rgba(217, 228, 222, .28);
	font: 400 12px/1.85 var(--sans);
	color: var(--muted);
}
.fm-ms-pending__tag {
	display: inline-block;
	margin-right: 8px;
	font-weight: 500;
	font-size: 9.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tea);
}

/* 相关推荐：同县另四座 */
.fm-ms-rel {
	margin: 96px 0 0;
	padding-top: 34px;
	border-top: 1px solid var(--line);
}
.fm-ms-rel__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px 28px;
	margin-top: 28px;
}
.fm-ms-rel__item { display: block; }
.fm-ms-rel__plate {
	position: relative;
	display: grid;
	aspect-ratio: 3 / 2;
	place-items: center;
	overflow: hidden;
	background: var(--mist);
	border: 1px solid var(--line);
	color: #8ba396;
	font: 500 8.5px/1.4 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
}
.fm-ms-rel__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fm-ms-rel__idx {
	display: block;
	margin-top: 14px;
	font: 500 9.5px/1 var(--sans);
	letter-spacing: .16em;
	color: var(--tea);
}
.fm-ms-rel__en {
	display: block;
	margin-top: 7px;
	font: 400 20px/1.2 var(--serif);
	color: var(--forest-dark);
}
.fm-ms-rel__cn {
	display: block;
	margin-top: 4px;
	font: 400 12px/1.4 var(--sans);
	letter-spacing: .1em;
	color: var(--muted);
}
.fm-ms-rel__item:hover .fm-ms-rel__en { color: var(--tea); }

/* 底部两个出口 */
.fm-ms-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 88px 0 0;
	padding: 26px 0 0;
	border-top: 1px solid var(--line);
	font: 400 11px/1 var(--sans);
	letter-spacing: .12em;
	text-transform: uppercase;
}
.fm-ms-cta a { color: var(--muted); }
.fm-ms-cta a:hover { color: var(--forest); }
.fm-ms-cta__shop { color: var(--forest) !important; }

@media (max-width: 900px) {
	.fm-ms-head__en { font-size: 40px; }
	.fm-ms-head__cn { font-size: 17px; }
	.fm-ms-photo { margin-top: 36px; }
	.fm-ms-facts { grid-template-columns: minmax(0, 1fr); margin-top: 32px; }
	.fm-ms-sec { margin-top: 52px; }
	.fm-ms-sec__cn { font-size: 20px; }
	.fm-ms-sec__body { font-size: 15px; line-height: 1.95; }
	.fm-ms-rel { margin-top: 64px; }
	.fm-ms-rel__grid { gap: 28px 18px; margin-top: 22px; }
	.fm-ms-rel__en { font-size: 17px; }
	.fm-ms-cta { margin-top: 60px; }
}

/* ==========================================================================
 * 两个品牌页：About / Contact（2.2.11）
 *
 * 没有独立画板，语言从 Origins / Brewing / Start Here 三页延展：
 *   页头 .fm-pghead → 论点（左字右图）→ 通栏图 → 三段 / 表单 → 深色条 → 收尾 .fm-cta
 * 内容原则与全站一致：中文繁体、英文在前、图位留空、未知数据写 TBC。
 * 深色条直接复用 .fm-og-band（当年为 Origins 建的，样式通用，不重复写一份）。
 * ========================================================================== */

/* ---------- About ---------- */
.fm-ab { padding: 104px 0 0; }

/* 论点：左一句主张，右一张竖图 —— 与 Origins 同尺寸，两页并排看是齐的 */
.fm-ab-thesis {
	display: grid;
	grid-template-columns: 560px 532px;
	gap: 88px;
	align-items: start;
	padding: 88px 0 0;
}
.fm-ab-lead,
.fm-ct-lead {
	margin: 0;
	color: var(--forest-dark);
	font: 400 clamp(30px, 3.4vw, 42px)/1.3 var(--serif);
	letter-spacing: -.02em;
}
.fm-ab-lead__cn,
.fm-ct-lead__cn {
	margin: 22px 0 0;
	color: var(--forest);
	font: 400 19px/1.65 var(--serif);
	letter-spacing: .04em;
}
.fm-ab-body,
.fm-ct-body {
	max-width: 470px;
	margin: 30px 0 0;
	color: var(--muted);
	font: 400 14px/1.9 var(--sans);
}
.fm-ab-body-cn,
.fm-ct-body-cn {
	max-width: 470px;
	margin: 9px 0 0;
	color: #8a9c90;
	font: 400 12px/1.9 var(--sans);
	letter-spacing: .03em;
}

/* 落款：一条细线，左右各一半，不署名到人 */
.fm-ab-sig {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px 20px;
	max-width: 470px;
	margin: 40px 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--line);
}
.fm-ab-sig span:first-child {
	color: var(--forest-dark);
	font: 500 10px/1.6 var(--sans);
	letter-spacing: .18em;
	text-transform: uppercase;
}
.fm-ab-sig span:last-child {
	color: #8a9c90;
	font: 400 11px/1.6 var(--sans);
	letter-spacing: .1em;
}

/* 通栏图位：1180×460 */
.fm-ab-wide { padding: 118px 0 0; }

/* 一封信的三段路 */
.fm-ab-steps { padding: 118px 0 0; }
.fm-ab-steps__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin-top: 30px;
}
.fm-ab-step { display: flex; flex-direction: column; }
.fm-ab-step__idx {
	margin: 20px 0 0;
	color: var(--tea);
	font: 500 10px/1 var(--sans);
	letter-spacing: .16em;
}
.fm-ab-step__name {
	margin: 7px 0 0;
	color: var(--forest-dark);
	font: 400 19px/1.4 var(--serif);
	letter-spacing: .02em;
}
.fm-ab-step__name span {
	display: block;
	margin-top: 5px;
	color: var(--forest);
	font: 400 14px/1.4 var(--serif);
	letter-spacing: .1em;
}
.fm-ab-step__desc {
	margin: 14px 0 0;
	color: var(--muted);
	font: 400 12.5px/1.8 var(--sans);
}
.fm-ab-step__desc-cn {
	/* 留 20px 兜底：最高那一栏 auto 分不到空隙，细线会贴住正文 */
	margin: 6px 0 20px;
	color: #8a9c90;
	font: 400 12.5px/1.8 var(--sans);
	letter-spacing: .03em;
}
.fm-ab-step__link {
	/* 三栏正文行数不一样，链接要压到卡片底部对齐 —— 不然三条细线参差不齐 */
	margin: 20px 0 0;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid var(--line);
	color: var(--forest);
	font: 400 10px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
}
.fm-ab-step__link:hover { color: var(--tea); }

/* 深色条：留白。左边一句主张，右边三条规矩，靠细线分隔 */
.fm-ab-blank {
	margin-top: 118px;
	padding: 96px 0;
	color: var(--white);
	--bleed: var(--forest-dark);
}
.fm-ab-blank .fm-kicker { color: var(--tea-light); }
.fm-ab-blank__grid {
	display: grid;
	grid-template-columns: 380px 1fr;
	gap: 100px;
	align-items: start;
}
.fm-ab-blank__lead {
	margin: 0;
	font: 400 28px/1.42 var(--serif);
	letter-spacing: -.01em;
}
.fm-ab-blank__cn {
	margin: 14px 0 0;
	color: #c6d7c4;
	font: 400 14px/1.8 var(--serif);
	letter-spacing: .04em;
}
.fm-ab-blank__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.fm-ab-blank__item {
	display: grid;
	grid-template-columns: 46px 1fr;
	gap: 22px;
	padding: 22px 0;
	border-top: 1px solid rgba(198, 215, 196, .22);
}
.fm-ab-blank__item:last-child { border-bottom: 1px solid rgba(198, 215, 196, .22); }
.fm-ab-blank__idx {
	color: var(--tea-light);
	font: 500 10px/1.9 var(--sans);
	letter-spacing: .16em;
}
.fm-ab-blank__name {
	margin: 0;
	color: var(--white);
	font: 400 16px/1.5 var(--serif);
	letter-spacing: .02em;
}
.fm-ab-blank__desc {
	margin: 8px 0 0;
	color: #c6d7c4;
	font: 400 12.5px/1.8 var(--sans);
}
.fm-ab-blank__desc-cn {
	margin: 4px 0 0;
	color: #9db5a8;
	font: 400 12.5px/1.8 var(--sans);
	letter-spacing: .03em;
}

/* ---------- Contact ---------- */
.fm-ct { padding: 104px 0 0; }
/* 470 + 144 + 566 = 1180：左边说明，右边表单，右栏略宽是给输入框留的 */
.fm-ct-grid {
	display: grid;
	grid-template-columns: 470px 566px;
	gap: 144px;
	align-items: start;
	padding: 88px 0 0;
}
/* 左栏只有 470 宽，42px 的标题会折成三行、末行只剩一个词。
   收小到 34px 让这句话落在两行 —— 字号不同不影响它是同级标题。 */
.fm-ct-lead {
	font: 400 clamp(26px, 2.8vw, 34px)/1.32 var(--serif);
}

/* 联络渠道：label 在左、值在右，一行一条细线 */
.fm-ct-channels {
	margin: 44px 0 0;
	padding: 0;
	border-top: 1px solid var(--forest-dark);
}
.fm-ct-channel {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	padding: 15px 0;
	border-bottom: 1px solid var(--line);
}
.fm-ct-channel dt {
	flex: 0 0 auto;
	color: #8a9c90;
	font: 500 9.5px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
}
.fm-ct-channel dd {
	margin: 0;
	color: var(--forest-dark);
	font: 400 14.5px/1.5 var(--serif);
	letter-spacing: .02em;
	text-align: right;
}
/* 未填的格子：字变小、变灰，一眼能看出是空的 */
.fm-ct-channel dd.is-tbc {
	color: #a4b2a6;
	font: 400 11.5px/1.6 var(--sans);
	letter-spacing: .1em;
}

/* 表单：一块米白板，直角，靠 inset 描边不占位 */
.fm-ct-form {
	padding: 40px 40px 42px;
	background: var(--white);
	box-shadow: inset 0 0 0 1px var(--line);
}
.fm-ct-form__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--forest-dark);
}
.fm-ct-form__title {
	margin: 0;
	color: var(--forest-dark);
	font: 400 20px/1.3 var(--serif);
	letter-spacing: .02em;
}
.fm-ct-form__title span {
	display: block;
	margin-top: 5px;
	color: var(--forest);
	font: 400 13px/1.3 var(--serif);
	letter-spacing: .1em;
}
.fm-ct-form__state {
	flex: 0 0 auto;
	margin: 2px 0 0;
	color: #a4b2a6;
	font: 400 9.5px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	text-align: right;
}
.fm-ct-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 24px;
	margin-top: 26px;
}
.fm-ct-field--wide { grid-column: 1 / -1; }
.fm-ct-field label {
	display: block;
	color: #8a9c90;
	font: 500 9.5px/1.6 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
}
.fm-ct-field input,
.fm-ct-field select,
.fm-ct-field textarea {
	display: block;
	width: 100%;
	margin-top: 9px;
	padding: 11px 12px;
	border: 1px solid var(--line);
	border-radius: 0;
	background: var(--cloud);
	color: var(--ink);
	font: 400 13px/1.6 var(--sans);
	-webkit-appearance: none;
	appearance: none;
}
.fm-ct-field textarea { min-height: 116px; resize: vertical; }
.fm-ct-field input::placeholder,
.fm-ct-field textarea::placeholder { color: #a9b8ad; }
.fm-ct-field input:focus,
.fm-ct-field select:focus,
.fm-ct-field textarea:focus {
	border-color: var(--forest);
	background: var(--white);
	outline: none;
}
.fm-ct-form__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid var(--line);
}
.fm-ct-form__note {
	margin: 0;
	color: #a4b2a6;
	font: 400 9.5px/1.7 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
}
.fm-ct-form__send {
	min-width: 168px;
	justify-content: center;
}
/* 表單未接入时：整块禁用，鼠标划过去是 not-allowed */
.fm-ct-form.is-off .fm-ct-field input,
.fm-ct-form.is-off .fm-ct-field select,
.fm-ct-form.is-off .fm-ct-field textarea,
.fm-ct-form.is-off .fm-ct-form__send {
	cursor: not-allowed;
	opacity: .72;
}

@media (max-width: 1100px) {
	.fm-ab-thesis { grid-template-columns: 1fr; gap: 40px; }
	.fm-ab-thesis > * { max-width: 532px; }
	.fm-ab-blank__grid { grid-template-columns: 1fr; gap: 40px; }
	.fm-ct-grid { grid-template-columns: 1fr; gap: 56px; }
}

@media (max-width: 760px) {
	.fm-ab,
	.fm-ct { padding: 64px 0 0; }
	.fm-ab-thesis,
	.fm-ct-grid { padding-top: 48px; }
	.fm-ab-steps { padding-top: 72px; }
	.fm-ab-steps__grid { grid-template-columns: 1fr; gap: 40px; }
	.fm-ab-blank { margin-top: 72px; padding: 64px 0; }
	.fm-ab-plate-wrap { padding-top: 72px; }
	.fm-ab-wide { padding-top: 72px; }
	.fm-ct-fields { grid-template-columns: 1fr; }
	.fm-ct-form { padding: 26px 22px 28px; }
	.fm-ct-form__head { flex-direction: column; gap: 8px; }
	.fm-ct-form__state { text-align: left; }
	.fm-ct-channel { flex-direction: column; align-items: flex-start; gap: 5px; }
	.fm-ct-channel dd { text-align: left; }
}

/* ==========================================================================
 * 深色区块里的文字颜色（2.2.12 起，2.2.13 补完）
 *
 * 病根：theme.json 的 styles.elements / styles.blocks 会被 WordPress 生成成
 *       打印在 <head> 里的「元素级」全局样式：
 *           h1, h2 { color: #14372d }           ← 墨绿
 *           h3     { color: #3b342d }           ← 树皮
 *           :root :where(p) { color: #62766b }  ← 灰绿
 *       它们直接作用在元素上，**压过 .fm-forest{color:#fff} 这类靠继承的写法**。
 *       深绿底 (#1f4a3a / #14372d) 遇上这三个颜色，等于看不见。
 * 实测取样：标题 #14372d、卡片标题 #3b342d、段落 #62766b。
 *
 * 2.2.13 的做法（分层，靠特异性，不靠 !important）：
 *   ① theme.json 删掉 blocks.core.paragraph.color —— 段落不再被元素级规则按住；
 *      否则 .fm-og-band__lead{color:#fff} 这种 (0,1,0) 会和
 *      :root :where(p) (0,1,0) 平手，谁在 <head> 里靠后就看运气。
 *   ② 删掉之后，立刻用零特异性 :where(p) 把原来的 --muted 补回来 ——
 *      浅底页面一个像素都不变，而任何类名规则都能盖住它。
 *
 * 只补真正掉了的，不动本来就正常的：
 *   掉色的是 h2/h3 标题、.fm-kicker（默认 --tea，深底上只有 2.7）、
 *   三个 __lead 主句（原来没写颜色，被全局规则压成 --muted）。
 *   而 .fm-forest .fm-copy / .fm-pillar p / .fm-path--dark p 本来就有
 *   #c6d7c4，2.2.12 是好的，这次一条都不碰。
 *
 * 规则：深底标题 #e8cf94（= 同块中文行在用的那个黄，取样值，不另调一个黄）；
 *      主句 --white；kicker --tea-light。
 *
 * ⚠️ 以后新增深底段落，先看它有没有自己的颜色类；没有就在下面补一条
 *    「容器 + 元素」的规则（至少 (0,1,1)），别指望继承。
 * ========================================================================== */

/* ① 段落兜底：还原 theme.json 删掉的那个默认色，零特异性 = 谁都能盖 */
:where(p) { color: var(--muted); }

/* ② 深底标题：一律茶金（原来掉回 #14372d / #3b342d 的那几个） */
.fm-forest h2,
.fm-forest h3,
.fm-brew-copy h2,
.fm-brew-copy h3,
.fm-path--dark h3,
.fm-closing__title,
.fm-origin-cta h3 {
	color: #e8cf94;
}

/* ③ 深底 kicker：茶金（.fm-kicker 默认是 --tea，在深绿上只有 2.7） */
.fm-forest .fm-kicker,
.fm-brew-copy .fm-kicker,
.fm-path--dark .fm-path-kicker {
	color: var(--tea-light);
}

/* ④ 深底主句：纯白，比正文再提一档 */
.fm-og-band .fm-og-band__lead,
.fm-ab-blank .fm-ab-blank__lead,
.fm-sh-closing .fm-sh-closing__lead {
	color: var(--white);
}
