/* =============================================================
   Leisure City Portal — 设计 Token 与基础样式
   前缀统一 --lcp- / .lcp-（BEM）。设计规范见 design-spec.md。
   ============================================================= */

/* ---- 设计 Token ---- */
:root {
	/* 主色：青绿 */
	--lcp-primary:        #0B7A6E;
	--lcp-primary-strong: #085F55;
	--lcp-primary-soft:   #E3F2EF;
	--lcp-primary-muted:  #A7D8CE;
	--lcp-primary-contrast: #FFFFFF;

	/* 次色：暖米 */
	--lcp-beige:        #F7F3EC;
	--lcp-beige-strong: #EFE8DA;
	--lcp-beige-muted:  #E2D8C5;

	/* 强调色：原木 */
	--lcp-wood:      #A9743F;
	--lcp-wood-soft: #F3E8DA;
	--lcp-wood-deep: #8A5A2E;

	/* 语义色 */
	--lcp-success:      #15803D;
	--lcp-success-soft: #E4F2E9;
	--lcp-warning:      #B45309;
	--lcp-warning-soft: #FBEEDC;
	--lcp-error:        #B42318;
	--lcp-error-soft:   #FBE6E4;
	--lcp-info:         #1E6FA8;
	--lcp-info-soft:    #E4F0F8;

	/* 中性色阶 */
	--lcp-neutral-0:   #FFFFFF;
	--lcp-neutral-50:  #FBF9F6;
	--lcp-neutral-100: #F4F1EB;
	--lcp-neutral-200: #E8E3D9;
	--lcp-neutral-300: #D6CFC2;
	--lcp-neutral-400: #B4AC9E;
	--lcp-neutral-500: #8A8377;
	--lcp-neutral-600: #6B655B;
	--lcp-neutral-700: #4E4941;
	--lcp-neutral-800: #332F29;
	--lcp-neutral-900: #201D18;

	/* 四大板块专属色 */
	--lcp-sector-spa:     #0B7A6E;
	--lcp-sector-foot:    #2E7D5B;
	--lcp-sector-massage: #A9743F;
	--lcp-sector-sauna:   #C15C3D;

	/* 功能色 */
	--lcp-rating: #E9A23B;
	--lcp-link:   var(--lcp-primary);
	--lcp-link-hover: var(--lcp-primary-strong);
	--lcp-overlay: rgba(32, 29, 24, 0.55);

	/* 字体栈（中文系统字体，不引入 Google Fonts） */
	--lcp-font-sans: -apple-system, "PingFang SC", "Hiragino Sans GB",
		"Microsoft YaHei", "微软雅黑", "Source Han Sans SC", "Noto Sans CJK SC",
		"WenQuanYi Micro Hei", system-ui, "Segoe UI", sans-serif;
	--lcp-font-num: var(--lcp-font-sans);

	/* 字号 */
	--lcp-font-xs:   0.75rem;
	--lcp-font-sm:   0.875rem;
	--lcp-font-base: 1rem;
	--lcp-font-md:   1.125rem;
	--lcp-font-lg:   1.25rem;
	--lcp-font-xl:   1.5rem;
	--lcp-font-2xl:  1.875rem;
	--lcp-font-3xl:  2.25rem;
	--lcp-font-hero: clamp(2rem, 4vw + 0.5rem, 3.25rem);

	/* 行高 */
	--lcp-leading-tight:  1.3;
	--lcp-leading-normal: 1.6;
	--lcp-leading-loose:  1.8;

	/* 字重 */
	--lcp-weight-regular: 400;
	--lcp-weight-medium:  500;
	--lcp-weight-semibold: 600;
	--lcp-weight-bold:    700;

	/* 间距（4px 基准） */
	--lcp-space-1:  0.25rem;
	--lcp-space-2:  0.5rem;
	--lcp-space-3:  0.75rem;
	--lcp-space-4:  1rem;
	--lcp-space-5:  1.25rem;
	--lcp-space-6:  1.5rem;
	--lcp-space-8:  2rem;
	--lcp-space-10: 2.5rem;
	--lcp-space-12: 3rem;
	--lcp-space-16: 4rem;
	--lcp-section-gap: var(--lcp-space-16);

	/* 容器 / 栅格 */
	--lcp-container: 1200px;
	--lcp-gutter: 24px;
	--lcp-gutter-sm: 16px;
	--lcp-radius-sm: 6px;
	--lcp-radius-md: 10px;
	--lcp-radius-lg: 16px;
	--lcp-radius-pill: 999px;

	--lcp-border: 1px solid var(--lcp-neutral-200);
	--lcp-shadow-sm: 0 1px 2px rgba(32, 29, 24, 0.06);
	--lcp-shadow-md: 0 4px 12px rgba(32, 29, 24, 0.08);
	--lcp-shadow-lg: 0 12px 32px rgba(32, 29, 24, 0.12);

	/* 断点 */
	--lcp-bp-md: 768px;
	--lcp-bp-lg: 1200px;
}

