@charset "utf-8";
@import url("https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css");
/* ============================================================================
   prosperousyear.com —— 现代化叠加层 v1
   加载顺序：必须放在 common.css / style.css / home.css 之后（最后加载）
   设计原则：只新增与覆盖，不修改原 CSS；删掉本文件即可完整回滚
   品牌色沿用 #f9c737（首页既有金），字体统一为自托管 Inter
   ============================================================================ */

/* ---------------------------------------------------------------------------
   0. 自托管 Inter（可变字体，weight 100-900，2 个文件共 ~131KB）
      同时把站点历史遗留的 OpenSans-* 族名"别名"到 Inter 文件上，
      这样原有几十处 font-family:"OpenSans-Light" 无需逐条改写即可生效。
   --------------------------------------------------------------------------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/inter-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* 历史族名 -> Inter 别名（CSS 族名匹配不区分大小写，故 Opensans-* 一并覆盖） */
@font-face{font-family:'OpenSans-Light';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'OpenSans-Light';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/inter-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'OpenSans-Regular';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'OpenSans-Regular';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/inter-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'OpenSans-Bold';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'OpenSans-Bold';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/inter-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Pakt-SemiBold';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/inter-latin.woff2) format('woff2');}
@font-face{font-family:'Montserrat-Regular';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(../fonts/inter-latin.woff2) format('woff2');}

/* ---------------------------------------------------------------------------
   1. 设计令牌
   --------------------------------------------------------------------------- */
:root{
  --py-gold:#f9c737;
  --py-gold-d:#e5b11c;
  --py-gold-soft:#fff8e2;
  --py-ink:#12161c;
  --py-body:#333a45;
  --py-muted:#7a8494;
  --py-line:#e8ebf0;
  --py-line-2:#f0f2f6;
  --py-soft:#f7f8fa;
  --py-white:#fff;
  --py-radius:16px;
  --py-radius-sm:10px;
  --py-radius-pill:999px;
  --py-space-1:4px;--py-space-2:8px;--py-space-3:12px;--py-space-4:16px;--py-space-5:24px;--py-space-6:32px;--py-space-7:48px;
  --py-type-xs:12px;--py-type-sm:13px;--py-type-base:15px;--py-type-lg:18px;--py-type-xl:24px;--py-type-2xl:32px;
  --py-shadow-xs:0 1px 2px rgba(16,24,40,.05);
  --py-shadow-sm:0 1px 2px rgba(16,24,40,.04),0 4px 12px rgba(16,24,40,.05);
  --py-shadow:0 2px 4px rgba(16,24,40,.04),0 12px 28px rgba(16,24,40,.08);
  --py-shadow-lg:0 8px 20px rgba(16,24,40,.09),0 28px 56px rgba(16,24,40,.13);
  /* 产品卡片统一阴影（首页 .eyou_pro_item 与内页 .ey_pro_lb .item 共用）。
     CSS box-shadow 的模糊半径 ≈ 阴影向外扩散的距离，所以原来 blur 18px 的阴影
     水平外扩 18px，而卡片间隙只有 30px（首页）/28.9px（内页）—— 两张卡的阴影
     在间隙里完全铺满、连成一条灰带（实测改前首页/内页间隙内像素峰值只有 253~254，
     没有一处纯白 255），同时 y 偏移为 0（首页）让上下方向显得"没有阴影"。
     这里用负 spread 把水平外扩从 18px 收到 7px（blur10 - spread3），
     实测 1280px 下间隙中部出现 14px 纯白 255（改前 0px），左右不再连片；
     同时把 y 偏移设为 2px、透明度提到 .16，卡下最暗值由改前 247 加深到 232、
     卡上也有 6px 可见阴影（改前 17px 带宽但最暗仅 246，几乎看不见）。 */
  --py-card-shadow:0 2px 10px -3px rgba(16,24,40,.16),0 1px 2px rgba(16,24,40,.05);
  --py-card-shadow-hover:0 8px 18px -7px rgba(16,24,40,.24),0 2px 5px -2px rgba(16,24,40,.08);
  /* 窄间隙卡片专用（HOT PRODUCTS 轮播卡 .hot_cate .row）。
     该轮播的 slideMargin 只有 16px（common.js SLIDE_MARGIN=16），
     上面那档 7px 外扩会把 16px 间隙填掉 14px，几乎又连片；
     这里把外扩收到 4px（blur8 - spread4），实测间隙中部留出 6px 纯白。 */
  --py-card-shadow-tight:0 2px 8px -4px rgba(16,24,40,.16),0 1px 2px rgba(16,24,40,.05);
  --py-card-shadow-tight-hover:0 6px 14px -8px rgba(16,24,40,.22),0 2px 4px -2px rgba(16,24,40,.07);
  --py-ease:cubic-bezier(.22,.61,.36,1);
  --py-ease-out:cubic-bezier(.16,1,.3,1);
  --py-ff:"Inter","OpenSans-Regular",system-ui,-apple-system,"Segoe UI",Roboto,
          "Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}

/* ---------------------------------------------------------------------------
   2. 基础排版
   --------------------------------------------------------------------------- */
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--py-ff);
  color:var(--py-body);
  font-size:var(--py-type-base);
  line-height:1.75;
  letter-spacing:.002em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  background:var(--py-white);
}
h1,h2,h3,h4,h5,h6{font-family:var(--py-ff);color:var(--py-ink);letter-spacing:-.015em;line-height:1.32}
a{transition:color .25s var(--py-ease),opacity .25s var(--py-ease)}
img{max-width:100%}
::selection{background:var(--py-gold);color:var(--py-ink)}

/* 滚动条（桌面端） */
@media (min-width:992px){
  html{scrollbar-width:thin;scrollbar-color:#c9cfd8 transparent}
  body::-webkit-scrollbar{width:10px}
  body::-webkit-scrollbar-track{background:transparent}
  body::-webkit-scrollbar-thumb{background:#c9cfd8;border:3px solid #fff;border-radius:99px}
  body::-webkit-scrollbar-thumb:hover{background:#aeb6c2}
}

/* ---------------------------------------------------------------------------
   3. 页头：吸顶 + 毛玻璃 + 滚动收缩（首页 #header.eyou_index 是绝对定位覆盖式，排除）
   --------------------------------------------------------------------------- */
/* 注意：本站 #header 在所有页面都带 eyou_index 类，不能据此判断首页。
   首页靠 home.css 的 #header.eyou_index{position:absolute} 覆盖本规则（特异性更高），
   同时由 JS 给首页 body 加 .py-home 来关掉毛玻璃/边框等观感改动。 */
#header{position:sticky;top:0;z-index:900}
body:not(.py-home) #header{
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:padding .35s var(--py-ease),box-shadow .35s var(--py-ease),
             border-color .35s var(--py-ease),background-color .35s var(--py-ease);
}
body:not(.py-home) #header.py-stuck{
  padding-top:10px;padding-bottom:10px;
  border-bottom-color:var(--py-line);
  box-shadow:0 6px 24px rgba(16,24,40,.07);
}
body:not(.py-home) #header.py-stuck .eyou_header_logo img{max-height:40px}
#header .eyou_header_logo img{transition:max-height .35s var(--py-ease)}
.eyou_header_nav ul li>a{font-weight:500;letter-spacing:.01em}
.eyou_header_nav ul li a::after{height:2px;border-radius:2px;bottom:6px}
.eyou_heaedr_opear .eyou_header_inquiry{
  border-radius:var(--py-radius-pill);
  font-weight:600;letter-spacing:.02em;
  box-shadow:0 6px 16px rgba(249,199,55,.32);
  transition:transform .3s var(--py-ease),box-shadow .3s var(--py-ease),background-color .3s var(--py-ease);
  /* 左右间距加大：style.css 给的是固定 width:166px 且 padding:0，
     文字实测 139px，两侧各只剩 13px 视觉留白，胶囊显得很局促。
     改为宽度自适应 + 显式左右内边距。
     注意：页头里 .eyou_heaedr_opear 是 float:right，可用宽度只有 275px，
     按钮加宽 166→193 后 40(搜索) + 57(margin-left) + 193 = 290 会溢出换行，
     把整个页头从 91px 撑到 129px。因此同步把 margin-left 由 57px 收到 30px，
     使"按钮宽 + 左外边距"仍等于原来的 223px，占位总量不变、不会换行。 */
  width:auto;padding:0 26px;margin-left:30px;
}
.eyou_heaedr_opear .eyou_header_inquiry:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(249,199,55,.42);
  border-color:var(--py-gold-d);background-color:var(--py-gold-d);
}
/* ≤1360px 时 style.css 把 .eyou_heaedr_opear 固定成 240px 宽、按钮 margin-left 收到 20px，
   扣掉 40px 搜索图标后只剩 200px 给"margin-left + 按钮"，按上面的 26px 内边距算
   20+193 = 213 > 200 会溢出换行（实测页头由 91px 被撑到 129px）。
   这里同步收窄内边距与左外边距，保证 16+177 = 193 ≤ 200，仍比原来的 13px 留白宽。 */
