/* Desk visual fixes: namespaced overrides after merged Vue CSS + Layui. */

#desk-home-root .banner-section {
  aspect-ratio: auto;
  height: 70vh;
  height: 70dvh;
  min-height: 12.5rem;
  max-height: none;
  background: linear-gradient(180deg, #fdf7ec 0%, #f3e6cd 100%);
}

/* 首页轮播：SSR 用 <a> 包裹时需 block，否则 inline 锚点高度为 0，绝对定位图片不可见 */
#desk-home-root .banner-bg-wrapper {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

#desk-home-root .banner-section.media-skel:has(.banner-title-img) {
  background-image: none !important;
  animation: none;
}

.desk-list-page .banner-section,
.desk-about-page .banner-section {
  aspect-ratio: 21 / 6;
  height: auto;
  min-height: 10rem;
  max-height: none;
  background: #f5f5f5;
  line-height: 0;
}

/* ===== 登录弹窗：微信扫码 / 密码登录 ===== */
.login-card .tab-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.75rem;
  margin-bottom: 1.35rem;
}

.login-card .tab-item,
.login-card button.tab-item {
  position: relative;
  min-height: 0;
  padding: 0.35rem 0.15rem 0.55rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #b0a89c;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.4;
  text-decoration: none;
  box-shadow: none;
  cursor: pointer;
  transition: color 0.2s ease;
}

.login-card .tab-item.is-active {
  color: #1a1a1a;
  font-weight: 600;
  background: transparent;
  border: 0;
}

.login-card .tab-item.is-active::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 0.1875rem;
  border-radius: 999px;
  background: #1a1a1a;
}

.login-card .wechat-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}

.login-card [data-desk-login-panel][hidden],
.login-card .wechat-box[hidden] {
  display: none !important;
}

/* 移动端汉堡菜单：el-row 的 display:flex 会盖掉 [hidden]，默认必须折叠 */
.header-mobile-panel[hidden] {
  display: none !important;
}

.login-card .wechat-qr-wrap {
  width: 11.5rem;
  height: 11.5rem;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #f7f3eb;
}

.login-card .wechat-qr,
.login-card .wechat-qr-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* ===== 最新活动扑克牌 ===== */
.activity-poker-card {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  transition: transform 0.8s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
  transform-origin: center center;
}

.activity-poker-card.is-hidden {
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, 30px, -100px) scale(0.75);
  z-index: 1;
}

.activity-poker-card.is-prev {
  opacity: 0.75;
  z-index: 2;
  transform: translate3d(-34%, 26px, -60px) scale(0.64);
}

.activity-poker-card.is-prev:hover {
  opacity: 0.85;
  transform: translate3d(-36%, 20px, -40px) scale(0.67);
}

.activity-poker-card.is-next {
  opacity: 0.75;
  z-index: 2;
  transform: translate3d(34%, 26px, -60px) scale(0.64);
}

.activity-poker-card.is-next:hover {
  opacity: 0.85;
  transform: translate3d(36%, 20px, -40px) scale(0.67);
}

.activity-poker-card.is-active {
  opacity: 1;
  z-index: 10;
  transform: translate3d(0, 0, 0) scale(1);
}

@media (max-width: 991px) {
  .activity-poker-card.is-prev {
    transform: translate3d(-32%, 16px, -30px) scale(0.68);
  }
  .activity-poker-card.is-next {
    transform: translate3d(32%, 16px, -30px) scale(0.68);
  }
}

/* ===== 首页城市漫游分类（对齐 Vue HomePage .tab-item，避开全局 .tab-item 冲突） ===== */
#desk-home-root.page-container {
  --text: #262220;
  --muted: #9a8f80;
  min-height: 0;
}

/* desk.css 的 .main-content{padding-bottom:4rem} 会在页脚黑条上方露出 #f5f5f5 灰条 */
.main-content {
  padding-bottom: 0 !important;
}

.main-content:has(#desk-home-root),
.main-content:has(#desk-page-root) {
  padding-bottom: 0 !important;
  min-height: 0;
}

/* 主内容区背景铺满到 footer，避免短页底部露灰 */
.main-content > .page-container,
.main-content > #desk-page-root {
  min-height: 100%;
}