/* ---- Reset / Base ---- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: var(--lcp-font-sans);
	font-size: var(--lcp-font-base);
	line-height: var(--lcp-leading-normal);
	color: var(--lcp-neutral-800);
	background: var(--lcp-beige);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	line-height: var(--lcp-leading-tight);
	color: var(--lcp-neutral-900);
	margin: 0 0 var(--lcp-space-4);
}

p {
	margin: 0 0 var(--lcp-space-4);
}

a {
	color: var(--lcp-link);
	text-decoration: none;
}

a:hover {
	color: var(--lcp-link-hover);
}

img {
	max-width: 100%;
	height: auto;
}

.price, .lcp-rating__value, .lcp-phone, .lcp-card__price {
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum";
}

/* ---- 无障碍 ---- */
.lcp-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--lcp-primary);
	color: #fff;
	padding: var(--lcp-space-2) var(--lcp-space-4);
	z-index: 9999;
	border-radius: 0 0 var(--lcp-radius-md) 0;
}

.lcp-skip-link:focus {
	left: 0;
	color: #fff;
}

:focus-visible {
	outline: 3px solid var(--lcp-primary-muted);
	outline-offset: 2px;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}

.lcp-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ---- 布局容器 ---- */
.lcp-container {
	max-width: var(--lcp-container);
	margin-inline: auto;
	padding-inline: var(--lcp-gutter-sm);
}

.lcp-main {
	min-height: 60vh;
}

.lcp-section {
	padding-block: var(--lcp-space-10);
}

.lcp-section--alt {
	background: var(--lcp-neutral-0);
}

.lcp-section-title {
	font-size: var(--lcp-font-2xl);
	font-weight: var(--lcp-weight-semibold);
}

.lcp-section-sub {
	color: var(--lcp-neutral-600);
	max-width: 640px;
}

.lcp-section__more {
	margin-top: var(--lcp-space-6);
	text-align: center;
}

.lcp-page-header {
	margin-bottom: var(--lcp-space-6);
}

.lcp-page-title {
	font-size: var(--lcp-font-3xl);
	font-weight: var(--lcp-weight-bold);
	margin-bottom: var(--lcp-space-3);
}

.lcp-page-sub {
	font-size: var(--lcp-font-md);
	color: var(--lcp-neutral-600);
}

.lcp-empty {
	padding: var(--lcp-space-10);
	text-align: center;
	color: var(--lcp-neutral-600);
	background: var(--lcp-neutral-0);
	border: var(--lcp-border);
	border-radius: var(--lcp-radius-lg);
}

.lcp-list-seo {
	margin-top: var(--lcp-space-8);
	font-size: var(--lcp-font-sm);
	color: var(--lcp-neutral-500);
}

.lcp-prose {
	line-height: var(--lcp-leading-loose);
	color: var(--lcp-neutral-700);
}

/* ---- 栅格 ---- */
.lcp-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--lcp-gutter-sm);
}

/* ---- 按钮 ---- */
.lcp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.625rem 1.25rem;
	border-radius: var(--lcp-radius-md);
	font-size: var(--lcp-font-base);
	font-weight: var(--lcp-weight-medium);
	line-height: 1.4;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
	white-space: nowrap;
	font-family: inherit;
}