@media screen and (max-width:1360px){
  .eyou_heaedr_opear .eyou_header_inquiry{width:auto;padding:0 18px;margin-left:16px}
}
.eyou_heaedr_opear .eyou_header_search{transition:transform .3s var(--py-ease)}
.eyou_heaedr_opear .eyou_header_search:hover{transform:scale(1.08)}
/* 二级菜单 */
.eyou_header_navsub{
  border-radius:var(--py-radius-sm);
  box-shadow:var(--py-shadow-lg);
  border:1px solid var(--py-line);
  padding-top:10px;padding-bottom:10px;
}
.eyou_header_navsub a{border-radius:8px;padding-left:10px;padding-right:10px;transition:background-color .2s var(--py-ease),padding-left .2s var(--py-ease)}
.eyou_header_navsub a:hover{background:var(--py-soft)}
.eyou_header_navsub{top:calc(100% + 20px)}
.eyou_header_navsub::before{content:"";position:absolute;right:0;bottom:100%;left:0;height:20px}
body:not(.py-home) #header.py-stuck .eyou_header_navsub{top:calc(100% + 10px)}
body:not(.py-home) #header.py-stuck .eyou_header_navsub::before{height:10px}

/* ---------------------------------------------------------------------------
   4. 内页 hero + 面包屑
   --------------------------------------------------------------------------- */
.in_ad .ad_con .ey_position{border-bottom:0}
.in_ad .ad_con .ey_position .title{font-weight:600;letter-spacing:-.02em;text-shadow:0 2px 20px rgba(0,0,0,.28)}
.in_ad .ad_con .ey_position .position a{font-weight:500;opacity:.92}
.in_ad .ad_con .ey_position .position a:hover{opacity:1;color:var(--py-gold)}
.ey_position{border-bottom:1px solid var(--py-line)}
.ey_position .position a{font-weight:500}
.ey_position .position a:hover{color:var(--py-ink)}

/* ---------------------------------------------------------------------------
   5. 栏目切换条（.menu-wrap-style .menu 实为居中横向 Tab，不是纵向侧栏）
      原样式是深红描边方块（border 1px #aa1f24），与品牌金冲突，这里改为胶囊。
      2026-10-10 第二轮（用户反馈）：**去掉外层那张大圆角白卡**（"这个标签外边框去掉"），
      只留胶囊本身；选中态由黑底白字改为**品牌金底 + 深色字**，与产品列表页分类条统一。
   --------------------------------------------------------------------------- */
.menu-wrap-style .menu{
  padding:0;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
}
.menu-wrap-style .menu h3{margin:6px 6px}
.menu-wrap-style .menu h3 a{
  position:relative;display:block;
  padding:0 24px;height:42px;line-height:40px;
  font-size:15px;font-weight:500;color:var(--py-body);
  border:1px solid var(--py-line);border-radius:var(--py-radius-pill);
  background:#fff;
  transition:background-color .25s var(--py-ease),color .25s var(--py-ease),
             border-color .25s var(--py-ease),transform .25s var(--py-ease);
}
.menu-wrap-style .menu h3 a:hover{
  background:var(--py-gold-soft);color:var(--py-ink);
  border-color:var(--py-gold);transform:translateY(-2px);
}
.menu-wrap-style .menu h3 a.on{
  background:var(--py-gold);color:var(--py-ink);border-color:var(--py-gold);font-weight:600;
  box-shadow:0 6px 16px rgba(249,199,55,.38);
}

/* 5b. 产品列表页的分类筛选条（ul.main-menu）。
   这些样式**不在任何 css 文件里**，而是 lists_product.htm 顶部的内联 <style>，
   且**每条都带 !important**；内联 style 在 modern.css 之后加载（HTML 第 20 行 vs 第 16 行），
   所以覆盖必须同时满足：① 带 !important；② 特异性更高。
   改前选中态是品牌外的深红 #AA1F24（"All" 那一个），与全站金/黑体系脱节。
   改后与新闻栏目条统一：白底胶囊（未选中）/ 品牌金底 + 深色字（选中或悬停）。 */
.product-list .main-menu > li > a.menu-title{
  background:#fff!important;
  color:var(--py-ink)!important;
  border:1px solid var(--py-line)!important;
  box-shadow:var(--py-shadow-xs)!important;
}
.product-list .main-menu > li > a.menu-title i.iconfont,
.product-list .main-menu > li > a.menu-title .icon-down{color:var(--py-muted)!important}
.product-list .main-menu > li.active > a.menu-title,
.product-list .main-menu > li:hover > a.menu-title{
  background:var(--py-gold)!important;
  color:var(--py-ink)!important;
  border-color:var(--py-gold)!important;
  box-shadow:0 8px 18px rgba(249,199,55,.38)!important;
}
.product-list .main-menu > li.active > a.menu-title i,
.product-list .main-menu > li:hover > a.menu-title i{color:var(--py-ink)!important}
/* 下拉子菜单里的红点与红 hover 同样统一到金色系 */
.product-list .main-menu > li > ul > li > a::before{color:var(--py-gold-d)!important}
.product-list .main-menu > li > ul > li > a:hover{
  background:var(--py-gold-soft)!important;color:var(--py-ink)!important;
}

/* ---------------------------------------------------------------------------
   6. 新闻列表 .ey_info_list —— 细线分隔 -> 卡片
   --------------------------------------------------------------------------- */
.menu-in-left .wrap-righter-style{padding-top:12px}
.ey_info_list{margin:12px 0}
.ey_info_list .item{
  position:relative;
  display:flex;align-items:flex-start;gap:26px;
  margin:0 0 20px;padding:20px;
  border:1px solid var(--py-line);border-bottom:1px solid var(--py-line);
  border-radius:var(--py-radius);background:#fff;
  box-shadow:var(--py-shadow-xs);
  transition:transform .38s var(--py-ease),box-shadow .38s var(--py-ease),border-color .38s var(--py-ease);
}
.ey_info_list .item:last-child{margin-bottom:20px}
.ey_info_list .item:hover{
  transform:translateY(-4px);
  box-shadow:var(--py-shadow);
  border-color:#dfe4ec;
}
.ey_info_list .item .img{
  float:none;flex:0 0 208px;width:208px;
  border-radius:var(--py-radius-sm);overflow:hidden;
  background:var(--py-soft);position:relative;
}
.ey_info_list .item .img::after{
  content:'';position:absolute;inset:0;background:rgba(18,22,28,.06);
  opacity:0;transition:opacity .38s var(--py-ease);pointer-events:none;
}
.ey_info_list .item:hover .img::after{opacity:1}
.ey_info_list .item .img img{
  /* 2026-10-10 第二轮（用户反馈）：图片比例由 1:1 改为 3:2（横向）。
     原来 height:100% + aspect-ratio:1/1 互相打架，实测渲染成约 163×188 的竖长图。
     现在只留 width:100% + aspect-ratio:3/2，高度由比例决定（208px 宽 → 约 139px 高）。 */
  display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;
  transition:transform .6s var(--py-ease-out);
}
.ey_info_list .item:hover .img img{transform:scale(1.06)}
.ey_info_list .item .info{
  float:none;width:auto;flex:1 1 auto;min-width:0;padding-left:0;
}
.ey_info_list .item .info .title{padding-bottom:6px}
.ey_info_list .item .info .title a{
  font-size:19px;font-weight:600;color:var(--py-ink);line-height:1.45;
  transition:color .25s var(--py-ease);
}
.ey_info_list .item .info .title a:hover{color:var(--py-gold-d)}
.ey_info_list .item .info .time{
  display:inline-flex;align-items:center;gap:7px;
  margin:4px 0 10px;padding:3px 12px;
  font-size:12.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;
  color:var(--py-muted);background:var(--py-soft);border-radius:var(--py-radius-pill);
}
.ey_info_list .item .info .time::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--py-gold);
}
.ey_info_list .item .info .time h3{font:inherit;color:inherit;margin:0}
.ey_info_list .item .info .desc{
  font-size:14.5px;line-height:1.8;color:#5c6674;max-height:none;
  margin:0;display:block;
}
/* 让整卡可点：把 .link 铺满 */
.ey_info_list .item .link{
  display:block;position:absolute;inset:0;z-index:2;
  font-size:0;color:transparent;border-radius:var(--py-radius);
}