#desk-home-root .section-merchant .merchant-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  justify-self: start;
  gap: 0.5rem;
  min-width: 0;
  max-width: 100%;
  grid-column: 1;
  grid-row: 2;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 0.15rem;
}

#desk-home-root .section-merchant .merchant-tabs::-webkit-scrollbar {
  display: none;
}

#desk-home-root .section-merchant .home-tab-item {
  flex-shrink: 0;
  box-sizing: border-box;
  min-height: 0;
  margin: 0;
  padding: 0.4em 1.1em;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: #9a8f80;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.4;
  white-space: nowrap;
  text-decoration: none;
  box-shadow: none;
  cursor: pointer;
  user-select: none;
  transition: border-color 0.2s ease, color 0.2s ease;
}

#desk-home-root .section-merchant .home-tab-item::after,
#desk-home-root .section-merchant .home-tab-item.is-active::after {
  content: none;
  display: none;
}

#desk-home-root .section-merchant .home-tab-item.is-active {
  border-color: #262220;
  color: #262220;
  background: transparent;
  font-weight: 600;
}

@media (max-width: 767px) {
  #desk-home-root .section-merchant .section-footer-row .center-action-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    width: 100%;
  }

  #desk-home-root .section-merchant .section-footer-row .more-btn {
    margin-inline: auto;
  }

  #desk-home-root .section-merchant .section-footer-row .bottom-arrow-btns {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-inline: auto;
  }
}

/* ===== /merchants /goods 分类按钮（避开全局 .tab-item 冲突） ===== */
.tabs-wrap {
  display: flex;
  justify-content: center;
  min-width: 0;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.tabs-wrap .merchant-tabs,
.tabs-wrap .goods-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  max-width: 100%;
  padding: 0.15rem 0.1rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  touch-action: pan-x;
}

.tabs-wrap .merchant-tabs::-webkit-scrollbar,
.tabs-wrap .goods-tabs::-webkit-scrollbar {
  display: none;
}