.lcp-btn:focus-visible {
	outline: 3px solid var(--lcp-primary-muted);
	outline-offset: 2px;
}

.lcp-btn--primary { background: var(--lcp-primary); color: var(--lcp-primary-contrast); }
.lcp-btn--primary:hover { background: var(--lcp-primary-strong); color: #fff; }

.lcp-btn--secondary {
	background: var(--lcp-neutral-100);
	color: var(--lcp-neutral-800);
	border-color: var(--lcp-neutral-200);
}
.lcp-btn--secondary:hover { background: var(--lcp-neutral-200); }

.lcp-btn--ghost { background: transparent; color: var(--lcp-primary); border-color: var(--lcp-primary); }
.lcp-btn--ghost:hover { background: var(--lcp-primary-soft); }

.lcp-btn--ghost-on-dark { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.7); }
.lcp-btn--ghost-on-dark:hover { background: rgba(255, 255, 255, 0.12); }

.lcp-btn--sm { padding: 0.375rem 0.875rem; font-size: var(--lcp-font-sm); }
.lcp-btn--lg { padding: 0.875rem 1.75rem; font-size: var(--lcp-font-md); }
.lcp-btn--block { width: 100%; }

.lcp-btn:disabled { background: var(--lcp-neutral-200); color: var(--lcp-neutral-500); cursor: not-allowed; }

/* ---- 卡片 ---- */
.lcp-card {
	background: var(--lcp-neutral-0);
	border: var(--lcp-border);
	border-radius: var(--lcp-radius-lg);
	overflow: hidden;
	box-shadow: var(--lcp-shadow-sm);
	transition: box-shadow 0.2s, transform 0.2s;
	position: relative;
	display: flex;
	flex-direction: column;
}

.lcp-card:hover { box-shadow: var(--lcp-shadow-md); transform: translateY(-2px); }

.lcp-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--lcp-beige-strong);
	display: block;
}

.lcp-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.lcp-card__placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: var(--lcp-font-3xl);
	font-weight: var(--lcp-weight-bold);
	color: var(--lcp-primary-muted);
	background: var(--lcp-beige-strong);
}

.lcp-card__placeholder--large { min-height: 320px; }

.lcp-card__body { padding: var(--lcp-space-4); flex: 1; }

.lcp-card__title {
	font-size: var(--lcp-font-lg);
	font-weight: var(--lcp-weight-semibold);
	color: var(--lcp-neutral-900);
	margin: 0 0 var(--lcp-space-2);
}

.lcp-card__title a { color: inherit; }
.lcp-card__title a:hover { color: var(--lcp-link-hover); }

.lcp-card__meta { font-size: var(--lcp-font-sm); color: var(--lcp-neutral-600); margin: 0; }

.lcp-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--lcp-space-3) var(--lcp-space-4);
	border-top: var(--lcp-border);
	gap: var(--lcp-space-2);
}

/* 商家卡片 */
.lcp-card--business .lcp-card__badge { position: absolute; top: 0.75rem; left: 0.75rem; z-index: 1; }
.lcp-card--business .lcp-card__verified { position: absolute; top: 0.75rem; right: 0.75rem; z-index: 1; }

.lcp-card--business .lcp-card__rating {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	font-size: var(--lcp-font-sm);
	color: var(--lcp-neutral-600);
	margin-bottom: 0.5rem;
}

.lcp-card--business .lcp-card__services {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	margin-top: 0.75rem;
}

.lcp-card--business .lcp-card__price {
	color: var(--lcp-wood-deep);
	font-weight: var(--lcp-weight-semibold);
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
}

.lcp-card--business .lcp-card__phone {
	font-size: var(--lcp-font-sm);
	color: var(--lcp-primary);
	white-space: nowrap;
}

/* 资讯卡片 */
.lcp-card--post .lcp-card__media { aspect-ratio: 16 / 9; }

.lcp-card--post .lcp-card__cat {
	font-size: var(--lcp-font-xs);
	color: var(--lcp-primary);
	font-weight: var(--lcp-weight-medium);
	margin-bottom: 0.5rem;
	display: inline-block;
}