/* ---------------------------------------------------------------------------
   7. 相关新闻 .rale_news 卡片化
   ⚠ 2026-10-10 第七轮（用户反馈）：整个「Related News / Read More」区块已下线，
   见下面第一行 .rale_news{display:none}。出现范围：/news/、/industry-news/ 列表页
   与 /news/xx.html 文章详情页；产品页 /products/xx.html 不含该区块（已实测确认）。
   本节其余卡片化样式保留但不生效，删掉 display:none 那一行即可整体恢复。
   --------------------------------------------------------------------------- */
.rale_news{display:none}
/* ↓ 以下为原卡片化样式，当前不生效，保留备用 */
.rale_news{margin-top:44px;padding-top:34px;border-top:1px solid var(--py-line)}
.rale_news .news_title{margin-bottom:24px;overflow:hidden}
.rale_news .news_title .title{
  position:relative;padding-left:14px;
  font-size:22px;font-weight:700;color:var(--py-ink);letter-spacing:-.015em;
}
.rale_news .news_title .title::before{
  content:'';position:absolute;left:0;top:50%;width:4px;height:20px;margin-top:-10px;
  background:var(--py-gold);border-radius:3px;
}
.rale_news .news_title .read_btn{
  font-size:14px;font-weight:600;color:var(--py-muted);
  display:inline-flex;align-items:center;gap:4px;
  transition:color .25s var(--py-ease),gap .25s var(--py-ease);
}
.rale_news .news_title .read_btn:hover{color:var(--py-gold-d);gap:9px}
.rale_news .list{display:flex;flex-wrap:wrap;gap:24px;font-size:0}
.rale_news .list .item{
  display:flex;flex-direction:column;vertical-align:top;
  width:calc((100% - 72px)/4);font-size:15px;
  border:1px solid var(--py-line);border-radius:var(--py-radius);
  background:#fff;overflow:hidden;box-shadow:var(--py-shadow-xs);
  transition:transform .38s var(--py-ease),box-shadow .38s var(--py-ease),border-color .38s var(--py-ease);
}
.rale_news .list .item:hover{transform:translateY(-5px);box-shadow:var(--py-shadow);border-color:#dfe4ec}
.rale_news .list .item .img{
  display:block;width:100%;overflow:hidden;background:var(--py-soft);
}
.rale_news .list .item .img img{
  display:block;width:100%;aspect-ratio:16/10;object-fit:cover;
  transition:transform .6s var(--py-ease-out);
}
.rale_news .list .item:hover .img img{transform:scale(1.07)}
.rale_news .list .item .title{
  display:block;padding:16px 18px 0;
  font-size:15.5px;font-weight:600;color:var(--py-ink);line-height:1.5;
  transition:color .25s var(--py-ease);
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.rale_news .list .item:hover .title{color:var(--py-gold-d)}
.rale_news .list .item .time{
  padding:8px 18px 0;font-size:12.5px;font-weight:500;letter-spacing:.04em;
  text-transform:uppercase;color:var(--py-muted);
}
.rale_news .list .item .brief{
  padding:8px 18px 20px;font-size:13.5px;line-height:1.75;color:#6b7482;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}

/* ---------------------------------------------------------------------------
   8. 分页 .ey_pages 胶囊化
   原来的两层结构互相打架：common.css / style.css 把尺寸与背景加在内层 a/font 上
   （含 width:100%、background:#f5f5f5、.page_item_current{background:#f9c737}），
   而 modern.css 又把背景加在外层 span 上，于是同一个按钮被画了两层背景，
   且两层宽度不一致 —— 实测外层 span 70px、内层 a/font 92px（内层溢出 22px），
   当前页更出现"深色外层 + 黄色内层"的错位叠加。
   现在把胶囊统一收敛到内层 a/font（外层 span 退化为透明占位），
   无论 a 还是 font 都是同一个胶囊，只有一层背景。

   注意：style.css 里的分页规则全部带 body 前缀（body .ey_pages span a 等，
   特异性 0,1,3），不带前缀的 .ey_pages span a 只有 0,1,2，会被它压住，
   所以这里的选择器也必须带 body 前缀才能覆盖（同为 0,1,3 时靠加载顺序取胜，
   modern.css 在 style.css 之后加载）。

   另一个更隐蔽的同类坑（2026-10-10 修）：common.css:229 是
     .ey_pages span:hover{background:#e9edeb}     ← 特异性 (0,2,1)
   而本文件清背景用的是
     body .ey_pages span{background:none}          ← 只有 (0,1,2)，被 :hover 那条压住
   于是**只在鼠标悬停时**外层 span 会画出一块**方角**灰底（span 没有 border-radius）。
   叠加 a 的 translateY(-2px) 上浮后，这块方角底就从胶囊的圆角缺口处
   和胶囊下方 2px 露出来，看起来像"按钮背后多了一块方块"（用户截图反馈）。
   必须用同为 :hover 的 (0,2,2) 选择器显式清掉；悬停反馈由 a 自己提供。
   --------------------------------------------------------------------------- */
body .ey_pages{margin:38px 0;line-height:1;text-align:center}
body .ey_pages span{
  display:inline-block;vertical-align:top;
  width:auto;min-width:0;height:auto;line-height:1;
  margin:5px 4px;padding:0;
  background:none;border:0;
}
/* 清掉 common.css:229 的 hover 方角底（(0,2,2) > (0,2,1)） */
body .ey_pages span:hover{background:none}
body .ey_pages span a,
body .ey_pages span font{
  display:inline-flex;align-items:center;justify-content:center;
  box-sizing:border-box;vertical-align:top;
  width:auto;min-width:44px;height:44px;line-height:1;
  margin:0;padding:0 16px;
  font-size:15px;font-weight:500;color:var(--py-body);
  background:var(--py-soft);border:0;border-radius:12px;text-decoration:none;
  transition:background-color .25s var(--py-ease),color .25s var(--py-ease),
             transform .25s var(--py-ease);
}
body .ey_pages span:hover a,
body .ey_pages span:hover font{
  background:#eef1f6;color:var(--py-ink);transform:translateY(-2px);
}
body .ey_pages span .page_item_current{
  background:var(--py-ink);color:#fff;font-weight:600;
}
body .ey_pages span:hover a.page_item_current,
body .ey_pages span:hover font.page_item_current{
  background:var(--py-ink);color:#fff;transform:none;
}

/* ---------------------------------------------------------------------------
   9. 正文 / 富文本可读性（当前行宽 1311px，远超可读上限）
   --------------------------------------------------------------------------- */
.info-detail .wrap>.rightside>.ey_info_det,
.info-detail .wrap>.ey_info_det{max-width:920px;margin:0 auto}
/* 2026-10-10 第二轮（用户反馈）：联系页（/contact/）被 modern.js 重排成三张联系卡片后，
   仍然套着 920px 的"阅读宽度" —— 卡片区在 1400px 的 .wrap 里左右各空 240px
   （用户："间距不对，要跟首页宽度一致"）。
   这里用 :has() 只对**含联系卡片**的详情区放开到与首页同宽，
   纯文章正文继续保留 920px 的可读行宽。
   :has() 的参数计入特异性 → (0,4,0) / (0,3,0) 均高于原规则的 (0,3,0) / (0,2,0)。
   旧浏览器不支持 :has() 时整条规则失效 → 自动退回 920px，不影响正文阅读。 */
.info-detail .wrap>.rightside>.ey_info_det:has(.py-contact-grid),
.info-detail .wrap>.ey_info_det:has(.py-contact-grid){max-width:none;margin:0}
.ey_info_det .contents{
  font-size:16px;line-height:1.9;color:#3b434f;
}
.ey_info_det .contents>*:first-child{margin-top:0}
.ey_info_det .contents p{margin:0 0 1.15em}
.ey_info_det .contents h1,.ey_info_det .contents h2,.ey_info_det .contents h3,
.ey_info_det .contents h4{
  margin:1.9em 0 .7em;font-weight:700;color:var(--py-ink);letter-spacing:-.015em;
}
.ey_info_det .contents h2{font-size:26px}
.ey_info_det .contents h3{font-size:21px}
.ey_info_det .contents h4{font-size:18px}
.ey_info_det .contents h2::after,.ey_info_det .contents h3::after{
  content:'';display:block;width:44px;height:3px;margin-top:10px;
  background:var(--py-gold);border-radius:3px;
}
.ey_info_det .contents ul,.ey_info_det .contents ol{margin:0 0 1.2em;padding-left:1.35em}
.ey_info_det .contents li{margin:.45em 0}
.ey_info_det .contents ul li::marker{color:var(--py-gold-d)}
.ey_info_det .contents ol li::marker{color:var(--py-gold-d);font-weight:600}
.ey_info_det .contents a{color:var(--py-gold-d);font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:rgba(229,177,28,.45)}
.ey_info_det .contents a:hover{text-decoration-color:var(--py-gold-d)}
.ey_info_det .contents img{border-radius:var(--py-radius);box-shadow:var(--py-shadow-sm);height:auto}
.ey_info_det .contents blockquote{
  margin:1.4em 0;padding:16px 22px;border-left:4px solid var(--py-gold);
  background:var(--py-gold-soft);border-radius:0 var(--py-radius-sm) var(--py-radius-sm) 0;
  color:#4a5260;font-style:normal;
}
.ey_info_det .contents table{
  width:100%;margin:1.5em 0;border-collapse:separate;border-spacing:0;
  border:1px solid var(--py-line);border-radius:var(--py-radius-sm);overflow:hidden;font-size:15px;
}
.ey_info_det .contents th{
  background:var(--py-soft);font-weight:600;color:var(--py-ink);
  text-align:left;padding:12px 16px;border-bottom:1px solid var(--py-line);
}
.ey_info_det .contents td{padding:12px 16px;border-bottom:1px solid var(--py-line-2);vertical-align:top}
.ey_info_det .contents tr:last-child td{border-bottom:0}
.ey_info_det .contents tr:nth-child(even) td{background:#fbfcfd}

/* 文章标题 + 元信息 */
.ey_info_det>.title{
  font-size:30px!important;line-height:1.4!important;font-weight:700!important;
  color:var(--py-ink);letter-spacing:-.02em;margin-bottom:14px;
}
.ey_info_det .ext_mes{
  display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;
  margin:0 0 30px!important;padding-bottom:20px;border-bottom:1px solid var(--py-line);
  font-size:13.5px;color:var(--py-muted);
}
.ey_info_det .ext_mes>div{display:inline-flex;align-items:center;gap:7px}
.ey_info_det .ext_mes>div::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--py-gold);flex:0 0 auto;
}
/* 上一篇 / 下一篇 */
.info_prev_next{
  margin-top:38px;padding-top:22px;border-top:1px solid var(--py-line);
  font-size:14.5px;line-height:2.1;
}
.info_prev_next>span{display:inline-block;min-width:88px;color:var(--py-muted);font-weight:600}
.info_prev_next a{color:var(--py-body);font-weight:500}
.info_prev_next a:hover{color:var(--py-gold-d)}

/* 2026-10-10 第七轮（用户反馈）："Previous : / Next : 应该是一行，不是分 2 行"。
   根因不在本文件 —— 是 common.css:28 的
     .blank12{margin:0 auto;clear:both;height:12px;font-size:1px;overflow:hidden}
   而模板 view_article.htm 正好在这两条之间插了一个 <div class="blank12"></div>；
   它是块级 + clear:both，把本该同行的一对硬劈成两行（实测行高 30.45 + 空块 12 = 42px 间距）。
   改法：容器转 flex，让 .blank12 退出文档流；≥769px 时第二组（Next）用 margin-left:auto
   顶到右端，形成"左上一篇 / 右下一篇"的经典单行导航；≤768px 自动换行、左对齐。
   特异性核对：
     .info_prev_next            (0,1,0) 与旧规则相同、modern.css 后加载 → 覆盖成功
     .info_prev_next .blank12   (0,2,0) 高于 common.css:28 的 .blank12 (0,1,0) → 覆盖成功
     .info_prev_next>a          (0,1,1) 低于 common.css:109 的
       .info_prev_next.pro_prev_next a (0,2,1)，而后者给 a 塞了 width:100%，
       所以 width/height/margin/background 四项必须带 !important 才压得住。 */
.info_prev_next{
  display:flex;flex-wrap:wrap;align-items:baseline;line-height:1.9;
}
.info_prev_next .blank12{display:none}
.info_prev_next>a{
  display:inline;
  width:auto!important;height:auto!important;
  margin:0!important;background:none!important;
}
@media (min-width:769px){
  .info_prev_next>span:nth-of-type(2){margin-left:auto}
}

/* ---------------------------------------------------------------------------
   10. 产品列表卡片增强（配合既有 .row 圆角阴影）
   --------------------------------------------------------------------------- */
/* 产品卡片：首页 .eyou_pro_item 与内页 .ey_pro_lb .item 共用同一套阴影令牌。
   style.css 的卡片规则带 .wrap-module 前缀（.wrap-module .ey_pro_lb .item 特异性 0,3,0），
   比 .pro_list .item（0,2,0）高，所以这里把两种前缀都写进同一组选择器，
   靠 modern.css 后加载在同特异性下取胜。 */
.pro_list .item,
.wrap-module .ey_pro_lb .item{
  border-radius:var(--py-radius);border:1px solid var(--py-line);background:#fff;
  overflow:hidden;
  box-shadow:var(--py-card-shadow);
  transition:transform .38s var(--py-ease),box-shadow .38s var(--py-ease),border-color .38s var(--py-ease);
}
.pro_list .item:hover,
.wrap-module .ey_pro_lb .item:hover{
  transform:translateY(-4px);box-shadow:var(--py-card-shadow-hover);border-color:#dfe4ec;
}
.pro_list .item .img img{transition:transform .6s var(--py-ease-out)}
.pro_list .item:hover .img img{transform:scale(1.05)}
.pro_cate a{
  border-radius:var(--py-radius-pill);
  transition:background-color .25s var(--py-ease),color .25s var(--py-ease),
             border-color .25s var(--py-ease),transform .25s var(--py-ease);
}
.pro_cate a:hover{transform:translateY(-2px)}

/* --- 产品列表页（/products/）专项修正 --- */

/* 卡片 hover 阴影被 .ey_pro_lb{overflow:hidden}（common.css:251）整块裁掉。
   .ey_pro_lb 的左右边界正好等于卡片外框，卡片 hover 时外扩 30px 的阴影
   在网格外框处被切断：实测最左列卡片 hover 时左侧像素恒为 #fff（完全无阴影），
   而中间列卡片左侧有 238→250 的完整渐变 —— 同一行内阴影明显不对称。
   该 overflow 只用于清除 .item 的浮动（.item 是 float:left），
   换成 ::after 清浮动后即可解除裁剪，阴影恢复完整。 */
.ey_pro_lb{overflow:visible}
.ey_pro_lb::after{content:"";display:table;clear:both}

/* Hot Products 轮播分页圆点位置修正。
   bxSlider 默认 .bx-wrapper .bx-pager{position:absolute;bottom:5%}，
   叠加 style.css 的 margin:34px 0 70px 后圆点被抬到轮播卡片中间、
   直接压在产品图上。改为静态流式定位，落到卡片下方并给出上下间距。 */
.product-list .pro_list .hot_cate .bx-pager{
  position:static;bottom:auto;width:100%;padding-top:0;margin:24px 0 56px;
}

/* Hot Products 轮播卡片阴影（style.css:36/37 的旧阴影 blur 18px，间隙只有 16px，
   18+18 = 36 > 16 —— 比主网格连得更死）。
   这两条选择器特异性 (0,6,0)，所以用同长度选择器 + 令牌覆盖。
   阴影换用 --py-card-shadow-tight（外扩 4px），实测间隙中部出现 6px 纯白。 */
.product-list .pro_list .hot_cate .list .row{
  box-shadow:var(--py-card-shadow-tight);
  transition:box-shadow .38s var(--py-ease),transform .38s var(--py-ease);
}
.product-list .pro_list .hot_cate .list .row:hover{
  box-shadow:var(--py-card-shadow-tight-hover);transform:translateY(-4px);
}

/* 轮播上下阴影被 .bx-viewport 整块裁掉。
   bxSlider 给 .bx-viewport 打了**内联** style="height:353px;overflow:hidden"，
   而 353px 正好等于卡片高度 —— 卡片上下两侧的阴影全在裁剪区之外（实测卡下像素恒为 255）。
   这里给 viewport 加垂直 padding 把裁剪区（padding box）上下各撑开 16px，
   再用等量负 margin 把盒子拉回原位，保证轮播与下方分页圆点的位置分毫不动
   （实测 docH 与 pager top 完全不变）。
   ⚠ 只能加**垂直** padding：一旦加水平 padding，裁剪区会向左右各扩 16px，
     把相邻幻灯片露出的边缘显出来（轮播会"穿帮"）。 */
.hot_cate .bx-viewport{padding:16px 0;margin:-16px 0}

/* 首页新闻图统一为 16:10，裁切填满卡片，避免原图比例造成留白 */
.eyou_news_item .eyou_typeItem_img{padding-top:62.5%}
.eyou_news_item .eyou_typeItem_img .eyou_type_img{top:0;right:0;bottom:0;left:0;height:100%;margin:0}
.eyou_news_item .eyou_typeItem_img .eyou_type_img>a{position:absolute;inset:0;display:block}
.eyou_news_item .eyou_typeItem_img .eyou_type_img>a img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
.eyou_news_item .eyou_typeItem_img .eyou_type_img>a span{display:none}

/* 产品详情页 */
.ey_pro_detail .gallery .bigimg .MagicZoom img{border-radius:var(--py-radius)}
.ey_pro_detail .gallery #small_img .pic_box,
.ey_pro_detail .gallery .left_small_img .pic_box{
  border-radius:var(--py-radius-sm);overflow:hidden;border-color:var(--py-line);
  transition:border-color .25s var(--py-ease),box-shadow .25s var(--py-ease);
}
.ey_pro_detail .gallery #small_img .pic_box:hover,
.ey_pro_detail .gallery .left_small_img .pic_box:hover{border-color:var(--py-gold)}
.ey_pro_detail .gallery .left_small_img .pic_box.on{border-color:var(--py-gold);box-shadow:0 0 0 1px rgba(249,199,55,.2)}
.ey_pro_detail .info .name{font-weight:700;color:var(--py-ink);letter-spacing:-.02em}
.ey_pro_detail .info .desc{color:#4a5260;line-height:1.85}
.ey_pro_detail .info .attribute{
  margin:14px 0;padding:0;list-style:none;
  border:1px solid var(--py-line);border-radius:var(--py-radius);
  overflow:hidden;background:#fff;
}
.ey_pro_detail .info .attribute>li{list-style:none}
.ey_pro_detail .info .attribute li{
  line-height:1.7;padding:11px 16px;color:#4a5260;
  border-bottom:1px solid var(--py-line-2);
  transition:background-color .25s var(--py-ease);
}
.ey_pro_detail .info .attribute li:nth-child(even){background:#fbfcfd}
.ey_pro_detail .info .attribute li:last-child{border-bottom:0}
.ey_pro_detail .info .attribute li:hover{background:var(--py-gold-soft)}
.ey_pro_detail .info .attribute li span:first-child{color:var(--py-muted);font-weight:500}
.ey_pro_detail .description .title span{
  font-weight:600;transition:color .25s var(--py-ease),border-color .25s var(--py-ease);
}
.ey_pro_detail .description .title span.cur{color:var(--py-ink);border-color:var(--py-gold)}

/* 「Product Details」标签条 + 内容块 —— 拼成一张完整的卡。
   【第一轮】改前 .contents 与内层 #global_editor_contents 都加了 border-radius + box-shadow，
        但两者**既没有背景也没有边框** —— 阴影是画在一个透明盒子上，
        只在右/下边缘露出一道灰线、圆角还断在半路，看起来就是"边框坏了一半"
        （用户反馈：详情边框有问题，用阴影特别丑）。
        修法：只在外层 .contents 做干净的白底 + 1px 描边卡片、**完全不要阴影**；
        内层 #global_editor_contents 去掉盒（避免双层），正文排版与文章详情页
        .ey_info_det .contents 保持一致（同样的字号、行高、h3 金色强调条、金色列表标记）。
   【第二轮·本次】标签条与内容卡**没有融合起来**（用户截图反馈）。
        实测改前 .title：bg=transparent、border-bottom:2px #f5f5f5、margin-bottom:30px、
        radius:0、pad:10px 0 0 —— 于是"透明标签条 + 一条淡灰线 + 30px 空隙 + 白卡"四段割裂。
        修法：.title 升级为卡片头部（白底 + 1px 描边 + 上圆角 + 左右与内容区同宽），
        底边换成更轻的 --py-line-2 分隔线；.contents 去掉上边框与上圆角，
        两块严丝合缝拼成一张卡（交界处只留一条 1px 线）。
   ⚠ .title 必须用 .product-detail 前缀（(0,3,1)）：style.css:63/64 的
     `.product-detail .ey_pro_detail .description .title{border-bottom:2px solid #f5f5f5;margin-bottom:30px}`
     就是 (0,3,1)，少一层类会被压住；同特异性靠 modern.css 加载在最后取胜。 */
.product-detail .ey_pro_detail .description .title{
  box-sizing:border-box;
  background:#fff;
  border:1px solid var(--py-line);
  border-bottom:1px solid var(--py-line-2);
  border-radius:var(--py-radius) var(--py-radius) 0 0;
  margin:0;
  padding:12px 32px 0;
  min-height:0;
}
.ey_pro_detail .description .contents{
  background:#fff;
  border:1px solid var(--py-line);
  border-top:0;                 /* 与标签头共用交界线，拼成一张卡 */
  border-radius:0 0 var(--py-radius) var(--py-radius);
  box-shadow:none;
  padding:28px 32px 32px;
}
.ey_pro_detail .description .contents .editor_cnt #global_editor_contents{
  border:0;border-radius:0;box-shadow:none;padding:0;
  font-size:16px;line-height:1.9;color:#3b434f;
}
.ey_pro_detail .description .contents #global_editor_contents>*:first-child{margin-top:0}
.ey_pro_detail .description .contents #global_editor_contents p{margin:0 0 1.15em}
.ey_pro_detail .description .contents #global_editor_contents h3,
.ey_pro_detail .description .contents #global_editor_contents h4{
  margin:1.7em 0 .6em;font-size:20px;font-weight:700;color:var(--py-ink);letter-spacing:-.015em;
}
.ey_pro_detail .description .contents #global_editor_contents h3::after{
  content:'';display:block;width:44px;height:3px;margin-top:9px;
  background:var(--py-gold);border-radius:3px;
}
.ey_pro_detail .description .contents #global_editor_contents ul,
.ey_pro_detail .description .contents #global_editor_contents ol{margin:0 0 1.2em;padding-left:1.35em}
.ey_pro_detail .description .contents #global_editor_contents li{margin:.45em 0}
.ey_pro_detail .description .contents #global_editor_contents ul li::marker{color:var(--py-gold-d)}
.ey_pro_detail .description .contents #global_editor_contents ol li::marker{color:var(--py-gold-d);font-weight:600}
.ey_pro_detail .description .contents #global_editor_contents strong{color:var(--py-ink);font-weight:600}
.ey_pro_detail .description .contents #global_editor_contents a{
  color:var(--py-gold-d);font-weight:500;text-decoration:underline;
  text-underline-offset:3px;text-decoration-color:rgba(229,177,28,.45);
}

