/* ① Hero —— 样式统一由 style.css 的 .hero 组件系统提供（SSOT），此处不再重复定义 */

/* Hero 轮播覆写 */
.hero-slider { border-radius: 0; background: none; }
.hero-slider .shop-slider-track { height: 100vh; height: var(--space-hero-height); }
.hero-slider .shop-slider-slide { height: 100vh; height: var(--space-hero-height); }
.hero-slider .shop-slider-slide img { height: 100%; object-fit: cover; }

/* 预订 widget（浮出 Hero 底部）*/
.booking-bar { position: relative; z-index: 3; margin-top: calc(-1 * var(--space-10)); max-width: var(--container-max); margin-inline: auto; padding-inline: var(--space-5); display: flex; justify-content: center; }
.booking-widget { background: rgb(var(--color-surface)); padding: var(--space-4) var(--space-6); max-width: 680px; width: 100%; color: rgb(var(--color-text-body)); box-shadow: var(--shadow-elevated); display: flex; align-items: flex-end; gap: var(--space-4); flex-wrap: wrap; }
.booking-widget .bw-field { flex: 1; min-width: 130px; }
.booking-widget .bw-field label { display: block; font-size: var(--text-xs); font-weight: var(--font-weight-medium); color: rgb(var(--color-text-muted)); margin-bottom: var(--space-1); letter-spacing: var(--letter-spacing-eyebrow); text-transform: uppercase; }
.booking-widget .bw-date-field { position: relative; cursor: pointer; }
.booking-widget .bw-field input,
.booking-widget .bw-field select { width: 100%; border: none; border-bottom: 1px solid rgb(var(--color-border-strong)); background: transparent; padding: var(--space-2) 0; font-family: var(--font-num); font-size: var(--text-base); color: rgb(var(--color-text-body)); min-height: 42px; transition: border-color var(--motion-duration-fast) var(--motion-ease-soft); }
.booking-widget .bw-field input:focus,
.booking-widget .bw-field select:focus { outline: none; border-bottom-color: rgb(var(--color-accent)); border-bottom-width: 2px; }
.booking-widget .bw-submit { flex-shrink: 0; }

/* ③ 核心服务入口 */
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.svc-card { position: relative; min-height: 280px; display: flex; align-items: flex-end; color: rgb(var(--color-on-primary)); text-decoration: none; overflow: hidden; background: rgb(var(--color-primary)); }
.svc-card .svc-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform var(--transition-slow); }
.svc-card:hover .svc-bg { transform: scale(1.05); }
.svc-card .svc-mask { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,42,33,0) 0%, rgba(15,42,33,0) 50%, rgba(15,42,33,0.75) 100%); }
.svc-card .svc-icon { position: absolute; top: var(--space-5); right: var(--space-5); color: rgb(var(--color-on-primary)); opacity: 0.85; }
.svc-card .svc-icon .shop-icon { fill: currentColor; }
.svc-card .svc-body { position: relative; z-index: 1; padding: var(--space-5); }
.svc-card .svc-title { font-family: var(--font-zh); font-size: var(--text-h3); margin-bottom: var(--space-1); }
.svc-card .svc-desc { font-size: var(--text-sm); opacity: 0.85; }

/* ④ 客房精选 */
.room-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.room-card .room-image { aspect-ratio: 4/3; background-size: cover; background-position: center; }
.room-card .room-price { font-family: var(--font-num); color: rgb(var(--color-accent)); }
.room-badge { position: absolute; top: var(--space-2); left: var(--space-2); z-index: 2; background: rgb(var(--color-accent)); color: rgb(var(--color-on-primary)); padding: var(--space-1) var(--space-3); font-size: var(--text-xs); box-shadow: var(--shadow-card); }

/* ⑤ 餐饮展示 */
.dine-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.dine-card { position: relative; display: block; aspect-ratio: 3/4; overflow: hidden; box-shadow: var(--shadow-card); transition: box-shadow var(--transition-slow); text-decoration: none; }
.dine-card:hover { box-shadow: var(--shadow-card-hover); }
.dine-card .dine-img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform var(--transition-slow); }
.dine-card:hover .dine-img { transform: scale(1.05); }
.dine-card .dine-mask { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,42,33,0) 0%, rgba(15,42,33,0) 50%, rgba(15,42,33,0.75) 100%); }
.dine-card .dine-body { position: absolute; bottom: 0; left: 0; right: 0; padding: var(--space-5); z-index: 1; }
.dine-card .dine-type { display: inline-block; font-size: var(--text-xs); color: rgb(var(--color-accent)); margin-bottom: var(--space-2); letter-spacing: var(--letter-spacing-eyebrow); }
.dine-card .dine-title { font-family: var(--font-zh); font-size: var(--text-h4); margin-bottom: var(--space-2); color: rgb(var(--color-on-primary)); text-shadow: 0 1px 3px rgba(0,0,0,0.4); }
.dine-card .dine-highlight { font-size: var(--text-sm); color: rgb(var(--color-on-primary) / 0.75); line-height: var(--line-height-card); text-shadow: 0 1px 2px rgba(0,0,0,0.3); }

