/* 宏韵装饰主题样式：demo 各页 <style> 的并集，class 名保持不变 */
html { scroll-behavior: smooth; }
body { font-family: 'PingFang SC', 'HarmonyOS Sans SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Noto Sans CJK SC', 'Noto Sans SC', 'Source Han Sans SC', sans-serif; }
.container { max-width: 1200px; }
::selection { background: #c8a45d; color: #fff; }
.fade { transition: opacity .45s ease; }

/* 滚动出现动画（全站统一 .reveal.show，动画类名 : 见 index 与其余页的差异已合并） */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .75s ease, transform .75s ease; }
.reveal.show { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: .12s; }
.reveal-delay-2 { transition-delay: .24s; }
@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; }
}

/* 首页轮播 */
.hero-slide { display: none; }
.hero-slide.active { display: block; animation: heroIn .8s ease both; }
@keyframes heroIn { from { opacity: 0; transform: scale(1.035); } to { opacity: 1; transform: scale(1); } }
/* 首页轮播：高度取视口高度的 2/3（约 67vh），下方报名横幅同屏可见 */
:root { --hero-height: calc(100dvh * 2 / 3); }
.home-hero { height: var(--hero-height); min-height: 420px; }
.home-hero .hero-slide { height: 100%; position: relative; }
.home-hero .hero-slide > img { width: 100%; height: 100%; object-fit: cover; }
.home-nav { color: #fff; border-bottom: 1px solid rgb(255 255 255 / .22); background: linear-gradient(to bottom, rgb(0 0 0 / .42), transparent); }
.home-nav .text-gray-400 { color: rgb(255 255 255 / .68); }
.home-nav a:hover { color: #c8a45d; }
@media (max-width: 767px) { .home-hero { min-height: 320px; } }
/* 首页两个列表分别使用两套六色，区块之间和两组之间都可区分 */
.home-honors-item,
.home-process-item {
  border: 1px solid rgb(24 24 24 / .08) !important;
  border-top: 4px solid currentColor !important;
  box-shadow: 0 8px 20px rgb(24 24 24 / .08);
}
.home-process-item { padding: 1.5rem !important; }
.home-honors-item:nth-child(1) { background: #fff7e6 !important; color: #c8a45d; }
.home-honors-item:nth-child(2) { background: #eaf4ff !important; color: #2f6fad; }
.home-honors-item:nth-child(3) { background: #eef8ef !important; color: #3f8a4b; }
.home-honors-item:nth-child(4) { background: #fff0f2 !important; color: #c4454d; }
.home-honors-item:nth-child(5) { background: #f5f0ff !important; color: #7a56b5; }
.home-honors-item:nth-child(6) { background: #fff4ea !important; color: #d06a2b; }
.home-process-item:nth-child(1) { background: #e7f8fb !important; color: #168a9a; }
.home-process-item:nth-child(2) { background: #f8f0e7 !important; color: #9a6230; }
.home-process-item:nth-child(3) { background: #eef3fb !important; color: #445d9a; }
.home-process-item:nth-child(4) { background: #f7f3e6 !important; color: #8d7a2d; }
.home-process-item:nth-child(5) { background: #f3f7e8 !important; color: #6b8a2f; }
.home-process-item:nth-child(6) { background: #f8ece8 !important; color: #a85a49; }
.home-honors-item b,
.home-process-item h3 { color: #181818; }
.home-honors-item span,
.home-process-item span { color: currentColor !important; }
.home-process-item p { color: #4f4c47 !important; }
@media (max-width: 639px) {
  .home-process-item { padding: 1.25rem !important; }
}

/* 首页报名横幅：上下留白 + 横向报名表单 */
.home-signup { background: #f1f0ec; padding: 56px 20px; }
.home-signup-inner { position: relative; max-width: 1200px; min-height: 118px; margin: 0 auto; display: grid; grid-template-columns: 1.35fr repeat(4, minmax(0, 1fr)) 168px; align-items: stretch; background: #fff; box-shadow: 0 10px 30px rgba(24,24,24,.08); }
.home-signup-proof, .home-signup-field { display: flex; align-items: center; gap: 10px; padding: 22px 24px; border-right: 1px solid #eee; color: #777; }
.home-signup-proof { color: #181818; font-size: 17px; line-height: 1.5; }
.home-signup-proof-icon { color: #c8a45d; font-size: 22px; }
.home-signup-label { color: #999; font-size: 14px; white-space: nowrap; }
.home-signup-field input, .home-signup-field select { min-width: 0; width: 100%; border: 0; outline: 0; color: #555; background: transparent; font-size: 15px; }
.home-signup-field input::placeholder { color: #aaa; }
.home-signup-field:focus-within { background: #fbfaf7; }
.home-signup-captcha { padding: 12px 20px; }
.home-signup-button { display: flex; align-items: center; justify-content: center; border: 0; background: #c8102e; color: #fff; font-size: 21px; font-weight: 700; letter-spacing: .06em; cursor: pointer; transition: background .25s ease; }
.home-signup-button:hover { background: #a70d26; }
.home-signup-button:disabled { opacity: .6; cursor: not-allowed; }
.home-signup-result { grid-column: 1 / -1; margin: 0; padding: 0 24px 14px; font-size: 13px; color: #78756f; }
.home-signup-result:empty { display: none; }
.home-signup-inner-plain { display: flex; align-items: center; gap: 24px; padding-right: 24px; }
.home-signup-offline { color: #78756f; font-size: 15px; }
.home-signup-offline a { color: #c8a45d; font-weight: 700; }
.home-signup-inner:has(.home-signup-captcha) .home-signup-captcha { grid-column: 4 / -1; }

/* 验证码字段（留言表单 / 首页报名共用） */
.captcha-field { display: flex; align-items: center; gap: 10px; }
.captcha-field-img { flex: none; width: 132px; height: 44px; background: #fff; border: 1px solid #eee; object-fit: cover; }
.captcha-field-input { min-width: 96px; max-width: 132px; border: 0; outline: 0; background: transparent; color: #555; font-size: 15px; }
.captcha-field-refresh { flex: none; color: #c8a45d; font-size: 13px; white-space: nowrap; }

/* 桌面浮动侧栏：微信 / 在线咨询 / 留言 / 返回顶部 */
.floating-tools { display: none; }
@media (min-width: 1024px) {
  .floating-tools { display: flex; position: fixed; z-index: 60; right: 0; top: 50%; transform: translateY(-50%); width: 56px; flex-direction: column; border-radius: 8px 0 0 8px; box-shadow: 0 6px 22px rgba(0,0,0,.18); }
  .tool-item { position: relative; }
  .tool-button { display: flex; width: 56px; min-height: 60px; align-items: center; justify-content: center; border: 0; border-bottom: 1px solid rgba(255,255,255,.16); background: #262626; color: #fff; font-size: 12px; line-height: 1.3; letter-spacing: .06em; text-align: center; text-decoration: none; cursor: pointer; transition: background .25s ease; }
  .floating-tools > .tool-item:first-child .tool-button { border-radius: 8px 0 0 0; }
  .floating-tools > .tool-item:last-child .tool-button { border-bottom: 0; border-radius: 0 0 0 8px; }
  .tool-button:hover, .tool-button:focus-visible { background: #c8a45d; }
  .tool-popover { position: absolute; right: 64px; top: 50%; width: 150px; padding: 10px; background: #fff; box-shadow: 0 10px 26px rgba(0,0,0,.16); text-align: center; opacity: 0; visibility: hidden; transform: translateY(-50%) translateX(6px); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
  .tool-popover:before { content: ''; position: absolute; right: -6px; top: 50%; margin-top: -6px; border: 6px solid transparent; border-left-color: #fff; }
  .tool-popover img { display: block; width: 130px; height: 130px; object-fit: cover; }
  .tool-popover small { display: block; margin-top: 6px; color: #78756f; font-size: 12px; }
  .tool-wechat:hover .tool-popover, .tool-wechat:focus-within .tool-popover { opacity: 1; visibility: visible; transform: translateY(-50%); }
}

/* 留言弹窗 */
.message-modal { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(15,15,15,.62); }
.message-modal[hidden] { display: none; }
.message-modal-panel { position: relative; width: 100%; max-width: 560px; max-height: 88dvh; overflow-y: auto; background: #fff; padding: 32px; }
.message-modal-close { position: absolute; right: 14px; top: 10px; font-size: 26px; line-height: 1; color: #999; }
.message-modal-close:hover { color: #181818; }
.message-modal-title { font: 600 1.5rem/1.4 'Songti SC', 'STSong', 'SimSun', 'Noto Serif CJK SC', 'Noto Serif SC', serif; }
.message-modal-tip { margin: 6px 0 20px; color: #78756f; font-size: 13px; }
@media (max-width: 1024px) { .home-signup-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-signup-proof, .home-signup-button { grid-column: span 2; } .home-signup-button { min-height: 58px; } .home-signup-inner:has(.home-signup-captcha) .home-signup-captcha { grid-column: span 2; } }
@media (max-width: 560px) { .home-signup { padding: 28px 14px; } .home-signup-inner { display: block; } .home-signup-proof, .home-signup-field { border-right: 0; border-bottom: 1px solid #eee; } .home-signup-button { width: 100%; min-height: 56px; } }
.message-result-success { color: #16803c; }

/* 首页底部浮动咨询栏：跟随滚动、用户可关闭（关闭状态在本会话内记忆）
   实际高度由 site.js 量出后写入 --quote-float-h，给 body 留出等高底部空间 */
html.quote-float-page body { padding-bottom: var(--quote-float-h, 104px); }
.quote-float { position: fixed; z-index: 70; left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid #eee; box-shadow: 0 -10px 30px rgba(24, 24, 24, .12); }
.quote-float[hidden] { display: none; }
.quote-float-inner { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; max-width: 1200px; margin: 0 auto; padding: 10px 20px calc(10px + env(safe-area-inset-bottom, 0px)); }
.quote-float-copy { flex: 1 1 100%; padding-right: 40px; }
.quote-float-copy b { display: block; color: #181818; font: 600 17px/1.4 'Songti SC', 'STSong', 'SimSun', 'Noto Serif CJK SC', 'Noto Serif SC', 'Source Han Serif SC', serif; letter-spacing: .04em; }
.quote-float-copy span { display: none; margin-top: 2px; color: #78756f; font-size: 12px; }
.quote-float-form { display: flex; flex: 1 1 100%; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; margin: 0; }
.quote-float-form input[name="nickname"], .quote-float-form input[name="phone"] { flex: 1 1 0; min-width: 0; height: 44px; padding: 0 10px; border: 1px solid #e6e3dc; background: #f7f6f3; color: #555; font-size: 14px; outline: 0; }
.quote-float-form input:focus { border-color: #c8a45d; background: #fff; }
.quote-float-form button[type="submit"] { flex: none; height: 44px; padding: 0 16px; border: 0; background: #c8a45d; color: #fff; font-size: 14px; letter-spacing: .06em; cursor: pointer; transition: background .25s ease; }
.quote-float-form button[type="submit"]:hover { background: #ae8c4d; }
.quote-float-form button[type="submit"]:disabled { opacity: .6; cursor: not-allowed; }
.quote-float-captcha { flex: 1 1 100%; }
.quote-float-result { flex: 1 1 100%; margin: 0; color: #78756f; font-size: 12px; }
.quote-float-result:empty { display: none; }
.quote-float-offline { flex: 1 1 100%; margin: 0; color: #78756f; font-size: 13px; }
.quote-float-offline a { color: #c8a45d; font-weight: 700; }
.quote-float-close { position: absolute; top: 3px; right: 10px; width: 36px; height: 36px; padding: 0; border: 0; background: transparent; color: #b3ada1; font-size: 22px; line-height: 1; cursor: pointer; }
.quote-float-close:hover { color: #181818; }
@media (min-width: 1024px) {
  .quote-float-inner { gap: 12px 24px; padding-right: 52px; }
  .quote-float-copy { flex: 1 1 auto; padding-right: 0; }
  .quote-float-copy span { display: block; }
  .quote-float-form { flex: 1 1 520px; gap: 10px; }
  .quote-float-form input[name="nickname"], .quote-float-form input[name="phone"] { flex: 1 1 150px; padding: 0 14px; font-size: 15px; }
  .quote-float-form button[type="submit"] { padding: 0 24px; font-size: 16px; }
  .quote-float-offline { flex: 0 0 auto; font-size: 14px; }
  .quote-float-close { top: 50%; right: 14px; width: 32px; height: 32px; transform: translateY(-50%); }
  html.quote-float-page body { padding-bottom: var(--quote-float-h, 76px); }
}
html.quote-float-closed .quote-float { display: none; }
html.quote-float-closed body { padding-bottom: 0; }

/* 全站移动端底部动作条：左侧拨打电话、右侧微信在线咨询
   高度由 site.js 量出后写入 --mobile-bar-h；首页浮动咨询栏叠在它上方 */
.mobile-bar { display: none; }
@media (max-width: 1023px) {
  body { padding-bottom: var(--mobile-bar-h, calc(56px + env(safe-area-inset-bottom, 0px))); }
  html.quote-float-page body { padding-bottom: calc(var(--mobile-bar-h, calc(56px + env(safe-area-inset-bottom, 0px))) + var(--quote-float-h, 104px)); }
  html.quote-float-closed body { padding-bottom: var(--mobile-bar-h, calc(56px + env(safe-area-inset-bottom, 0px))); }
  .quote-float { bottom: var(--mobile-bar-h, calc(56px + env(safe-area-inset-bottom, 0px))); }
  .quote-float-inner { padding-bottom: 10px; }
  .mobile-bar { position: fixed; z-index: 65; left: 0; right: 0; bottom: 0; display: flex; box-sizing: content-box; height: 56px; padding-bottom: env(safe-area-inset-bottom, 0px); background: #fff; border-top: 1px solid #eee; box-shadow: 0 -6px 20px rgba(24, 24, 24, .12); }
}
.mobile-bar-item { display: flex; flex: 1 1 50%; align-items: center; justify-content: center; gap: 8px; min-width: 0; border: 0; background: transparent; color: #181818; font-size: 15px; text-decoration: none; cursor: pointer; }
.mobile-bar-item b { font-weight: 600; white-space: nowrap; }
.mobile-bar-item small { min-width: 0; overflow: hidden; color: #78756f; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.mobile-bar-item:active { opacity: .88; }
.mobile-bar-icon { flex: none; width: 22px; height: 22px; }
.mobile-bar-call { border-right: 1px solid #eee; }
.mobile-bar-call .mobile-bar-icon { color: #c8a45d; }
.mobile-bar-wechat { background: #c8a45d; color: #fff; }
.mobile-bar-wechat small { color: rgb(255 255 255 / .85); }

/* 微信在线咨询面板（引导添加微信号 / 复制 / 打开微信） */
.wechat-panel { position: fixed; inset: 0; z-index: 85; display: flex; align-items: flex-end; justify-content: center; }
.wechat-panel[hidden] { display: none; }
.wechat-panel-mask { position: absolute; inset: 0; background: rgba(15, 15, 15, .55); }
.wechat-panel-card { position: relative; width: 100%; max-width: 420px; padding: 30px 24px calc(24px + env(safe-area-inset-bottom, 0px)); background: #fff; text-align: center; }
.wechat-panel-close { position: absolute; top: 6px; right: 8px; width: 36px; height: 36px; border: 0; background: transparent; color: #999; font-size: 24px; line-height: 1; cursor: pointer; }
.wechat-panel-close:hover { color: #181818; }
.wechat-panel-title { color: #181818; font: 600 1.25rem/1.4 'Songti SC', 'STSong', 'SimSun', 'Noto Serif CJK SC', 'Noto Serif SC', 'Source Han Serif SC', serif; letter-spacing: .04em; }
.wechat-panel-id { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 18px 0 4px; color: #78756f; font-size: 14px; }
.wechat-panel-id b { color: #181818; font-size: 17px; letter-spacing: .04em; user-select: all; }
.wechat-panel-id-empty { color: #b3ada1; font-size: 15px; }
.wechat-panel-copy { padding: 4px 12px; border: 1px solid #c8a45d; background: transparent; color: #c8a45d; font-size: 13px; cursor: pointer; }
.wechat-panel-copy:hover { background: #c8a45d; color: #fff; }
.wechat-panel-result { min-height: 20px; margin: 0; color: #16803c; font-size: 13px; }
.wechat-panel-result.is-error { color: #c0392b; }
.wechat-panel-tip { margin: 6px 0 14px; color: #78756f; font-size: 13px; line-height: 1.7; }
.wechat-panel-qr { display: block; width: 180px; height: 180px; margin: 0 auto; object-fit: cover; background: #f7f6f3; }
.wechat-panel-empty { color: #b3ada1; font-size: 13px; }
.wechat-panel-open { display: block; width: 100%; margin-top: 18px; padding: 14px; border: 0; background: #c8a45d; color: #fff; font-size: 16px; letter-spacing: .06em; cursor: pointer; }
.wechat-panel-open:hover { background: #ae8c4d; }

/* 页脚关注我们：二维码图片下方的文字标识 */
.footer-qr-item { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.footer-qr-label { color: rgb(255 255 255 / .72); font-size: 12px; letter-spacing: .06em; }

/* 标签 */
.tag { display: inline-block; padding: .25rem .5rem; background: #f7f6f3; color: #8c7441; font-size: 11px; letter-spacing: .02em; }

/* 案例卡片 */
.case-card { transition: transform .3s, box-shadow .3s; }
.case-card:hover { transform: translateY(-5px); box-shadow: 0 12px 28px #18181812; }
.case-card img { transition: transform .6s; }
.case-card:hover img { transform: scale(1.05); }
.fade-in { animation: fade .5s ease both; }
@keyframes fade { from { opacity: .2; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* 设计师卡片 */
.designer-card { transition: transform .35s ease, box-shadow .35s ease; }
.designer-card:hover { transform: translateY(-8px); box-shadow: 0 16px 35px rgba(24, 24, 24, .12); }
.designer-card img { transition: transform .6s ease; }
.designer-card:hover img { transform: scale(1.06); }

/* 关于宏韵：发展历程时间轴 */
.timeline:before { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: #d5c49e; }
@media (max-width: 767px) {
  .timeline:before { left: 15px; }
  .timeline-item { padding-left: 48px !important; padding-right: 0 !important; text-align: left !important; }
  .timeline-dot { left: 8px !important; right: auto !important; }
  .timeline-item:nth-child(even) .timeline-dot { left: 8px !important; }
  .timeline-item .timeline-content { margin: 0 !important; }
}
.nav-open { max-height: 360px !important; }

/* 装修百科列表 */
.article-card { transition: transform .35s ease, box-shadow .35s ease; }
.article-card:hover { transform: translateY(-6px); box-shadow: 0 16px 36px rgba(24, 24, 24, .1); }
.article-card img { transition: transform .65s ease; }
.article-card:hover img { transform: scale(1.055); }
.fade-up { animation: fadeUp .55s ease both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* 移动端菜单 */
.mobile-menu { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.mobile-menu.open { max-height: 360px; }

/* 装修口碑 */
.review-card { transition: transform .3s ease, box-shadow .3s ease; }
.review-card:hover { transform: translateY(-5px); box-shadow: 0 16px 30px #18181812; }
.review-card img { transition: transform .55s ease; }
.review-card:hover img { transform: scale(1.06); }
.filter-btn { transition: all .2s ease; }
.filter-btn.active { background: #c8a45d; color: #fff; border-color: #c8a45d; }
.quote-mark { font-family: Georgia, serif; font-size: 58px; line-height: .5; color: #c8a45d; }

/* 筛选按钮 */
.filter { transition: .25s; }
.insights-grid { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
@media (min-width: 1024px) { .insights-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 7rem; } }

/* 案例详情图集 */
.thumb { transition: all .3s ease; opacity: .7; }
.thumb.active, .thumb:hover { opacity: 1; outline: 2px solid #c8a45d; outline-offset: 2px; }
.main-photo { animation: photoIn .65s ease both; }
@keyframes photoIn { from { opacity: .5; transform: scale(1.015); } to { opacity: 1; transform: scale(1); } }

/* 图片悬停 */
.photo { transition: transform .7s ease; max-height: 420px; object-fit: cover; }
.group:hover .photo { transform: scale(1.05); }

/* 口碑详情 */
.other { transition: transform .3s ease, box-shadow .3s ease; }
.other:hover { transform: translateY(-5px); box-shadow: 0 10px 25px #18181815; }
.other img { transition: transform .5s ease; }
.other:hover img { transform: scale(1.06); }

/* 设计师详情 */
.work img { transition: transform .6s ease; }
.work:hover img { transform: scale(1.05); }
@keyframes rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.hero-copy { animation: rise .8s ease both; }
@keyframes drift { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.035); } }
/* 文章正文（装修百科详情） */
.article p { font-size: 1.06rem; line-height: 1.8; letter-spacing: .02em; margin: 0 0 1rem; }
.article strong, .article b { font-weight: 700; color: #181818; }
.article p strong, .article p b { display: inline; }
.article h2 { font: 600 1.65rem/1.45 'Songti SC', 'STSong', 'SimSun', 'Noto Serif CJK SC', 'Noto Serif SC', 'Source Han Serif SC', serif; letter-spacing: .08em; margin: 3.2rem 0 1.3rem; }
.article h3 { font: 600 1.3rem/1.55 'Songti SC', 'STSong', 'SimSun', 'Noto Serif CJK SC', 'Noto Serif SC', 'Source Han Serif SC', serif; letter-spacing: .04em; margin: 2.4rem 0 1rem; }
.article figure { margin: 2.8rem 0; }
.article figcaption { font-size: .78rem; color: #78756f; letter-spacing: .06em; margin-top: .8rem; }
/* 正文图片：限制宽高，超高图不再撑破版面 */
.article img { display: block; width: 100%; max-width: 100%; max-height: 520px; object-fit: contain; background: #f7f6f3; }
/* 正文链接：使用浏览器常见蓝色并保留下划线，便于识别 */
.article a { color: #06c; text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: 3px; }
.article a:hover, .article a:focus-visible { color: #004c99; }

/* 导航下划线（顶栏链接） */
.nav-link { position: relative; }
.nav-link:after { content: ''; position: absolute; left: 0; bottom: -6px; width: 0; height: 1px; background: #c8a45d; transition: width .28s ease; }
.nav-link:hover:after, .nav-link.active:after { width: 100%; }

/* 窄容器（详情页侧栏）内的留言表单：单列铺满，按钮字号随窄容器收缩 */
.form-narrow form { grid-template-columns: 1fr; }
.form-narrow form > * { grid-column: 1 / -1; }
.form-narrow form button[type="submit"] { font-size: .95rem; }