/* ---------------------------------------------------------------------------
   11. 按钮体系
   --------------------------------------------------------------------------- */
.py-btn,.info-detail .contents .btn{
  border-radius:var(--py-radius-pill);
  transition:transform .3s var(--py-ease),box-shadow .3s var(--py-ease),
             background-color .3s var(--py-ease),color .3s var(--py-ease);
}
/* 询盘/加购等主按钮（沿用原红/金配色，只做圆角与微交互） */
.ey_pro_detail .info .button>a,
.ey_pro_detail .info .button>button#addtocart_button,
.ey_pro_detail .info .button>a#login_addtocart_button{
  border-radius:var(--py-radius-pill);
  font-weight:600;letter-spacing:.01em;
  transition:transform .3s var(--py-ease),box-shadow .3s var(--py-ease),filter .3s var(--py-ease);
}
.ey_pro_detail .info .button>a:hover,
.ey_pro_detail .info .button>button#addtocart_button:hover,
.ey_pro_detail .info .button>a#login_addtocart_button:hover{
  transform:translateY(-2px);box-shadow:var(--py-shadow);
}

/* ---------------------------------------------------------------------------
   12. 表单控件
   --------------------------------------------------------------------------- */
.ey-mxform input[type=text],.ey-mxform input[type=email],.ey-mxform input[type=tel],
.ey-mxform input[type=number],.ey-mxform select,.ey-mxform textarea,
.message-wrap input,.message-wrap textarea,.search_form input[type=text]{
  border-radius:var(--py-radius-sm);
  border:1px solid var(--py-line);
  transition:border-color .25s var(--py-ease),box-shadow .25s var(--py-ease);
}
.ey-mxform input:focus,.ey-mxform select:focus,.ey-mxform textarea:focus,
.message-wrap input:focus,.message-wrap textarea:focus{
  outline:none;border-color:var(--py-gold);
  box-shadow:0 0 0 4px rgba(249,199,55,.18);
}
.ey-submit,.ey-mxform .ey-submit{
  border-radius:var(--py-radius-pill);font-weight:600;
  transition:transform .3s var(--py-ease),box-shadow .3s var(--py-ease),background-color .3s var(--py-ease);
}
.ey-submit:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(249,199,55,.35)}