/* list-tab：与首页城市漫游 .home-tab-item 一致；!important 压过 Layui button */
.tabs-wrap .list-tab-item,
[data-desk-page="goods-list"] .list-tab-item,
[data-desk-page="merchant-list"] .list-tab-item {
  appearance: none !important;
  -webkit-appearance: none !important;
  position: relative;
  flex: 0 0 auto;
  flex-shrink: 0;
  box-sizing: border-box !important;
  min-height: 0;
  height: auto !important;
  margin: 0 !important;
  margin-left: 0 !important;
  padding: 0.4em 1.1em !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #9a8f80 !important;
  font-family: inherit;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  white-space: nowrap;
  text-decoration: none !important;
  box-shadow: none !important;
  outline: none;
  cursor: pointer;
  user-select: none;
  touch-action: manipulation;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.tabs-wrap .list-tab-item::after,
[data-desk-page="goods-list"] .list-tab-item::after,
[data-desk-page="merchant-list"] .list-tab-item::after {
  content: none !important;
  display: none !important;
}

.tabs-wrap .home-tab-item,
[data-desk-page="goods-list"] .home-tab-item,
[data-desk-page="merchant-list"] .home-tab-item {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  flex-shrink: 0;
  box-sizing: border-box;
  min-height: 0;
  margin: 0;
  padding: 0.4em 1.1em;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: #9a8f80;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.4;
  white-space: nowrap;
  text-decoration: none;
  box-shadow: none;
  cursor: pointer;
  user-select: none;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.tabs-wrap .home-tab-item::after,
[data-desk-page="goods-list"] .home-tab-item::after,
[data-desk-page="merchant-list"] .home-tab-item::after {
  content: none !important;
  display: none !important;
}

.tabs-wrap .home-tab-item.is-active,
.tabs-wrap .list-tab-item.is-active,
[data-desk-page="goods-list"] .home-tab-item.is-active,
[data-desk-page="goods-list"] .list-tab-item.is-active,
[data-desk-page="merchant-list"] .home-tab-item.is-active,
[data-desk-page="merchant-list"] .list-tab-item.is-active {
  border-color: #262220 !important;
  color: #262220 !important;
  background: transparent !important;
  font-weight: 600 !important;
}

/* /goods 分类：对齐 Vue GoodsList.vue */
[data-desk-page="goods-list"] {
  --text: #262220;
  --muted: #9a8f80;
}

[data-desk-page="goods-list"] .tabs-wrap {
  display: flex;
  justify-content: center;
  min-width: 0;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

[data-desk-page="goods-list"] .goods-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  max-width: 100%;
  padding: 0.15rem 0.1rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  touch-action: pan-x;
}

[data-desk-page="goods-list"] .goods-tabs::-webkit-scrollbar {
  display: none;
}

@media (max-width: 767px) {
  [data-desk-page="goods-list"] .tabs-wrap {
    justify-content: stretch;
  }
}

[data-desk-page="goods-list"] .goods-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  height: auto;
  aspect-ratio: 1 / 1;
  padding: 0.75rem;
  border-radius: 0.5rem;
  background: #fff;
  box-sizing: border-box;
  overflow: hidden;
}

[data-desk-page="goods-list"] .goods-card .card-cover {
  position: relative;
  flex: 1;
  min-height: 0;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  overflow: hidden;
  border-radius: calc(0.5rem - 0.15rem);
  background: #f5f5f5;
}

[data-desk-page="goods-list"] .goods-card .cover-img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

[data-desk-page="goods-list"] .goods-card .card-body {
  flex: 0 0 auto;
  min-width: 0;
  padding: 0.7rem 0.15rem 0.1rem;
}

[data-desk-page="goods-list"] .goods-grid > .goods-col.is-guttered {
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box;
}

[data-desk-page="goods-list"] .goods-col {
  min-width: 0;
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.tabs-wrap .list-tab-item:not(.is-active):hover,
[data-desk-page="goods-list"] .list-tab-item:not(.is-active):hover,
[data-desk-page="merchant-list"] .list-tab-item:not(.is-active):hover {
  color: #262220 !important;
}

/* /merchants 分类条：与 goods 一致的横向滚动 */
[data-desk-page="merchant-list"] .tabs-wrap {
  display: flex;
  justify-content: center;
  min-width: 0;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

[data-desk-page="merchant-list"] .merchant-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  max-width: 100%;
  padding: 0.15rem 0.1rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  touch-action: pan-x;
}

[data-desk-page="merchant-list"] .merchant-tabs::-webkit-scrollbar {
  display: none;
}

[data-desk-page="merchant-list"] .merchant-grid > .merchant-col.is-guttered {
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box;
}

[data-desk-page="merchant-list"] .merchant-col {
  min-width: 0;
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

@media (max-width: 767px) {
  [data-desk-page="merchant-list"] .tabs-wrap {
    justify-content: stretch;
  }
}

/* ===== 首页打卡活动：统一加高图文区 ===== */
#desk-home-root .section-checkin {
  --checkin-h: clamp(28rem, 34vw, 36rem);
}

#desk-home-root .section-checkin .checkin-grid {
  align-items: stretch;
}

#desk-home-root .section-checkin .checkin-grid > .el-col {
  display: flex;
}

#desk-home-root .section-checkin .left-col,
#desk-home-root .section-checkin .right-col,
#desk-home-root .section-checkin .left-content-box {
  width: 100%;
  height: var(--checkin-h);
  min-height: var(--checkin-h);
  box-sizing: border-box;
}

#desk-home-root .section-checkin .right-slider-box {
  width: 100%;
  height: 100%;
  min-height: 0;
  box-sizing: border-box;
}

#desk-home-root .section-checkin .activity-desc {
  display: -webkit-box;
  -webkit-line-clamp: 8;
  line-clamp: 8;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

#desk-home-root .section-checkin .right-slider-box .banner-img,
#desk-home-root .section-checkin .right-slider-box .banner-img.max-size-img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  object-fit: cover;
}