.lcp-card--post .lcp-card__excerpt {
	font-size: var(--lcp-font-sm);
	color: var(--lcp-neutral-600);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.lcp-card--post .lcp-card__date { font-size: var(--lcp-font-xs); color: var(--lcp-neutral-500); }

/* ---- 表单 ---- */
.lcp-form-field {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
	margin-bottom: var(--lcp-space-4);
}

.lcp-form-field label {
	font-size: var(--lcp-font-sm);
	font-weight: var(--lcp-weight-medium);
	color: var(--lcp-neutral-700);
}

.lcp-input, .lcp-select, .lcp-textarea {
	width: 100%;
	padding: 0.625rem 0.875rem;
	font-size: var(--lcp-font-base);
	font-family: inherit;
	color: var(--lcp-neutral-800);
	background: var(--lcp-neutral-0);
	border: 1px solid var(--lcp-neutral-300);
	border-radius: var(--lcp-radius-md);
	transition: border-color 0.15s, box-shadow 0.15s;
}

.lcp-input::placeholder { color: var(--lcp-neutral-500); }

.lcp-input:focus, .lcp-select:focus, .lcp-textarea:focus {
	outline: none;
	border-color: var(--lcp-primary);
	box-shadow: 0 0 0 3px var(--lcp-primary-soft);
}

.lcp-input:disabled { background: var(--lcp-neutral-100); color: var(--lcp-neutral-500); }

/* 移动端表单字号 ≥16px，避免 iOS 自动缩放 */
@media (max-width: 767.98px) {
	.lcp-input, .lcp-select, .lcp-textarea { font-size: 16px; }
}

.lcp-form-hint { font-size: var(--lcp-font-xs); color: var(--lcp-neutral-500); }
.lcp-form-error { font-size: var(--lcp-font-xs); color: var(--lcp-error); }

.lcp-alert {
	padding: var(--lcp-space-3) var(--lcp-space-4);
	border-radius: var(--lcp-radius-md);
	margin-bottom: var(--lcp-space-4);
	font-size: var(--lcp-font-sm);
}

.lcp-alert--success { background: var(--lcp-success-soft); color: var(--lcp-success); }
.lcp-alert--error { background: var(--lcp-error-soft); color: var(--lcp-error); }

/* ---- 筛选栏 ---- */
.lcp-filter {
	background: var(--lcp-neutral-0);
	border: var(--lcp-border);
	border-radius: var(--lcp-radius-md);
	padding: var(--lcp-space-4);
	margin-bottom: var(--lcp-space-6);
}

.lcp-filter__row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lcp-space-3);
	align-items: flex-end;
}

.lcp-filter__item {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
	min-width: 160px;
	flex: 1 1 160px;
}

.lcp-filter__item label {
	font-size: var(--lcp-font-sm);
	font-weight: var(--lcp-weight-medium);
	color: var(--lcp-neutral-700);
}

.lcp-filter__actions {
	display: flex;
	gap: var(--lcp-space-2);
}

.lcp-filter__toggle { display: inline-flex; margin-bottom: var(--lcp-space-3); }

.lcp-filter__active-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin-bottom: var(--lcp-space-3);
}

.lcp-filter__tag {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.25rem 0.75rem;
	border-radius: var(--lcp-radius-pill);
	background: var(--lcp-primary-soft);
	color: var(--lcp-primary-strong);
	font-size: var(--lcp-font-sm);
}

.lcp-filter__reset {
	font-size: var(--lcp-font-sm);
	color: var(--lcp-neutral-600);
	text-decoration: underline;
}

/* ---- 搜索框 ---- */
.lcp-search { display: flex; gap: 0.5rem; }
.lcp-search input { flex: 1; }

/* ---- 顶栏导航 ---- */
.lcp-nav {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--lcp-neutral-0);
	border-bottom: var(--lcp-border);
}

.lcp-nav__inner {
	max-width: var(--lcp-container);
	margin-inline: auto;
	padding-inline: var(--lcp-gutter-sm);
	display: flex;
	align-items: center;
	gap: var(--lcp-space-4);
	min-height: 64px;
}