/* ---------------------------------------------------------------------------
   12b. 询价表单（产品详情页「Send Your Message To Us」）
   ---------------------------------------------------------------------------
   改前实测（/products/429.html，1920px）：
     INQUIRY  [1200.0×648.9 l=120 r=1320]  ← common.css:352 max-width:1200px，
                                              在 1400px 的 .wrap 里左右各内缩 100px，
                                              与全站内容左右缘不齐
     INQ_H2   [1200×29.7] color=#12161c    ← common.css:353 只写了 h1，
                                              实际标签是 h2 → 字号/字距全靠浏览器默认
     INQ_FORM border-top:1px solid #ddd    ← 一条全宽灰线顶在标题下面
     INQ_INPUT[580×42] radius=5px border=1px solid #cbcecd   ← 5px 小圆角、冷灰边框
     FORM_BTN [200×46] bg=#222 radius=5px  ← 黑色直角按钮
   整块与全站「金色胶囊 + 16px 圆角 + 白卡 + 金 focus 环」体系完全脱节。
   改后：容器填满 .wrap（与详情卡同宽）→ 一张白底 1px 描边卡片（无阴影，与详情区一致）
        → h2 用统一标题规格 + 金色强调条 → 输入控件统一 --py-radius-sm(10px) + --py-line
        边框 + 金色 focus 环 → 提交按钮改为品牌金色胶囊。
   ⚠ 覆盖 common.css:371 必须照抄 `body` 前缀：`body .ey_inquiry_box form .form_button`
     是 (0,2,2)，少写 body 只有 (0,1,2) 会被压住（同 2026-10-10 分页 hover 那个坑）。 */