@media (max-width: 991px) {
  #desk-home-root .section-checkin {
    --checkin-h: clamp(16rem, 52vw, 24rem);
  }
}

/* ===== 列表/详情版心与页头 logo 列完全同一套栅格 ===== */
.desk-page-align.header-inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  box-sizing: border-box;
  padding-inline: 0;
}

.desk-page-align.header-inner > [class*="el-col"] {
  box-sizing: border-box;
  padding-inline: 0;
  margin-bottom: 0;
}

.page-container .list-section,
.page-container .detail-section,
.page-container .intro-section,
.page-container .idea-section,
.page-container .contact-section,
.page-container .breadcrumb-bar {
  padding-inline: 0;
}

/* header / footer 共用同一套版心，缩放步调一致 */
.site-header,
.site-footer {
  --page-max: 1440px;
}

.site-header .header-inner,
.site-footer .footer-inner,
.site-footer .header-inner {
  width: 100%;
  max-width: var(--page-max);
  margin-inline: auto;
  box-sizing: border-box;
}

.site-footer .footer-align-col {
  min-width: 0;
}

.site-footer .footer-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(1.25rem, 3vw, 3rem);
  width: 100%;
  padding-top: clamp(2rem, 4vw, 3.25rem);
  padding-bottom: clamp(1.25rem, 2.5vw, 2rem);
  padding-inline: 0;
  box-sizing: border-box;
}

.site-footer .footer-brand-col,
.site-footer .footer-qr-col,
.site-footer .footer-copy-col {
  padding-inline: 0;
}

.site-footer .footer-brand-col {
  flex: 1 1 auto;
  min-width: 0;
}

.site-footer .footer-qr-col {
  flex: 0 0 auto;
  display: flex;
  justify-content: flex-end;
}

.site-footer .footer-copy-row {
  width: 100%;
  padding-inline: 0;
  box-sizing: border-box;
}

@media (max-width: 991px) {
  .site-footer .footer-align-col {
    padding-inline: max(0.75rem, env(safe-area-inset-left, 0px));
  }
  .site-footer .footer-main {
    flex-direction: column;
    align-items: stretch;
  }
  .site-footer .footer-qr-col {
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  .site-footer .footer-brand-col {
    text-align: center;
  }
  .site-footer .brand-link {
    justify-content: center;
    width: 100%;
  }
  .site-footer .footer-qr-col {
    justify-content: center;
  }
}

.banner-overlay .desk-page-align {
  height: 100%;
  align-items: center;
}

.banner-overlay .banner-copy {
  max-width: min(36rem, 100%);
  padding-block: clamp(0.75rem, 2vw, 1.5rem);
  text-align: left;
}

@media (max-width: 991px) {
  .desk-page-align.header-inner > [class*="el-col"] {
    padding-inline: max(0.75rem, env(safe-area-inset-left, 0px))
      max(0.75rem, env(safe-area-inset-right, 0px));
  }
}

/* ===== 页脚备案色与布局 ===== */
.site-footer .copy-text,
.site-footer .copy-text span,
.site-footer .copy-link,
.site-footer .copy-link:visited,
.site-footer [data-desk-record] a,
.site-footer [data-desk-police-record] a {
  color: #999 !important;
  text-decoration: none;
}

.site-footer .copy-link:hover,
.site-footer [data-desk-record] a:hover,
.site-footer [data-desk-police-record] a:hover {
  color: #ccc !important;
}

.site-footer .copy-text {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
}

.site-footer .footer-link {
  color: #fff;
  text-decoration: none;
}

.site-footer .qr-label {
  color: #999;
}

/* 列表加载完后隐藏 loading */
.load-more-box,
.load-more-box[hidden],
.load-more-box[aria-hidden="true"],
.load-more-box.is-complete {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.load-more-box.is-loading {
  display: flex !important;
  visibility: visible !important;
  height: auto !important;
  margin-top: clamp(0.5rem, 2vw, 1.25rem) !important;
  padding: 1.25rem 0 0.25rem !important;
  overflow: visible !important;
}

.load-more-box.is-complete .load-more-ico,
.load-more-box[hidden] .load-more-ico,
.load-more-box.is-complete img,
.load-more-ico[hidden] {
  display: none !important;
}

.load-more-ico {
  display: block;
  width: 1.5rem !important;
  height: 1.5rem !important;
  max-width: 1.5rem;
  max-height: 1.5rem;
  object-fit: contain;
  opacity: 0.75;
}

/* /checkins 列表：恢复 Vue CheckinList 的 gutter + 行距 */
[data-desk-page="checkin-list"] .checkin-grid > .checkin-col.is-guttered {
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box;
}

[data-desk-page="checkin-list"] .checkin-col {
  display: flex;
  align-items: stretch;
  min-width: 0;
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem) !important;
}

@media (max-width: 767px) {
  [data-desk-page="checkin-list"] .checkin-col {
    margin-bottom: 1.5rem !important;
  }
}

[data-desk-page="checkin-list"] .checkin-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  width: 100%;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  border-radius: 0.5rem;
  box-shadow: none;
}

