.psm{background:#fff;color:#2d2d2d}.psm .section-head{max-width:760px;margin-left:auto;margin-right:auto;text-align:center}.psm .section-head h2{color:#1a365d}.psm .section-head .rule{margin-left:auto;margin-right:auto}.psm-shell{border:1px solid #dce2e8;border-radius:2px;overflow:hidden}.psm-facts{display:grid;grid-template-columns:1fr 1.25fr 1.25fr 1fr;background:#1a365d;color:white;align-items:center;padding:24px 8px}.psm-facts>div{padding:0 24px;border-right:1px solid #ffffff26;display:flex;flex-direction:column;gap:4px}.psm-facts strong{font-size:26px;line-height:1.25;font-weight:600;letter-spacing:-.6px}.psm-facts>div:first-child strong{color:#d4b882;font-size:32px}.psm-facts span{font-size:12px;color:#d7e0ec}.psm-facts>a{color:#fff;font-size:13px;text-align:center;text-decoration:none}.psm-facts>a span{color:#d4b882;font-size:18px;margin-left:8px}.psm-layout{display:grid;grid-template-columns:205px minmax(0,1fr) 285px}.psm-sidebar{padding:22px 14px;background:#f7f8f9;border-right:1px solid #e5e7ea}.psm-step{font-size:10px;text-transform:uppercase;letter-spacing:1.3px;color:#697987;font-weight:600;display:block}.psm-sidebar>.psm-step{margin:0 8px 18px}.psm .psm-category{appearance:none;width:100%;display:flex;gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid #e5e7ea;border-radius:2px;background:transparent;padding:11px 8px;color:#1a365d;font-family:inherit;font-size:12px;line-height:1.4;cursor:pointer;min-height:43px}.psm-category>span{font-size:10px;color:#8e9ba9;min-width:18px}.psm-category>b{margin-left:auto;font-size:13px;font-weight:400;opacity:0}.psm .psm-category.is-active{background:#1a365d;color:#fff;border-color:#1a365d}.psm-category.is-active>span{color:#d4b882}.psm-category.is-active>b,.psm-category:hover>b{opacity:1}.psm .psm-category:hover:not(.is-active){background:#e9eef3}.psm button:focus-visible,.psm a:focus-visible{outline:3px solid #c0a062;outline-offset:3px}.psm-map-panel{min-width:0;background:radial-gradient(ellipse at 65% 48%,#fff 0%,#f6f8fa 75%);display:flex;flex-direction:column}.psm-map-top{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;color:#64788c;font-size:11px;gap:10px}.psm-map-top button{background:none;border:0;color:#1a365d;font:inherit;cursor:pointer}.psm-map{position:relative;margin:0 8px;flex:1;align-content:center}.psm-map>img{display:block;width:100%;height:auto;aspect-ratio:760/520}.psm .psm-pin{position:absolute;transform:translate(-50%,-50%);width:28px;height:28px;padding:0;border:none;background:none;cursor:pointer;color:#1a365d}.psm-pin-dot{display:block;width:9px;height:9px;margin:auto;border:2px solid #fff;background:#1a365d;border-radius:50%;box-shadow:0 0 0 5px #1a365d14;transition:box-shadow .2s,background .2s}.psm-pin-label{position:absolute;left:24px;top:3px;font-size:11px;white-space:nowrap;line-height:20px;font-weight:600;background:#ffffffde;padding:0 5px;border-radius:2px}.psm-pin--yiwu .psm-pin-label{left:auto;right:24px;top:-7px}.psm-pin--puyuan .psm-pin-label{top:-22px;left:15px}.psm-pin--wenzhou .psm-pin-label{top:12px}.psm .psm-pin.is-active .psm-pin-dot{background:#c0a062;box-shadow:0 0 0 7px #c0a06230,0 0 0 16px #c0a06212}.psm-pin.is-muted{opacity:.24}.psm-map-caption{position:absolute;left:6%;bottom:17%;color:#8492a1;font-size:12px;line-height:1.8}.psm-map-caption b{font-weight:500;color:#1a365d}.psm-map-key{display:flex;justify-content:center;align-items:center;gap:7px;padding:12px 6px 20px;font-size:9px;color:#6b7e90}.psm-map-key>span{width:6px;height:6px;border-radius:50%;background:#1a365d}.psm-map-key .psm-key-active{background:#c0a062;margin-left:12px}.psm-detail{border-left:1px solid #e5e7ea;padding:24px 22px;display:flex;flex-direction:column;min-width:0}.psm-detail>.psm-step{margin-bottom:22px}.psm-tag{font-size:10px;color:#947542;text-transform:uppercase;letter-spacing:1px}.psm .psm-detail h3{font-size:22px;line-height:1.35;margin:10px 0 12px;color:#1a365d}.psm .psm-detail p{font-size:12px;line-height:1.8;color:#667584;margin:0}.psm-location-list{margin:18px 0}.psm .psm-place-row{width:100%;display:flex;gap:10px;border:0;border-bottom:1px solid #e5e7ea;background:none;padding:12px 0;font-family:inherit;text-align:left;color:#1a365d;cursor:pointer;font-size:12px}.psm-place-row>span{color:#a78a54;font-size:10px}.psm-place-row>div{flex:1}.psm-place-row small{font-size:10px;color:#71808c;display:block;margin-top:4px}.psm-place-row.is-active{box-shadow:inset 2px 0 #c0a062;padding-left:9px}.psm-brief{margin:20px 0 26px}.psm-brief>.psm-step{margin-bottom:8px}.psm .psm-cta{margin-top:auto;width:100%;display:flex;justify-content:space-between;align-items:center;background:#1a365d;color:#fff;padding:13px 15px;font-size:12px;line-height:1.4;border:1px solid #1a365d;border-radius:2px;text-decoration:none}.psm .psm-cta:hover{background:#142a49}.psm-text-link{font-size:10px;color:#1a365d;text-align:center;margin-top:12px;text-decoration:none}.psm-footnote{border-top:1px solid #e5e7ea;padding:13px 22px;color:#7b8793;font-size:10px;line-height:1.7;background:#fafbfc}.psm .psm-detail-copy{flex:1}
.psm-map-panel{justify-content:space-between}.psm-map{flex:0 0 auto}.psm{scroll-margin-top:125px}
@media(max-width:950px){.psm-layout{grid-template-columns:180px minmax(0,1fr)}.psm-detail{grid-column:1/-1;border-left:0;border-top:1px solid #e5e7ea;display:grid;grid-template-columns:1fr 240px;gap:0 28px}.psm-detail>.psm-step,.psm-detail-copy{grid-column:1}.psm-detail-copy{grid-row:2/5}.psm-detail>.psm-cta{grid-column:2;grid-row:2;align-self:end}.psm-detail>.psm-text-link{grid-column:2;grid-row:3}.psm-location-list{display:flex;gap:20px}.psm .psm-place-row{flex:1}.psm-brief{margin-bottom:0}.psm-facts strong{font-size:22px}}
@media(max-width:650px){.psm .section-head h2{font-size:29px}.psm-facts{grid-template-columns:1fr 1fr;padding:18px 4px;gap:18px 0}.psm-facts>div{padding:0 18px}.psm-facts>div:nth-child(2){border:0}.psm-facts strong{font-size:21px}.psm-facts>div:first-child strong{font-size:25px}.psm-facts span{font-size:10px}.psm-facts>a{font-size:11px}.psm-layout{display:flex;flex-direction:column}.psm-sidebar{display:flex;overflow-x:auto;gap:7px;padding:14px;border-right:0;border-bottom:1px solid #e5e7ea;align-items:center}.psm-sidebar>.psm-step{display:none}.psm .psm-category{flex:0 0 auto;width:auto;min-height:39px;border:1px solid #dce2e8;padding:9px 12px;white-space:nowrap;font-size:11px}.psm-category>b,.psm-category>span{display:none}.psm-map-top{padding:16px}.psm-map{margin:0 6px;min-height:0}.psm-map>img{position:static;transform:none}.psm-pin-label{font-size:10px}.psm-map-caption{font-size:10px;bottom:14%;left:5%}.psm-map-key{padding-bottom:18px}.psm-detail{display:flex;padding:22px}.psm-detail>.psm-step{margin-bottom:14px}.psm .psm-detail h3{font-size:23px}.psm .psm-detail p{font-size:13px}.psm-location-list{flex-direction:column;gap:0;margin:12px 0}.psm-brief{margin:18px 0 22px}.psm-footnote{padding:12px 18px}.psm-pin--wenzhou .psm-pin-label{top:11px;left:16px}}
@media(prefers-reduced-motion:reduce){.psm *{transition:none!important}}
@media(max-width:650px){.psm .psm-pin{width:14px;height:14px}.psm-pin-label{min-height:26px;line-height:26px;pointer-events:auto}.psm-pin--puyuan .psm-pin-label{top:-39px;left:10px}.psm-pin--yiwu .psm-pin-label{top:-13px;right:16px}.psm-pin--wenzhou .psm-pin-label{top:12px;left:14px}.psm{scroll-margin-top:100px}}

@media(min-width:951px) and (max-width:1150px){.psm-layout{grid-template-columns:175px minmax(0,1fr) 255px}.psm-detail{padding:22px 18px}.psm-facts strong{font-size:23px}}

@media(max-width:650px){.psm-pin--dongguan .psm-pin-label{top:22px;left:4px}}
.psm-pin--lishui .psm-pin-label{left:auto;right:16px;top:14px}
@media(max-width:650px){.psm-pin--lishui .psm-pin-label{left:28px;right:auto;top:-20px}.psm .psm-pin--yiwu .psm-pin-label{top:-26px;right:16px;left:auto}}

.psm .psm-map{margin-inline:3px}
.psm .psm-map>img{aspect-ratio:731/500}
.psm-city{position:absolute;transform:translate(-50%,-50%);width:14px;height:14px;display:grid;place-items:center;pointer-events:none;color:#805d22}
.psm-city-symbol{font-size:12px;line-height:1;text-shadow:0 0 3px #fff}
.psm-city--beijing .psm-city-symbol{font-size:17px}
.psm-city-label{position:absolute;left:15px;top:-2px;white-space:nowrap;font-size:10px;line-height:16px;padding:0 4px;background:#fffffff0;border-radius:2px;font-weight:600}
.psm-city--shanghai .psm-city-label{top:-44px}
.psm-city--shenzhen .psm-city-label{left:auto;right:11px;top:11px}
.psm-map-key{flex-wrap:wrap}
.psm-city-key{margin-left:4px;color:#805d22;font-style:normal}
@media(max-width:650px){
 .psm-city-label{font-size:9px}
 .psm-city--shanghai .psm-city-label{top:-58px;left:17px}
 .psm-city--shenzhen .psm-city-label{right:12px;top:6px}
}

/* --------------------------------------------------------------------------
   2026-11-06 首页轮客户优化（review 反馈四点，交付包原规则不动、追加覆盖）：
   ① 板块高度恒定 + CTA 贴列表（两轮反馈演进后的终版）：详情列内容随品类切换的
      地点行数增减（1~5 行）。终版=给 .psm-detail 设 min-height（All 态自然高实测
      748px @1440，≥地图列自然高，任何品类下网格行高恒定），.psm-cta 的
      margin-top:auto 清零、按文档流紧跟选单列表（客户要求 CTA 贴着列表，
      余白统一落到面板底部）；早期 copy min-height 689px 方案会把 CTA 推到列底、
      与列表间留大段空白，已废。≥651px 生效；≤650px 移动端为堆叠流，保持自然高度。
   ② 地点行选中态改左侧品类菜单同款深蓝底白字：去掉交付包的金色内嵌 bar 与
      padding-left 位移（文本不再左右跳动）；行内边距统一 8px，hover 浅灰底同左侧。
   ③ 城市与 pin 文字标签去白色底色（交付包 #ffffffde/#fffffff0 底），浅色地图上
      直接放深色字。
   ④ 参考城市符号与采购点统一为「圆点系」空心圆点（区别于采购点实心深蓝圆），
      首都北京保留金星（客户点名除外）。图例同步换空心圆点。
   -------------------------------------------------------------------------- */
/* 2026-11-07 客户口径：min-height:748px 收窄到 ≥951px 三栏布局（该值是桌面
   详情列实测，与地图列等高等高恒定）；651-950px 横带布局（detail 移到地图下方
   全宽两栏）748px 会把带子撑出大片空白，改回自然高度，CTA 列向下对齐钉带底。 */
@media(min-width:951px){
 .psm .psm-detail{min-height:748px}
 /* 2026-11-07 客户 idea：城市列表移到描述上方（眉标/标题 → 选单 → 描述），
    CTA+链接 margin-top:auto 钉列底，空隙落在描述与 CTA 之间。 */
 .psm .psm-detail-copy{flex:1 1 auto;display:flex;flex-direction:column}
 .psm .psm-cta{margin-top:auto}
}
@media(min-width:651px) and (max-width:950px){
 .psm .psm-cta{margin-top:0}
 /* 横带布局：CTA 与说明链接跨满行高（与左列 copy 同跨 2/5）并钉带底，
    与左侧选单列表底边对齐；链接紧贴带底、CTA 在其上方 30px（margin 让位）。 */
 .psm .psm-detail>.psm-cta{grid-row:2/5;align-self:end;margin-bottom:30px}
 .psm .psm-detail>.psm-text-link{grid-row:2/5;align-self:end}
}
.psm .psm-place-row{padding:12px 8px;transition:background .15s,color .15s}
.psm .psm-place-row.is-active{background:#1a365d;color:#fff;box-shadow:none;padding-left:8px;border-radius:2px}
.psm .psm-place-row.is-active>span{color:#d4b882}
.psm .psm-place-row.is-active small{color:#ffffffb3}
.psm .psm-place-row:hover:not(.is-active){background:#e9eef3}
.psm-pin-label{background:none;padding:0}
.psm-city-label{background:none}
.psm-city-symbol.psm-city-dot{width:10px;height:10px;border:2px solid #1a365d;background:#fff;border-radius:50%}
.psm-city-key.psm-city-dot{display:inline-block;width:9px;height:9px;border:2px solid #1a365d;background:#fff;border-radius:50%;color:transparent}

/* 2026-11-06 客户追加反馈：①上海/深圳不在右侧地点清单，整个城市标注移除
   （模板已删，图例 Reference city 项同步删——无对应元素）；②Puyuan 标签贴回
   点位正右侧（交付包抬到 -22px 是为避让已删除的上海标签，恢复默认右侧定位）。 */
.psm-pin--puyuan .psm-pin-label{top:3px;left:24px}
@media(max-width:650px){
 .psm-pin--puyuan .psm-pin-label{top:2px;left:18px}
}

/* 2026-11-06 客户追加反馈：右侧「标签·标题·描述」头部区固定高度（全状态实测最大
   204px，@1440），城市选单钉在其下——上方文本换行数变化时选单不再位移；
   What to prepare 块已删（模板+JS 同步），detail-copy 的 min-height 689px 维持板块
   高度恒定与 CTA 钉底。≥651px 生效，移动端堆叠流保持自然高度。 */
@media(min-width:651px){
 .psm .psm-copy-head{min-height:206px}
}

/* --------------------------------------------------------------------------
   2026-11-07 客户选型：地图视觉升级「方案 C 鎏金航线 GOLD ROUTES」（.temp/
   map-designs/c-goldlight.html 定稿移植）。暖象牙面板 + 老旧地图纸滤镜 +
   （注：金色流动航线已按客户 2026-11-07 二次反馈整体移除，
   不再输出 .psm-routes 层；本块保留 C 的面板配色/金 CTA/呼吸 pin）+ 呼吸金环 pin + 详情列金线描边 + CTA 换金渐变流动。
   交付包原规则与既有客户优化（深蓝选中态/去白底标签/高度恒定/横带对齐）全部不动，
   本块只做颜色与动效覆盖；reduced-motion 全部降级为静态。
   -------------------------------------------------------------------------- */
.psm-shell{border-color:#e2ddd2;border-radius:6px}
.psm-map-panel{background:radial-gradient(ellipse at 68% 60%, #fffdf7 0%, #f9f4e9 55%, #f3ecdb 100%)}
.psm-map>img{filter:sepia(.28) saturate(.8) brightness(1.03);opacity:.95}
.psm-map-top{color:#927239;letter-spacing:.6px}
.psm-map-live{display:inline-flex;align-items:center;gap:7px}
.psm-map-live::before{content:"";width:7px;height:7px;border-radius:50%;background:#c9a46a;animation:psmPing 2s infinite}
.psm .psm-pin{z-index:2}
.psm-map-caption{z-index:2;color:#7d8ba0}
.psm-map-caption b{color:#14243c;font-weight:600}
@keyframes psmPing{0%{box-shadow:0 0 0 0 rgba(201,164,106,.45)}70%{box-shadow:0 0 0 9px transparent}100%{box-shadow:0 0 0 0 transparent}}
.psm .psm-pin.is-active .psm-pin-dot{animation:psmPing 2.2s ease-out infinite}
/* 侧栏：暖象牙底 + 金色小标 */
.psm-sidebar{background:#faf8f3;border-right-color:#eae5d9}
.psm-sidebar>.psm-step,.psm-detail>.psm-step{color:#927239}
.psm .psm-category{border-bottom-color:#eee9de}
.psm .psm-category:hover:not(.is-active){background:#f3efe4}
/* 详情列：白底金线描边 */
.psm-detail{position:relative;background:#fff;border-left-color:#eae5d9}
.psm-detail::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(#e6cba8,#c9a46a)}
.psm-tag{color:#927239}
.psm .psm-detail p{color:#5f7085}
.psm .psm-place-row{border-bottom-color:#eee9de}
.psm-footnote{background:#faf8f3;border-top-color:#eae5d9;color:#98a3b2}
/* CTA 并入全站金流光组（main.css .btn--gold 系十一组，2026-11-07 客户口径统一
   动效与 hover）：此处仅中和交付包深蓝底/白字/深蓝 hover（同 specificity 级、
   本文件靠后加载故生效）；流动/闪光/上浮/投影全部来自 main.css 流光组。 */
.psm .psm-cta{background-color:#c9a46a;background-image:none;color:#14243c;border-color:#c9a46a;font-weight:700;letter-spacing:.5px}
.psm .psm-cta:hover{background-color:#c9a46a;background-image:none;color:#14243c;border-color:rgba(215,182,120,.9);transform:translateY(-2px);box-shadow:0 18px 60px -12px rgba(230,196,130,.9),inset 0 1px rgba(255,255,255,.6)}
@media(prefers-reduced-motion:reduce){
  .psm .psm-cta,.psm .psm-pin.is-active .psm-pin-dot,.psm-map-live::before{animation:none}
}