.ey_inquiry_box{
  max-width:none;                 /* common.css:352 的 1200px → 填满 .wrap */
  /* 上 44px 与详情卡分开；下 72px 是卡片与深色页脚之间的呼吸间距。
     改前写的是 `44px 0 0` —— 底部 margin 为 0，而 .wrap 自身 padding-bottom 也是 0，
     实测 INQ 底边 2377 = #footer 顶边 2377，卡片直接贴死页脚（用户反馈：底部间距不够）。 */
  margin:44px 0 72px;
  padding:36px 40px 40px;
  background:#fff;
  border:1px solid var(--py-line);
  border-radius:var(--py-radius);
  box-shadow:none;                /* 与 Product Details 详情卡一致：只描边、不用阴影 */
  display:flow-root;              /* 顶替 common.css:352 的 overflow:hidden，同样能清浮动 */
}
.ey_inquiry_box h1,.ey_inquiry_box h2{
  font-size:26px;line-height:1.3;
  /* common.css:9 用 `h2:not(#global_editor_contents h2){font-weight:normal}` 把全站标题
     压成 400。:not() 的特异性取参数值 —— :not(#global_editor_contents h2) = (1,0,1)，
     整条选择器 = (1,0,2)。ID 权重压过任何类选择器，所以这里只能上 !important。 */
  font-weight:700!important;
  color:var(--py-ink);letter-spacing:-.02em;
  margin:0;padding:0;
}
.ey_inquiry_box h1::after,.ey_inquiry_box h2::after{
  content:'';display:block;width:44px;height:3px;margin-top:12px;
  background:var(--py-gold);border-radius:3px;
}
/* 标题下已有金色强调条，去掉 common.css:354 那条全宽灰线，并清掉 35px 顶内边距 */
.ey_inquiry_box form{
  width:100%;padding:0;margin-top:24px;border-top:0;
}
.ey_inquiry_box form .rows{padding:0 0 18px}
.ey_inquiry_box form .rows.input_rows{
  float:left;width:48.334%;margin-bottom:0;font-size:0;
}
.ey_inquiry_box form .rows.input_rows:nth-child(even){margin-left:3.3%}
.ey_inquiry_box form .rows label{
  font-size:14px;font-weight:600;color:var(--py-ink);
  letter-spacing:.01em;display:block;padding-bottom:8px;
}
.ey_inquiry_box form .rows label span{
  color:var(--py-gold-d);font-size:14px;font-weight:700;
}
/* 输入控件统一：10px 圆角 + --py-line 边框 + 金色 focus 环 */
.ey_inquiry_box form .rows .input{
  box-sizing:border-box;width:100%;max-width:100%;
  height:48px;line-height:48px;text-indent:14px;
  border-radius:var(--py-radius-sm);
  border:1px solid var(--py-line);
  background:#fff;color:var(--py-body);font-size:15px;
  transition:border-color .25s var(--py-ease),box-shadow .25s var(--py-ease);
}
.ey_inquiry_box form .rows textarea{
  box-sizing:border-box;width:100%;max-width:100%;
  height:170px;line-height:1.7;padding:14px;text-indent:0;
  border-radius:var(--py-radius-sm);
  border:1px solid var(--py-line);
  background:#fff;color:var(--py-body);font-size:15px;
  resize:vertical;
  transition:border-color .25s var(--py-ease),box-shadow .25s var(--py-ease);
}
.ey_inquiry_box form .rows .input:focus,
.ey_inquiry_box form .rows textarea:focus{
  outline:none;border-color:var(--py-gold);
  box-shadow:0 0 0 4px rgba(249,199,55,.18);
}
.ey_inquiry_box form .rows.textarea_rows{padding-top:2px}
.ey_inquiry_box form .rows.submit_rows{margin-top:24px;padding:0}
.ey_inquiry_box form .rows.submit_rows label{display:none}   /* 空的占位 label，去掉 */
/* 提交按钮 → 品牌金色胶囊。
   common.css:371 是 `body .ey_inquiry_box form .form_button` (0,2,2)，
   这里必须同前缀同长度才能压住。 */
body .ey_inquiry_box form .form_button{
  width:210px;height:50px;padding:0;
  background:var(--py-gold);color:var(--py-ink);
  border:0;border-radius:var(--py-radius-pill);
  font-size:16px;font-weight:700;letter-spacing:.02em;
  cursor:pointer;
  transition:transform .3s var(--py-ease),box-shadow .3s var(--py-ease),
             background-color .3s var(--py-ease);
}
body .ey_inquiry_box form .form_button:hover{
  background:var(--py-gold-d);transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(249,199,55,.38);
}