[data-desk-page="checkin-list"] .checkin-card .card-cover {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 576 / 290;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #f5f5f5;
}

[data-desk-page="checkin-list"] .checkin-card .cover-img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

[data-desk-page="checkin-list"] .checkin-card .card-body {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.85rem 0.1rem 0.15rem;
}

/* /activities 列表封面：与 Vue ActivityList 576/290 一致 */
[data-desk-page="activity-list"] .activity-card .card-cover {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 576 / 290;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #f5f5f5;
}

[data-desk-page="activity-list"] .activity-card .cover-img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* 各页图片按 Vue 锁定长宽比，object-fit:cover 裁切多余部分 */
.desk-list-page .banner-section,
.desk-about-page .banner-section {
  aspect-ratio: 21 / 6;
}

[data-desk-page="merchant-list"] .merchant-card .card-cover {
  position: relative;
  width: 100%;
  aspect-ratio: 254 / 226;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 0.5rem 0.5rem 0 0;
  background: #f5f5f5;
}

[data-desk-page="news-list"] .news-img-wrap {
  position: relative;
  width: 100%;
  margin-top: auto;
  aspect-ratio: 652 / 348;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #f5f5f5;
  flex-shrink: 0;
}

[data-desk-page="merchant-products"] .product-card .card-cover {
  position: relative;
  width: 100%;
  aspect-ratio: 506 / 450;
  overflow: hidden;
  background: #f5f5f5;
  flex-shrink: 0;
}

/* ===== 商家商品列表 /merchants/:id/products（对齐 Vue ProductList.vue） ===== */
[data-desk-page="merchant-products"].page-container {
  --page-max: 1440px;
  --text: #333;
  --muted: #999;
  --page-bg: #f5f5f5;
  --card-radius: 1rem;
  --img-radius: 0.5rem;
  background: var(--page-bg);
  color: var(--text);
}

[data-desk-page="merchant-products"] .list-section {
  padding: clamp(1.25rem, 3vw, 2rem) 0 clamp(2.5rem, 5vw, 4rem);
  background: transparent;
}

[data-desk-page="merchant-products"] .product-grid > .product-col.is-guttered {
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box;
}

[data-desk-page="merchant-products"] .product-col {
  min-width: 0;
  margin-bottom: clamp(1.1rem, 2.2vw, 1.5rem);
}

[data-desk-page="merchant-products"] .product-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  height: auto;
  background: #fff;
  border-radius: var(--card-radius);
  overflow: hidden;
  box-shadow: 0 0.4rem 1.25rem rgba(0, 0, 0, 0.04);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

[data-desk-page="merchant-products"] .product-card .card-body {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 0 0 auto;
  min-width: 0;
  padding: 0.9rem 0.95rem 1.05rem;
}