.lcp-nav__logo {
	font-size: var(--lcp-font-xl);
	font-weight: var(--lcp-weight-bold);
	color: var(--lcp-primary);
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.lcp-nav__logo img { max-height: 44px; width: auto; }

.lcp-nav__menu {
	display: flex;
	gap: var(--lcp-space-5);
	list-style: none;
	margin: 0;
	padding: 0;
}

.lcp-nav__menu a {
	color: var(--lcp-neutral-700);
	text-decoration: none;
	font-size: var(--lcp-font-base);
	padding: 0.375rem 0;
	border-bottom: 2px solid transparent;
}

.lcp-nav__menu a:hover,
.lcp-nav__menu a[aria-current="page"] {
	color: var(--lcp-primary);
	border-bottom-color: var(--lcp-primary);
}

.lcp-nav__actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: var(--lcp-space-3);
}

.lcp-nav__search {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--lcp-radius-md);
	color: var(--lcp-neutral-700);
	font-size: var(--lcp-font-xl);
}

.lcp-nav__search:hover { background: var(--lcp-primary-soft); color: var(--lcp-primary); }

.lcp-nav__toggle {
	display: none;
	flex-direction: column;
	gap: 4px;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 8px;
}

.lcp-nav__toggle-bar {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--lcp-neutral-800);
	border-radius: 2px;
}

/* ---- 城市切换器 ---- */
.lcp-city-switcher { position: relative; }

.lcp-city-switcher__trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.5rem 0.875rem;
	border: 1px solid var(--lcp-neutral-200);
	border-radius: var(--lcp-radius-md);
	background: var(--lcp-neutral-0);
	color: var(--lcp-neutral-800);
	cursor: pointer;
	font-size: var(--lcp-font-sm);
	font-family: inherit;
}

.lcp-city-switcher__panel {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	width: 340px;
	max-width: 92vw;
	max-height: 420px;
	overflow: auto;
	background: var(--lcp-neutral-0);
	border: var(--lcp-border);
	border-radius: var(--lcp-radius-md);
	box-shadow: var(--lcp-shadow-lg);
	padding: var(--lcp-space-3);
	z-index: 300;
}

.lcp-city-switcher__panel[hidden] { display: none; }

.lcp-city-switcher__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.5rem;
}

.lcp-city-switcher__city {
	text-align: center;
	padding: 0.625rem 0.25rem;
	border-radius: var(--lcp-radius-sm);
	color: var(--lcp-neutral-700);
	text-decoration: none;
	font-size: var(--lcp-font-sm);
}

.lcp-city-switcher__city:hover { background: var(--lcp-primary-soft); color: var(--lcp-primary); }
.lcp-city-switcher__city.is-current { background: var(--lcp-primary); color: #fff; }

/* 九宫格版（首页城市聚合） */
.lcp-cities { padding-block: var(--lcp-space-10); background: var(--lcp-beige); }
.lcp-city-switcher--grid .lcp-city-switcher__grid { grid-template-columns: repeat(4, 1fr); }

/* ---- 页脚 ---- */
.lcp-footer {
	background: var(--lcp-neutral-900);
	color: var(--lcp-neutral-100);
	margin-top: var(--lcp-section-gap);
}

.lcp-footer__inner {
	max-width: var(--lcp-container);
	margin-inline: auto;
	padding: var(--lcp-space-12) var(--lcp-gutter-sm);
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--lcp-space-8);
}

.lcp-footer__logo {
	font-size: var(--lcp-font-xl);
	font-weight: var(--lcp-weight-bold);
	color: #fff;
	margin-bottom: var(--lcp-space-3);
}

.lcp-footer__brand p { font-size: var(--lcp-font-sm); color: var(--lcp-neutral-400); }

.lcp-footer h4 {
	color: #fff;
	font-size: var(--lcp-font-base);
	margin-bottom: var(--lcp-space-4);
}

.lcp-footer__list { list-style: none; margin: 0; padding: 0; }

.lcp-footer__list li { margin-bottom: var(--lcp-space-2); }