/* ---------------------------------------------------------------------------
   13. 区块标题统一（首页既有标题只调字重/字距，不改尺寸与位置）
   --------------------------------------------------------------------------- */
.eyou_variou_title,.eyou_pro_title,.eyou_news_title,.eyou_about_title{
  font-weight:500;letter-spacing:-.025em;
}
.eyou_pro_item .eyou_pro_item_text .eyou_pro_item_title{font-weight:600;letter-spacing:-.01em}
.eyou_news_item .eyou_news_item_text .eyou_news_item_title{font-weight:600;letter-spacing:-.01em}
.eyou_pro_item,.eyou_news_item .eyou_typeItem_img{
  border-radius:var(--py-radius);overflow:hidden;
}
.eyou_pro_item{
  transition:transform .38s var(--py-ease),box-shadow .38s var(--py-ease);
  box-shadow:var(--py-card-shadow);
}
.eyou_pro_item:hover{transform:translate3d(0,-4px,0);box-shadow:var(--py-card-shadow-hover)}

/* 首页 NEW ARRIVAL 轮播对齐修正
   .eyou_pro_list 原本带 padding-left/right:7px，使卡片左边缘落在 64px，
   而全站容器内容基准是 57px（页头 / NEW ARRIVAL 标题 / 新闻卡 / About 均为 57px）。
   归零后卡片与全站各区块左右严格对齐，且 4 张卡按 (1315-3*30)/4 重算宽度仍正好铺满。 */
.eyou_pro .eyou_pro_list{padding-left:0;padding-right:0}

/* ---------------------------------------------------------------------------
   14. 页脚微调（结构与配色已在前一轮重写，这里只补字体与细节）
   --------------------------------------------------------------------------- */
/* 2026-10-10 第二轮（用户反馈）：页脚底部多出一条空白（"底部画框那一列是多出来的"）。
   style.css:229 给了 `#footer{padding-top:58px;padding-bottom:37px}`，
   而 footer.htm 末尾那个内联样式块只覆盖了 background，**没有覆盖 padding** ——
   于是 .eyou_footer_top（自带 padding:54px 0 46px）之外又多出 58px 顶白 + 37px 底白。
   实测 #footer 高 518，两个子元素合计只有 423（差 95 = 58 + 37）。这里清零。
   特异性同为 (1,0,0)，modern.css 在 style.css 之后加载 → 直接覆盖生效。 */
#footer{padding-top:0;padding-bottom:0}
#footer .ft_title{font-weight:700;letter-spacing:.06em}
#footer .footer-nav-list a{transition:color .25s var(--py-ease),padding-left .25s var(--py-ease)}
#footer .footer-nav-list a:hover{color:var(--py-gold)}
#footer .ft_tel a{font-weight:700;letter-spacing:-.01em}
#footer .ft_qr_box,#footer .ft_qr img{border-radius:var(--py-radius-sm)}

/* ---------------------------------------------------------------------------
   15. 滚动入场由 Animate.css 播放；无 JS 或资源加载失败时内容保持可见。
   --------------------------------------------------------------------------- */

/* 图片懒加载淡入 */
img[data-py-img]{opacity:0;transition:opacity .7s var(--py-ease-out)}
img[data-py-img].py-img-in{opacity:1}

/* 回到顶部 */
/* 2026-10-10 第二轮（用户反馈）：页面上有**两个**返回顶部按钮。
   这个是原站 footer 里的 `#chat_window .chat_box_menu > a#go_top`（灰色圆，50×50，
   实测落在视口右下、距底约 100px），与本文件新建的 #pyTop（黑色圆）上下叠在一起。
   保留 #pyTop，隐藏原站这个。它的显隐由 common.js 直接改 style，所以必须 !important。 */
#go_top{display:none!important}

#pyTop{
  position:fixed;right:26px;bottom:26px;z-index:900;
  width:48px;height:48px;border:0;padding:0;cursor:pointer;
  border-radius:50%;background:var(--py-ink);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--py-shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(14px) scale(.92);
  transition:opacity .35s var(--py-ease),transform .35s var(--py-ease),
             visibility .35s var(--py-ease),background-color .25s var(--py-ease);
}
#pyTop.py-show{opacity:1;visibility:visible;transform:none}
#pyTop:hover{background:var(--py-gold);color:var(--py-ink)}
#pyTop svg{width:20px;height:20px;display:block}
/* 2026-10-10 第二轮（用户反馈）：用户看到按钮上的金色弧线，以为是"加载框"
   （"页面下拉有个加载框不对"）。这条弧线是滚动进度环，起点与方向在视觉上确实像 loading，
   这里直接去掉，只保留黑色圆 + 白色箭头。
   JS 仍在算 stroke-dashoffset，但元素不显示，无副作用（如需恢复，删掉这一行即可）。 */
#pyTop .py-ring{display:none}
#pyTop .py-ring circle{
  fill:none;stroke:var(--py-gold);stroke-width:2.5;
  stroke-dasharray:163;stroke-dashoffset:163;
  transition:stroke-dashoffset .12s linear;
}

/* ---------------------------------------------------------------------------
   16. 响应式
   --------------------------------------------------------------------------- */
@media screen and (max-width:1200px){
  .rale_news .list .item{width:calc((100% - 48px)/3)}
}
@media screen and (max-width:991px){
  #header{position:static}
  .ey_info_list .item{gap:18px;padding:16px}
  .ey_info_list .item .img{flex:0 0 160px;width:160px}
  .rale_news .list .item{width:calc((100% - 24px)/2)}
  .ey_info_det>.title{font-size:24px!important}
  .ey_inquiry_box{padding:30px 26px 32px;margin:36px 0 64px}
  #pyTop{right:16px;bottom:16px;width:44px;height:44px}
}
@media screen and (max-width:768px){
  body{font-size:14.5px}
  .ey_info_list .item{flex-direction:column;gap:0;padding:0;overflow:hidden}
  .ey_info_list .item .img{flex:0 0 auto;width:100%;border-radius:0}
  /* 移动端图片同样用 3:2（原来是 16/9，会把桌面的 3:2 覆盖掉，两边不一致） */
  .ey_info_list .item .img img{aspect-ratio:3/2}
  .ey_info_list .item .info{padding:16px 18px 20px}
  .rale_news .list .item{width:100%}
  .ey_info_det>.title{font-size:21px!important}
  .ey_info_det .contents{font-size:15px}
  .ey_info_det .contents h2{font-size:22px}
  .ey_info_det .contents h3{font-size:19px}
  body .ey_pages span a,
  body .ey_pages span font{height:38px;line-height:1;min-width:38px;padding:0 13px;font-size:14px}
  .ey_inquiry_box{padding:24px 20px 26px;margin:30px 0 48px;border-radius:var(--py-radius-sm)}
  .ey_inquiry_box h1,.ey_inquiry_box h2{font-size:21px}
  .ey_inquiry_box form{margin-top:18px}
  .ey_inquiry_box form .rows .input{height:46px;line-height:46px}
  .ey_inquiry_box form .rows textarea{height:150px}
  body .ey_inquiry_box form .form_button{width:100%;height:48px}
  /* 回退单列。common.css:487 在 max-width:768px 里写了 `.input_rows{width:100%}`，
     但它与上面 12b 那条 48.334% 的规则**特异性完全相同 (0,3,1)**，
     本文件加载在后 → 桌面双列规则反把移动端单列压掉了（390px 下实测每列仅 153px）。
     这里同特异性再写一遍，靠加载顺序取胜。 */
  .ey_inquiry_box form .rows.input_rows{float:none;width:100%;margin-bottom:0}
  .ey_inquiry_box form .rows.input_rows:nth-child(even){margin-left:0}
  /* ≤768px 时 common.css:457 把 .title 设成 display:none（改用 .global_mtitle 手风琴），
     标签头没了 —— 内容卡必须自带完整的四条边框与四角圆角，
     否则会继承桌面的 `border-top:0` + 下圆角，露出一张"缺了上边"的怪卡。 */
  .ey_pro_detail .description .contents{
    padding:20px 18px 22px;
    border-top:1px solid var(--py-line);
    border-radius:var(--py-radius);
  }
  /* 移动端标签头（.global_mtitle 手风琴，是卡片内部的小标题）沿用原站的
     #c1c1c1 深灰分隔线，比卡片边框 #e8ebf0 深一大截，同一张卡里两种线色很突兀。
     统一到品牌线色，标题字重提到 600（与桌面 .title 的 600 一致）。
     同特异性 (0,2,2) 靠媒体查询在文件后部取胜。 */
  .ey_pro_detail .description .global_mtitle{
    color:var(--py-ink);font-weight:600;border-bottom-color:var(--py-line);
  }
  /* 修一个原站遗留 bug：移动端 common.js:192-212 的手风琴会把非当前区块的
     .editor_cnt 设成内联 height:0，但本该配套的 `overflow:hidden` 在
     common.css:479 是**被注释掉**的 → 折叠内容照样绘制，直接压到下方
     Send Your Message To Us 表单上（390px 实测标签文字与表单卡重叠）。
     补回 overflow:hidden，折叠即真正裁掉。 */
  .ey_pro_detail .description .contents .editor_cnt{overflow:hidden}
}
@media screen and (max-width:480px){
  .rale_news .list{gap:16px}
}