[data-desk-page="merchant-products"] .product-card .product-title {
  margin: 0;
  font-size: clamp(0.9375rem, 1.1vw, 1rem);
  font-weight: 700;
  line-height: 1.4;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

[data-desk-page="merchant-products"] .product-card .product-desc {
  margin: 0;
  color: var(--muted);
  font-size: clamp(0.75rem, 0.95vw, 0.8125rem);
  line-height: 1.55;
  min-height: calc(1.55em * 2);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

@media (max-width: 767px) {
  [data-desk-page="merchant-products"] .profile-right-col {
    margin-top: 1rem;
  }

  [data-desk-page="merchant-products"] .profile-right {
    justify-content: space-between;
  }

  [data-desk-page="merchant-products"] .profile-left {
    align-items: flex-start;
  }
}

[data-desk-page="merchant-detail"] .thumbs-nav[hidden] {
  display: none !important;
}

[data-desk-page="activity-detail"] .detail-figure {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 440px;
  overflow: hidden;
}

[data-desk-page="merchant-detail"] .gallery-main {
  aspect-ratio: 1284 / 706;
}

[data-desk-page="merchant-detail"] .thumb-btn {
  aspect-ratio: 300 / 174;
}

[data-desk-page="merchant-detail"] .activity-cover {
  aspect-ratio: 300 / 174;
}

[data-desk-page="merchant-detail"] .checkin-media {
  aspect-ratio: 1480 / 870;
}

/* 商家详情 · 热门推荐：对齐 MerchantDetail.vue .rec-* */
[data-desk-page="merchant-detail"] .rec-grid > .rec-col.is-guttered {
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box;
}

[data-desk-page="merchant-detail"] .rec-col {
  min-width: 0;
  margin-bottom: 1.25rem;
}

[data-desk-page="merchant-detail"] .rec-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  height: 100%;
  background: #fff;
  border-radius: var(--card-radius, 0.75rem);
  overflow: hidden;
  box-shadow: 0 0.35rem 1.1rem rgba(0, 0, 0, 0.04);
  text-decoration: none;
  color: inherit;
  -webkit-tap-highlight-color: transparent;
}

[data-desk-page="merchant-detail"] .rec-cover {
  position: relative;
  width: 100%;
  aspect-ratio: 253 / 225;
  overflow: hidden;
  background: #f5f5f5;
  flex-shrink: 0;
}

[data-desk-page="merchant-detail"] .rec-body {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.85rem 0.9rem 1rem;
  min-width: 0;
}

[data-desk-page="merchant-detail"] .rec-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: #222;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

[data-desk-page="merchant-detail"] .rec-desc {
  margin: 0;
  color: var(--muted, #9a8f80);
  font-size: 0.8125rem;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.desk-about-page .idea-cover {
  aspect-ratio: 528 / 336;
}

.desk-about-page .map-wrap,
.desk-about-page .map-img {
  aspect-ratio: 900 / 491;
}

#desk-home-root .activity-poker-deck,
#desk-home-root .section-activities .card-img-wrap {
  aspect-ratio: 2 / 1;
}

#desk-home-root .recommend-card .card-img-wrap {
  aspect-ratio: 4 / 3;
}

#desk-home-root .section-merchant .merchant-card .card-img-wrap {
  aspect-ratio: 3 / 2;
}

/* ===== 新闻动态：背景图铺满整个区块，不在按钮下方留白 ===== */
#desk-home-root .section-news {
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
}

#desk-home-root .section-news .news-img-wrap {
  aspect-ratio: 16 / 9;
}

#desk-home-root .cover-img,
#desk-home-root .activity-img,
#desk-home-root .news-img,
#desk-home-root .recommend-card .max-size-img,
#desk-home-root .merchant-card .cover-img,
[data-desk-page] .cover-img,
[data-desk-page] .news-img,
[data-desk-page] .detail-figure-img,
[data-desk-page] .gallery-main-img,
[data-desk-page] .thumb-img,
[data-desk-page] .activity-cover-img,
[data-desk-page] .checkin-banner,
[data-desk-page] .rec-img,
.desk-about-page .idea-img,
.desk-about-page .banner-img {
  object-fit: cover;
  object-position: center;
}

/* 打卡点提示蒙层：默认隐藏，避免 display:flex 盖掉 [hidden] */
.point-tip-mask[hidden] {
  display: none !important;
}