.lcp-footer a { color: var(--lcp-neutral-400); text-decoration: none; font-size: var(--lcp-font-sm); }
.lcp-footer a:hover { color: #fff; }

.lcp-footer__bottom {
	border-top: 1px solid var(--lcp-neutral-700);
	padding: var(--lcp-space-4) var(--lcp-gutter-sm);
	font-size: var(--lcp-font-xs);
	color: var(--lcp-neutral-400);
	text-align: center;
}

.lcp-footer__bottom p { margin: 0; }

/* ---- 徽章 / 标签 ---- */
.lcp-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.125rem 0.625rem;
	border-radius: var(--lcp-radius-pill);
	font-size: var(--lcp-font-xs);
	font-weight: var(--lcp-weight-medium);
	line-height: 1.5;
}

.lcp-badge--spa { background: var(--lcp-primary-soft); color: var(--lcp-primary-strong); }
.lcp-badge--foot { background: #E4F0E8; color: #1F5C43; }
.lcp-badge--massage { background: var(--lcp-wood-soft); color: var(--lcp-wood-deep); }
.lcp-badge--sauna { background: #F6E4DA; color: #8C3F24; }

.lcp-badge--verified { background: var(--lcp-success-soft); color: var(--lcp-success); }
.lcp-badge--verified::before { content: "✓"; font-weight: var(--lcp-weight-bold); }

.lcp-badge--price-1 { background: var(--lcp-success-soft); color: var(--lcp-success); }
.lcp-badge--price-2 { background: var(--lcp-info-soft); color: var(--lcp-info); }
.lcp-badge--price-3 { background: var(--lcp-wood-soft); color: var(--lcp-wood-deep); }

.lcp-tag {
	display: inline-flex;
	padding: 0.125rem 0.5rem;
	border-radius: var(--lcp-radius-sm);
	background: var(--lcp-neutral-100);
	color: var(--lcp-neutral-600);
	font-size: var(--lcp-font-xs);
}

.lcp-tag--feature { background: var(--lcp-primary-soft); color: var(--lcp-primary-strong); }

.lcp-tag-list { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* ---- 星级 ---- */
.lcp-rating { display: inline-flex; align-items: center; gap: 0.375rem; }
.lcp-rating__stars { color: var(--lcp-rating); letter-spacing: 0.1em; }
.lcp-rating__value { font-weight: var(--lcp-weight-semibold); color: var(--lcp-neutral-800); }
.lcp-rating__count { color: var(--lcp-neutral-500); font-size: var(--lcp-font-xs); }

/* ---- 面包屑 ---- */
.lcp-breadcrumb {
	font-size: var(--lcp-font-sm);
	color: var(--lcp-neutral-500);
	padding: var(--lcp-space-3) 0;
}

.lcp-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.lcp-breadcrumb li + li::before {
	content: "›";
	margin-right: 0.375rem;
	color: var(--lcp-neutral-400);
}

.lcp-breadcrumb a { color: var(--lcp-neutral-600); }
.lcp-breadcrumb a:hover { color: var(--lcp-link-hover); }
.lcp-breadcrumb [aria-current="page"] { color: var(--lcp-neutral-800); font-weight: var(--lcp-weight-medium); }

/* ---- 分页 ---- */
.lcp-pagination-wrap { margin-top: var(--lcp-space-10); }

.lcp-pagination-wrap .nav-links {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.lcp-pagination-wrap .page-numbers {
	min-width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: var(--lcp-border);
	border-radius: var(--lcp-radius-md);
	font-size: var(--lcp-font-sm);
	color: var(--lcp-neutral-700);
	text-decoration: none;
	padding-inline: 0.5rem;
}

.lcp-pagination-wrap .page-numbers:hover { border-color: var(--lcp-primary); color: var(--lcp-primary); }
.lcp-pagination-wrap .page-numbers.current { background: var(--lcp-primary); border-color: var(--lcp-primary); color: #fff; }
.lcp-pagination-wrap .page-numbers.dots { border: none; color: var(--lcp-neutral-400); }

/* ---- Hero ---- */
.lcp-hero {
	display: flex;
	flex-direction: column;
	gap: var(--lcp-space-6);
	background:
		linear-gradient(135deg, rgba(11, 122, 110, 0.2) 0%, rgba(11, 122, 110, 0) 70%),
		var(--lcp-beige-strong);
	padding-block: var(--lcp-space-12);
}

.lcp-hero__inner {
	display: flex;
	flex-direction: column;
	gap: var(--lcp-space-6);
}

.lcp-hero__title { font-size: var(--lcp-font-hero); font-weight: var(--lcp-weight-bold); }

.lcp-hero__lead { font-size: var(--lcp-font-xl); color: var(--lcp-primary-strong); margin-bottom: var(--lcp-space-3); }
.lcp-hero__sub { color: var(--lcp-neutral-600); max-width: 520px; }
.lcp-hero__cta { display: flex; gap: var(--lcp-space-3); flex-wrap: wrap; margin-top: var(--lcp-space-4); }

.lcp-hero__search {
	background: var(--lcp-neutral-0);
	border-radius: var(--lcp-radius-lg);
	padding: var(--lcp-space-5);
	box-shadow: var(--lcp-shadow-md);
}

.lcp-hero__quick { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: var(--lcp-space-4); }

.lcp-hero__quick-link {
	font-size: var(--lcp-font-sm);
	padding: 0.25rem 0.75rem;
	border-radius: var(--lcp-radius-pill);
	background: var(--lcp-primary-soft);
	color: var(--lcp-primary-strong);
}

/* ---- 板块入口卡片 ---- */
.lcp-sector-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.5rem;
	padding: var(--lcp-space-6) var(--lcp-space-4);
	background: var(--lcp-neutral-0);
	border: var(--lcp-border);
	border-radius: var(--lcp-radius-lg);
	text-decoration: none;
	color: var(--lcp-neutral-800);
	transition: box-shadow 0.2s, transform 0.2s;
}

.lcp-sector-card:hover { box-shadow: var(--lcp-shadow-md); transform: translateY(-2px); color: var(--lcp-neutral-800); }

.lcp-sector-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--lcp-primary-soft);
	color: var(--lcp-primary);
}

.lcp-sector-card--spa .lcp-sector-card__icon { color: var(--lcp-sector-spa); }
.lcp-sector-card--foot-bath .lcp-sector-card__icon { color: var(--lcp-sector-foot); }
.lcp-sector-card--massage .lcp-sector-card__icon { color: var(--lcp-sector-massage); }
.lcp-sector-card--sauna .lcp-sector-card__icon { color: var(--lcp-sector-sauna); }

.lcp-sector-card__name { font-size: var(--lcp-font-lg); font-weight: var(--lcp-weight-semibold); }
.lcp-sector-card__desc { font-size: var(--lcp-font-sm); color: var(--lcp-neutral-600); }

/* ---- 信任条 ---- */
.lcp-trust {
	background: var(--lcp-primary);
	color: #fff;
	padding-block: var(--lcp-space-8);
}

.lcp-trust__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--lcp-space-6);
}

