/* 仅案例列表与详情新增模块；页尾继续使用既有site.css和site.js。 */
.zx-case-mobile-intro{display:none}
.zx-case-filter-form{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 20px;margin:0 0 28px;background:#fff;border:1px solid rgba(16,44,40,.11);font-size:13px}
.zx-case-filter-form label{display:flex;align-items:center;gap:10px}
.zx-case-filter-form select,.zx-case-filter-form button,.zx-case-filter-reset{min-height:44px;border:1px solid var(--zx-line);background:#fff;color:var(--zx-forest);padding:10px 14px;font:inherit}
.zx-case-filter-form select{min-width:180px;max-width:330px}
.zx-case-filter-reset{display:inline-flex;align-items:center;text-decoration:none}
.zx-case-filter-count{margin-left:auto;color:var(--zx-muted);font-size:12px}
.zx-case-pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:28px;font-size:13px}
.zx-case-pagination a{min-height:44px;padding:12px;border:1px solid var(--zx-line)}
.zx-case-mobile-filter-buttons{display:none}
.zx-case-filter-dialog{padding:0;border:0;border-radius:16px 16px 0 0;margin:auto 0 0;width:100%;max-width:100%;max-height:88dvh;color:var(--zx-forest);background:#fff}
.zx-case-filter-dialog::backdrop{background:rgba(7,28,24,.48)}
.zx-case-filter-dialog header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;font-size:20px}
.zx-case-filter-dialog button{font:inherit;cursor:pointer}
.zx-case-filter-dialog .zx-filter-close{background:none;border:0;min-width:44px;min-height:44px;font-size:24px}
.zx-case-filter-tabs{display:flex;margin:0 20px;border-bottom:1px solid var(--zx-line)}
.zx-case-filter-tabs button{flex:1;padding:14px 0;border:0;border-bottom:2px solid transparent;background:#fff;color:var(--zx-forest)}
.zx-case-filter-tabs button[aria-pressed=true]{border-bottom-color:var(--zx-forest);font-weight:600}
.zx-case-filter-body{padding:20px;max-height:46dvh;min-height:280px;overflow:auto}
.zx-case-filter-search{width:100%;min-height:44px;margin:0 0 16px;padding:10px;border:1px solid var(--zx-line);font:inherit}
.zx-case-filter-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.zx-case-filter-options button{min-height:44px;padding:10px 5px;border:1px solid var(--zx-line);background:#fff;color:var(--zx-forest);font-size:12px;overflow-wrap:anywhere}
.zx-case-filter-options button[aria-pressed=true]{background:#e7eee8;border-color:var(--zx-forest)}
.zx-case-filter-actions{display:flex;gap:12px;padding:16px 20px max(22px,env(safe-area-inset-bottom));border-top:1px solid var(--zx-line)}
.zx-case-filter-actions button{padding:12px 18px;min-height:44px;border:1px solid var(--zx-line);background:#fff;color:var(--zx-forest)}
.zx-case-filter-actions button[type=submit]{flex:1;background:var(--zx-forest);color:#fff}
.zx-case-hero>.zx-case-reference-price{position:absolute;z-index:3;right:max(48px,calc((100vw - var(--zx-page))/2));bottom:16px;max-width:calc(100% - 44px);text-align:right;color:rgba(255,255,255,.85);font:400 11px/18px var(--zx-sans);white-space:nowrap;text-shadow:0 1px 5px rgba(0,0,0,.8)}
.zx-case-reference-price strong{font-size:14px;font-weight:400;color:inherit}
.zx-case-price-notes{font-size:13px;line-height:1.7;margin:16px 0 0;color:var(--zx-muted)}
.zx-case-price-notes>small{font-size:11px}
/* 价格只占头图原有底边留白；禁止移动或重排标题、装饰线和行程标签。 */
@media(max-width:680px){
  .zx-case-hero>.zx-case-reference-price{right:22px;bottom:4px;font-size:10px;line-height:16px}
  .zx-case-reference-price strong{font-size:12px}
}
.zx-case-filter-form :focus-visible,.zx-case-filter-dialog :focus-visible,.zx-case-mobile-filter-buttons :focus-visible{outline:2px solid var(--zx-gold);outline-offset:3px}
@media(max-width:800px){
  .zx-page-cases main>.zx-case-list-hero{display:none!important}
  .zx-page-cases .zx-case-mobile-intro{display:block;padding:96px 18px 22px;background:var(--zx-forest);color:#fff}
  .zx-case-mobile-intro small{font-size:9px;letter-spacing:2px;color:var(--zx-gold-light)}
  .zx-case-mobile-intro h1{font:400 29px/1.3 var(--zx-serif);margin:8px 0}
  .zx-case-mobile-intro p{font-size:12px;margin:0;color:rgba(255,255,255,.8)}
  .zx-page-cases main>.zx-case-list-section{padding-top:12px!important;padding-bottom:28px!important;overflow:visible}
  .zx-page-cases .zx-case-list-section>.zx-section-inner>.zx-row>.zx-column:has(>.zx-block-travelCases)>.zx-block-heading,
  .zx-page-cases .zx-case-list-section>.zx-section-inner>.zx-row>.zx-column:has(>.zx-block-travelCases)>.zx-block-eyebrow{display:none}
  .zx-page-cases .zx-block-travelCases{margin-top:0!important}
  .zx-page-cases .zx-case-list-section>.zx-section-inner{width:calc(100vw - 28px)}
  .zx-page-cases .zx-travel-cases{grid-template-columns:1fr;gap:10px}
  .zx-page-cases .zx-travel-case{flex-direction:row;gap:11px;padding:10px;border-radius:6px;min-height:148px}
  .zx-page-cases .zx-travel-case>img{width:106px;height:126px;aspect-ratio:auto;flex:0 0 106px;border-radius:3px}
  .zx-page-cases .zx-travel-case-copy{padding:0;min-width:0}
  .zx-page-cases .zx-travel-case h3{font:500 14px/1.5 var(--zx-sans);margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .zx-page-cases .zx-travel-case-copy>p{display:none}
  .zx-page-cases .zx-case-meta{gap:4px;margin-bottom:7px;max-height:44px;overflow:hidden}
  .zx-page-cases .zx-case-meta span{font-size:9px;letter-spacing:0;padding:3px 4px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .zx-page-cases .zx-travel-case strong{font-size:11px;letter-spacing:0}
  .zx-page-cases .zx-public-case-filters{position:sticky;top:74px;z-index:20;background:var(--zx-ivory);padding:2px 0 10px}
  .zx-case-filter-form{gap:8px;padding:10px;margin-bottom:10px}
  .zx-case-filter-form select{min-width:0;width:100%;max-width:100%}
  .zx-case-filter-form label{flex:1 1 100%}
  .zx-case-filter-enhanced .zx-case-filter-form label,.zx-case-filter-enhanced .zx-case-filter-form button[type=submit]{display:none}
  .zx-case-filter-enhanced .zx-case-filter-form{border:0;background:none;padding:8px 0 0;margin:0}
  .zx-case-filter-enhanced .zx-case-filter-reset{border:0;background:none;padding:8px 2px;font-size:12px}
  .zx-case-filter-enhanced .zx-case-mobile-filter-buttons{display:flex;gap:9px}
  .zx-case-mobile-filter-buttons button{flex:1;min-width:0;min-height:44px;border:1px solid var(--zx-line);border-radius:4px;background:#fff;padding:10px;font:13px var(--zx-sans);color:var(--zx-forest);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .zx-case-filter-count{font-size:11px}
}