/* 打卡点导航图标：扩大可点区域，避免被节点点击抢走 */
.desk-checkin-map-page .node-nav-link,
[data-checkin-map-ui] .node-nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 4px;
  margin: -4px -2px -4px 0;
  line-height: 0;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.desk-checkin-map-page .node-nav-icon,
[data-checkin-map-ui] .node-nav-icon {
  display: block;
  width: 16px;
  height: 16px;
  opacity: 0.95;
  pointer-events: none;
}

.point-tip__name-row--link {
  text-decoration: none;
  color: inherit;
}

/* 活动报名弹窗：默认隐藏，避免 display:flex 盖掉 hidden */
.apply-overlay {
  display: none !important;
}
.apply-overlay.is-open {
  display: flex !important;
  align-items: center;
  justify-content: center;
  position: fixed;
  inset: 0;
  z-index: 4000;
  padding: 1rem;
  background: rgba(20, 16, 12, 0.55);
}

/* 活动详情：与页头 logo 左缘对齐，双栏顶对齐，报名按钮按 Vue 金色样式 */
[data-desk-page="activity-detail"] {
  --page-max: 1440px;
  --text-main: #1f1b18;
  --text-muted: #8c8275;
  --bg-color: #f7f5f0;
  --gold: #c8973f;
  --gold-hover: #b38435;
  --border-color: #eee9e0;
  background: #f7f5f0;
  min-height: 40vh;
  padding-bottom: 4rem;
  color: #1f1b18;
}

[data-desk-page="activity-detail"] .detail-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  align-items: start;
  gap: 2rem;
  margin-top: 0.5rem;
  width: 100%;
}

[data-desk-page="activity-detail"] .content-left,
[data-desk-page="activity-detail"] .content-right {
  min-width: 0;
  align-self: start;
}

[data-desk-page="activity-detail"] .content-right {
  position: sticky;
  top: 2rem;
}

[data-desk-page="activity-detail"] .apply-box {
  width: 100%;
}

[data-desk-page="activity-detail"] .apply-btn,
[data-desk-page="activity-detail"] button.apply-btn {
  appearance: none;
  -webkit-appearance: none;
  display: block;
  width: 100%;
  min-height: 3.25rem;
  margin: 0;
  padding: 0.75rem 1.5rem;
  border: 0;
  border-radius: 0.5rem;
  background: #c8973f;
  color: #fff;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(200, 151, 63, 0.3);
  cursor: pointer;
}

[data-desk-page="activity-detail"] .apply-btn:hover:not(:disabled):not(.is-disabled) {
  background: #b38435;
  color: #fff;
}

[data-desk-page="activity-detail"] .apply-btn.is-disabled,
[data-desk-page="activity-detail"] .apply-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  box-shadow: none;
}

@media (max-width: 960px) {
  [data-desk-page="activity-detail"] .detail-container {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  [data-desk-page="activity-detail"] .content-right {
    position: static;
  }
}

/* 卡片图：容器锁比例，图片绝对铺满 cover，避免原图像素高度撑高 */
[data-desk-page] .activity-card,
[data-desk-page] .merchant-card,
[data-desk-page] .checkin-card,
[data-desk-page] .news-card,
[data-desk-page] .goods-card,
[data-desk-page] .product-card {
  height: auto;
}

.card-cover,
.news-img-wrap,
.card-img-wrap,
.idea-cover,
.rec-cover,
.activity-cover,
.checkin-media,
.gallery-main {
  position: relative;
  overflow: hidden;
}

.card-cover > img,
.news-img-wrap > img,
.card-img-wrap > img,
.idea-cover > img,
.rec-cover > img,
.activity-cover > img,
.checkin-media > img,
.gallery-main > img,
img.cover-img,
img.news-img,
img.activity-img,
img.activity-cover-img,
img.rec-img,
img.checkin-banner,
img.gallery-main-img,
img.idea-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* 寻宝详情：不展示 SEO 文案块，首屏从地图页头（中英标题）开始 */
.checkin-map-seo {
  display: none !important;
}