.lcp-trust__item { display: flex; flex-direction: column; gap: 0.25rem; }
.lcp-trust__item strong { font-size: var(--lcp-font-lg); }
.lcp-trust__item span { font-size: var(--lcp-font-sm); opacity: 0.85; }

/* ---- 资讯分类导航 ---- */
.lcp-cat-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: var(--lcp-space-6);
}

.lcp-cat-nav__item {
	font-size: var(--lcp-font-sm);
	padding: 0.375rem 0.875rem;
	border-radius: var(--lcp-radius-pill);
	background: var(--lcp-neutral-100);
	color: var(--lcp-neutral-700);
	border: 1px solid var(--lcp-neutral-200);
}

.lcp-cat-nav__item:hover { color: var(--lcp-primary); }
.lcp-cat-nav__item.is-active { background: var(--lcp-primary); color: #fff; border-color: var(--lcp-primary); }

/* ---- 商家详情 ---- */
.lcp-single-business__top {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--lcp-space-6);
}

.lcp-single-business__media img { border-radius: var(--lcp-radius-lg); width: 100%; height: auto; display: block; }

.lcp-single-business__thumbs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 0.5rem;
	margin-top: 0.5rem;
}

.lcp-single-business__thumbs img {
	border-radius: var(--lcp-radius-sm);
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
}