/* ---------------------------------------------------------------------------
   17. 尊重系统"减少动态效果"
   --------------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
  img[data-py-img]{opacity:1!important}
}

/* 18. 联系页信息卡：单一规则源 */
.info-detail .wrap>.rightside>.ey_info_det.py-has-contact,.info-detail .wrap>.ey_info_det.py-has-contact{max-width:1080px}
.py-contact-grid+p,.py-contact-grid+div{margin-top:18px}
#global_editor_contents.py-has-contact{max-width:1160px;margin:0 auto;padding:46px 0 58px;text-align:center}
#global_editor_contents.py-has-contact>p:first-of-type{margin:0 0 8px;line-height:1.25}
#global_editor_contents.py-has-contact>p:first-of-type:before{content:"";display:block;width:38px;height:3px;margin:0 auto 18px;border-radius:2px;background:var(--py-gold)}
#global_editor_contents.py-has-contact>p:first-of-type strong{font-size:clamp(26px,2vw,var(--py-type-2xl))!important;letter-spacing:-.025em;color:var(--py-ink)}
#global_editor_contents.py-has-contact>p:nth-of-type(2){margin:0 0 34px;line-height:1.5}
#global_editor_contents.py-has-contact>p:nth-of-type(2) *{font-family:inherit!important;font-size:17px!important;font-weight:500;color:var(--py-muted)!important;white-space:normal!important}
.py-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto;gap:0;margin:0 auto;padding:var(--py-space-5) var(--py-space-3);border:1px solid #e9e7e1;border-radius:20px;background:#f8f7f4}
.py-contact-card{display:flex;min-height:172px;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:22px 26px;border:0!important;border-right:1px solid #e5e2da!important;border-radius:0;background:transparent;box-shadow:none;text-align:center;transition:color .2s ease}
.py-contact-card:hover{transform:none;box-shadow:none;border-color:transparent}
.py-contact-card:last-child{border-right:0!important}
.py-contact-ic{display:flex;width:48px;height:48px;flex:0 0 48px;align-items:center;justify-content:center;border-radius:15px;background:#fff;color:var(--py-gold-d)}
.py-contact-ic svg{display:block;width:22px;height:22px}
.py-contact-tx{min-width:0;flex:1 1 auto}
.py-contact-label{margin:0 0 var(--py-space-2);color:var(--py-muted);font-size:var(--py-type-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.py-contact-val{color:var(--py-ink);font-size:var(--py-type-base);font-weight:500;line-height:1.8;white-space:pre-line;word-break:break-word}
@media screen and (max-width:768px){#global_editor_contents.py-has-contact{margin:0 18px;padding:32px 0 40px}#global_editor_contents.py-has-contact>p:first-of-type strong{font-size:25px!important}#global_editor_contents.py-has-contact>p:nth-of-type(2){margin-bottom:24px}.py-contact-grid{grid-template-columns:1fr;grid-template-rows:auto;margin:0;padding:8px 18px;border-radius:16px}.py-contact-card{min-height:0;flex-direction:row;align-items:center;justify-content:flex-start;gap:16px;padding:18px 4px;border-right:0!important;border-bottom:1px solid #e5e2da!important;text-align:left}.py-contact-card:last-child{border-bottom:0!important}.py-contact-ic{width:42px;height:42px;flex-basis:42px;border-radius:13px}}

/* 19. 标签页使用本站统一样式层 */
.py-tags-page .layout.bg-white{border-bottom:1px solid var(--py-line);background:#fff}
.py-tags-page .layout.bg-gray{padding-bottom:var(--py-space-7);background:var(--py-soft)}
.py-tags-page .container{width:min(1180px,calc(100% - 40px));margin:0 auto}
.py-tags-page .layout.bg-white .container{padding:var(--py-space-6) 0}
.py-tags-page .layout.bg-white h2{margin:0;color:var(--py-ink);font-size:var(--py-type-xl);font-weight:600}
.py-tags-page .layout.bg-gray>.container{padding-top:var(--py-space-5)}
.py-tags-page .layout.bg-gray .line{margin:0 0 var(--py-space-5)}
.py-tags-page .layout.bg-gray .title-l h2{margin:0 0 var(--py-space-3);color:var(--py-ink);font-size:var(--py-type-lg);font-weight:600}
.py-tags-page .tag{display:inline-flex;align-items:center;margin:0 var(--py-space-2) var(--py-space-2) 0;padding:7px 14px;border:1px solid var(--py-line);border-radius:var(--py-radius-pill);background:#fff;color:var(--py-body);font-size:var(--py-type-sm);text-decoration:none;transition:background-color .2s var(--py-ease),border-color .2s var(--py-ease),color .2s var(--py-ease)}
.py-tags-page .tag:hover{border-color:var(--py-gold);background:var(--py-gold-soft);color:var(--py-ink)}
.py-tags-page .nav-bread{color:var(--py-muted);font-size:var(--py-type-sm)}
.py-tags-page .layout.bg-gray>.container>.line:first-child{display:flex;align-items:center;justify-content:space-between;gap:var(--py-space-4);padding:var(--py-space-4) 0}
.py-tags-page .layout.bg-gray>.container>.line:first-child>.x6{flex:1 1 50%}
.py-tags-page .layout.bg-gray>.container>.line:first-child .text-yellow{color:var(--py-gold-d)}
.py-tags-page .normal-list{margin:0;padding:0;overflow:hidden;border:1px solid var(--py-line);border-radius:var(--py-radius);background:#fff;list-style:none}
.py-tags-page .normal-list>li{display:flex;align-items:center;justify-content:space-between;gap:var(--py-space-4);padding:var(--py-space-4) var(--py-space-5);border-bottom:1px solid var(--py-line-2)}
.py-tags-page .normal-list>li:last-child{border-bottom:0}
.py-tags-page .normal-list a{color:var(--py-body);text-decoration:none}
.py-tags-page .normal-list a:hover{color:var(--py-gold-d)}
.py-tags-page .normal-list span{flex:0 0 auto;color:var(--py-muted);font-size:var(--py-type-sm)}
.py-tags-page .pagination{display:flex;justify-content:center;gap:var(--py-space-2);margin:var(--py-space-5) 0 0;padding:0;list-style:none}
.py-tags-page .pagination a,.py-tags-page .pagination span{display:inline-flex;min-width:36px;min-height:36px;align-items:center;justify-content:center;padding:0 10px;border:1px solid var(--py-line);border-radius:var(--py-radius-sm);background:#fff;color:var(--py-body);text-decoration:none}
.py-tags-page .pagination .current,.py-tags-page .pagination a:hover{border-color:var(--py-gold);background:var(--py-gold-soft);color:var(--py-ink)}
@media screen and (max-width:768px){.py-tags-page .container{width:calc(100% - 32px)}.py-tags-page .layout.bg-gray>.container>.line:first-child{align-items:flex-start;flex-direction:column;gap:var(--py-space-2)}.py-tags-page .normal-list>li{align-items:flex-start;flex-direction:column;gap:var(--py-space-2);padding:var(--py-space-3) var(--py-space-4)}}