/* ⑥ 婚宴与会议 */
.dual-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); }
.dual-card { position: relative; aspect-ratio: 4/3; display: flex; align-items: flex-end; color: rgb(var(--color-on-primary)); text-decoration: none; overflow: hidden; }
.dual-card .dual-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform var(--transition-slow); }
.dual-card:hover .dual-bg { transform: scale(1.05); }
.dual-card .dual-mask { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,42,33,0) 0%, rgba(15,42,33,0) 50%, rgba(15,42,33,0.8) 100%); }
.dual-card .dual-body { position: relative; z-index: 1; padding: var(--space-6); }
.dual-card .dual-title { font-family: var(--font-zh); font-size: var(--text-h2); margin-bottom: var(--space-3); }
.dual-card .dual-desc { font-size: var(--text-sm); opacity: 0.85; margin-bottom: var(--space-4); max-width: 32em; }
.dual-card .dual-cta { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-5); background: rgb(var(--color-accent)); color: rgb(var(--color-on-primary)); text-decoration: none; font-family: var(--font-zh); transition: var(--transition-fast); }
.dual-card .dual-cta:hover { background: rgb(var(--color-surface)); color: rgb(var(--color-primary)); }

/* ⑦ 康乐配套 */
.fac-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.fac-card { position: relative; display: block; aspect-ratio: 3/4; overflow: hidden; box-shadow: var(--shadow-card); transition: box-shadow var(--transition-slow); text-decoration: none; }
.fac-card:hover { box-shadow: var(--shadow-card-hover); }
.fac-card .fac-img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform var(--transition-slow); }
.fac-card:hover .fac-img { transform: scale(1.05); }
.fac-card .fac-bottom { position: absolute; bottom: 0; left: 0; right: 0; z-index: 1; background: rgba(15,42,33,0.5); padding: var(--space-2) var(--space-3); }
.fac-card .fac-title { font-family: var(--font-zh); font-size: var(--text-sm); color: rgb(var(--color-on-primary)); margin: 0; }
.fac-card .fac-meta { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-1); }
.fac-card .fac-type { font-size: var(--text-xs); color: rgb(var(--color-accent)); letter-spacing: var(--letter-spacing-eyebrow); }
.fac-card .fac-time { font-size: var(--text-xs); color: rgb(var(--color-on-primary) / 0.75); }
.fac-card .fac-time .shop-icon { fill: currentColor; }

/* ⑧ 活动资讯 */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.news-card .news-img { aspect-ratio: 16/9; background-size: cover; background-position: center; }
.news-card .news-body { padding: var(--space-4); }
.news-card .news-date { font-size: var(--text-xs); color: rgb(var(--color-text-muted)); }
.news-card .news-excerpt { font-size: var(--text-sm); color: rgb(var(--color-text-muted)); margin-top: var(--space-2); line-height: var(--line-height-card); }

/* ⑨ 联系入口 */
.contact-cta { background: rgb(var(--color-primary)); color: rgb(var(--color-on-primary)); padding: var(--space-section) var(--space-5); text-align: center; }
.contact-cta .cta-title { color: rgb(var(--color-on-primary)); font-family: var(--font-zh); font-size: var(--text-h2); margin-bottom: var(--space-5); }
.contact-cta .cta-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-4); }
.contact-cta .cta-btn { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-6); background: rgb(var(--color-surface)); color: rgb(var(--color-primary)); text-decoration: none; font-family: var(--font-zh); transition: var(--transition-fast); }
.contact-cta .cta-btn:hover { background: rgb(var(--color-accent)); color: rgb(var(--color-on-primary)); }

/* 区块底部 CTA */
.section-cta { text-align: center; margin-top: var(--space-6); }
.section-cta a { display: inline-flex; align-items: center; gap: var(--space-2); font-family: var(--font-zh); color: rgb(var(--color-primary)); text-decoration: none; transition: var(--transition-fast); }
.section-cta a:hover { color: rgb(var(--color-accent)); }

/* 响应式 */
@media (max-width: 1024px) {
	.booking-widget { max-width: 100%; }
	.svc-grid { grid-template-columns: repeat(2, 1fr); }
	.room-grid, .news-grid, .fac-grid { grid-template-columns: repeat(2, 1fr); }
	.dine-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
	.booking-widget { padding: var(--space-3) var(--space-4); gap: var(--space-3); }
	.booking-widget .bw-field { min-width: 100%; }
	.booking-widget .bw-submit { width: 100%; }
	.svc-grid, .room-grid, .news-grid, .fac-grid, .dine-grid, .dual-grid { grid-template-columns: 1fr; }
	.svc-card { min-height: 220px; }
	.contact-cta .cta-actions { flex-direction: column; align-items: stretch; }
	.contact-cta .cta-btn { width: 100%; justify-content: center; }
}