.lcp-single-business__badges { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: var(--lcp-space-3); }
.lcp-single-business__rating { display: flex; align-items: center; gap: 0.5rem; margin-bottom: var(--lcp-space-3); }

.lcp-single-business__price { margin-bottom: var(--lcp-space-4); display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.lcp-single-business__price strong { font-size: var(--lcp-font-xl); color: var(--lcp-wood-deep); }
.lcp-label { font-size: var(--lcp-font-sm); color: var(--lcp-neutral-600); }

.lcp-single-business__meta { margin: 0 0 var(--lcp-space-4); }

.lcp-single-business__meta-row {
	display: grid;
	grid-template-columns: 88px 1fr;
	gap: var(--lcp-space-3);
	padding: var(--lcp-space-2) 0;
	border-bottom: 1px dashed var(--lcp-neutral-200);
}

.lcp-single-business__meta-row dt { color: var(--lcp-neutral-600); font-size: var(--lcp-font-sm); }
.lcp-single-business__meta-row dd { margin: 0; color: var(--lcp-neutral-800); }

.lcp-single-business__cta { display: flex; gap: var(--lcp-space-3); flex-wrap: wrap; }
.lcp-single-business__hint { font-size: var(--lcp-font-sm); color: var(--lcp-neutral-500); margin-top: var(--lcp-space-3); }

.lcp-single-business__section { margin-top: var(--lcp-space-8); padding-top: var(--lcp-space-6); border-top: var(--lcp-border); }
.lcp-single-business__section h2 { font-size: var(--lcp-font-xl); }

.lcp-disclaimer {
	font-size: var(--lcp-font-sm);
	color: var(--lcp-neutral-500);
	background: var(--lcp-neutral-50);
	padding: var(--lcp-space-3) var(--lcp-space-4);
	border-radius: var(--lcp-radius-md);
}

/* ---- 资讯详情 ---- */
.lcp-single-post__header { margin-bottom: var(--lcp-space-6); }
.lcp-single-post__meta { display: flex; gap: var(--lcp-space-4); flex-wrap: wrap; font-size: var(--lcp-font-sm); color: var(--lcp-neutral-600); }
.lcp-single-post__thumb { margin-bottom: var(--lcp-space-6); }
.lcp-single-post__thumb img { border-radius: var(--lcp-radius-lg); width: 100%; }
.lcp-single-post__cta {
	margin-top: var(--lcp-space-8);
	padding: var(--lcp-space-5);
	background: var(--lcp-primary-soft);
	border-radius: var(--lcp-radius-lg);
	display: flex;
	align-items: center;
	gap: var(--lcp-space-4);
	flex-wrap: wrap;
}
.lcp-single-post__cta p { margin: 0; font-weight: var(--lcp-weight-medium); color: var(--lcp-primary-strong); }

/* ---- 联系页 ---- */
.lcp-contact-grid { display: grid; grid-template-columns: 1fr; gap: var(--lcp-space-8); }
.lcp-contact-form { background: var(--lcp-neutral-0); border: var(--lcp-border); border-radius: var(--lcp-radius-lg); padding: var(--lcp-space-6); }

/* ---- 评论 ---- */
.lcp-comments { margin-top: var(--lcp-space-10); }
.lcp-comment-list { list-style: none; margin: 0; padding: 0; }
.lcp-comment-list .comment { margin-bottom: var(--lcp-space-4); padding: var(--lcp-space-4); background: var(--lcp-neutral-0); border: var(--lcp-border); border-radius: var(--lcp-radius-md); }
.lcp-comment-list .children { list-style: none; padding-left: var(--lcp-space-6); }

/* ---- 侧边栏 ---- */
.lcp-widget { margin-bottom: var(--lcp-space-6); }
.lcp-widget__title { font-size: var(--lcp-font-lg); }

/* ---- 404 ---- */
.lcp-404 { padding-block: var(--lcp-space-12); text-align: center; }

/* ---- 动效减弱 ---- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
