

/* ===== FRP Global Tokens ===== */
html, body, div, span, h1, h2, h3, h4, h5, h6, p,table, td, blockquote, pre, a, address, big, cite, code, del, em, font, img, ins, small, strong, var, b, u, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend {margin: 0;padding: 0; }
input,select,textarea{font-size: 14px;border:none;margin: 0;padding: 0;}
img{border: 0 none;vertical-align: middle; height: auto; max-width: 100%; max-height: 100%; }
a{color: #54595f;text-decoration:none;background-color:transparent;transition: 0.3s;}
a:hover{cursor: pointer; color:#0155b6;}
a:focus,input:focus,button:focus,textarea:focus,select:focus{outline:none;}
/*ul, li, dl, dt, dd{list-style: none outside none;}*/
:root{
  --frp-container:1320px;
  --frp-gray:#F8F9FA;
  --frp-radius-rect:2px;
}
dl.bldlb{ column-count: 2;}
.search_box{ display: none; border-top: 1px solid #f5f5f5; padding:32px 0; z-index: 1000; background: #fff; position: fixed; top: 130px; left: 0; width: 100%; box-shadow: 0 5px 5px rgb(0 0 0 / 15%); }
.searcnr{ overflow: hidden; position: relative; width: 100%; transition: all .3s;}
.searcnr input{ width: 100%; font-size: 16px; border: 1px solid #e7e7e7; border-top-left-radius: 5px; border-bottom-left-radius: 5px; color: #333; line-height:48px; padding-left:20px; padding-right: 98px; font-family: Segoe UI; }
.searcnr button{ width:88px; height: 100%; border-top-right-radius: 5px; border-bottom-right-radius: 5px; background:#0155b6; border: 0; color: #fff; text-align: center; outline: none; cursor: pointer; transition: all .5s; position: absolute; right: 0; top: 0}
.searcnr button i{ color: #fff; font-size: 22px; }
.searcnr input::-webkit-input-placeholder { color: #666;}
.searcnr input:-moz-placeholder {  color: #666;}
.caform{ width: 100%; }
.cseipt{ width: 100%; height: 50px; padding: 0 45px 0 10px; line-height: 48px; border: 1px solid #e4e4e4; border-radius: 5px; background: #f7f7f7; color: #666; font-size: 16px; font-family: OpenSRegular; }
.caform{ position: relative; }
.caform button{ position: absolute; transition: all 0.3s; color: #0155b6; border-radius: 0 5px 5px 0; background: none; text-align: center; border: none; top: 0; right: 0; width: 40px; height: 50px; cursor: pointer; }
.caform button i{  font-size: 22px; }
.caform button:hover{ background: #0155b6; color: #fff; }
/* Slider */
.slick-slider
{
    position: relative;

    display: block;
    box-sizing: border-box;

    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}

.bigbg,.bigbg2,.bigbg3 {
    background: rgba(0,0,0,.5);
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000
}

.getbox {
    width: 700px;
    background: #fff;
    padding: 30px 30px 30px;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%)
}

.getboxs {
    top: 50%;
    left: 49%;
    height: auto;
    position: absolute
}

.allhide {
    opacity: 0;
    z-index: -3
}

.slick-list
{
    position: relative;

    display: block;
    overflow: hidden;

    margin: 0;
    padding: 0;
}
.slick-list:focus
{
    outline: none;
}
.slick-list.dragging
{
    cursor: pointer;
    cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list
{
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.slick-track
{
    position: relative;
    top: 0;
    left: 0;

    display: block;
    margin-left: auto;
    margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
    display: table;

    content: '';
}
.slick-track:after
{
    clear: both;
}
.slick-loading .slick-track
{
    visibility: hidden;
}

.slick-slide
{
    display: none;
    float: left;

    height: 100%;
    min-height: 1px;
}
[dir='rtl'] .slick-slide
{
    float: right;
}
.slick-slide img
{
    display: block;
}
.slick-slide.slick-loading img
{
    display: none;
}
.slick-slide.dragging img
{
    pointer-events: none;
}
.slick-initialized .slick-slide
{
    display: block;
}
.slick-loading .slick-slide
{
    visibility: hidden;
}
.slick-vertical .slick-slide
{
    display: block;

    height: auto;

    border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
    display: none;
}

.slick-dots
{
    position: absolute;
    bottom: -25px;

    display: block;

    width: 100%;
    padding: 0;
    margin: 0;

    list-style: none;

    text-align: center;
}
.slick-dots li
{
    position: relative;

    display: inline-block;

    width: 20px;
    height: 20px;
    margin: 0 5px;
    padding: 0;

    cursor: pointer;
}
.slick-dots li button
{
    font-size: 0;
    line-height: 0;

    display: block;

    width: 20px;
    height: 20px;
    padding: 5px;

    cursor: pointer;

    color: transparent;
    border: 0;
    outline: none;
    background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus
{
    outline: none;
}

@font-face {
  font-family: "iconfont"; /* Project id 5006095 */
  src: url('fonts/iconfont.woff2?t=1756203646983') format('woff2'),
       url('fonts/iconfont.woff?t=1756203646983') format('woff'),
       url('fonts/iconfont.ttf?t=1756203646983') format('truetype');
}

.iconfont {
  font-family: "iconfont" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-quotes-left:before {
  content: "\e615";
}

.icon-xiazai:before {
  content: "\e669";
}

.icon-fenlei:before {
  content: "\e638";
}

.icon-anquan:before {
  content: "\e8ab";
}

.icon-shezhi:before {
  content: "\e8b7";
}

.icon-xitongtiaoshi:before {
  content: "\e60e";
}

.icon-renzheng:before {
  content: "\e62f";
}

.icon-shuju:before {
  content: "\e679";
}

.icon-weixiu1:before {
  content: "\e60f";
}

.icon-genghuan:before {
  content: "\e614";
}

.icon-jiangpai:before {
  content: "\e608";
}

.icon-weixiu:before {
  content: "\e63a";
}

.icon-zhuanli:before {
  content: "\e617";
}

.icon-renzhengdunpaianquanbaozhangzhibao-xianxing:before {
  content: "\e7af";
}

.icon-duihao:before {
  content: "\e63e";
}

.icon-star-full:before {
  content: "\e9a1";
}

.icon-hezuohuoban:before {
  content: "\e6a7";
}

.icon-hezuoguanxi-xianxing:before {
  content: "\e8a8";
}

.icon-zeren:before {
  content: "\e60c";
}

.icon-zerenxin:before {
  content: "\e7b4";
}

.icon-chengchang:before {
  content: "\e665";
}

.icon-jurassic_engineering:before {
  content: "\e6bc";
}

.icon-anzhuangshigong-xianxing:before {
  content: "\e8d6";
}

.icon-fuwu:before {
  content: "\e662";
}

.icon-icon_shebeibaoxiu:before {
  content: "\e61d";
}

.icon-duihua:before {
  content: "\e60d";
}

.icon-skype1:before {
  content: "\e87d";
}

.icon-shouqianzixun:before {
  content: "\e62c";
}

.icon-zixunfuwu:before {
  content: "\e655";
}

.icon-dianhua6:before {
  content: "\e791";
}

.icon-yuyan:before {
  content: "\e85f";
}

.icon-twitter:before {
  content: "\e89d";
}

.icon-youtube1:before {
  content: "\e8d7";
}

.icon-liuyan1:before {
  content: "\e744";
}

.icon-xiazai19:before {
  content: "\e613";
}

.icon-zhuye:before {
  content: "\e6c5";
}

.icon-facebook:before {
  content: "\e6e5";
}

.icon-wechat1:before {
  content: "\e650";
}

.icon-zixun:before {
  content: "\e661";
}

.icon-zixun1:before {
  content: "\e663";
}

.icon-rili:before {
  content: "\e659";
}

.icon-bofang:before {
  content: "\e61a";
}

.icon-youjiantou:before {
  content: "\e60b";
}

.icon-diqiu:before {
  content: "\e7b9";
}

.icon-jiantou-left:before {
  content: "\e609";
}

.icon-youtube:before {
  content: "\e6ab";
}

.icon-youxiang1:before {
  content: "\e607";
}

.icon-dianhua1:before {
  content: "\e61e";
}

.icon-mean_list:before {
  content: "\e653";
}

.icon-liaotian:before {
  content: "\e6a5";
}

.icon-youxiang:before {
  content: "\e908";
}

.icon-instagram-fill1:before {
  content: "\e88f";
}

.icon-fangdajing:before {
  content: "\e605";
}

.icon-dianhua:before {
  content: "\e606";
}

.icon-dayinchuanzhen:before {
  content: "\e627";
}

.icon-shoujilianxi:before {
  content: "\e620";
}

.icon-dizhi:before {
  content: "\e619";
}

.icon-skype:before {
  content: "\e707";
}

.icon-chuanzhen:before {
  content: "\e616";
}

.icon-pinterest1:before {
  content: "\e907";
}

.icon-in:before {
  content: "\e6f1";
}

.icon-pinterest:before {
  content: "\e7a8";
}

.icon-dianhua4:before {
  content: "\e610";
}

.icon-dianhua5:before {
  content: "\e6ee";
}

.icon-jurassic_message:before {
  content: "\e69d";
}

.icon-ins:before {
  content: "\e664";
}

.icon-instagram-fill:before {
  content: "\e763";
}

.icon-fasong:before {
  content: "\e65e";
}

.icon-shouji:before {
  content: "\e612";
}

.icon-dianhua3:before {
  content: "\e618";
}

.icon-dianhua2:before {
  content: "\e60a";
}

.icon-666666-copy:before {
  content: "\ec8d";
}

.icon-liuyan:before {
  content: "\e600";
}

.icon-WhatsappMessage:before {
  content: "\e841";
}

.icon-Mail:before {
  content: "\e71f";
}

.icon-youxiang2:before {
  content: "\e68b";
}

.icon-douyin:before {
  content: "\e8db";
}

.icon-fasong1:before {
  content: "\e762";
}

.icon-vk:before {
  content: "\ec2c";
}

.icon-duoyuyan:before {
  content: "\e602";
}

.icon-tuite:before {
  content: "\e621";
}

.icon-duihua1:before {
  content: "\e72a";
}

.icon-jiantou1:before {
  content: "\e666";
}

.icon-chahao:before {
  content: "\e68c";
}

.icon-whatsapp1:before {
  content: "\e8ec";
}

.icon-shubiao:before {
  content: "\e667";
}

.icon-jian:before {
  content: "\e611";
}

.icon-jia:before {
  content: "\e711";
}

.icon-jiantou1-copy:before {
  content: "\ec8e";
}

.icon-weixinguanli:before {
  content: "\e7cf";
}

.icon-whatapp:before {
  content: "\e623";
}

.icon-home-fill:before {
  content: "\e687";
}

.icon-jiantou:before {
  content: "\e668";
}

.icon-youtube2:before {
  content: "\ea07";
}

.icon-fanhuidingbu3:before {
  content: "\e64a";
}

.sider-contact { background: #fff; border-radius: 10px 0 0 10px; box-shadow: 0 0 1rem -2px rgba(61,61,61,.15); position: fixed; right: 0; top: 50%; transform: translateY(-50%); transition: all .5s ease; z-index: 999;}
.sider-contact.hide { transform: translate(100%,-50%);}
.sider-contact.hide #sider-contact-switcher i { transform: rotate(180deg);}
.right-nav { align-items: center; list-style: none; margin: 0; display: flex; padding: 16px 14px; flex-flow: column; font-size: 1.2rem; line-height: 1.4rem;}
.right-nav .btn-tit { transform: scale(.9)}
.right-nav li { height: 62px; list-style: none; border-bottom: 1px solid #f0f0f0; position: relative; width: 56px;}
.right-nav li:last-child{ border-bottom: none; }
.right-nav li a { align-items: center; color: #1f1a17; display: flex; flex-flow: column; height: 100%; justify-content: center; transition: all .3s ease; width: 100%}
.right-nav li a:hover { transform: translateX(5px); }
.right-nav li:hover .right_hide { opacity: 1; transform: translate(-110%,-50%); visibility: visible}
.right_hide{ background-color: #fff; border-radius: 10px; box-shadow: 0 0 1rem -2px rgba(61,61,61,.15); color: #3d3d3d; font-size: 14px; left: -10px; line-height: 1.6rem; opacity: 0; padding: 1rem; position: absolute; top: 50%; transform: translate(-130%,-50%); transition: all .5s ease; visibility: hidden; white-space: nowrap}
.right_hide:before { border-bottom: 6px solid transparent; border-left: 8px solid #fff; border-top: 6px solid transparent; content: ""; position: absolute; right: -8px; top: calc(50% - 4px)}
.right_hide img { display: block; max-width: 10rem}
#sider-contact-switcher { align-items: center; color: #1f1a17; cursor: pointer; display: flex; height: 44px; justify-content: flex-end; left: 0; margin: 0; overflow: hidden; position: absolute; top: 50%; transform: translate(-100%,-50%); width: 44px; z-index: -1}
#sider-contact-switcher i { font-size: 12px; font-weight: bold; transition: all .3s ease}
#sider-contact-switcher:after { background: #fff; box-shadow: 0 0 1rem -2px rgba(61,61,61,.15); border-radius: 5px; content: ""; display: block; height: 44px; left: 69%; position: absolute; top: 50%; transform: translateY(-50%) rotate(45deg); transform-origin: center; width: 44px; z-index: -1}

.footmenu{position:fixed;bottom:0;left:0;width:100%;z-index:555;max-width:1024px; display: none;}
.footmenu img{display:block}
.footmenu div.bgcolor{ clear:both;}
.footmenu div.con{position:absolute;bottom:0;left:0;width:100%; padding-bottom: 10px; background:#FFB84D;}
.footmenu a{color:#fff;font-size:16px; display:block;width:25%;text-align:center;float:left;position:relative}
.footmenu i{display:block;width:25px;height:25px;margin:6px auto 2px; font-size: 26px;}
/* ===== Extracted from pages ===== */
.frp-hf-nav li{ position: relative; margin: 0 13px; display: inline-block;}
ul{ margin: 0; padding: 0;}
/*li{ list-style: none;}*/
.changpic{ width: 100%; overflow: hidden; position: relative; }
.changpic img{ object-fit: cover; height: 100%; max-width: 100%; max-height: 100%; width: 100%; transition: all 0.3s; }

.nav_menu{ background: #f1f2f2; display: none; border-top: 1px solid #f1f2f2; position: fixed; top: 130px; left: 0; width: 100%; height:auto; overflow: hidden; }
.navbox{ width: 100%; display: flex;}
.nmelef{ width: 496px; padding: 60px 30px 80px 112px; background: #fff; }
.nmerig{ width: calc(100% - 496px); padding: 140px 110px 80px 78px; }
.nnivs{ display: flex; justify-content: space-between; }
.nmelef h4{ font-size: 26px; font-weight: normal; font-family: OpenSanscnMedium; color: #002a54;}
.nmelef h4 i{ font-size: 20px; display: inline-block; margin-left: 10px; }
.nadld{ margin-top: 38px;}
.nadld dd{ display: flex; font-size: 21px; margin-bottom: 26px; cursor: pointer; align-items: center; justify-content: space-between;}
.nadld dd:last-child{ margin-bottom: 0;}
.nadld dd.cur{ color: #0155b6;}
.nmback h3{ margin: 25px 0; font-weight: normal; font-size: 24px; }
.nmback h3 i{ display: inline-block; margin-left: 14px;}
.bldlb dd{ margin-bottom: 20px;}
.bldlb dd:last-child{ margin-bottom: 0;}
.nmback .nmbitem{ display: none;}
.nmback .nmbitem.cur{ display: block;}

body.frp-home-page *{ box-sizing:border-box; }

    body.frp-home-page{
      --brand:#0155B6;
      --text:#333333;

      /* SOP v2 container */
      --wrap:1320px;
      --container-pad:20px;

      --border:#e5e7eb;
      --border-soft:#f2f2f2;

      /* ✅ Unified section spacing (SOP v2 aligned with your other pages) */
      --section-pad-desktop:100px;
      --section-pad-tablet:72px;
      --section-pad-mobile:64px;

      /* ✅ SOP v2 elastic gaps */
      --gap:clamp(10px, 2vw, 30px);
      --gap-lg:clamp(24px, 4vw, 80px);
      --gap-md:clamp(20px, 3vw, 60px);

      /* alternating backgrounds */
      --bg-white:#ffffff;
      --bg-gray:#f7f7f8;

      /* SOP v2 focus */
      --focus:2px solid #0155B6;
    }

    body.frp-home-page{
      margin:0;
      background:#ffffff;
      font-family:'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
      color:var(--text);
    }

    /* SOP v2: focus-visible */
    body.frp-home-page :focus-visible{
      outline:var(--focus);
      outline-offset:4px;
    }

    /* Alternating Section Backgrounds */
    body.frp-home-page .alt-bg-1{ background:var(--bg-white); }
    body.frp-home-page .alt-bg-2{ background:var(--bg-gray); }
    body.frp-home-page .alt-bg-3{ background:var(--bg-white); }
    body.frp-home-page .alt-bg-4{ background:var(--bg-white); }
    body.frp-home-page .alt-bg-5{ background:var(--bg-gray); }
.areatextClass::-webkit-input-placeholder { color: red!important;}
.aligncenter {
  display: block !important;
  margin: 0 auto!important;
}
.wpcf7 fieldset{display:none;}
.demesfo .wpcf7-response-output{color:#fff!important;}
/*.wpcf7-response-output,.wpcf7-validation-errors {display: none !important;}*/
span.wpcf7-not-valid-tip {display:none;}
/*.screen-reader-response {display: none !important;}*/

    /* ✅ SOP v2 container (safe: no global root override) */
  .frp-container{
      max-width:var(--wrap);
      margin:0 auto;
      padding-left:var(--container-pad);
      padding-right:var(--container-pad);
      box-sizing:border-box;
    }
    @media (min-width:1320px){
      .frp-container{
        padding-left:20px;
        padding-right:20px;
      }
    }

    /* =========================
       WHAT WE DO
    ========================= */
    body.frp-home-page .frp-home-whatwedo{
      padding:var(--section-pad-desktop) 0;
    }

    body.frp-home-page .frp-home-whatwedo__wrap{
      display:flex;
      flex-wrap:wrap;
      align-items:stretch;
      gap:var(--gap-lg);
    }

    body.frp-home-page .frp-home-whatwedo__text{
      flex:1.2;
      min-width:320px;
    }

    body.frp-home-page .frp-home-whatwedo__title{
      font-size:clamp(32px, 5vw, 42px);
      font-weight:700;
      line-height:1.1;
      color:var(--text);
      margin:0 0 30px 0;
      text-transform:uppercase;
      letter-spacing:-1px;
    }

    body.frp-home-page .frp-home-whatwedo__copy p{
      font-size:18px;
      line-height:1.7;
      margin:0 0 20px 0;
      color:var(--text);
    }

    body.frp-home-page .frp-home-whatwedo__copy p:last-child{
      margin-bottom:25px;
    }

    body.frp-home-page .frp-home-whatwedo__link{
      display:inline-flex;
      align-items:center;
      gap:10px;
      color:var(--brand);
      text-decoration:none;
      font-size:18px;
      font-weight:700;
      padding-bottom:4px;
      transition:.3s;
    }

    body.frp-home-page .frp-home-whatwedo__link:hover{
      opacity:.85;
    }

    /* ✅ Learn More arrow hover motion (match View Our Case arrow behavior) */
    body.frp-home-page .frp-home-whatwedo__arrow{
      display:inline-block;
      font-size:18px;
      transition:transform .25s ease;
    }
    body.frp-home-page .frp-home-whatwedo__link:hover .frp-home-whatwedo__arrow{
      transform:translateX(3px);
    }

    body.frp-home-page .frp-home-whatwedo__media{
      flex:1;
      min-width:320px;
      display:flex;
      flex-direction:column;
      justify-content:center;
    }

    /* ✅ keep original image size behavior (no enforced ratio) */
    body.frp-home-page .frp-home-whatwedo__frame img{
      width:100%;
      display:block;
      box-shadow:20px 20px 60px rgba(0,0,0,0.08);
      height:auto;
    }

    body.frp-home-page .frp-home-whatwedo__caption{
      font-size:15px;
      color:#9CA3AF;
      margin:20px 0 0 0;
      text-align:left;
      font-style:italic;
    }

    /* =========================
       CORE SERVICES (Clickable cards)
    ========================= */
    body.frp-home-page .frp-home-services{
      padding:var(--section-pad-desktop) 0;
    }

    body.frp-home-page .frp-home-services__grid{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:var(--gap);
    }

    /* ✅ Make cards clickable + consistent hover/focus */
    body.frp-home-page .frp-home-services__card{
      background-color:#ffffff;
      border:1px solid var(--border);
      display:flex;
      flex-direction:column;
      overflow:hidden;
      text-decoration:none;
      color:inherit;
      transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    }

    body.frp-home-page .frp-home-services__card:hover{
      transform:translateY(-4px);
      border-color:#d1d5db;
      box-shadow:0 18px 40px rgba(0,0,0,0.08);
    }

    body.frp-home-page .frp-home-services__card img{
      width:100%;
      aspect-ratio:3 / 2; /* ✅统一 3:2 */
      object-fit:cover;
      display:block;
    }

    body.frp-home-page .frp-home-services__content{
      padding:20px 30px;
      text-align:center;
      flex-grow:1;
    }

    body.frp-home-page .frp-home-services__content h3{
      font-size:20px;
      font-weight:700;
      color:var(--text);
      margin:0 0 16px 0;
      text-transform:uppercase;
    }

    body.frp-home-page .frp-home-services__content p{
      font-size:16px;
      line-height:1.7;
      color:var(--text);
      margin:0;
    }

    /* =========================
       JIGGING TECHNOLOGY
    ========================= */
    body.frp-home-page .frp-home-jig{
      padding: var(--section-pad-desktop) 0;
      background-image:
        linear-gradient(rgba(1, 85, 182, 0.88), rgba(1, 85, 182, 0.88)),
        url("https://images.unsplash.com/photo-1518709268805-4e9042af9f23?auto=format&fit=crop&w=1920&q=80");
      background-size: cover;
      background-position: center;
      background-attachment: fixed;
      color:#ffffff;
      overflow:hidden;
    }

    /* ✅ mobile/tablet disable fixed background for stability */
    @media (max-width:1024px){
      body.frp-home-page .frp-home-jig{ background-attachment:scroll; }
    }

    body.frp-home-page .frp-home-jig__wrap{
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      gap:var(--gap-md);
    }

    body.frp-home-page .frp-home-jig__text{
      flex:1.2;
      min-width:320px;
    }

    body.frp-home-page .frp-home-jig__title{
      font-size: clamp(30px, 4vw, 42px);
      font-weight: 700;
      line-height: 1.2;
      text-transform: uppercase;
      letter-spacing: -0.5px;
      margin: 0 0 30px 0;
      color:#ffffff;
    }

    body.frp-home-page .frp-home-jig__copy p{
      font-size:18px;
      line-height:1.8;
      margin:0 0 20px 0;
      color:rgba(255,255,255,0.9);
    }

    body.frp-home-page .frp-home-jig__media{
      flex:1;
      min-width:320px;
      position:relative;
    }

    body.frp-home-page .frp-home-jig__slider{
      width:100%;
      position:relative;
      overflow:hidden;
      border-radius:4px;
      box-shadow:0 25px 50px -12px rgba(0,0,0,0.5);
      aspect-ratio:3 / 2; /* ✅统一 3:2 */
    }

    body.frp-home-page .frp-home-jig__track{
      display:flex;
      width:500%;
      height:100%;
      transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
      transform: translateX(0%);
    }

    body.frp-home-page .frp-home-jig__slide{
      width:100%;
      height:100%;
    }

    body.frp-home-page .frp-home-jig__slide img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    body.frp-home-page .frp-home-jig__dots{
      position:absolute;
      left:50%;
      bottom:20px;
      transform:translateX(-50%);
      display:flex;
      gap:12px;
      z-index:10;
    }

    body.frp-home-page .frp-home-jig__dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:rgba(255,255,255,0.3);
      border:none;
      cursor:pointer;
      padding:0;
      transition: all 0.3s ease;
    }

    body.frp-home-page .frp-home-jig__dot.is-active{
      background:#ffffff;
      width:24px;
      border-radius:4px;
    }

    /* =========================
       CASE CARDS
    ========================= */
    body.frp-home-page .frp-home-cases{
      padding:var(--section-pad-desktop) 0;
      overflow-x:hidden;
      width:100%;
    }

    body.frp-home-page .frp-home-cases__grid{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:var(--gap);
    }

    body.frp-home-page .frp-home-cases__card{
      display:flex;
      flex-direction:column;
      background:#ffffff;
      border:1px solid var(--border-soft);
      text-decoration:none;
      color:inherit;
      overflow:hidden;
      transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    }

    body.frp-home-page .frp-home-cases__card:hover{
      transform:translateY(-4px);
      border-color:#d1d5db;
      box-shadow:0 18px 40px rgba(0,0,0,.08);
    }

    body.frp-home-page .frp-home-cases__media{
      width:100%;
      aspect-ratio:3 / 2; /* ✅统一 3:2 */
      overflow:hidden;
      background:#F8F9FA;
    }

    body.frp-home-page .frp-home-cases__media img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      transition:transform .35s ease;
    }

    body.frp-home-page .frp-home-cases__card:hover .frp-home-cases__media img{
      transform:scale(1.03);
    }

    body.frp-home-page .frp-home-cases__body{
      padding:35px 25px;
      flex:1;
      display:flex;
      flex-direction:column;
    }

    body.frp-home-page .frp-home-cases__title{
      font-size:20px;
      font-weight:600;
      line-height:1.4;
      color:var(--text);
      margin:0 0 20px 0;
      transition:color .2s ease;

      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    body.frp-home-page .frp-home-cases__card:hover .frp-home-cases__title{
      color:var(--brand);
    }

    body.frp-home-page .frp-home-cases__loc{
      display:flex;
      align-items:center;
      gap:6px;
      margin:0 0 25px 0;
      font-size:16px;
      font-weight:700;
      color:var(--brand);
    }

    body.frp-home-page .frp-home-cases__facts{
      display:flex;
      border-top:1px solid #f0f0f0;
      border-bottom:1px solid #f0f0f0;
      padding:15px 0;
      margin:0 0 25px 0;
    }

    body.frp-home-page .frp-home-cases__fact{ flex:1; }

    body.frp-home-page .frp-home-cases__fact:first-child{
      border-right:1px solid #f0f0f0;
      padding-right:15px;
    }

    body.frp-home-page .frp-home-cases__fact:last-child{
      padding-left:15px;
    }

    body.frp-home-page .frp-home-cases__label,
    body.frp-home-page .frp-home-cases__category {
      display:block;
      font-size:17px;
      color:#9CA3AF;
      text-transform:uppercase;
      margin-bottom:6px;
    }

    body.frp-home-page .frp-home-cases__value{
      font-size:16px;
      font-weight:600;
      color:#1F2937;
    }

    body.frp-home-page .frp-home-cases__summary{
      margin:0 0 30px 0;
    }

    body.frp-home-page .frp-home-cases__summary p{
      font-size:16px;
      line-height:1.7;
      margin:0;

      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    body.frp-home-page .frp-home-cases__cta{
      margin-top:auto;
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-size:16px;
      font-weight:600;
      color:var(--brand);
      text-decoration:none;
    }

    body.frp-home-page .frp-home-cases__arrow{
      display:inline-block;
      font-size:18px;
      transition:transform .25s ease;
    }

    body.frp-home-page .frp-home-cases__card:hover .frp-home-cases__arrow{
      transform:translateX(3px);
    }

    /* =========================
       PRODUCTS
    ========================= */
    body.frp-home-page .frp-home-products{
      padding:var(--section-pad-desktop) 0;
    }

    body.frp-home-page .frp-home-products__grid{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:var(--gap);
    }

    body.frp-home-page .frp-home-products__card{
      display:flex;
      flex-direction:column;
      background:#ffffff;
      border:1px solid var(--border);
      text-decoration:none;
      color:inherit;
      overflow:hidden;
      transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    }

    body.frp-home-page .frp-home-products__card:hover{
      transform: translateY(-4px);
      border-color: #d1d5db;
      box-shadow: 0 18px 40px rgba(0,0,0,0.08);
    }

    body.frp-home-page .frp-home-products__image{
      width:100%;
      aspect-ratio:3 / 2; /* ✅统一 3:2 */
      overflow:hidden;
      background:#F8F9FA;
    }

    body.frp-home-page .frp-home-products__image img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      transform: scale(1);
      transition: transform 0.35s ease;
    }

    body.frp-home-page .frp-home-products__card:hover .frp-home-products__image img{
      transform: scale(1.03);
    }

    body.frp-home-page .frp-home-products__name{
      padding:22px 20px;
      font-size:20px;
      font-weight:600;
      line-height:1.4;
      text-align:center;
      margin:0;
      color:var(--text);
      transition:color 0.25s ease;

      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      overflow: hidden;
      min-height: calc(1.4em * 2);
    }

    body.frp-home-page .frp-home-products__card:hover .frp-home-products__name{
      color:var(--brand);
    }

    /* =========================
       NEWSLETTER (keep your yellow button)
    ========================= */
    .frp-home-newsletter{
      background-color:#0155B6;
      color:#ffffff;
      padding:100px 0; /* keep original */
      text-align:center;
      font-family:'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    }

    .frp-home-newsletter__title{
      font-size: clamp(28px, 5vw, 42px);
      font-weight: 800;
      margin: 0 0 20px 0;
      line-height: 1.2;
      letter-spacing: 0.02em;
    }

    .frp-home-newsletter__desc{
      font-size: 18px;
      line-height: 1.7;
      color: rgba(255, 255, 255, 0.9);
      max-width: 750px;
      margin: 0 auto 45px auto;
    }

    .frp-home-newsletter__desc span{ display:block; }

    /* ✅ Form UX upgrade: never wrap, elastic input, stable button, better states */
    .frp-home-newsletter__form p{
      display:flex;
      flex-wrap:nowrap;               /* ✅ always one line */
      justify-content:center;
      align-items:stretch;
      gap:15px;
      max-width:700px;
      margin:0 auto;
    }

    .frp-home-newsletter__input{
      flex:1 1 auto;
      min-width:0;                    /* ✅ allow shrink on small screens */
      padding:12px 18px;
      font-size:clamp(14px, 1.6vw, 16px); /* ✅ elastic */
      border:none;
      border-radius:4px;
      outline:none;
      box-shadow:0 4px 12px rgba(0,0,0,0.1);
    }

    .frp-home-newsletter__input::placeholder{
      color:rgba(31,41,55,0.6);
    }

    /* ✅ keep your brand yellow */
    .frp-home-newsletter__btn{
      flex:0 0 auto;                  /* ✅ don’t get squished */
      background-color:#FFB84D;
      color:#ffffff;
      padding:12px 26px;
      font-size:clamp(14px, 1.6vw, 16px); /* ✅ elastic */
      font-weight:700;
      border:none;
      border-radius:4px;
      cursor:pointer;
      transition: transform 0.2s ease, opacity 0.2s ease, background 0.3s ease;
      box-shadow:0 4px 12px rgba(0,0,0,0.1);
      white-space:nowrap;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
    }

    .frp-home-newsletter__btn:hover{
      transform:translateY(-1px);
      opacity:0.95;
    }

    .frp-home-newsletter__btn:active{
      transform:translateY(0);
      opacity:0.9;
    }

    .frp-home-newsletter__btn:disabled{
      cursor:not-allowed;
      opacity:0.7;
      transform:none;
    }

    /* Spinner (pure CSS) */
    .frp-home-newsletter__spinner{
      width:1em;
      height:1em;
      border-radius:999px;
      border:2px solid rgba(255,255,255,0.45);
      border-top-color:#ffffff;
      display:none;
      animation: frpSpin 0.8s linear infinite;
    }

    .frp-home-newsletter__btn.is-loading .frp-home-newsletter__spinner{
      display:inline-block;
    }

    @keyframes frpSpin{
      to{ transform:rotate(360deg); }
    }

    /* Inline status message under the form */
    .frp-home-newsletter__msg{
      max-width:700px;
      margin:14px auto 0 auto;
      min-height:1.4em;              /* keeps layout stable */
      font-size:16px;
      line-height:1.6;
      color:rgba(255,255,255,0.92);
      opacity:0.95;
      text-align:center;
    }

   .frp-home-newsletter__msg.is-error{
      color:rgba(255,255,255,0.95);
      opacity:0.95;
    }

    .frp-home-newsletter__msg.is-success{
      color:#ffffff;
      opacity:0.98;
    }

    /* ✅ Privacy note: centered group + top-aligned icon, hollow ring, responsive */
    .frp-home-newsletter__note{
      margin-top: 25px;
      display: flex;
      align-items: flex-start;       /* ✅ keep icon aligned to first line */
      justify-content: center;       /* ✅ icon + text centered as a group */
      gap: 10px;
      font-size: 15px;
      opacity: 0.8;
    }

    .frp-home-newsletter__note svg{
      flex: 0 0 auto;
      margin-top: 0.1em;             /* ✅ elastic optical alignment */
      width: 1.45em;                 /* ✅ scales with text */
      height: 1.45em;
      padding: 0.22em;
      border-radius: 999px;
      border: 2px solid rgba(255,255,255,0.95); /* ✅ hollow white ring */
      background: transparent;       /* ✅ not solid */
      color: #ffffff;                /* ✅ white check */
    }

    /* =========================
       Responsive Breakpoints (SOP v2)
    ========================= */
    @media (max-width:1024px){
      body.frp-home-page .frp-home-whatwedo{ padding:var(--section-pad-tablet) 0; }
      body.frp-home-page .frp-home-services{ padding:var(--section-pad-tablet) 0; }
      body.frp-home-page .frp-home-jig{ padding:var(--section-pad-tablet) 0; }
      body.frp-home-page .frp-home-cases{ padding:var(--section-pad-tablet) 0; }
      body.frp-home-page .frp-home-products{ padding:var(--section-pad-tablet) 0; }
      .frp-home-newsletter{ padding: var(--section-pad-tablet) 0;}

      body.frp-home-page .frp-home-services__grid{ grid-template-columns:repeat(2, 1fr); }
      body.frp-home-page .frp-home-cases__grid{ grid-template-columns:repeat(2, 1fr); }
      body.frp-home-page .frp-home-products__grid{ grid-template-columns:repeat(2, 1fr); }

      body.frp-home-page .frp-home-services__content{ padding:32px 24px; }
    }

    @media (max-width:767.98px){
      body.frp-home-page .frp-home-whatwedo{ padding:var(--section-pad-mobile) 0; }
      body.frp-home-page .frp-home-services{ padding:var(--section-pad-mobile) 0; }
      .frp-home-newsletter{ padding: var(--section-pad-mobile) 0;}
      body.frp-home-page .frp-home-jig{ padding:var(--section-pad-mobile) 0; }
      body.frp-home-page .frp-home-cases{ padding:var(--section-pad-mobile) 0; }
      body.frp-home-page .frp-home-products{ padding:var(--section-pad-mobile) 0; }

      body.frp-home-page .frp-home-whatwedo__wrap{ flex-direction:column; gap:48px; }
      body.frp-home-page .frp-home-whatwedo__text, body.frp-home-page .frp-home-whatwedo__media{ min-width:100%; }
      body.frp-home-page .frp-home-whatwedo__media{ align-items:center; }
      body.frp-home-page .frp-home-whatwedo__caption{ text-align:center; }

      body.frp-home-page .frp-home-jig__wrap{ flex-direction:column; gap:40px; }
      body.frp-home-page .frp-home-jig__text, body.frp-home-page .frp-home-jig__media{ min-width:100%; }

      body.frp-home-page .frp-home-services__grid{ grid-template-columns:1fr; }
      body.frp-home-page .frp-home-cases__grid{ grid-template-columns:1fr; }
      body.frp-home-page .frp-home-products__grid{ grid-template-columns:1fr; }

      body.frp-home-page .frp-home-services__content{ padding:24px; }
      body.frp-home-page .frp-home-services__content h3{ font-size:18px; margin-bottom:24px; }
      body.frp-home-page .frp-home-services__content p{ font-size:15px; line-height:1.6; }

  /* Keep newsletter in one line; just slightly tighten spacing on small screens */
      .frp-home-newsletter__form{ gap:12px; }
      .frp-home-newsletter__btn{ padding:12px 18px; }
      .frp-home-newsletter__input{ padding:12px 14px; }
    }

/* =========================================================
       FRP SOP v2 (GLOBAL / ALL PAGES)
       - container: 1320px centered
       - default side padding: 20px
       - >=1320px: padding 0
       - breakpoints: 1024 / 767.98
    ========================================================== */
    body.frp-about-page{
      --wrap:1320px;
      --container-pad:20px;

      --brand:#0155B6;
      --accent-yellow:#F4C632;

      --text-main:#333333;
      --text-dark:#1f2937;

      --bg-white:#ffffff;
      --bg-gray:#f7f7f8;

      --line:#e5e7eb;

      /* Section vertical spacing (kept) */
      --section-pad-desktop:100px;
      --section-pad-tablet:72px;
      --section-pad-mobile:64px;
      --section-pad:var(--section-pad-desktop);

      /* =====================================================
         IMAGE RATIO TOKENS (UPDATED)
         - FRP Factory (hero image): 3:2
         - Cooperation Network: 3:1
      ====================================================== */
      --frp-img-ratio-hero: 3 / 2;
      --frp-img-ratio-coop: 15 / 4;

      /* Quote spacing tokens (mobile tuning) */
      --frp-quote-mobile-top: -22px;
      --frp-quote-mobile-size: 64px;
      --frp-quote-wrap-mobile-padtop: 34px;
      --frp-testimonial-text-mobile-padtop: 52px;

      --frp-quote-phone-top: -18px;
      --frp-quote-phone-size: 58px;
      --frp-testimonial-text-phone-padtop: 46px;
    }
@media (max-width:1024px){
      body.frp-about-page{ --section-pad:var(--section-pad-tablet); }
    }

    @media (max-width:767.98px){
      body.frp-about-page{ --section-pad:var(--section-pad-mobile); }
    }

    html, body.frp-about-page{ margin:0; padding:0; padding-top:var(--frp-hf-offset, 120px); }
    body.frp-about-page *{ box-sizing:border-box; }

    body.frp-about-page :focus-visible{
      outline:2px solid #0155B6;
      outline-offset:4px;
    }

    body.frp-about-page .frp-container{
      max-width:var(--wrap);
      margin:0 auto;
      padding-left:var(--container-pad);
      padding-right:var(--container-pad);
      box-sizing:border-box;
    }

    /* ===============================
       About Base
    ================================ */
    body.frp-about-page .frp-about{
      font-family:'Segoe UI', Roboto, Arial, sans-serif;
   
      background:var(--bg-white);
      width:100%;
      overflow-x:hidden;
    }

    /* Utilities (extracted from inline) */
    body.frp-about-page .frp-about-text-white{ color:#fff !important; }
    body.frp-about-page .frp-about-mb-0{ margin-bottom:0 !important; }
    body.frp-about-page .frp-about-mt-40{ margin-top:40px !important; }
    body.frp-about-page .frp-about-mt-60{ margin-top:60px !important; }

    /* Headings / Body */
    body.frp-about-page .frp-about-h2{
      font-size:clamp(30px, 4vw, 42px);
      line-height:1.1;
      font-weight:700;
      margin:0 0 40px 0;
      text-transform:uppercase;
      letter-spacing:0.02em;
      color:var(--text-dark);
    }
    body.frp-about-page .frp-about-h2--brand{ color:var(--brand); }
    body.frp-about-page .frp-about-h2--white{ color:#fff; }

    body.frp-about-page .frp-about-body{
      font-size:18px;
      line-height:1.75;
      margin:0 0 20px 0;
      overflow-wrap:anywhere;
      color:var(--text-main);
    }

    /* ===============================
       Layout (keep original desktop layout)
    ================================ */
    body.frp-about-page .frp-about-section{ padding:var(--section-pad) 0; }

    body.frp-about-page .frp-about-two-col{
      display:flex;
      flex-wrap:wrap;
      gap:60px;
    }
    /* ✅ HERO needs center alignment (you asked: not top-aligned) */
    body.frp-about-page .frp-about-two-col--center{ align-items:center; }
    body.frp-about-page .frp-about-two-col--top{ align-items:flex-start; }

    body.frp-about-page .frp-about-col{
      flex:1;
      min-width:320px;
    }

    body.frp-about-page .frp-about-grid-3{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:24px;
    }

    /* ===============================
       1) HERO
    ================================ */
    body.frp-about-page .frp-about-hero{

      background: #f7f7f8;
    }

    body.frp-about-page .frp-about-hero-img{
      width:100%;
      display:block;
      height:auto;
      box-shadow:0 6px 18px rgba(0,0,0,0.30);

      /* ✅ 3:2 ratio via token */
      aspect-ratio: var(--frp-img-ratio-hero);
      object-fit: cover;
      object-position: center;
    }
    .lsco{ color:#0b5fb3 !important;}
    body.frp-about-page .frp-about-glass{
      background:rgba(255,255,255,1);
      backdrop-filter:blur(8px);
      border:1px solid rgba(255,255,255,0.20);
      padding:30px;
    }
    body.frp-about-page .frp-about-icon{ font-size:32px; margin-bottom:18px; display:block; }
    body.frp-about-page .frp-about-glass h3{ font-size:20px; font-weight:700; margin:0 0 12px 0; }

    /* ===============================
       2) STATS
    ================================ */
    body.frp-about-page .frp-about-stats{ background:var(--bg-white); }

    body.frp-about-page .frp-about-kpi{
      border-top:1px solid var(--line);
      padding-top:20px;
    }
    body.frp-about-page .frp-about-kpi-num{
      font-size:clamp(30px, 4vw, 42px);
      font-weight:700;
      color:var(--brand);
      line-height:1;
      margin:0 0 8px 0;
    }
    body.frp-about-page .frp-about-kpi-label{
      font-size:16px;
      font-weight:700;
      text-transform:uppercase;
      letter-spacing:0.04em;
      color:#888;
      margin:0;
    }

    /* ===============================
       3) COOP
    ================================ */
    body.frp-about-page .frp-about-coop{ background:var(--bg-gray); }

    body.frp-about-page .frp-about-media{
      margin-top:30px;
      width:100%;
      display:block;
      border:none;

      /* ✅ remove shadow as requested */
      box-shadow:none;

      height:auto;

      /* ✅ 3:1 ratio via token */
      aspect-ratio: var(--frp-img-ratio-coop);
      object-fit: cover;
      object-position:center;
    }

    /* ===============================
       4) VALUES
    ================================ */
    body.frp-about-page .frp-about-values{
      background:var(--brand);
      color:#fff;
    }
    body.frp-about-page .frp-about-value-card{
      background:rgba(255,255,255,0.12);
      backdrop-filter:blur(8px);
      border:1px solid rgba(255,255,255,0.15);
      padding:30px;
      color:#fff;
    }
    body.frp-about-page .frp-about-value-card h3{ font-size:20px; font-weight:700; margin:0 0 12px 0; }

    /* ===============================
       5) WORK
    ================================ */
    body.frp-about-page .frp-about-step{
      background:var(--bg-gray);
      border:1px solid #eee;
      padding:40px 30px;
      position:relative;
    }
    body.frp-about-page .frp-about-step h3{ font-size:20px; font-weight:700; margin:0 0 12px 0; }
    body.frp-about-page .frp-about-step-no{
      position:absolute;
      top:15px; right:20px;
      font-size:40px;
      font-weight:900;
      color:#eaeaeb;
      line-height:1;
      user-select:none;
    }

    /* ===============================
       6) TESTIMONIAL (full width)
    ================================ */
    body.frp-about-page .frp-about-testimonial{
      background:var(--accent-yellow);
      display:grid;
      grid-template-columns:1fr 1fr;
      align-items:stretch;
    }

    body.frp-about-page .frp-about-testimonial-img{
      width:100%;
      height:100%;
      overflow:hidden;
    }
    body.frp-about-page .frp-about-testimonial-img img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    body.frp-about-page .frp-about-testimonial-text{
      display:flex;
      align-items:center;
      padding-top:80px;
      padding-bottom:80px;
      padding-left:60px;
      padding-right:clamp(24px, 10vw, 150px);
    }

    body.frp-about-page .frp-about-quote-wrap{
      max-width:600px;
      position:relative;
      color:#333;
      padding-top:48px;
    }

    body.frp-about-page .frp-about-quote{
      position:absolute;
      top:-92px;
      left:0;
      font-size:112px;
      font-family:"Arial Black", sans-serif;
      line-height:1;
      color:rgba(0,0,0,0.06);
      user-select:none;
      pointer-events:none;
    }

    body.frp-about-page .frp-about-testimonial-h2{
      font-size:26px;
      font-weight:800;
      margin:0 0 26px 0;
      text-transform:uppercase;
      color:var(--text-dark);
      position:relative;
      z-index:2;
    }

    body.frp-about-page .frp-about-testimonial-p{
      font-size:18px;
      line-height:1.75;
      margin:0 0 40px 0;
      padding:0 0 40px 0;
      border-bottom:2px solid rgba(0,0,0,0.10);
      position:relative;
      z-index:2;
      color:var(--text-main);
    }

    body.frp-about-page .frp-about-testimonial-footer{
      display:flex;
      justify-content:space-between;
      align-items:flex-end;
      gap:24px;
    }

    body.frp-about-page .frp-about-name{ font-size:20px; font-weight:700; margin:0; color:var(--text-dark); }
    body.frp-about-page .frp-about-role{ font-size:13px; font-weight:600; text-transform:uppercase; opacity:0.85; margin:6px 0 0 0; }
    body.frp-about-page .frp-about-stars{ font-size:16px; letter-spacing:2px; white-space:nowrap; color:#333; }

    /* =====================================================
       MOBILE BEHAVIOR (migrated to SOP v2 breakpoints)
    ====================================================== */
    @media (max-width:1024px){
      body.frp-about-page .frp-about-two-col{ flex-direction:column; gap:24px; }
      body.frp-about-page .frp-about-col{ width:100%; flex:0 0 100%; min-width:0; }

      body.frp-about-page .frp-about-grid-3{ grid-template-columns:1fr; gap:16px; }

      body.frp-about-page .frp-about-hero{ background-attachment:scroll; }

      /* ✅ Removed fixed heights: ratio controls height now */
      body.frp-about-page .frp-about-hero-img{
        width:100% !important;
        max-width:100% !important;
      }

      body.frp-about-page .frp-about-media{
        width:100% !important;
        max-width:100% !important;
        margin-top:18px;
      }

      body.frp-about-page .frp-about-glass{ padding:20px; }
      body.frp-about-page .frp-about-value-card{ padding:20px; }
      body.frp-about-page .frp-about-step{ padding:22px 18px; }

      body.frp-about-page .frp-about-glass .frp-about-body,
      body.frp-about-page .frp-about-value-card .frp-about-body,
      body.frp-about-page .frp-about-step .frp-about-body{
        font-size:16px;
        line-height:1.8;
      }
      body.frp-about-page .frp-about-glass h3,
      body.frp-about-page .frp-about-value-card h3,
      body.frp-about-page .frp-about-step h3{
        font-size:18px;
        line-height:1.4;
      }

      body.frp-about-page .frp-about-testimonial{ grid-template-columns:1fr; }
      body.frp-about-page .frp-about-testimonial-img{ height:360px; }

      /* ✅ tighten quote spacing on mobile */
      body.frp-about-page .frp-about-testimonial-text{
        position:relative;
        z-index:3;
        padding:56px var(--container-pad);
        padding-top: var(--frp-testimonial-text-mobile-padtop);
      }

      body.frp-about-page .frp-about-quote-wrap{
        padding-top: var(--frp-quote-wrap-mobile-padtop); max-width: 100%;
        z-index:2;
      }

      body.frp-about-page .frp-about-quote{
        top: var(--frp-quote-mobile-top);
        font-size: var(--frp-quote-mobile-size);
        z-index:1;
      }

      body.frp-about-page .frp-about-testimonial-h2{ font-size:22px; margin-bottom:18px; }

      body.frp-about-page .frp-about-testimonial-p{
        font-size:18px;
        margin-bottom:24px;
        padding-bottom:24px;
      }

      body.frp-about-page .frp-about-testimonial-footer{
        flex-direction:column;
        align-items:flex-start;
        gap:12px;
      }
    }

    @media (max-width:767.98px){
      body.frp-about-page .frp-about-testimonial-img{ height:320px; }

      body.frp-about-page .frp-about-testimonial-text{
        padding-top: var(--frp-testimonial-text-phone-padtop);
      }

      body.frp-about-page .frp-about-quote{
        top: var(--frp-quote-phone-top);
        font-size: var(--frp-quote-phone-size);
      }
    }

html, body.frp-contact-page{ margin:0; padding:0; padding-top:var(--frp-hf-offset, 120px); }
    body.frp-contact-page *{ box-sizing:border-box; }

    /* =========================================================
       FRP SOP v2 (GLOBAL / ALL PAGES)
       - container: 1320px centered
       - default side padding: 20px
       - >=1320px: padding 0
       - breakpoints: 1024 / 767.98
       - elastic gap: clamp(10px, 2vw, 30px)
    ========================================================== */
    body.frp-contact-page{
      /* SOP v2 container */
      --wrap:1320px;
      --container-pad:20px;

      /* theme */
      --brand:#0155B6;
      --text-main:#333333;
      --text-dark:#333333;   /* CONTACT / INFORMATION title color */
      --muted:#666666;
      --line:#e5e7eb;
      --bg:#ffffff;
      --hover-gray:#F8F9FA;  /* hover background = light gray */

      /* SOP v2 elastic gap */
      --grid-gap:clamp(10px, 2vw, 30px);

      /* section vertical padding (keep original visual values) */
      --sec-pad-desktop:100px;
      --sec-pad-tablet:72px;
      --sec-pad-mobile:64px;
      --sec-pad:var(--sec-pad-desktop);

      /* consistent hit area */
      --hit-pad:12px;
    }
@media (max-width:1024px){
      body.frp-contact-page{ --sec-pad:var(--sec-pad-tablet); }
    }
    @media (max-width:767.98px){
      body.frp-contact-page{ --sec-pad:var(--sec-pad-mobile); }
    }

    /* SOP v2 focus-visible (global safe) */
    body.frp-contact-page :focus-visible{
      outline:2px solid var(--brand);
      outline-offset:4px;
    }

    body.frp-contact-page .frp-contact{
      font-family:'Segoe UI', Roboto, Arial, sans-serif;
      background:var(--bg);
      color:var(--text-main);
      width:100%;
    }

    /* SOP v2 container */
    body.frp-contact-page .frp-container{
      max-width:var(--wrap);
      margin:0 auto;
      padding-left:var(--container-pad);
      padding-right:var(--container-pad);
      box-sizing:border-box;
    }

    /* section spacing (keeps your original 100/72/64) */
    body.frp-contact-page .frp-contact-sec{
      padding:var(--sec-pad) 0 0;
    }

    /* Titles */
    body.frp-contact-page .frp-contact-h2,
    body.frp-contact-page .frp-contact-info-title{
      font-size:clamp(30px, 4vw, 42px);
      font-weight:700;
      line-height:1.1;
      margin:0 0 28px 0;
      text-transform:uppercase;
      letter-spacing:0.02em;
      color:var(--text-dark);
    }

    body.frp-contact-page .frp-contact-sub{
      font-size:18px;
      line-height:1.7;
      margin:0 0 40px 0;
      color:var(--muted);
      max-width:72ch;
    }
    @media (max-width:767.98px){
      body.frp-contact-page .frp-contact-sub{ font-size:18px; margin-bottom:28px; }
    }

    /* Layout */
    body.frp-contact-page .frp-contact-grid{
      display:grid;
      grid-template-columns:1.1fr 0.9fr;
      gap:80px;
      align-items:start;
    }
    @media (max-width:1024px){
      body.frp-contact-page .frp-contact-grid{ grid-template-columns:1fr; gap:48px; }
    }

    /* Form */
    body.frp-contact-page .frp-contact-fields p{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap: 16px;
      /* max-width: 850px; */
    }
    @media (max-width:767.98px){
      body.frp-contact-page .frp-contact-fields{ grid-template-columns:1fr; gap:14px; }
    }

    body.frp-contact-page .frp-contact-input,
    body.frp-contact-page .frp-contact-select,
    body.frp-contact-page .frp-contact-textarea{
      width: 100%;
      padding:14px 16px;
      border:1px solid var(--line);
      background:#fff;
      color:#333;
      font-size:18px;
      font-family:inherit;
      line-height:1.3;
      border-radius:2px;
      outline:none;
      transition:border-color .15s ease, box-shadow .15s ease;
    }
    @media (max-width:767.98px){
      body.frp-contact-page .frp-contact-input,
      body.frp-contact-page .frp-contact-select,
      body.frp-contact-page .frp-contact-textarea{
        font-size:18px;
        padding:13px 14px;
      }
    }

    body.frp-contact-page .frp-contact-input:focus,
    body.frp-contact-page .frp-contact-select:focus,
    body.frp-contact-page .frp-contact-textarea:focus{
      border-color:rgba(1,85,182,0.55);
      box-shadow:0 0 0 4px rgba(1,85,182,.10);
    }

    body.frp-contact-page .frp-contact-select{
      appearance:none;
      background-image:
        linear-gradient(45deg, transparent 50%, #6b7280 50%),
        linear-gradient(135deg, #6b7280 50%, transparent 50%);
      background-position:
        calc(100% - 18px) 50%,
        calc(100% - 12px) 50%;
      background-size:6px 6px, 6px 6px;
      background-repeat:no-repeat;
      padding-right:38px;
      cursor:pointer;
    }

    body.frp-contact-page .frp-contact-textarea{
      grid-column:1 / -1;
      min-height:180px;
      resize:vertical;
    }
    @media (max-width:767.98px){
      body.frp-contact-page .frp-contact-textarea{ min-height:170px; }
    }

    body.frp-contact-page .frp-contact-checkrow{
      display:flex;
      gap:10px;
      align-items:flex-start;
      margin:18px 0 12px 0;
      font-size:16px;
      line-height:1.6;
      color:var(--muted);
    }
    body.frp-contact-page .frp-contact-checkrow input{
      margin-top:3px;
      width:16px;
      height:16px;
      accent-color:var(--brand);
    }

    body.frp-contact-page .frp-contact-privacy-title{
      font-size:16px;
      font-weight:600;
      color:#333;
      margin:10px 0 8px 0;
    }
    body.frp-contact-page .frp-contact-privacy{
      font-size: 16px;
    line-height: 1.6;
    color: var(--muted);
    margin: 12px 0 28px 0;
    max-width: 100%;
    }

    body.frp-contact-page .frp-contact-btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:14px 44px;
      font-size:18px;
      font-weight:700;
      background:var(--brand);
      color:#fff;
      border:none;
      border-radius:2px;
      cursor:pointer;
      transition:filter .15s ease, transform .08s ease, opacity .15s ease;
    }
    body.frp-contact-page .frp-contact-btn:hover{ filter:brightness(1.04); }
    body.frp-contact-page .frp-contact-btn:active{ transform:translateY(1px); }
    @media (max-width:767.98px){
      body.frp-contact-page .frp-contact-btn{ width:100%; }
    }

    /* ✅ Disabled state (required) */
    body.frp-contact-page .frp-contact-btn[disabled]{
      opacity:.45;
      cursor:not-allowed;
      filter:none;
      transform:none;
    }

    /* INFORMATION list */
    body.frp-contact-page .frp-contact-info-list{
      display:flex;
      flex-direction:column;
      gap:16px;
    }

    body.frp-contact-page .frp-contact-info-link{
      display:flex;
      gap:18px;
      align-items:flex-start;
      text-decoration:none;
      color:inherit;
      padding:var(--hit-pad);
      margin-left:calc(var(--hit-pad) * -1);
      margin-right:calc(var(--hit-pad) * -1);
      border-radius:2px;
      transition:background-color .15s ease;
      cursor:pointer;
    }
    body.frp-contact-page .frp-contact-info-link:hover{ background:var(--hover-gray); }

    body.frp-contact-page .frp-contact-info-link:focus{ outline:none; }
    body.frp-contact-page .frp-contact-info-link:focus-visible{
      box-shadow:0 0 0 4px rgba(1,85,182,.14);
    }

    /* Icon: blue outline, hover -> blue fill + white icon */
    body.frp-contact-page .frp-contact-ico{
      width:48px;
      height:48px;
      border-radius:999px;
      border:1px solid rgba(1,85,182,.30);
      background:#fff;
      display:flex;
      align-items:center;
      justify-content:center;
      color:var(--brand);
      transition:background-color .15s ease, color .15s ease, border-color .15s ease;
      flex:0 0 48px;
      margin-top:2px;
    }
    body.frp-contact-page .frp-contact-ico svg{
      width:22px;
      height:22px;
      display:block;
    }

    body.frp-contact-page .frp-contact-info-link:hover .frp-contact-ico,
    body.frp-contact-page .frp-contact-info-link:focus-within .frp-contact-ico{
      background:var(--brand);
      color:#fff;
      border-color:var(--brand);
    }

    /* REQUIRED: blue label 18px, weight 600 */
    body.frp-contact-page .frp-contact-info-label{
      font-size:18px;
      font-weight:600;
      color:var(--brand);
      margin:0 0 6px 0;
      line-height:1.2;
      text-transform:uppercase;
    }

    body.frp-contact-page .frp-contact-info-value{
      margin:0;
      font-size:18px;
      line-height:1.7;
      color:#555;
      overflow-wrap:anywhere;
    }

    @media (max-width:767.98px){
      body.frp-contact-page .frp-contact-ico{ width:44px; height:44px; flex-basis:44px; }
      body.frp-contact-page .frp-contact-ico svg{ width:20px; height:20px; }
      body.frp-contact-page .frp-contact-info-label{ font-size:18px; }
      body.frp-contact-page .frp-contact-info-value{ font-size:18px; }
    }

/* ===============================
       A/B/C/D — products total page
       - NO :root
       - body has page root class
       - all global selectors scoped
    ================================ */

    /* Global-safe box sizing scoped */
    body.frp-products-page *{ box-sizing:border-box; }

    /* Page tokens (scoped) */
    body.frp-products-page{
      --wrap:1320px;
      --container-pad:20px;

      --brand:#0155B6;
      --text:#111827;

      --border:#e5e7eb;
      --focus:2px solid #0155B6;

      /* section spacing (match case total page structure) */
      --sec-pad-desktop:100px;
      --sec-pad-tablet:80px;
      --sec-pad-mobile:60px;
      --sec-pad:var(--sec-pad-desktop);

      /* gap (same style language as case page) */
      --gap:clamp(10px, 2vw, 30px);

      margin:0;
      font-family:"Segoe UI", Arial, sans-serif;
      background-color:#ffffff;
      color:var(--text);
    }

    /* Container: SAME CLASS NAME as case total page (avoid drift) */
    body.frp-products-page .frp-home-container{
      max-width:var(--wrap);
      margin:0 auto;
      padding-left:var(--container-pad);
      padding-right:var(--container-pad);
      box-sizing:border-box;
    }

    /* Breakpoints: scoped variables only (NO global pollution) */
@media (max-width:1024px){
      body.frp-products-page{ --sec-pad:var(--sec-pad-tablet); }
    }
    @media (max-width:767.98px){
      body.frp-products-page{ --sec-pad:var(--sec-pad-mobile); }
    }

    /* Focus-visible: scoped */
    body.frp-products-page :focus-visible{
      outline:var(--focus);
      outline-offset:4px;
    }

    /* =========================
       PRODUCTS (card CSS: keep your code)
       NOTE: only selector prefix changed to frp-products-page
    ========================= */
    body.frp-products-page .frp-home-products{
      padding:var(--sec-pad) 0;
    }

    body.frp-products-page .frp-home-products__grid{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:var(--gap);
    }

    body.frp-products-page .frp-home-products__card{
      display:flex;
      flex-direction:column;
      background:#ffffff;
      border:1px solid var(--border);
      text-decoration:none;
      color:inherit;
      overflow:hidden;
      transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    }

    body.frp-products-page .frp-home-products__card:hover{
      transform: translateY(-4px);
      border-color: #d1d5db;
      box-shadow: 0 18px 40px rgba(0,0,0,0.08);
    }

    body.frp-products-page .frp-home-products__image{
      width:100%;
      aspect-ratio:3 / 2; /* ✅统一 3:2 */
      overflow:hidden;
      background:#F8F9FA;
    }

    .filtdiv{ background: #F8F9FA; padding: 62px 0; }
    .filtivv{ display: flex; align-items: center; }
    .filtivv h3{ width: 284px; text-transform: uppercase; color: #0b5fb3; font-size: 32px;   }
    .filinput{ width: calc(100% - 284px); padding-left: 104px; }
    .inseuls{ display: flex; }
    .inseuls li{ width: 48.5%; list-style:none; margin-right: 3%; position: relative; }
    .inseuls li:last-child{ margin-right: 0; }
    .inseipt,.inseiptt{ width: 100%; position: relative; cursor: pointer; height: 50px; padding: 0 10px; line-height: 48px; border: 1px solid #e4e4e4; border-radius: 2px; background: #f7f7f7; color: #444; font-size: 16px; }
    .inseipt:before,.inseiptt:before{ content: "\e666"; font-size: 16px; position: absolute; color: #0155b6; top: 0; right: 18px; font-family: iconfont; }
    .insebox,.isvmo{ position: absolute; display: none; width: 100%; left: 0; top: 50px; z-index: 22; }
    .isselect{  cursor: pointer; padding: 8px 12px; margin: 4px 0; color: #888; font-size: 16px; font-weight: 400; }
    .isselect { background: #fff; /*padding-left: 24px;*/ }
    .isselect:hover,.isselect.cur{ background: #0b5fb3; color: #fff; }
    .isvmobox{ background: #fff; flex: 1; padding-left: 4px; padding-right: 4px; border: 1px solid rgb(230, 233, 240); border-top: none; }
    .isvmtt{ height: 300px; overflow-y: auto; }
    .pat96{ padding-top: 96px; }
    .privs{ background: #f7f7f7; padding-bottom: 140px; }
    .plistul{ display: flex; flex-wrap: wrap; }
    .plistul li{ width: 32%; margin-right: 2%; margin-bottom: 28px; }
    .plistul li:nth-of-type(3n){ margin-right: 0; }
    body.frp-products-page .frp-home-products__image img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      transform: scale(1);
      transition: transform 0.35s ease;
    }

    body.frp-products-page .frp-home-products__card:hover .frp-home-products__image img{
      transform: scale(1.03);
    }

    body.frp-products-page .frp-home-products__name{
      margin:22px 20px;
      font-size:20px;
      font-weight:600;
      line-height:1.4;
      text-align:center;
      color:var(--text);
      transition:color 0.25s ease;

      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      overflow: hidden;
      min-height: calc(1.4em * 2);
    }

    body.frp-products-page .frp-home-products__card:hover .frp-home-products__name{
      color:var(--brand);
    }

    /* Responsive grid only (card stays same) */
    @media (max-width:1024px){
      body.frp-products-page .frp-home-products__grid{ grid-template-columns:repeat(2, 1fr); }
      .filtdiv{ display: none;}
    }
    @media (max-width:767.98px){
      body.frp-products-page .frp-home-products__grid{ grid-template-columns:1fr; }
    }

/* =========================================================
   FRP PRODUCT PAGE — CONSOLIDATED (SOP v2)
   - container: 1320px centered
   - side padding: 20px; >=1320px -> 0
   - breakpoints: 1024 / 767.98 / 520
   - Per request:
     1) HERO + WORKING PRINCIPLE stack ONLY under 767.98
     2) Related Products + Cases show arrows on ALL viewports
     3) No bottom scrollbar/line (hide scrollbars)
     4) ALL radii controlled by tokens (no hard-coded 2/6/0)
========================================================= */

html, body{ overflow-x:hidden; }

/* -----------------------------------------
   Base + Tokens
----------------------------------------- */
body{
  margin:0;
  overflow-x:hidden;
  font-family:"Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  color:var(--frp-text);
  background: var(--frp-bg-white);

  /* container */
  --frp-container:1320px;
  --frp-pad-x:20px;

  /* spacing */
  --frp-space-tight: clamp(16px, 2vw, 24px);
  --frp-space-normal: clamp(28px, 3.2vw, 44px);
  --frp-space-strong: clamp(40px, 4.5vw, 72px);
  --p-h2-to-content: clamp(16px, 4vw, 32px);

  /* colors (single source of truth) */
  --frp-brand:#0155B6;
  --frp-primary:var(--frp-brand);
  --frp-bg-blue:var(--frp-brand);
  --frp-primary-hover:#0148a0;

  --frp-text:#333333;
  --frp-muted: rgba(51,51,51,.84);

  --frp-bg-white:#ffffff;
  --frp-bg-gray:#F8F9FA;

  --frp-divider: rgba(0,0,0,.06);

  /* carousel gap */
  --frp-gap: 28px;

  /* CTA */
  --frp-cta-overlay: rgba(1,85,182,.78);
  --frp-cta-bg: url("https://images.unsplash.com/photo-1621905251918-48416bd8575a?auto=format&fit=crop&w=2400&q=80");

  /* cards */
  --frp-card-border: rgba(0,0,0,.10);
  --frp-card-border-hover: rgba(0,0,0,.16);
  --frp-card-shadow: 0 18px 40px rgba(0,0,0,.08);

  /* radii (TOKENS ONLY) */
  --frp-radius:2px;          /* base radius for ALL UI blocks (industrial consistent) */
  --frp-radius-round:999px;  /* circles / pills */

  /* =================================================
     IMAGE RATIO TOKENS (GLOBAL CONTROL)
     - HERO + WORKING PRINCIPLE + Related/Cases: 3:2
     - WHY carousel: 16:9
  ================================================= */
  --frp-ratio-hero: 3 / 2;
  --frp-ratio-media: 3 / 2;
  --frp-ratio-card: 3 / 2;
  --frp-ratio-why: 16 / 9;
}

*,
*::before,
*::after{ box-sizing:border-box; }

/* -----------------------------------------
   SOP v2 Container
----------------------------------------- */
/* .frp-container{
  max-width:var(--frp-container);
  margin:0 auto;
  padding-left:var(--frp-pad-x);
  padding-right:var(--frp-pad-x);
} */

/* -----------------------------------------
   Accessibility: focus ring
----------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:2px solid var(--frp-primary);
  outline-offset:4px;
}

/* =========================================================
   SECTION SYSTEM
========================================================= */
.frp-pd-sec{
  padding: var(--frp-space-strong) 0;
  border-bottom: 1px solid var(--frp-divider);
}
.frp-pd-sec--white{ background: var(--frp-bg-white) !important; }
.frp-pd-sec--gray{  background: var(--frp-bg-gray) !important; }
.frp-pd-sec--blue{  background: var(--frp-bg-blue) !important; color:#fff; }
.frp-pd-sec:last-of-type{ border-bottom:none; }

/* unified H2 */
.frp-pd-sec__title{
  margin:0;
  font-size: clamp(24px, 2vw, 28px);
  font-weight:600;
  letter-spacing:.01em;
  text-transform:uppercase;
  color: var(--frp-text);
}
.frp-pd-sec--blue .frp-pd-sec__title{ color:#fff; }

/* =========================================================
   BUTTON SYSTEM (ONE) — radius token
========================================================= */
.fobcot .frp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  height:48px;
  padding:0 34px;
  border-radius:var(--frp-radius);
  font-size:18px;
  font-weight:400;
  text-decoration:none;
  white-space:nowrap;
  transition:.15s ease;
  border:1px solid transparent;
  cursor:pointer;
}
.frp-btn__icon{
  display:inline-flex;
  align-items:center;
  line-height:1;
  font-size:20px;
}

.frp-btn--primary{
  background: var(--frp-primary);
  color:#fff;
  border-color: var(--frp-primary);
}
.frp-btn--primary:hover{
  background: var(--frp-primary-hover);
  transform: translateY(-1px);
}

.frp-btn--ghost{
  background:transparent;
  color: var(--frp-primary);
  border-color: var(--frp-primary);
}
.frp-btn--ghost:hover{
  background: rgba(1,85,182,.06);
  transform: translateY(-1px);
}

/* light button for dark backgrounds — SAME radius token */
.fobcot .frp-btn--light{
  background:#fff;
  color: #0b5fb3;
  border-color: rgba(255,255,255,.30);
  font-weight:700;
  border-radius:2px;
}
.frp-btn--light:hover{
  filter:brightness(0.98);
  box-shadow:0 16px 36px rgba(0,0,0,.18);
}
.frp-btn--light:active{ transform:translateY(1px); }

@media (max-width:520px){
  .frp-btn{ width:100%; }
}

/* =========================================================
   ROUND NAV BUTTONS (ONE) — round radius token
========================================================= */
.frp-navbtn{
  width:44px;height:44px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.18);
  background:#fff;
  color:#333;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:.15s ease;
}
.frp-navbtn svg{
  width:18px;height:18px;
  stroke:currentColor; stroke-width:2; fill:none;
}
.frp-navbtn:hover{
  border-color: rgba(0,0,0,.26);
  transform: translateY(-1px);
}
.frp-navbtn:disabled{
  opacity:.45;
  cursor:not-allowed;
  transform:none;
}
.frp-navbtn--primary{
  background: #0155b6;
  border-color: #0155b6;
  color:#fff;
}

/* =========================================================
   HORIZONTAL TRACK SYSTEM (ONE)
========================================================= */
.frp-track{
  display:flex;
  gap: var(--frp-gap);
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;

  /* hide scrollbar (Firefox) */
  scrollbar-width:none;
}
.frp-track::-webkit-scrollbar{ display:none; }

@media (prefers-reduced-motion: reduce){
  .frp-track{ scroll-behavior:auto; }
}

/* =========================================================
   MEDIA BLOCK (shared)
========================================================= */
.frp-pd-media{
  border:none;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
}
.frp-pd-media img{
  width:100%;
  height:auto;
  display:block;
  object-fit:contain;
}

/* =========================================================
   HERO + WORKING PRINCIPLE MEDIA — Tokenized 3:2
========================================================= */
.frp-pd-hero__media .frp-pd-media{
  width:100%;
  aspect-ratio: var(--frp-ratio-hero);
  background:#F8F9FA;
  border-radius: var(--frp-radius);
  overflow:hidden;
}
.frp-pd-wp__media .frp-pd-media{
  width:100%;
  aspect-ratio: var(--frp-ratio-media);
  background:#F8F9FA;
  border-radius: var(--frp-radius);
  overflow:hidden;
}
.frp-pd-hero__media .frp-pd-media img,
.frp-pd-wp__media .frp-pd-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.inpalogo{ padding: 52px 110px 35px; position: relative; }
.inpalogo:before { content: ""; position: absolute; left: 0; top: 0; right: 0; bottom: 0; z-index: 10; pointer-events: none; background: linear-gradient(90deg, #fff 0%, rgba(255,255,255, 0.2) 20%, rgba(255,255,255, 0.2) 80%, #fff 100%);}

/* =========================================================
   HERO (stack ONLY <= 767.98)
========================================================= */
.frp-pd-hero__inner{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(24px, 3.5vw, 56px);
  align-items:center;
}
.frp-pd-hero__kicker{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:18px;
  font-weight:600;
  margin-bottom: var(--frp-space-tight);
}
.frp-pd-hero__dot{
  width:8px;height:8px;border-radius:50%;
  background: var(--frp-primary);
}
.frp-pd-hero__kicker-note{ opacity:.6; }

.frp-pd-hero__title{
  margin:0 0 var(--frp-space-tight) 0;
  font-size: clamp(28px, 5vw, 42px);
  line-height:1.2;
  font-weight:700;
  color: var(--frp-text);
}
.frp-pd-hero__desc{
  font-size:18px;
  line-height:1.75;
  max-width:62ch;
}
.frp-pd-hero__desc p{ margin:0 0 16px 0; }

.frp-pd-hero__actions{
  margin-top: var(--frp-space-normal);
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}

@media (max-width:767.98px){
  .frp-pd-hero__inner{ grid-template-columns:1fr; }
  .frp-pd-hero__media{ order:-1; }
  .frp-pd-hero__desc{ max-width:none; }
}

/* =========================================================
   BENEFITS (Carousel)
========================================================= */
.frp-pd-benefits__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:0;
}
.frp-pd-benefits__nav{ display:flex; gap:10px; }

.frp-pd-benefits__viewport{
  width:100vw;
  margin-left: calc(50% - 50vw);
  padding-left: var(--frp-pad-x);
  padding-right:var(--frp-pad-x);
  overflow:hidden;
  padding-top: var(--p-h2-to-content);
}

@supports (padding-left: max(0px, 1px)){
  .frp-pd-benefits__viewport{
    padding-left: max(
      var(--frp-pad-x),
      calc((100vw - var(--frp-container)) / 2 + var(--frp-pad-x))
    );
  }
}

.frp-pd-benefits__card{
  flex: 0 0 calc((var(--frp-container) - (var(--frp-pad-x) * 2) - (var(--frp-gap) * 2)) / 3);
  min-height: clamp(340px, 28vw, 420px);
  background: var(--frp-primary);
  color:#fff;
  padding:48px 44px;
  border-radius:var(--frp-radius);
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.frp-pd-benefits__icon{
  width:62px;height:62px;
  border-radius:var(--frp-radius-round);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:1px solid rgba(255,255,255,.26);
  margin-bottom:22px;
  transition: border-color .18s ease;
}
.frp-pd-benefits__icon i{
  font-size: 30px;
  stroke:#fff; stroke-width:1.8; fill:none;
  transition: stroke .18s ease;
}
.frp-pd-benefits__card h3{
  margin:0 0 18px 0;
  font-size: clamp(23px, 2vw, 24px);
  font-weight:600;
  line-height:1.25;
  display:-webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  min-height: calc(24px * 1.25 * 2);
}
.frp-pd-benefits__card p{
  margin:0;
  font-size:18px;
  line-height:1.75;
}
.frp-pd-benefits__card:hover{
  background:#fff;
  color:#000;
  transform: translateY(-2px);
}
.frp-pd-benefits__card:hover .frp-pd-benefits__icon{ border-color: rgba(1,85,182,.55); }
.frp-pd-benefits__card:hover .frp-pd-benefits__icon i{ color: #0155b6; }

@media (max-width:1024px){
  body.frp-product-page{ --frp-gap:16px; }
  .frp-pd-benefits__card{ flex-basis:420px; }
  .frp-pd-benefits__viewport{ padding-left: var(--frp-pad-x); }
}
@media (max-width:520px){
  body.frp-product-page{ --frp-gap:12px; }
  .frp-pd-benefits__card{ padding:36px 24px; flex-basis:86vw; }
}

/* =========================================================
   BENEFITS (ALT) — Bars Grid (SOP v2)
========================================================= */
.frp-pd-benefits-bars__grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 28px);
  padding-top: var(--p-h2-to-content);
}

.frp-pd-benefits-bars__item{
  display:flex;
  align-items:flex-start;
  gap: 20px;

  background: var(--frp-primary);
  color:#fff;
  border-radius: var(--frp-radius);

  padding: clamp(18px, 2.2vw, 22px) clamp(18px, 2.4vw, 26px);
}

.frp-pd-benefits-bars__icon{
  flex:0 0 auto;
  display:flex;
  align-items:flex-start;
  justify-content:center;
}

.frp-pd-benefits-bars__icon i{
  font-size: 36px;
  color:#f6c343;
}

.frp-pd-benefits-bars__text{
  margin:0;
  font-size:18px;
  line-height:1.75;
  color: rgba(255,255,255,.92);
}
.frp-pd-benefits-bars__text strong{
  color:#fff;
  font-weight:700;
}
@media (max-width:767.98px){
  .inpalogo{ padding: 25px 20px;}
  .frp-pd-benefits-bars__grid{
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   WORKING PRINCIPLE (stack ONLY <= 767.98)
========================================================= */
.frp-pd-wp__inner{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(24px, 3.5vw, 56px);
  align-items:center;
}
.frp-pd-wp__desc{
  padding-top: var(--p-h2-to-content);
  font-size:18px;
  line-height:1.75;
  max-width:70ch;
}
.frp-pd-wp__desc p{ margin:0 0 16px 0; }
.frp-pd-wp__desc p:last-child{ margin-bottom:0; }

@media (max-width:767.98px){
  .frp-pd-wp__inner{ grid-template-columns:1fr; }
  .frp-pd-wp__media{ order:-1; }
  .frp-pd-wp__desc{ max-width:none; }
}

/* =========================================================
   APPLICATIONS (BLUE)
========================================================= */
.frp-pd-app__grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(24px, 3.2vw, 56px);
  row-gap: clamp(22px, 2.4vw, 30px);
  padding-top: var(--p-h2-to-content);
}
.frp-pd-app__item:nth-child(odd){ grid-column:1; }
.frp-pd-app__item:nth-child(even){ grid-column:2; }

.frp-pd-app__item{
  position:relative;
  margin:0;
  padding-left:28px;
  font-size:18px;
  line-height:1.75;
  color: rgba(255,255,255,.90);
}
.frp-pd-app__item::before{
  content:"";
  position:absolute;
  left:0;
  top:0.55em;
  width:8px;height:8px;
  border-radius:50%;
  background:#fff;
}
@media (max-width:767.98px){
  .frp-pd-app__grid{ grid-template-columns:1fr; }
  .frp-pd-app__item:nth-child(odd),
  .frp-pd-app__item:nth-child(even){ grid-column:1; }
  .frp-pd-app__item{ padding-left:16px; }
}

/* =========================================================
   WHY (image carousel) — radius token
========================================================= */
.frp-pd-why__text{ padding-top: var(--p-h2-to-content); }
.frp-pd-why__text p{
  margin:0 0 18px 0;
  font-size:18px;
  line-height:1.75;
  color: rgba(51,51,51,.92);
}
.frp-pd-why__text p:last-child{ margin-bottom:0; }

.frp-pd-why__carousel{
  position:relative;
  margin-top: var(--frp-space-normal);
  border-radius:var(--frp-radius);
  background:#d6d6d6; overflow: hidden;
}
.frp-pd-why__viewport .item{
  aspect-ratio: var(--frp-ratio-why);
}
.dearr{ position: absolute; top: 42%; left: 0; width: 100%; }
.dearr span{ position: absolute; width: 40px; height: 40px; line-height: 40px; border-radius: 40px; background: #fff; text-align: center; color: #333; top: 0; cursor: pointer; display: inline-block;  }
.dearr span i{ font-size: 18px; display: inline-block; }
.debi_prev{ left: 15px; }
.debi_next{ right:15px; }
.debi_prev i{ transform: rotate(180deg); }
.dearr span:hover{ background: #0155b6; color: #fff; }
.frp-pd-why__viewport img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.frp-pd-why__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;height:44px;
  border-radius:var(--frp-radius-round);
  border:1px solid rgba(0,0,0,.14);
  background:rgba(255,255,255,.95);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:.15s ease;
}
.frp-pd-why__nav:hover{
  transform:translateY(-50%) translateY(-1px);
  border-color: rgba(0,0,0,.22);
}
.frp-pd-why__nav--prev{ left:18px; }
.frp-pd-why__nav--next{ right:18px; }
.frp-pd-why__nav{ color:#111; }
.frp-pd-why__nav svg{
  width:18px;height:18px;
  stroke:currentColor; stroke-width:2; fill:none;
}

.frp-pd-sec{
padding:clamp(40px,4.5vw,72px) 0;
border-bottom:1px solid rgba(0,0,0,.06);
background:#F8F9FA;
}

/* 标题 */

.frp-pd-sec__title{
margin:0;
font-size:clamp(24px,2vw,28px);
font-weight:600;
text-transform:uppercase;
letter-spacing:.01em;
}

/* =====================================================
   Compare Section
===================================================== */

.frp-pd-compare__head{

display:flex;
flex-direction:column;

gap:clamp(16px,4vw,32px);

}

/* blue bars */

.frp-pd-compare__bars{

display:grid;
grid-template-columns:repeat(3,1fr);
gap:28px;

}

.frp-pd-compare__bar{

height:52px;

display:flex;
align-items:center;
justify-content:center;

background:#0155B6;
color:#fff;

font-size:20px;
font-weight:600;

}

/* rows */

.frp-pd-compare__rows{

margin-top:clamp(16px,4vw,32px);

display:flex;
flex-direction:column;
gap:36px;

}

.frp-pd-compare__rowtitle{

margin:0 0 10px 0;

font-size:20px;
font-weight:500;

color:rgba(51,51,51,.85);

}

.frp-pd-compare__divider{

height:1px;
background:rgba(0,0,0,.06);

}

.frp-pd-compare__grid{

display:grid;
grid-template-columns:repeat(3,1fr);

gap:28px;
padding-top:14px;

}

.frp-pd-compare__cell{

margin:0;

font-size:18px;
line-height:1.75;

color:rgba(51,51,51,.72);

}

/* =====================================================
   Mobile
===================================================== */

@media (max-width:980px){

.frp-pd-compare__bars{

display:none;

}

.frp-pd-compare__grid{

grid-template-columns:1fr;
gap:12px;

}

.frp-pd-compare__cell::before{

display:block;
font-size:14px;
font-weight:600;
margin-bottom:4px;

}

.frp-pd-compare__grid .frp-pd-compare__cell:nth-child(1)::before{

content:"Jaw Crusher";

}

.frp-pd-compare__grid .frp-pd-compare__cell:nth-child(2)::before{

content:"Roller Crusher";

}

.frp-pd-compare__grid .frp-pd-compare__cell:nth-child(3)::before{

content:"Hammer Crusher";

}

}
@media (max-width:767.98px){
  .frp-pd-why__nav--prev{ left:12px; }
  .frp-pd-why__nav--next{ right:12px; }
}

/*分页 结束*/
.digg4{ text-align:center; margin-top:55px; }
.digg4 a,.digg4 span.miy,.digg4 span.disabled,.digg4 span.current{ width:50px; border: 1px solid #dfdfdf; text-align: center; font-size: 18px; cursor: pointer; display: inline-block; vertical-align: middle;  height:45px; line-height: 43px; color:#fff; text-decoration:none; margin:0 5px;}
.digg4 span.current,.digg4 span:hover,.digg4 span:hover.disabled,.digg4 a:hover { color:#fff; background:#0155b6; border: 1px solid #0155b6; }
.digg4 span.disabled { font-size: 35px; line-height:33px; font-weight: normal; /*background: #f8f8f8;*/ color: #b3b3b3;}
.digg4 a{color: #333; }
/* =========================================================
   FAQ (accordion)
========================================================= */
.frp-pd-faq__inner{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(24px, 3.5vw, 56px);
  align-items:start;
}
.frp-pd-faq__lead{ padding-top:6px; }
.frp-pd-faq__sub{
  margin:0;
  padding-top: var(--p-h2-to-content);
  font-size:16px;
  line-height:1.6;
  color: rgba(51,51,51,.68);
}
.frp-pd-faq__list{
  justify-self:start;
  width:100%;
  border-top:1px solid rgba(0,0,0,.08);
}
.frp-pd-faq__item{ border-bottom:1px solid rgba(0,0,0,.08); }

.frp-pd-faq__q{
  width:100%;
  appearance:none;
  border:0;
  background:transparent;
  cursor:pointer;

  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;

  padding:22px 0;
  text-align:left;
  font-family:inherit;
}
.frp-pd-faq__q span{
  font-size:18px;
  line-height:1.6;
  color: var(--frp-primary);
}
.frp-pd-faq__chev{
  width:22px;height:22px;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition: transform .18s ease;
}
.frp-pd-faq__chev svg{
  width:18px;height:18px;
  stroke: var(--frp-primary);
  stroke-width:2;
  fill:none;
}
.frp-pd-faq__a{
  max-height:0;
  overflow:hidden;
  transition: max-height .22s ease;
}
.frp-pd-faq__a p{
  margin:0;
  padding:0 0 22px 0;
  font-size:18px;
  line-height:1.75;
  color: rgba(51,51,51,.78);
}
.frp-pd-faq__item.is-open .frp-pd-faq__chev{ transform: rotate(90deg); }
.frp-pd-faq__item.is-open .frp-pd-faq__a{ max-height:800px; }

@media (max-width:1024px){
  .frp-pd-faq__inner{ grid-template-columns:1fr; }
  .frp-pd-faq__q{ padding:18px 0; }
  .frp-pd-faq__a p{ padding-bottom:18px; font-size:16px; }
}

/* =========================================================
   CTA
========================================================= */
.frp-pd-cta{
  padding: clamp(64px, 7vw, 96px) 0;
  color:#fff;

  background-image:
    linear-gradient(0deg, var(--frp-cta-overlay), var(--frp-cta-overlay)),
    var(--frp-cta-bg);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
.frp-pd-cta__text{ max-width:70ch; }

.frp-pd-cta__title{
  margin:0 0 clamp(18px, 2.2vw, 28px) 0;
  font-size: clamp(32px, 5vw, 42px);
  font-weight:700;
  line-height:1.1;
  text-transform:uppercase;
  letter-spacing:-0.5px;
  color:#fff;
}
.frp-pd-cta__copy{ color: rgba(255,255,255,.92); }
.frp-pd-cta__copy p{
  margin:0 0 18px 0;
  font-size:18px;
  line-height:1.8;
}
.frp-pd-cta__copy p:last-child{
  margin-bottom: clamp(20px, 2.6vw, 32px);
}
.frp-pd-cta .frp-btn--primary{
  border-color: rgba(255,255,255,.22);
}
.frp-pd-cta .frp-btn--primary:hover{
  filter: brightness(1.05);
}
@media (max-width:767.98px){
  .frp-pd-cta{
    background-attachment:scroll;
    padding:64px 0;
    background-position:center right;
  }
  .frp-pd-cta__text{ max-width:none; }
}
@media (prefers-reduced-motion: reduce){
  .frp-pd-cta{ background-attachment:scroll; }
}
@supports (-webkit-touch-callout: none){
  .frp-pd-cta{ background-attachment:scroll; }
}

/* =========================================================
   TECHNICAL DATA TABLE — radius token
========================================================= */
.frp-pd-tech__wrap{
  padding-top: var(--p-h2-to-content);
}
.frp-tech-wrap{
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:var(--frp-radius);
}
.frp-tech{
  width:100%;
  border-collapse:collapse;
  background:#fff;
  border:1px solid rgba(0,0,0,.10);
}
.frp-tech thead th{
  background: var(--frp-primary);
  color:#fff;
  font-weight:600;
  font-size:16px;
  line-height:1.3;
  padding:16px 14px;
  text-align:center;
  border-right:1px solid rgba(255,255,255,.12);
  white-space:nowrap;
}
.frp-tech thead th:last-child{ border-right:none; }
.frp-tech tbody td{
  font-size:16px;
  line-height:1.6;
  padding:16px 14px;
  text-align:center;
  color: rgba(51,51,51,.88);
  border-top:1px solid rgba(0,0,0,.08);
}
.frp-tech tbody tr:nth-child(even){ background:#fafbfc; }
.frp-tech-note{
  margin:14px 0 0 0;
  font-size:16px;
  line-height:1.6;
  color: rgba(51,51,51,.62);
}
@media (max-width:767.98px){
  .frp-tech thead th,
  .frp-tech tbody td{
    font-size:16px;
    padding:12px 10px;
  }
}

/* =========================================================
   RELATED PRODUCTS + CASES (Unified) — radius token
========================================================= */
.frp-mod__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.frp-mod__nav{ display:flex; gap:10px; }

/* Related Products */
.frp-rp__viewport{ padding-top: var(--p-h2-to-content); }
.frp-rp__item{
  flex: 0 0 calc((100% - (var(--frp-gap) * 2)) / 3);
  scroll-snap-align:start;
}
.frp-rp__card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--frp-card-border);
  text-decoration:none;
  color:inherit;
  overflow:hidden;
  border-radius:var(--frp-radius);
  transition:.25s ease;
}
.frp-rp__card:hover{
  transform: translateY(-4px);
  box-shadow: var(--frp-card-shadow);
  border-color: var(--frp-card-border-hover);
}
.frp-rp__img{
  aspect-ratio: 3/2;
  background:#F8F9FA;
  overflow:hidden;
}
.frp-rp__img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition: transform .35s ease;
}
.frp-rp__card:hover img{ transform: scale(1.03); }
.frp-rp__name{
  margin:0;
  padding:22px 20px;
  font-size:20px;
  font-weight:600;
  line-height:1.4;
  text-align:center;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.frp-rp__card:hover .frp-rp__name{ color: var(--frp-primary); }

/* Cases */
.frp-case{ margin-top: var(--frp-space-strong); }
.frp-case__viewport{ padding-top: var(--p-h2-to-content); }
.frp-case__item{
  flex: 0 0 calc((100% - (var(--frp-gap) * 2)) / 3);
  scroll-snap-align:start;
}
.frp-case__card{
  display:flex;
  flex-direction:column;
  height:100%;
  background:#fff;
  border:1px solid var(--frp-card-border);
  text-decoration:none;
  color:inherit;
  overflow:hidden;
  border-radius:var(--frp-radius);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.frp-case__card:hover{
  transform:translateY(-4px);
  border-color:var(--frp-card-border-hover);
  box-shadow:var(--frp-card-shadow);
}
.frp-case__image{
  width:100%;
  aspect-ratio: var(--frp-ratio-card);
  overflow:hidden;
  background:#F8F9FA;
}
.frp-case__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform:scale(1);
  transition:transform .35s ease;
}
.frp-case__card:hover .frp-case__image img{ transform:scale(1.03); }
.frp-case__content{
  padding:25px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.frp-case__title{
  font-size:20px;
  font-weight:600;
  line-height:1.6;
  color: var(--frp-primary);
  margin:0 0 18px 0;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  min-height:calc(1.6em * 2);
}
.frp-case__desc{
  font-size:18px;
  font-weight:400;
  line-height:1.7;
  color: var(--frp-muted);
  margin:0 0 18px 0;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
  min-height:calc(1.7em * 3);
}
.frp-case__cta{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:16px;
  font-weight:700;
  color: var(--frp-primary);
  text-transform:capitalize;
  width:fit-content;
}
.frp-case__arrow{
  font-size:18px;
  transition:transform .25s ease;
}
.frp-case__card:hover .frp-case__arrow{ transform:translateX(3px); }

/* >1024: 3 cols, 1024~521: 2 cols, <=520: 1 col */
@media (max-width:1024px){
  .frp-rp__item{ flex: 0 0 calc((100% - var(--frp-gap)) / 2); }
  .frp-case__item{ flex: 0 0 calc((100% - var(--frp-gap)) / 2); }
}
@media (max-width:767.98px){
  .frp-rp__item{ flex: 0 0 100%; }
  .frp-case__item{ flex: 0 0 100%; }
}

/* =========================================================
   CONTACT — radius token for inputs too
========================================================= */
.frp-contact{
  color:#fff;
  width:100%;
  position:relative;
  background:
    linear-gradient(135deg, rgba(1,85,182,.88), rgba(0,52,120,.92)),
    url("https://images.unsplash.com/photo-1520607162513-77705c0f0d4a?auto=format&fit=crop&w=2200&q=80");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.frp-contact-wrap{
  padding: clamp(64px, 7vw, 100px) 0;
}

.frp-contact-h2{
  font-size:clamp(30px, 4vw, 42px);
  font-weight:700;
  line-height:1.1;
  margin:0 0 28px 0;
  text-transform:uppercase;
  letter-spacing:0.02em;
  color:#fff;
}
.frp-contact-sub{
  font-size:18px;
  line-height:1.7;
  margin:0 0 40px 0;
  color:rgba(255,255,255,.82);
  max-width:72ch;
}
@media (max-width:520px){
  .frp-contact-sub{ margin-bottom:28px; }
}

.frp-contact-fields p{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  max-width:850px;
}
@media (max-width:767.98px){
.frp-contact-fields{
    grid-template-columns:1fr;
    gap:14px;
  }
}

/* consolidated input styles via :is() — radius token */
:is(.frp-contact-input, .frp-contact-select, .frp-contact-textarea){
  width:100%;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:18px;
  font-family:inherit;
  line-height:1.3;
  border-radius:var(--frp-radius);
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
:is(.frp-contact-input, .frp-contact-textarea)::placeholder{
  color:rgba(255,255,255,.78);
}
:is(.frp-contact-input, .frp-contact-select, .frp-contact-textarea):focus{
  border-color:rgba(255,255,255,.48);
  background:rgba(255,255,255,.14);
  box-shadow:0 0 0 4px rgba(255,255,255,.10);
}

.frp-contact-page :is(.frp-contact-input, .frp-contact-textarea)::placeholder{
  color: #999;
}

.frp-contact-select{
  appearance:none;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(255,255,255,.85) 50%),
    linear-gradient(135deg, rgba(255,255,255,.85) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%;
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
  padding-right:38px;
  cursor:pointer;
}
.frp-contact-select option{
  color:#111;
  background-color:#fff;
}

.frp-contact-textarea{
  grid-column:1 / -1;
  min-height:180px;
  resize:vertical;
}
@media (max-width:767.98px){
  .frp-contact-textarea{ min-height:170px; }
}

.frp-contact-actions{
  max-width:850px;
  margin-top:18px;
}

body.frp-news-page *{ box-sizing:border-box; }

    body.frp-news-page{
      --wrap:1320px;

      /* SOP v2: container */
      --container-pad:20px;

      /* SOP v2: focus */
      --focus:2px solid #0155B6;

      /* SOP v2: section spacing */
      --sec-pad-desktop:100px;
      --sec-pad-mobile:40px;

      /* SOP v2: elastic gap */
      --item-gap:clamp(16px, 3vw, 48px);

      --brand:#0155B6;
      --text:#333333;
      --meta:#111827;
      --bg:#ffffff;
      --hover:#F8F9FA;
      --thumb-bg:#f0f2f5;
      --divider:#e6e6e6;

      margin:0;
      background:var(--bg);
      font-family:"Segoe UI", Arial, sans-serif;
      color:var(--text);
    }

    /* SOP v2: focus-visible */
    body.frp-news-page :focus-visible{
      outline:var(--focus);
      outline-offset:4px;
    }

    /* SOP v2: container (1320 centered)
       default padding:20px
       >=1320px padding:0 */
    body.frp-news-page .frp-container{
      max-width:var(--wrap);
      margin:0 auto;
      padding-left:var(--container-pad);
      padding-right:var(--container-pad);
      box-sizing:border-box;
    }
/* ===== Section ===== */
    body.frp-news-page .frp-news{
      padding:var(--sec-pad-desktop) 0;
      background:var(--bg);
    }
    @media (max-width:767.98px){
      body.frp-news-page .frp-news{ padding:var(--sec-pad-mobile) 0; }
    }
/* Contact page map spacing */
body.frp-contact-page .map{
  margin-top:clamp(32px,4vw,68px);
}

    /* ===== Item (Clickable) ===== */
    body.frp-news-page .frp-news__item{
      display:flex;
      gap:var(--item-gap);

      padding:25px var(--container-pad);
      margin-left:calc(var(--container-pad) * -1);
      margin-right:calc(var(--container-pad) * -1);

      /* ✅关键：拉齐高度，让分割线能对齐图片底部 */
      align-items:stretch;

      text-decoration:none;
      color:inherit;
      border-radius:0;
      transition:background-color .15s ease;
    }
.frp-news__thumb img{ transition: all 0.3s;}
    body.frp-news-page .frp-news__item:hover{ background:var(--hover); }
    body.frp-news-page .frp-news__item:hover .frp-news__thumb img{ transform:scale(1.03); }

    /* ===== Image ===== */
    body.frp-news-page .frp-news__thumb{
      flex:0 0 420px;
      max-width:420px;
    }

    body.frp-news-page .frp-news__thumb img{
      width:100%;
      /* ✅改成 3:2 */
      aspect-ratio:3 / 2;
      object-fit:cover;
      display:block;
      background:var(--thumb-bg);
    }

    /* ===== Content ===== */
    body.frp-news-page .frp-news__body{
      flex:1;
      min-width:0;

      /* ✅右侧分两层：内容居中 + 底部分割线 */
      display:flex;
      flex-direction:column;
    }

    /* ✅内容整体垂直居中（相对左侧图片） */
    body.frp-news-page .frp-news__content{
      margin:auto 0;
      min-width:0;
    }

    /* Meta */
    body.frp-news-page .frp-news__meta{
      font-size:16px;
      font-weight:600;
      margin-bottom:12px;
      color:var(--meta);
    }

    /* ===== Title – 20px / max 2 lines ===== */
    body.frp-news-page .frp-news__title{
      margin:0 0 14px 0;
      font-size:20px;
      line-height:1.6;
      font-weight:600;
      color:var(--brand);

      display:-webkit-box;
      -webkit-box-orient:vertical;
      -webkit-line-clamp:2;
      overflow:hidden;
    }

    /* ===== Excerpt – max 3 lines ===== */
    body.frp-news-page .frp-news__excerpt{
      margin:0;
      font-size:18px;
      line-height:1.7;
      max-width:880px;

      display:-webkit-box;
      -webkit-box-orient:vertical;
      -webkit-line-clamp:3;
      overflow:hidden;
    }

    /* ✅ Divider: 贴齐图片底部 */
    body.frp-news-page .frp-news__divider{
      margin-top:auto;
      height:1px;
      background:var(--divider);
    }

    /* ===== Responsive ===== */
    @media (max-width:1024px){
      body.frp-news-page .frp-news__thumb{
        flex:0 0 360px;
        max-width:360px;
      }
    }

    @media (max-width:767.98px){
      body.frp-news-page .frp-news__item{
        flex-direction:column;
        gap:20px;
        align-items:stretch;

        padding:22px 0;
        margin-left:0;
        margin-right:0;
      }

      body.frp-news-page .frp-news__thumb{
        max-width:100%;
        flex:none;
      }

      /* 移动端：内容自然流式，不强制居中 */
      body.frp-news-page .frp-news__content{ margin:0; }

      /* 移动端：分割线回到正常间距 */
      body.frp-news-page .frp-news__divider{ margin-top:28px; }
    }

body.frp-case-page *{ box-sizing:border-box; }

    body.frp-case-page{
      --wrap:1320px;
      --brand:#0155B6;
      --text:#111827;

      /* SOP v2: container */
      --container-pad:20px;

      /* ✅ unified section spacing (SOP v2) */
      --sec-pad-desktop:100px;
      --sec-pad-tablet:80px;
      --sec-pad-mobile:60px;
      --sec-pad:var(--sec-pad-desktop);

      /* SOP v2: elastic gap */
      --grid-gap:clamp(10px, 2vw, 30px);

      --border:#e5e7eb;
      --border-hover:#d1d5db;
      --muted:#333333;
      --img-bg:#F8F9FA;
      --shadow:0 18px 40px rgba(0,0,0,0.08);
      --focus:2px solid #0155B6;

      margin:0;
      font-family:"Segoe UI", Arial, sans-serif;
      background-color:#ffffff;
      color:var(--text);
    }

    /* ===============================
       SOP v2: container (1320 centered)
       default padding:20px
       >1320px padding:0
    ================================ */
    body.frp-case-page .frp-home-container{
      max-width:var(--wrap);
      margin:0 auto;
      padding:0 var(--container-pad);
    }
/* SOP v2: focus-visible (global safe) */
    body.frp-case-page :focus-visible{
      outline:var(--focus);
      outline-offset:4px;
    }

    /* Section */
    body.frp-case-page .case-section{
      padding:var(--sec-pad) 0;
    }

    /* Grid */
    body.frp-case-page .case-grid{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:var(--grid-gap);
    }

    /* Card */
    body.frp-case-page .case-card{
      display:flex;
      flex-direction:column;
      height:100%;
      background-color:#ffffff;
      border:1px solid var(--border);
      text-decoration:none;
      color:inherit;
      overflow:hidden;

      transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
    }

    body.frp-case-page .case-card:hover{
      transform:translateY(-4px);
      border-color:var(--border-hover);
      box-shadow:var(--shadow);
    }

    /* Image */
    body.frp-case-page .case-image{
      width:100%;
      aspect-ratio:1.5;
      overflow:hidden;
      background-color:var(--img-bg);
    }

    body.frp-case-page .case-image img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      transform:scale(1);
      transition:transform 0.35s ease;
    }

    body.frp-case-page .case-card:hover .case-image img{
      transform:scale(1.03);
    }

    /* Content */
    body.frp-case-page .case-content{
      padding:25px;
      display:flex;
      flex-direction:column;
      flex:1;
    }

    /* Title */
    body.frp-case-page .case-title{
      font-size:20px;
      font-weight:600;
      line-height:1.6;
      color:var(--brand);
      margin:0 0 25px 0;

      display:-webkit-box;
      -webkit-box-orient:vertical;
      -webkit-line-clamp:2;
      overflow:hidden;
      min-height:calc(1.45em * 2);
    }

    /* Description */
    body.frp-case-page .case-desc{
      font-size:18px;
      font-weight:400;
      line-height:1.7;
      color:var(--muted);
      margin:0 0 25px 0;

      display:-webkit-box;
      -webkit-box-orient:vertical;
      -webkit-line-clamp:3;
      overflow:hidden;
      min-height:calc(1.7em * 3);
    }

    /* CTA */
    body.frp-case-page .case-cta{
      margin-top:auto;
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-size:16px;
      font-weight:700;
      color:var(--brand);
      text-transform:capitalize;
      width:fit-content;
    }

    body.frp-case-page .case-arrow{
      font-size:18px;
      transition:transform 0.25s ease;
    }

    body.frp-case-page .case-card:hover .case-arrow{
      transform:translateX(3px);
    }

    /* Responsive (SOP) */
    @media (max-width:1024px){
      body.frp-case-page{ --sec-pad:var(--sec-pad-tablet); }
      body.frp-case-page .case-grid{ grid-template-columns:repeat(2, 1fr); }
    }

    @media (max-width:767.98px){
      body.frp-case-page{ --sec-pad:var(--sec-pad-mobile); }
      body.frp-case-page .case-grid{ grid-template-columns:1fr; }
    }

body.frp-highlight-page *{ box-sizing:border-box; }

    body.frp-highlight-page{
      --wrap:1320px;
      --brand:#0155B6;
      --text:#111827;

      /* SOP v2: container */
      --container-pad:20px;

      /* ✅ unified section spacing (SOP v2) */
      --sec-pad-desktop:100px;
      --sec-pad-tablet:80px;
      --sec-pad-mobile:60px;
      --sec-pad:var(--sec-pad-desktop);

      /* SOP v2: elastic gap */
      --grid-gap:clamp(10px, 2vw, 30px);

      --border:#e5e7eb;
      --border-hover:#d1d5db;
      --muted:#333333;
      --img-bg:#F8F9FA;
      --shadow:0 18px 40px rgba(0,0,0,0.08);
      --focus:2px solid #0155B6;

      margin:0;
      font-family:"Segoe UI", Arial, sans-serif;
      background-color:#ffffff;
      color:var(--text);
    }

    /* ===============================
       SOP v2: container (1320 centered)
       default padding:20px
       >1320px padding:0
    ================================ */
    body.frp-highlight-page .frp-home-container{
      max-width:var(--wrap);
      margin:0 auto;
      padding:0 var(--container-pad);
    }
/* SOP v2: focus-visible (global safe) */
    body.frp-highlight-page :focus-visible{
      outline:var(--focus);
      outline-offset:4px;
    }

    /* Section */
    body.frp-highlight-page .highlight-section{
      padding:var(--sec-pad) 0;
    }

    /* Grid */
    body.frp-highlight-page .highlight-grid{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:var(--grid-gap);
    }

    /* Card */
    body.frp-highlight-page .highlight-card{
      display:flex;
      flex-direction:column;
      height:100%;
      background-color:#ffffff;
      border:1px solid var(--border);
      text-decoration:none;
      color:inherit;
      overflow:hidden;

      transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
    }

    body.frp-highlight-page .highlight-card:hover{
      transform:translateY(-4px);
      border-color:var(--border-hover);
      box-shadow:var(--shadow);
    }

    /* Image */
    body.frp-highlight-page .highlight-image{
      width:100%;
      aspect-ratio:1.5;
      overflow:hidden;
      background-color:var(--img-bg);
    }

    body.frp-highlight-page .highlight-image img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      transform:scale(1);
      transition:transform 0.35s ease;
    }

    body.frp-highlight-page .highlight-card:hover .highlight-image img{
      transform:scale(1.03);
    }

    /* Content */
    body.frp-highlight-page .highlight-content{
      padding:25px;
      display:flex;
      flex-direction:column;
      flex:1;
    }

    /* Title */
    body.frp-highlight-page .highlight-title{
      font-size:20px;
      font-weight:600;
      line-height:1.6;
      color:var(--brand);
      margin:0 0 25px 0;

      display:-webkit-box;
      -webkit-box-orient:vertical;
      -webkit-line-clamp:2;
      overflow:hidden;
      min-height:calc(1.45em * 2);
    }

    /* Description */
    body.frp-highlight-page .highlight-desc{
      font-size:18px;
      font-weight:400;
      line-height:1.7;
      color:var(--muted);
      margin:0 0 25px 0;

      display:-webkit-box;
      -webkit-box-orient:vertical;
      -webkit-line-clamp:3;
      overflow:hidden;
      min-height:calc(1.7em * 3);
    }

    /* CTA */
    body.frp-highlight-page .highlight-cta{
      margin-top:auto;
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-size:16px;
      font-weight:700;
      color:var(--brand);
      text-transform:capitalize;
      width:fit-content;
    }

    body.frp-highlight-page .highlight-arrow{
      font-size:18px;
      transition:transform 0.25s ease;
    }

    body.frp-highlight-page .highlight-card:hover .highlight-arrow{
      transform:translateX(3px);
    }

    /* Responsive (SOP) */
    @media (max-width:1024px){
      body.frp-highlight-page{ --sec-pad:var(--sec-pad-tablet); }
      body.frp-highlight-page .highlight-grid{ grid-template-columns:repeat(2, 1fr); }
    }

    @media (max-width:767.98px){
      body.frp-highlight-page{ --sec-pad:var(--sec-pad-mobile); }
      body.frp-highlight-page .highlight-grid{ grid-template-columns:1fr; }
    }

/* =========================================================
       FRP SOP v2 (GLOBAL / NCH) — CLEAN PAGE
       Breakpoints: 1360 / 1024 / 767.98
       - One rhythm system (no “patch” layering)
       - Section spacing uses margin-bottom only (your preference)
       - Modules avoid self-margins unless they are standalone blocks
    ========================================================== */

    body.frp-nch-page{
      /* container */
      --wrap:1320px;
      --container-pad:20px;

      /* theme */
      --brand:#0155B6;
      --text-main:#333333;
      --text-dark:#1f2937;
      --bg-white:#ffffff;
      --bg-gray:#F8F9FA;
      --line:#eeeeee;

      /* spacing scale (international rhythm) */
      --stack-1: clamp(14px, 1.6vw, 20px); /* paragraphs / small gaps */
      --stack-2: clamp(18px, 2.2vw, 28px); /* heading -> content / block */
      --stack-3: clamp(28px, 3.2vw, 44px); /* module */
      --stack-4: clamp(40px, 4.8vw, 68px); /* section */
      --stack-5: clamp(56px, 6.6vw, 92px); /* strong section */

      /* type */
      --font:"Segoe UI", system-ui, -apple-system, Arial, sans-serif;
      --body:18px;

      /* mini hero tokens */
      --title-size: clamp(32px,4.6vw,52px);
      --title-lh-desktop: 1.14;
      --title-lh-mobile: 1.18;
      --title-track: -0.01em;

      --share-label-size: clamp(14px,1.05vw,16px);
      --share-label-weight: 400;

      --btn: 50px;
      --btn-m: 42px;

      --ink:#ffffff;
      --btn-border: rgba(255,255,255,.26);
      --btn-bg: rgba(255,255,255,.06);
      --btn-bg-hover: rgba(255,255,255,.12);
    }
body.frp-nch-page,
    body.frp-nch-page *{ box-sizing:border-box; }

    body.frp-nch-page{
      margin:0;
      background:var(--bg-white);
      font-family:var(--font);
      color:var(--text-main);
    }

    body.frp-nch-page :focus-visible{
      outline:2px solid var(--brand);
      outline-offset:4px;
    }

    /* container */
    body.frp-nch-page .frp-container{
      max-width:var(--wrap);
      margin:0 auto;
      padding-left:var(--container-pad);
      padding-right:var(--container-pad);
    }

    /* page wrap */
    body.frp-nch-page .frp-nch-wrap{
      padding:0; /* hero handles top spacing */
      background:var(--bg-white);
    }

    /* content wrapper: ONLY provides top/bottom breathing room */
    body.frp-nch-page .frp-nch-content{
      padding: var(--stack-4) 0;
    }

    /* =========================================================
       SECTION RHYTHM (bottom spacing only)
    ========================================================== */
    body.frp-nch-page .frp-nch-sec{ margin: 0 0 var(--stack-4) 0; }
    body.frp-nch-page .frp-nch-sec--tight{ margin: 0 0 var(--stack-3) 0; }
    body.frp-nch-page .frp-nch-sec--strong{ margin: 0 0 var(--stack-5) 0; }

    body.frp-nch-page .frp-nch-divider{
      border-top:1px solid var(--line);
      margin: 0 0 var(--stack-4) 0;
    }

    /* =========================================================
       TYPOGRAPHY (bottom margins only, consistent rhythm)
    ========================================================== */
    body.frp-nch-page .frp-nch-h2{
      font-size:clamp(22px, 2.4vw, 32px);
      line-height:1.25;
      font-weight:700;
      margin: 0 0 clamp(26px, 3vw, 42px) 0;
      border-left:6px solid var(--brand);
      padding-left:15px;
      color:var(--text-main);
    }

    body.frp-nch-page .frp-nch-h3{
      font-size:clamp(18px, 2vw, 22px);
      line-height:1.32;
      font-weight:600;
      margin: 0 0 clamp(12px, 1.6vw, 18px) 0;
      color:var(--text-main);
    }

    body.frp-nch-page .frp-nch-h4{
      font-size:20px;
      line-height:1.45;
      font-weight:600;
      margin: 0 0 12px 0;
      color:var(--text-main);
    }

    body.frp-nch-page .frp-nch-h5{
      font-size:18px;
      line-height:1.6;
      font-weight:600;
      margin: 0 0 8px 0;
      color:var(--brand);
    }

    body.frp-nch-page .frp-nch-body{
      font-size:var(--body);
      line-height:1.75;
      margin: 0 0 var(--stack-1) 0;
      overflow-wrap:anywhere;
      color:var(--text-main);
    }

    body.frp-nch-page .frp-nch-ul{
      font-size:var(--body);
      line-height:1.75;
      color:var(--text-main);
      margin: 0 0 var(--stack-1) 25px;
      padding:0;
    }
    body.frp-nch-page .frp-nch-ul li{ margin-bottom:10px; }

    body.frp-nch-page figure.frp-nch-figure{
      margin: 0 0 var(--stack-3) 0;
      text-align:center;
    }
    body.frp-nch-page figure.frp-nch-figure img{
      width:100%;
      max-width:100%;
      height:auto;
      display:block;
      margin:0 auto;
    }

    body.frp-nch-page .frp-nch-fig{
      font-size:16px;
      line-height:1.5;
      color:#555555;
      margin:10px 0 0 0;
    }

    body.frp-nch-page .frp-nch-label{
      font-weight:600;
      color:var(--brand);
      margin: 0 0 10px 0;
    }

    body.frp-nch-page .frp-nch-label--mt{
      padding-top: 6px;
    }

    body.frp-nch-page .frp-nch-m0{ margin:0; }

    /* =========================================================
       MINI HERO (Title + Share) — Full width
       (International background)
    ========================================================== */
    body.frp-nch-page .frp-nch-hero-mini{
      position:relative;
      overflow:hidden;
      color:var(--ink);
      font-family:var(--font);
      padding: clamp(56px,5.8vw,84px) 0 clamp(40px,4.6vw,62px);

      background:
        radial-gradient(1200px 520px at 20% 10%, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 55%),
        radial-gradient(900px 460px at 85% 65%, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 58%),
        linear-gradient(135deg, #0B5CC6 0%, #0A3B8E 46%, #052B63 100%);
    }

    body.frp-nch-page .frp-nch-hero-mini::before{
      content:"";
      position:absolute;
      inset:-2px;
      pointer-events:none;
      background:
        linear-gradient(115deg,
          rgba(255,255,255,0) 0%,
          rgba(255,255,255,.10) 22%,
          rgba(255,255,255,0) 45%,
          rgba(255,255,255,.08) 72%,
          rgba(255,255,255,0) 100%
        ),
        radial-gradient(1000px 520px at 50% 0%,
          rgba(0,0,0,.18) 0%,
          rgba(0,0,0,0) 55%
        ),
        radial-gradient(1000px 520px at 50% 110%,
          rgba(0,0,0,.26) 0%,
          rgba(0,0,0,0) 55%
        );
      opacity:.9;
      mix-blend-mode: soft-light;
    }

    body.frp-nch-page .frp-nch-hero-mini::after{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background-image:
        linear-gradient(to right, rgba(255,255,255,.06) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(255,255,255,.05) 1px, transparent 1px);
      background-size: 88px 88px;
      opacity:.14;
      mask-image: radial-gradient(700px 420px at 65% 55%, #000 0%, rgba(0,0,0,.55) 55%, transparent 100%);
    }

    body.frp-nch-page .frp-nch-hero-mini__title{
      position:relative;
      margin:0 0 var(--stack-2) 0;
      font-size: var(--title-size);
      line-height: var(--title-lh-desktop);
      font-weight:700;
      letter-spacing: var(--title-track);
      text-wrap: balance;
    }

    body.frp-nch-page .frp-nch-hero-mini__share{
      position:relative;
      display:flex;
      align-items:center;
      gap: clamp(12px,1.6vw,18px);
    }

    body.frp-nch-page .frp-nch-hero-mini__share-label{
      font-size: var(--share-label-size);
      font-weight: var(--share-label-weight);
      opacity:.95;
    }

    body.frp-nch-page .frp-nch-hero-mini__share-actions{
      display:flex;
      align-items:center;
      gap: clamp(10px,1.2vw,14px);
    }

    body.frp-nch-page .frp-mini-share-btn{
      width: var(--btn);
      height: var(--btn);
      display:grid;
      place-items:center;
      border-radius:999px;
      border:1px solid var(--btn-border);
      background: var(--btn-bg);
      text-decoration:none;
      transition: transform .15s ease, background-color .15s ease, border-color .15s ease;
      backdrop-filter: blur(6px);
    }
    body.frp-nch-page .frp-mini-share-btn:hover{
      transform: translateY(-2px);
      background: var(--btn-bg-hover);
      border-color: rgba(255,255,255,.34);
    }
    body.frp-nch-page .frp-mini-share-btn:focus-visible{
      outline:2px solid rgba(255,255,255,.55);
      outline-offset:3px;
    }

    body.frp-nch-page .frp-mini-share-btn svg{
      width:22px;
      height:22px;
      display:block;
    }

    body.frp-nch-page .ico-fill{ fill:#fff; }
    body.frp-nch-page .ico-stroke{ fill:none; stroke:#fff; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

    @media (max-width:767.98px){
      body.frp-nch-page .frp-nch-hero-mini{
        padding: 52px 0 40px;
        background:
          radial-gradient(900px 420px at 18% 8%, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 58%),
          radial-gradient(760px 420px at 88% 72%, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 60%),
          linear-gradient(135deg, #0B5CC6 0%, #0A3B8E 46%, #052B63 100%);
      }
      body.frp-nch-page .frp-nch-hero-mini__title{ line-height: var(--title-lh-mobile); }
      body.frp-nch-page .frp-mini-share-btn{ width: var(--btn-m); height: var(--btn-m); }
      body.frp-nch-page .frp-mini-share-btn svg{ width:20px; height:20px; }
      body.frp-nch-page .frp-nch-hero-mini::after{
        background-size: 76px 76px;
        opacity:.12;
      }
    }

    /* =========================================================
       FACTS CARDS
    ========================================================== */
    body.frp-nch-page .frp-facts{ margin: var(--stack-2) 0 var(--stack-3); }

    body.frp-nch-page .frp-facts__grid{
      display:grid;
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap: clamp(14px, 2vw, 20px);
    }

    body.frp-nch-page .frp-facts__card{
      background: var(--bg-gray);
      padding: clamp(20px, 2.4vw, 26px) clamp(22px, 2.8vw, 28px);
    }

    body.frp-nch-page .frp-facts__label{
      margin:0 0 6px 0;
      font-size:16px;
      line-height:1.5;
      color: rgba(51,51,51,0.62);
      letter-spacing:.01em;
    }

    body.frp-nch-page .frp-facts__value{
      margin:0;
      font-size:18px;
      line-height:1.6;
      color: var(--text-main);
      font-weight:500;
    }

    @media (max-width:1024px){
      body.frp-nch-page .frp-facts__grid{ grid-template-columns:repeat(2, 1fr); }
    }
    @media (max-width:767.98px){
      body.frp-nch-page .frp-facts__grid{ grid-template-columns:1fr; }
    }

    /* =========================================================
       PRODUCTS GRID
    ========================================================== */
    body.frp-nch-page .frp-nch-product-grid{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:20px;
      width:100%;
    }

    @media (max-width:1024px){
      body.frp-nch-page .frp-nch-product-grid{ grid-template-columns:repeat(2, 1fr); }
    }
    @media (max-width:767.98px){
      body.frp-nch-page .frp-nch-product-grid{ grid-template-columns:1fr; }
    }

    body.frp-nch-page .frp-nch-product-card{
      background:#ffffff;
      border:1px solid #eeeeee;
      box-shadow:0 4px 10px rgba(0,0,0,0.05);
      overflow:hidden;
      transition:transform .25s ease, box-shadow .25s ease;
    }

    body.frp-nch-page .frp-nch-product-card:hover{
      transform:translateY(-4px);
      box-shadow:0 10px 24px rgba(0,0,0,0.10);
    }

    body.frp-nch-page .frp-nch-product-card-link{
      display:block;
      text-decoration:none;
      color:inherit;
      height:100%;
    }

    body.frp-nch-page .frp-nch-product-card-inner{
      padding:22px;
      display:flex;
      flex-direction:column;
      gap:14px;
    }

   body.frp-nch-page .frp-nch-product-card-image{
  border-radius:6px;
  overflow:hidden;
  border:1px solid #f0f0f0;
  background:#ffffff;

  /* lock ratio */
  aspect-ratio: 3 / 2;
}

body.frp-nch-page .frp-nch-product-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

    body.frp-nch-page .frp-nch-product-card-title{
      font-size:20px;
      line-height:1.4;
      font-weight:600;
      margin:0;
      color:var(--brand);
    }

    body.frp-nch-page .frp-nch-product-card-spec{
      font-size:16px;
      line-height:1.6;
      color:#555555;
      border-top:1px solid #F8F9FA;
      padding-top:10px;
    }

    body.frp-nch-page .frp-nch-product-card-spec-row{
      display:flex;
      justify-content:space-between;
      gap:14px;
      padding:8px 0;
    }
    body.frp-nch-page .frp-nch-product-card-spec-row:not(:last-child){
      border-bottom:1px solid #F8F9FA;
    }
    body.frp-nch-page .frp-nch-product-card-spec-row span{
      font-weight:400;
      color:#555555;
    }

@media (max-width:767.98px){
  body.frp-nch-page .frp-nch-product-card-inner{ padding:18px; }
}

    /* =========================================================
       PARAM TABLE
       - table block owns its internal spacing
       - outer spacing is controlled by section rhythm
    ========================================================== */
    body.frp-nch-page .frp-nch-param{
      border:1px solid #eeeeee;
      border-radius:4px;
      overflow:hidden;
      background:#ffffff;
    }

    body.frp-nch-page .frp-nch-param__scroll{
      overflow-x:auto;
      -webkit-overflow-scrolling:touch;
    }

    body.frp-nch-page .frp-nch-param table{
      width:100%;
      border-collapse:separate;
      border-spacing:0;
      min-width:860px;
    }

    body.frp-nch-page .frp-nch-param thead th{
      font-size:16px;
      line-height:1.5;
      font-weight:600;
      color:#555555;
      background:#F8F9FA;
      padding:14px 16px;
      border-bottom:1px solid #eeeeee;
      text-align:left;
      white-space:nowrap;
    }

    body.frp-nch-page .frp-nch-param tbody td{
      font-size:18px;
      line-height:1.7;
      color:#333333;
      padding:14px 16px;
      border-bottom:1px solid #eeeeee;
      vertical-align:top;
    }

    body.frp-nch-page .frp-nch-param tbody tr:nth-child(even) td{
      background:#F8F9FA;
    }

    body.frp-nch-page .frp-nch-param tbody tr:last-child td{
      border-bottom:none;
    }

    body.frp-nch-page .frp-nch-param td.key{
      font-weight:600;
      white-space:nowrap;
    }

    body.frp-nch-page .frp-nch-param td.unit{
      color:#555555;
      white-space:nowrap;
    }

    body.frp-nch-page .frp-nch-param-note{
      font-size:16px;
      line-height:1.6;
      color:#555555;
      margin: 10px 0 0 0;
    }

    @media (max-width:767.98px){
      body.frp-nch-page .frp-nch-param thead th,
      body.frp-nch-page .frp-nch-param tbody td{ padding:12px; }
    }

    /* =========================================================
       SUPERIOR SPLIT (edge-to-edge image, container-aligned text)
       - CLEAN: no nested container inside content (fix double clamp)
    ========================================================== */
    body.frp-nch-page .frp-sup-split{
      background: var(--bg-white);
      margin: 0; /* outer spacing controlled by content flow if needed */
    }

    body.frp-nch-page .frp-sup-split__grid{
      display:grid;
      grid-template-columns: 1fr 1fr;
      align-items:stretch;
      min-height: clamp(360px, 34vw, 600px);
    }

    body.frp-nch-page .frp-sup-split__media{
      margin:0;
      position:relative;
      overflow:hidden;
      background:#eef2f7;
      min-height: clamp(360px, 34vw, 600px);
    }
    body.frp-nch-page .frp-sup-split__media img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    body.frp-nch-page .frp-sup-split__content{
      display:flex;
      background:#F8F9FA;  
      align-items:center;

      /* aligns to container edge */
      padding-left: max(var(--container-pad), calc((100vw - var(--wrap)) / 2));
      padding-right: clamp(22px, 3vw, 56px);

      padding-top: clamp(44px, 5vw, 80px);
      padding-bottom: clamp(44px, 5vw, 80px);
    }

    body.frp-nch-page .frp-sup-split__title{
      margin:0 0 14px 0;
      font-size: clamp(28px, 3.2vw, 40px);
      line-height:1.15;
      font-weight:700;
      letter-spacing:-0.01em;
      color: var(--text-dark);
    }

    body.frp-nch-page .frp-sup-split__body{
      margin:0 0 16px 0;
      max-width: 72ch;
      font-size:18px;
      line-height:1.75;
      color: var(--text-main);
    }

    body.frp-nch-page .frp-sup-split__subhead{
      margin: 18px 0 10px 0;
      font-size: clamp(16px, 1.6vw, 20px);
      line-height:1.25;
      font-weight:600;
      color: var(--text-dark);
    }

    body.frp-nch-page .frp-sup-split__tags{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
    }

    body.frp-nch-page .frp-sup-split__tag{
      display:inline-flex;
      align-items:center;
      height:32px;
      padding:0 12px;
      border-radius:26px;
      background:#F8F9FA;
      border:1px solid #e5e7eb;
      color:#111827;
      font-size:13px;
      font-weight:500;
      text-decoration:none;
      white-space:nowrap;
    }
    body.frp-nch-page .frp-sup-split__tag:hover{
      background:#eef2ff;
      border-color:#dbe4ff;
    }

    /* reverse */
    body.frp-nch-page .frp-sup-split--reverse .frp-sup-split__grid{ direction: rtl; }
    body.frp-nch-page .frp-sup-split--reverse .frp-sup-split__grid > *{ direction:ltr; }

    body.frp-nch-page .frp-sup-split--reverse .frp-sup-split__content{
      padding-left: clamp(22px, 3vw, 56px);
      padding-right: max(var(--container-pad), calc((100vw - var(--wrap)) / 2));
    }

    @media (max-width:1024px){
      body.frp-nch-page .frp-sup-split__grid{
        grid-template-columns:1fr;
        min-height:auto;
      }
      body.frp-nch-page .frp-sup-split__media{ min-height: 280px; }
      body.frp-nch-page .frp-sup-split__content,
      body.frp-nch-page .frp-sup-split--reverse .frp-sup-split__content{
        padding-left: var(--container-pad);
        padding-right: var(--container-pad);
        padding-top: 32px;
        padding-bottom: 36px;
      }

      body.frp-nch-page .frp-sup-split__content{ order: 2;}
      body.frp-nch-page .frp-sup-split__media{ order: 1; }

    }
    @media (max-width:767.98px){
      body.frp-nch-page .frp-sup-split__title{ font-size: clamp(24px, 7.2vw, 32px); }
    }

    /* =========================================================
       SPLIT COMBO (inside content)
    ========================================================== */
    body.frp-nch-page .frp-nch-split-combo{
      border-radius:4px;
      overflow:hidden;
    }

    body.frp-nch-page .frp-nch-split{
      display:grid;
      grid-template-columns:1fr 1fr;
      align-items:stretch;
    }

    body.frp-nch-page .frp-nch-split__media{
      position:relative;
      background:#0b1220;
    }

    body.frp-nch-page .frp-nch-split__media img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    body.frp-nch-page .frp-nch-split__panel{
      background:var(--bg-gray);
      padding:56px;
      display:flex;
      flex-direction:column;
      justify-content:center;
    }

    body.frp-nch-page .frp-nch-split__panel .frp-nch-h2{
      border-left:none;
      padding-left:0;
      margin:0 0 var(--stack-2) 0;
    }
    body.frp-nch-page .frp-nch-split__panel .frp-nch-body:last-child{ margin-bottom:0; }
    body.frp-nch-page .frp-nch-split__panel .frp-nch-ul{ margin-left:20px; }

    body.frp-nch-page .frp-nch-split--reverse .frp-nch-split__panel{ order:1; }
    body.frp-nch-page .frp-nch-split--reverse .frp-nch-split__media{ order:2; }

    @media (max-width:1024px){
      body.frp-nch-page .frp-nch-split{ grid-template-columns:1fr; }
      body.frp-nch-page .frp-nch-split__media{ min-height:260px; }
      body.frp-nch-page .frp-nch-split__panel{ padding:28px 22px; }
      body.frp-nch-page .frp-nch-split__media{ order:0 !important; }
      body.frp-nch-page .frp-nch-split__panel{ order:1 !important; }
    }

    /* =========================================================
       ADVANTAGE CARDS
    ========================================================== */
    body.frp-nch-page .frp-nch-adv-grid{
      display:grid;
      gap:20px;
      margin: 0; /* section controls spacing */
    }
    body.frp-nch-page .frp-nch-adv-grid--1{ grid-template-columns:1fr; }
    body.frp-nch-page .frp-nch-adv-grid--2{ grid-template-columns:repeat(2, 1fr); }
    body.frp-nch-page .frp-nch-adv-grid--3{ grid-template-columns:repeat(3, 1fr); }

    @media (max-width:1024px){
      body.frp-nch-page .frp-nch-adv-grid--3{ grid-template-columns:repeat(2, 1fr); }
    }
    @media (max-width:767.98px){
      body.frp-nch-page .frp-nch-adv-grid--2,
      body.frp-nch-page .frp-nch-adv-grid--3{ grid-template-columns:1fr; }
    }

    body.frp-nch-page .frp-nch-adv-card{
      background:var(--bg-gray);
      padding: 40px 32px;
      border-radius:4px;
      height:100%;
      transition:transform .25s ease, background-color .25s ease;
    }
    body.frp-nch-page .frp-nch-adv-card:hover{
      background:#f0f2f5;
      transform:translateY(-5px);
    }

    body.frp-nch-page .frp-nch-adv-card .frp-nch-h3{
      margin:0 0 12px 0 !important;
      color:var(--brand);
    }
    body.frp-nch-page .frp-nch-adv-card .frp-nch-body:last-child{ margin-bottom:0 !important; }

    @media (max-width:767.98px){
      body.frp-nch-page .frp-nch-adv-card{ padding: 26px 20px; }
    }

    /* =========================================================
       TESTIMONIAL
    ========================================================== */
    body.frp-nch-page .frp-nch-testimonial{
      background:var(--bg-gray);
      border:1px solid #F4C632;
      border-radius:4px;
      padding:35px 40px;
    }

    body.frp-nch-page .frp-nch-testimonial__quote{
      font-size:18px;
      line-height:1.7;
      font-weight:400;
      font-style:italic;
      color:var(--text-main);
      margin:0 0 18px 0;
      overflow-wrap:anywhere;
    }

    body.frp-nch-page .frp-nch-testimonial__meta{
      font-size:16px;
      line-height:1.6;
      color:#555555;
      margin:0;
      overflow-wrap:anywhere;
    }

    @media (max-width:767.98px){
      body.frp-nch-page .frp-nch-testimonial{ padding:28px 22px; }
    }

    /* =========================================================
       FAQ
    ========================================================== */
    body.frp-nch-page .frp-nch-faq{ display:grid; grid-template-columns:1fr; gap:6px; }
    body.frp-nch-page .frp-nch-faq details{ background:transparent; padding:0; margin:0; }

    body.frp-nch-page .frp-nch-faq summary{
      list-style:none;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      padding:14px 0;
      border-bottom:1px solid var(--line);
      outline:none;
    }
    body.frp-nch-page .frp-nch-faq summary::-webkit-details-marker{ display:none; }

    body.frp-nch-page .frp-nch-faq .q{
      font-size:18px;
      line-height:1.55;
      color:var(--brand);
      font-weight:400;
      margin:0;
    }

    body.frp-nch-page .frp-nch-faq .arrow{
      flex:0 0 auto;
      width:28px;
      height:28px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border-radius:999px;
      background:#F8F9FA;
      color:var(--brand);
      font-size:16px;
      transition:transform .2s ease;
      user-select:none;
    }
    body.frp-nch-page .frp-nch-faq details[open] .arrow{ transform:rotate(90deg); }

    body.frp-nch-page .frp-nch-faq .a{
      padding:10px 0 16px 0;
      font-size:18px;
      line-height:1.7;
      color:var(--text-main);
    }

    @media (hover:hover) and (pointer:fine){
      body.frp-nch-page .frp-nch-faq summary:hover .arrow{ background:#F8F9FA; }
      body.frp-nch-page .frp-nch-faq summary:hover .q{ color:#111827; }
    }

    body.frp-nch-page .frp-nch-faq-cta{
      padding:22px;
      background:var(--bg-gray);
      border-radius:4px;
    }
    body.frp-nch-page .frp-nch-faq-cta-title{
      font-size:18px;
      line-height:1.7;
      color:var(--text-main);
      margin:0 0 12px 0;
      font-weight:600;
    }
    body.frp-nch-page .frp-nch-faq-cta-body{
      font-size:18px;
      line-height:1.7;
      color:var(--text-main);
      margin:0 0 18px 0;
    }
    body.frp-nch-page .frp-nch-faq-cta a{
      display:inline-block;
      background:var(--brand);
      color:#ffffff;
      padding:12px 22px;
      text-decoration:none;
      font-weight:600;
      border-radius:2px;
      font-size:16px;
    }
/* FAQ list -> CTA spacing (make it bigger) */
body.frp-nch-page .frp-nch-faq{
  margin-bottom: var(--stack-4); /* 让 FAQ 结束后留出一段空白 */
}

    /* =========================================================
       CAROUSEL
    ========================================================== */
    body.frp-nch-page .frp-nch-carousel{
      position:relative;
      background:#F8F9FA;
      overflow:hidden;
      border-radius:4px;
    }

    body.frp-nch-page .frp-nch-carousel__track{
      display:flex;
      transition:transform .35s ease;
      will-change:transform;
    }

    body.frp-nch-page .frp-nch-carousel__slide{
      min-width:100%;
      user-select:none;
    }

    body.frp-nch-page .frp-nch-carousel__img{
      width:100%;
      aspect-ratio:16 / 9;
      object-fit:cover;
      display:block;
      background:#F8F9FA;
    }

    body.frp-nch-page .frp-nch-carousel__btn{
      position:absolute;
      top:50%;
      transform:translateY(-50%);
      width:44px;
      height:44px;
      border:none;
      border-radius:999px;
      background:rgba(255,255,255,0.95);
      color:var(--brand);
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      box-shadow:0 6px 18px rgba(0,0,0,0.15);
      transition:transform .15s ease, background .15s ease;
    }

    body.frp-nch-page .frp-nch-carousel__btn:active{
      transform:translateY(-50%) scale(.98);
    }

    body.frp-nch-page .frp-nch-carousel__btn--prev{ left:14px; }
    body.frp-nch-page .frp-nch-carousel__btn--next{ right:14px; }

    body.frp-nch-page .frp-nch-carousel__btn span{
      font-size:22px;
      line-height:1;
      display:inline-block;
      transform:translateY(-1px);
    }

    body.frp-nch-page .frp-nch-carousel__dots{
      position:absolute;
      left:50%;
      bottom:14px;
      transform:translateX(-50%);
      display:flex;
      gap:8px;
      padding:6px 10px;
      border-radius:999px;
      background:rgba(0,0,0,.25);
    }

    body.frp-nch-page .frp-nch-carousel__dot{
      width:8px;
      height:8px;
      border-radius:999px;
      border:none;
      background:rgba(255,255,255,.6);
      cursor:pointer;
    }

    body.frp-nch-page .frp-nch-carousel__dot.is-active{ background:#ffffff; }

    body.frp-nch-page .frp-nch-carousel__caption{
      font-size:16px;
      line-height:1.5;
      color:#555555;
      margin:10px 0 0 0;
    }

    @media (max-width:767.98px){
      body.frp-nch-page .frp-nch-carousel__btn{ width:40px; height:40px; }
      body.frp-nch-page .frp-nch-carousel__btn--prev{ left:10px; }
      body.frp-nch-page .frp-nch-carousel__btn--next{ right:10px; }
      body.frp-nch-page .frp-nch-carousel__dots{ bottom:10px; }
    }

    /* =========================================================
       CTA
    ========================================================== */
    body.frp-nch-page .frp-nch-cta{
      background:var(--brand);
      padding:40px;
      text-align:center;
      border-radius:4px;
    }

    body.frp-nch-page .frp-nch-cta-title{
      font-size:clamp(24px, 2.8vw, 30px);
      line-height:1.35;
      font-weight:700;
      margin:0 0 var(--stack-2) 0;
      color:#ffffff;
    }

    body.frp-nch-page .frp-nch-cta .frp-nch-body{
      color:#ffffff;
      margin:0 0 var(--stack-3) 0;
    }

    body.frp-nch-page .frp-nch-cta a{
      display:inline-block;
      background:#ffffff;
      color:var(--brand);
      padding:15px 40px;
      text-decoration:none;
      font-weight:600;
      border-radius:2px;
      font-size:18px;
    }

*{ box-sizing:border-box; }
    html,body{ margin:0; padding:0; }
    body{ font-family:"Segoe UI", Roboto, Arial, sans-serif; background:#fff; }

    /* ===============================
       Page-scoped tokens (NO :root pollution)
    ================================ */
    .frp-banner-page{
      position: relative;
      --wrap:1320px;
      --container-pad:20px;
      --brand:#0155B6;
      --text:#ffffff;
      --focus-outline:2px solid rgba(255,255,255,1);
      --focus-offset:4px;

      --banner-h:80vh;
      --shadow:0 8px 28px rgba(0,0,0,0.30);
    }

    @media (max-width:640px){
      .frp-banner-page{ --banner-h:520px; }
    }

    /* Container scoped */
    .frp-banner-page .frp-container{
      max-width:var(--wrap);
      margin-left:auto;
      margin-right:auto;
      padding-left:var(--container-pad);
      padding-right:var(--container-pad);
    }

    /* Focus-visible */
    .frp-banner-page :focus-visible{
      outline:var(--focus-outline);
      outline-offset:var(--focus-offset);
    }

    /* ===============================
       Banner
    ================================ */
    .frp-banner{
      position:relative;
      width:100%;
      height:var(--banner-h);
      color:var(--text);
      overflow:hidden;
      background-position: center center;
      background-repeat: no-repeat;
      background-size:cover;
    }

    .frp-banner::before{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(135deg, rgba(0,0,0,0.35), rgba(0,0,0,0.15));
      pointer-events:none;
    }

    .frp-banner__inner{
      position:relative;
      height:100%;
      display:flex;
      flex-direction:column;
      justify-content:center;
      align-items:center;
      text-align:center;
    }

    .frp-banner__title{
      font-size:clamp(32px, 6vw, 56px);
      font-weight:800;
      line-height:1.1;
      margin:0 0 20px 0;
      letter-spacing:-1px;
      text-transform:uppercase;
      text-shadow:var(--shadow);
    }

    .frp-banner__desc{
      font-size:18px;
      line-height:1.7;
      max-width:800px;
      margin:0 0 40px 0;
      opacity:0.98;
      text-shadow:var(--shadow);
    }

    .frp-banner__desc .frp-banner__break{
      display:block;
      height:6px;
    }

    .frp-banner__actions{
      display:flex;
      gap:20px;
      flex-wrap:wrap;
      justify-content:center;
    }
    .frp-banner__actions a:hover{ background:var(--brand); color:#ffffff; border: 1px solid var(--brand); }

    /* CTA Buttons */
    .frp-banner__btn{
      display:inline-block;
      padding:16px 40px;
      font-size:18px;
      font-weight:700;
      line-height:1;
      text-decoration:none;
      border-radius:2px;
      border:1px solid transparent;
      white-space:nowrap;
      transition:opacity .25s ease, transform .25s ease;
    }

    .frp-banner__btn--primary{
      background:var(--brand);
      color:#ffffff;
      border-color:var(--brand);
    }

    .frp-banner__btn--ghost{
      background:transparent;
      color:#ffffff;
      border-color:rgba(255,255,255,1);
      backdrop-filter:saturate(1.2) blur(2px);
    }

    .frp-banner__btn:hover{
      opacity:0.92;
      transform:translateY(-1px);
    }

    /* Slider arrows */
    .frp-banner__arrow{
      position:absolute;
      top:50%;
      transform:translateY(-50%);
      padding:8px;
      opacity:0.55;
      cursor:pointer;
      background:transparent;
      border:0;
    }
    .frp-banner__arrow--left{ left:30px; }
    .frp-banner__arrow--right{ right:30px; }
    .frp-banner__arrow:hover{ opacity:0.9; }

    /* Responsive */
    @media (max-width:640px){
      .frp-banner__desc{ font-size:18px; margin-bottom:28px; }

      .frp-banner__btn{
        padding:14px 28px;
        font-size:16px;
        min-width:220px;
        text-align:center;
      }

      .frp-banner__arrow--left{ left:14px; }
      .frp-banner__arrow--right{ right:14px; }
    }

    @media (prefers-reduced-motion: reduce){
      .frp-banner__btn{ transition:none; }
      .frp-banner__btn:hover{ transform:none; }
    }

body.frp-modal-page *{ box-sizing:border-box; }
    body.frp-modal-page{
      margin:0; padding:0;
      font-family:"Segoe UI", Roboto, Arial, sans-serif;
      background:#F8F9FA;
      color:#333333;
    }

    /* ===============================
       Page-scoped tokens (NO :root)
    ================================ */
    body.frp-modal-page{
      --wrap:1320px;
      --container-pad:20px;

      --brand:#0155B6;
      --text:#333333;
      --muted:#333333;
      --line:#e5e7eb;
      --card:#ffffff;

      --radius:8px;
      --shadow:0 18px 40px rgba(0,0,0,0.12);

      --focus-outline:2px solid rgba(1,85,182,0.35);
      --focus-offset:3px;
    }

    body.frp-modal-page .frp-container{
      max-width:var(--wrap);
      margin:0 auto;
      padding-left:var(--container-pad);
      padding-right:var(--container-pad);
    }

    body.frp-modal-page :focus-visible{
      outline:var(--focus-outline);
      outline-offset:var(--focus-offset);
    }

    /* ===============================
       Preview wrapper (simulate modal)
    ================================ */
    .frp-overlay{
      min-height:100vh;
      display:flex;
      align-items:flex-start;
      justify-content:center;
      padding: clamp(16px, 2.8vw, 32px);
      background: rgba(15,23,42,.08);
    }

    .frp-dialog{
      width:min(var(--wrap), 100%); /* ✅保持你要的 1320 宽度上限 */
      background:var(--card);
      border:1px solid var(--line);
      border-radius:2px;
      box-shadow:var(--shadow);
      overflow:hidden;
    }

    .frp-dialog__head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding: clamp(18px, 2.2vw, 26px);
      border-bottom:1px solid var(--line); /* ✅横线就在这里 */
      background:#fff;
    }
    .frp-dialog__title{
      margin:0;
      font-size:clamp(26px, 2.3vw, 34px);
      font-weight:750;
      letter-spacing:-0.01em;
      color:var(--text);
    }
    .frp-dialog__close{
      width:44px; height:44px;
      border-radius:999px;
      border:1px solid var(--line);
      background:#fff;
      display:grid;
      place-items:center;
      cursor:pointer;
      transition:background .15s ease, transform .15s ease;
    }
    .frp-dialog__close:hover{ background:#f8fafc; }
    .frp-dialog__close:active{ transform:scale(.98); }
    .frp-dialog__close svg{ width:20px; height:20px; fill:var(--text); }

    .frp-dialog__body{
      padding: clamp(18px, 2.2vw, 28px);
      background:#fff;
    }

    /* ===============================
       Needs + Details layout
    ================================ */
    .frp-contact-split{
      display:grid;
      grid-template-columns: 0.92fr 1.08fr;
      border:1px solid var(--line);
      border-radius:2px;
      overflow:hidden;
      background:#fff;
      min-height: 620px;
    }

    .frp-needs{
      padding: clamp(18px, 2vw, 28px);
      border-right:1px solid var(--line);
      background:#fff;
      color:var(--text);
    }

    .frp-details{
      padding: clamp(18px, 2vw, 28px);
      background:#fff;
      color:var(--text);
    }

    .frp-kicker{
      margin:0 0 12px;
      font-size:18px;
      font-weight:750;
      color:var(--text);
    }
    .frp-paragraph{
      margin:0 0 18px;
      font-size:18px;
      line-height:1.75;
      color:var(--text);
      max-width:62ch;
    }

    .frp-subhead{
      margin:22px 0 10px;
      font-size:15px;
      font-weight:750;
      color:var(--text);
    }

    .frp-privacy{
      margin-top:26px;
      padding-top:18px;
      border-top:1px solid var(--line);
    }
    .frp-privacy__title{
      margin:0 0 10px;
      font-size:15px;
      font-weight:750;
      color:var(--text);
    }
    .frp-privacy__text{
      margin:0;
      font-size:15px;
      line-height:1.75;
      color:var(--text);
      max-width:64ch;
    }

    /* ===============================
       Form system (match your inner-page form look)
    ================================ */
    .frp-form{ margin:0; }
    .frp-form__title{
      margin:0 0 14px;
      font-size:18px;
      font-weight:750;
      color:var(--text);
    }

    .frp-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:16px;
    }
    .frp-grid + .frp-grid{ margin-top:16px; }

    .frp-field{
      width:100%;
      padding:14px 16px;
      border:1px solid #dcdfe4;
      border-radius:2px;
      background:#fff;
      color:var(--text);
      font-size:18px;
      font-family:inherit;
      line-height:1.3;
      outline:none;
      transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
    }
    .frp-field::placeholder{ color:#8a8f98; font-weight:400; }

.frp-field:focus,
.frp-field:focus-visible{
  outline:none;
  border-color:#cfd4dc;   /* 轻微变色 */
  box-shadow:none;
}

    .frp-select{
      appearance:none;
      -webkit-appearance:none;
      -moz-appearance:none;

      padding-right:40px;

      background-image:
        linear-gradient(45deg, transparent 50%, rgba(51,51,51,0.70) 50%),
        linear-gradient(135deg, rgba(51,51,51,0.70) 50%, transparent 50%);

      background-position:
        calc(100% - 18px) 50%,
        calc(100% - 12px) 50%;

      background-size:6px 6px, 6px 6px;
      background-repeat:no-repeat;

      cursor:pointer;
    }
    .frp-select option{ color:#111; background:#fff; }

    .frp-textarea{
      min-height:200px;
      resize:vertical;
    }

    .frp-check{
      display:flex;
      align-items:flex-start;
      gap:12px;
      margin:14px 0 0;
      font-size:15px;
      color:var(--text);
    }
    .frp-check input{
      width:18px; height:18px;
      margin-top:3px;
      accent-color: var(--brand);
    }

    .frp-actions{
      display:flex;
      justify-content:flex-end;
      margin-top:20px;
    }

    /* ✅只改按钮大小与文字大小（其余不动） */
    .frp-btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:10px 24px;     /* ✅更小 */
      font-size:15px;        /* ✅更小 */
      font-weight:750;
      border-radius:2px;
      border:1px solid #0155B6;
      background:#0155B6;
      color:#fff;
      cursor:pointer;
      transition:filter .15s ease, transform .08s ease, opacity .15s ease;
    }
    .frp-btn:hover{ filter:brightness(1.02); }
    .frp-btn:active{ transform:translateY(1px); }

    .frp-btn[disabled]{
      opacity:.45;
      cursor:not-allowed;
      filter:none;
      transform:none;
    }
.frp-select:focus,
.frp-select:focus-visible{
  outline:none !important;
  box-shadow:none !important;
}
    /* ===============================
       Responsive (SOP breakpoints)
    ================================ */
    @media (max-width:1024px){
      .frp-contact-split{
        grid-template-columns:1fr;
        min-height:unset;
      }
      .frp-needs{
        border-right:none;
        border-bottom:1px solid var(--line);
      }
    }

    @media (max-width:767.98px){
      .frp-grid{ grid-template-columns:1fr; gap:14px; }
      .frp-grid + .frp-grid{ margin-top:14px; }
      .frp-actions{ justify-content:stretch; }
      .frp-btn{ width:100%; }
    }

    .frp-sr-only{
      position:absolute !important;
      width:1px; height:1px;
      padding:0; margin:-1px;
      overflow:hidden;
      clip:rect(0,0,0,0);
      white-space:nowrap;
      border:0;
    }

/* ===== Rectangular components: enforce 2px radius ===== */
/* Note: circle elements are re-applied later from original selectors. */
a.frp-btn,
button.frp-btn,
.frp-btn,
.frp-contact-btn,
.frp-banner__btn,
.frp-nch-faq-cta,
.frp-nch-carousel,
.frp-home-newsletter__input,
.frp-home-newsletter__btn,
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="search"], input[type="password"], textarea, select,
.card, .panel, .box, .modal, .dialog,
table{
  border-radius: var(--frp-radius-rect);
}

/* ===== Gray backgrounds unified ===== */
.bg-gray, .bg-grey, .bg-light, .section-gray, .section-grey{
  background: var(--frp-gray);
}

/* ===== Preserve ROUND elements (original rules) ===== */
position:absolute;
      left:50%;
      bottom:20px;
      transform:translateX(-50%);
      display:flex;
      gap:12px;
      z-index:10;
    }

    body.frp-home-page .frp-home-jig__dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:rgba(255,255,255,0.3);
      border:none;
      cursor:pointer;
      padding:0;
      transition: all 0.3s ease;
    }
cursor:not-allowed;
      opacity:0.7;
      transform:none;
    }

    /* Spinner (pure CSS) */
    body.frp-home-page .frp-home-newsletter__spinner{
      width:1em;
      height:1em;
      border-radius:999px;
      border:2px solid rgba(255,255,255,0.45);
      border-top-color:#ffffff;
      display:none;
      animation: frpSpin 0.8s linear infinite;
    }
margin-top: 25px;
      display: flex;
      align-items: flex-start;       /* ✅ keep icon aligned to first line */
      justify-content: center;       /* ✅ icon + text centered as a group */
      gap: 10px;
      font-size: 15px;
      opacity: 0.8;
    }

    body.frp-home-page .frp-home-newsletter__note svg{
      flex: 0 0 auto;
      margin-top: 0.1em;             /* ✅ elastic optical alignment */
      width: 1.45em;                 /* ✅ scales with text */
      height: 1.45em;
      padding: 0.22em;
      border-radius: 999px;
      border: 2px solid rgba(255,255,255,0.95); /* ✅ hollow white ring */
      background: transparent;       /* ✅ not solid */
      color: #ffffff;                /* ✅ white check */
    }
box-shadow:0 0 0 4px rgba(1,85,182,.14);
    }

    /* Icon: blue outline, hover -> blue fill + white icon */
    body.frp-contact-page .frp-contact-ico{
      width:48px;
      height:48px;
      border-radius:999px;
      border:1px solid rgba(1,85,182,.30);
      background:#fff;
      display:flex;
      align-items:center;
      justify-content:center;
      color:var(--brand);
      transition:background-color .15s ease, color .15s ease, border-color .15s ease;
      flex:0 0 48px;
      margin-top:2px;
    }
width:100%; }
}

/* =========================================================
   ROUND NAV BUTTONS (ONE) — round radius token
========================================================= */
.frp-navbtn{
  width:44px;height:44px;
  border-radius:var(--frp-radius-round);
  border:1px solid rgba(0,0,0,.18);
  background:#fff;
  color:#333;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:.15s ease;
}
display:flex;
  align-items:center;
  gap:10px;
  font-size:18px;
  font-weight:600;
  margin-bottom: var(--frp-space-tight);
}
.frp-pd-hero__dot{
  width:8px;height:8px;border-radius:50%;
  background: var(--frp-primary);
}
.frp-pd-benefits__icon{
  width:62px;height:62px;
  border-radius:var(--frp-radius-round);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:1px solid rgba(255,255,255,.26);
  margin-bottom:22px;
  transition: border-color .18s ease;
}
position:relative;
  margin:0;
  padding-left:28px;
  font-size:18px;
  line-height:1.75;
  color: rgba(255,255,255,.90);
}
.frp-pd-app__item::before{
  content:"";
  position:absolute;
  left:0;
  top:0.55em;
  width:8px;height:8px;
  border-radius:50%;
  background:#fff;
}
width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.frp-pd-why__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;height:44px;
  border-radius:var(--frp-radius-round);
  border:1px solid rgba(0,0,0,.14);
  background:rgba(255,255,255,.95);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:.15s ease;
}
display:flex;
      align-items:center;
      gap: clamp(10px,1.2vw,14px);
    }

    body.frp-nch-page .frp-mini-share-btn{
      width: var(--btn);
      height: var(--btn);
      display:grid;
      place-items:center;
      border-radius:999px;
      border:1px solid var(--btn-border);
      background: var(--btn-bg);
      text-decoration:none;
      transition: transform .15s ease, background-color .15s ease, border-color .15s ease;
      backdrop-filter: blur(6px);
    }
font-size:18px;
      line-height:1.55;
      color:var(--brand);
      font-weight:400;
      margin:0;
    }

    body.frp-nch-page .frp-nch-faq .arrow{
      flex:0 0 auto;
      width:28px;
      height:28px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border-radius:999px;
      background:#F8F9FA;
      color:var(--brand);
      font-size:16px;
      transition:transform .2s ease;
      user-select:none;
    }
width:100%;
      aspect-ratio:16 / 9;
      object-fit:cover;
      display:block;
      background:#F8F9FA;
    }

    body.frp-nch-page .frp-nch-carousel__btn{
      position:absolute;
      top:50%;
      transform:translateY(-50%);
      width:44px;
      height:44px;
      border:none;
      border-radius:999px;
      background:rgba(255,255,255,0.95);
      color:var(--brand);
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      box-shadow:0 6px 18px rgba(0,0,0,0.15);
      transition:transform .15s ease, background .15s ease;
    }
font-size:22px;
      line-height:1;
      display:inline-block;
      transform:translateY(-1px);
    }

    body.frp-nch-page .frp-nch-carousel__dots{
      position:absolute;
      left:50%;
      bottom:14px;
      transform:translateX(-50%);
      display:flex;
      gap:8px;
      padding:6px 10px;
      border-radius:999px;
      background:rgba(0,0,0,.25);
    }
body.frp-nch-page .frp-nch-carousel__dot{
      width:8px;
      height:8px;
      border-radius:999px;
      border:none;
      background:rgba(255,255,255,.6);
      cursor:pointer;
    }
margin:0;
      font-size:clamp(26px, 2.3vw, 34px);
      font-weight:750;
      letter-spacing:-0.01em;
      color:var(--text);
    }
    .frp-dialog__close{
      width:44px; height:44px;
      border-radius:999px;
      border:1px solid var(--line);
      background:#fff;
      display:grid;
      place-items:center;
      cursor:pointer;
      transition:background .15s ease, transform .15s ease;
    }

/* ===== FRP Body Typography (global baseline) ===== */
body{
  font-size:18px;
  line-height:1.75;
  color:#333333;
}

/* ===== FRP Share Component ===== */
.frp-share{
  display:flex;
  align-items:center;
  gap:12px;
}
.frp-share__label{
  font-size:16px;
  line-height:1;
  color:rgba(255,255,255,.92);
  margin-right:4px;
}
.frp-share__btn{
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;

  border-radius:999px; /* keep circle */
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.06);
  color:#fff;
  text-decoration:none;

  transition:transform .15s ease, background-color .15s ease, border-color .15s ease;
}
.frp-share__btn:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.38);
}
.frp-share__btn:active{ transform:translateY(0); }
.frp-share__btn:focus-visible{
  outline:2px solid rgba(255,255,255,.9);
  outline-offset:2px;
}
.frp-share__ico{
  width:18px;
  height:18px;
  fill:currentColor;
  display:block;
}

@media screen and (max-width: 1480px){
  .right-nav{ padding: 10px 10px; }
  .right-nav li{ width: 40px; height: 50px; }
  .right_li img{ width: 25px; }
}
@media screen and (max-width: 1100px) {
    .sider-contact {
        display: none;
    }
  }
@media screen and (max-width: 500px) {
    .footmenu{ display: block;}
    .frp-hf-footmain .frp-hf-wrap{ margin-bottom: 70px;}
    .frp-home-newsletter__form{ flex-direction: column; }
    .frp-home-newsletter__input{ width:100%;}
  }

/* ===== FRP Header/Footer (Yisainuo-like) ===== */
.frp-hf-header{position:sticky;top:0;z-index:1000;background:#fff;}
.frp-hf-topbar{background:#0b5fb3;color:#fff;}
.frp-hf-wrap{max-width:1680px;margin:0 auto;padding:0 16px;}
.frp-hf-topbar .frp-hf-wrap{display:flex;align-items:center;justify-content:flex-end;gap:18px;padding:10px 16px;}
.frp-hf-topitem{display:flex;align-items:center;gap:8px;font-size:16px;line-height:1.2;white-space:nowrap;}
.frp-hf-topitem a{color:#fff;text-decoration:none;}
.frp-hf-topitem a:hover{text-decoration:underline;}
.frp-hf-lang{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;}
.frp-hf-lang svg{width:18px;height:18px;fill:#fff;}
.frp-hf-main{background:#fff;border-bottom:1px solid rgba(0,0,0,.06);}
.frp-hf-main .frp-hf-wrap{display:grid;grid-template-columns:220px 1fr 220px;align-items:center;gap:18px;padding:18px 16px;}
.frp-hf-logo img{width:170px;height:auto;display:block;}
.frp-hf-nav{display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap;}
.frp-hf-nav a{color:#222;text-decoration:none;font-size:20px;line-height:1.2;padding:25px 0;border-radius:2px;}
.frp-hf-nav a:hover{color:#0b5fb3;}
.frp-hf-nav a[aria-current="page"]{color:#0b5fb3;font-weight:700;}
.frp-hf-search{display:flex;align-items:center;gap:10px;justify-content:flex-end;}
.frp-hf-searchbox{display:flex;align-items:center;gap:10px;border:1px solid rgba(0,0,0,.15);border-radius:2px;padding:10px 12px;width:100%;max-width:320px;background:#fff;}
.frp-hf-searchbox svg{width:18px;height:18px;fill:#0b5fb3;flex:0 0 auto;}
.frp-hf-searchbox input{border:none;outline:none;width:100%;font-size:15px;line-height:1.2;}
.frp-hf-burger{display:none;width:44px;height:44px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:#fff;align-items:center;justify-content:center;cursor:pointer;}
.frp-hf-burger span{width:18px;height:2px;background:#111;display:block;position:relative;}
.frp-hf-burger span:before,.frp-hf-burger span:after{content:"";position:absolute;left:0;width:18px;height:2px;background:#111;}
.frp-hf-burger span:before{top:-6px;}
.frp-hf-burger span:after{top:6px;}
.frp-hf-drawer{position:fixed;inset:0;z-index:2500;display:none;}
.frp-hf-drawer[aria-hidden="false"]{display:block;}
.frp-hf-drawer__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.35);}
.frp-hf-drawer__panel{position:absolute;top:0;bottom:0;left:0;width:min(360px,88vw);background:#fff;padding:16px;display:flex;flex-direction:column;gap:12px;}
.frp-hf-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.frp-hf-drawer__close{width:44px;height:44px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:#fff;cursor:pointer;}
.frp-hf-drawer__nav a{display:block;padding:12px 10px;border-radius:2px;text-decoration:none;color:#111;}
.frp-hf-drawer__nav a:hover{background:#F8F9FA;}
.frp-hf-drawer__cta{margin-top:auto;display:block;text-align:center;padding:12px 14px;border-radius:2px;background:#0b5fb3;color:#fff;text-decoration:none;font-weight:700;}
.frp-hf-drawer__cta:hover{ color: #fff;}
@media (max-width:1440px){
  .frp-hf-search{ width: 44px;}
  .frp-hf-main .frp-hf-wrap{ display: flex; justify-content: space-between; ;}
}
@media (max-width:980px){.frp-hf-burger{display:none;} .frp-hf-nav li{ margin: 0 8px;}.frp-hf-main .frp-hf-wrap{grid-template-columns:1fr auto;}}
/* Footer */
.frp-hf-footer{background:#fff;margin-top:0;border-top:1px solid rgba(0,0,0,.08);}
.frp-hf-footmain .frp-hf-wrap{padding:60px 16px 40px;}
.frp-hf-footgrid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.2fr;gap:36px;align-items:start;}
.frp-hf-footlogo img{width:170px;height:auto;display:block;margin-bottom:16px;}
.frp-hf-footp{font-size:16px;line-height:1.75;color:#444;margin:0 0 12px;max-width:260px;   /* 新增这一行 */}
.frp-hf-social{display:flex;gap:12px;margin-top:18px;}
.frp-hf-socbtn{width:38px;height:38px;border-radius:999px;border:1px solid rgba(0,0,0,.14);display:inline-flex;align-items:center;justify-content:center;color:#9aa3ad;text-decoration:none;}
.frp-hf-socbtn:hover{border-color:#0b5fb3;color:#0b5fb3;}
.frp-hf-ttl{font-size:20px;font-weight:800;letter-spacing:.02em;color:#0b5fb3;margin:0 0 14px;text-transform:uppercase;}
.frp-hf-list{list-style:none;margin:0;padding:0;}
.frp-hf-list li{margin:10px 0;}
.frp-hf-list a{color:#333;text-decoration:none;font-size:16px;line-height:1.6;}
.frp-hf-list a:hover{color:#0b5fb3;}
/* GET IN TOUCH spacing */
.frp-hf-touch{
  display:flex;
  flex-direction:column;
  gap:14px;            /* 原来 12px -> 加大每项之间的间距 */
}

.frp-hf-touchitem{
  display:flex;
  gap:10px; margin-bottom: 10px;
  align-items:flex-start;
  color:#333;
  font-size:16px;      /* 原来 15px -> 与 Quick Links 更接近 */
  line-height:1.75;    /* 原来 1.6 -> 多行地址更舒服 */
}
.frp-hf-touchitem svg{width:18px;height:18px;fill:#0b5fb3;margin-top:3px;flex:0 0 auto;}
.frp-hf-touchbtn{display:inline-flex;align-items:center;justify-content:center;max-width:240px;padding:12px 16px;border:1px solid #0b5fb3;border-radius:2px;background:#fff;color:#0b5fb3;text-decoration:none;font-weight:700;margin-top:8px;}
.frp-hf-touchbtn:hover{background:#F8F9FA;}
.frp-hf-footbar{background:#0b5fb3;color:#fff;}
.frp-hf-footbar .frp-hf-wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 16px;font-size:16px;flex-wrap:wrap;}
.frp-hf-footbar a{color:#fff;text-decoration:none;}
.frp-hf-footbar a:hover{text-decoration:underline;}
@media (max-width:980px){.frp-hf-footgrid{grid-template-columns:1fr 1fr;gap:26px;}}
@media (max-width:560px){.frp-hf-footgrid{grid-template-columns:1fr;}}

.ban_arrow{ width: 100%; position: absolute; top: 42%; left: 0;  }
.ban_arrow span{ display: inline-block; width: 54px; height: 54px; line-height: 54px; background: transparent; text-align: center; border-radius: 54px; cursor: pointer; position: absolute; top: 0; }
.ban_arrow span i{ color: #fff; font-size: 40px; font-weight: bold; }
.ban_arrow span.ban_prev{ left: 8%; transform: rotate(180deg); }
.ban_arrow span.ban_next{ right: 8%; }
.ban_arrow span:hover i{ color: #0155b6; }

/* ===== FRP Wide Blocks (Banner/Header/Footer) ===== */
.frp-wide-container{max-width:1680px;margin:0 auto;padding:0 16px;}
/* Banner on homepage should sit right below header */
.frp-home-page .frp-banner-page{margin-top:11px;}
/* Remove any accidental gap before footer */
.frp-hf-footer{margin-top:0;}
/* ===== Search overlay (Homepage) ===== */
.frp-hf-searchicon{display:none;width:44px;height:44px;border-radius:999px;border:none;background:transparent;cursor:pointer;align-items:center;justify-content:center;}
.frp-hf-searchicon svg{width:22px;height:22px;fill:#0b5fb3;}
.frp-home-page .frp-hf-search{gap:0;}
.frp-home-page .frp-hf-searchbox{display:none !important;}
.frp-home-page .frp-hf-searchicon{display:inline-flex;}
/* Search: dropdown bar under the navigation (no dim overlay) */
.frp-search-overlay{position:fixed;inset:0;z-index:1300;display:none;}
.frp-search-overlay[aria-hidden="false"]{display:block;}
/* keep as a click-catcher, but visually transparent */
.frp-search-overlay__backdrop{position:absolute;inset:0;background:transparent;}

frp-search-overlay__panel{
  position:absolute;
  left:50%;
  top:calc(var(--frp-hf-offset, 120px) + 10px);
  transform:translateX(-50%);
  width:min(1320px, calc(100vw - 40px));
  background:#fff;
  border-radius:2px;
  box-shadow:0 18px 40px rgba(0,0,0,.12);
  padding:18px;
  border:1px solid #e5e7eb;
}

.frp-searchbar{display:flex;gap:0;border:1px solid rgba(0,0,0,.18);border-radius:2px;overflow:hidden;}
.frp-searchbar input{flex:1;border:none;outline:none;padding:18px 16px;font-size:18px;line-height:1.2;}
.frp-searchbar button{width:88px;border:none;background:#0b5fb3;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.frp-searchbar button svg{width:22px;height:22px;fill:#fff;}
/* ===== Contact modal open hook ===== */
.frp-overlay[aria-hidden="true"]{display:none;}
.frp-overlay[aria-hidden="false"]{display:block;}

/* ===== PATCH v3: Fixed header, search modal, contact modal, and footer links ===== */

/* 1) Header must stay fixed */
.frp-hf-header{
  position:fixed !important;
  top:0; left:0; right:0;
  z-index:2000;
}
body{ padding-top: var(--frp-hf-offset, 120px); }

/* keep header width full; inner wraps remain 1680 */
.frp-hf-topbar, .frp-hf-main{ width:100%; }

/* 2) Footer should touch previous section */
.frp-hf-footer{ margin-top:0 !important; }

/* 3) Footer link clickability */
.frp-hf-touchitem a, .frp-hf-topitem a{ pointer-events:auto; }
.frp-hf-touchitem a{ color:inherit; text-decoration:none; }
.frp-hf-touchitem a:hover{ text-decoration:underline; }

/* 4) Search icon only (no box) in header on desktop */
.frp-hf-search{ justify-content:flex-end; }
.frp-hf-searchbox{ display:none !important; } /* hide old box */
.frp-hf-searchicon{
  width:44px; height:44px;
  border-radius:999px;
  border:none;
  background:transparent;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.frp-hf-searchicon svg{ width:22px; height:22px; fill:#0b5fb3; }
.frp-hf-searchicon:hover{ background:#F8F9FA; }

/* 5) Search modal overlay like screenshot */
.frp-search-modal{
  position:fixed; inset:0;
  z-index:2100;
  display:none;
}
.frp-search-modal[aria-hidden="false"]{ display:block; }
.frp-search-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); }
.frp-search-modal__panel{
  position:absolute;
  left:50%; top:260px;
  transform:translateX(-50%);
  width:min(1320px, calc(100vw - 40px));
  background:#fff;
  border-radius:2px;
  box-shadow:0 18px 50px rgba(0,0,0,.18);
  padding:26px 26px 22px;
}
.frp-search-modal__row{
  display:flex; gap:0;
  border:1px solid rgba(0,0,0,.18);
  border-radius:2px;
  overflow:hidden;
}
.frp-search-modal__row input{
  flex:1;
  border:0;
  outline:0;
  padding:18px 16px;
  font-size:18px;
}
.frp-search-modal__row button{
  width:92px;
  border:0;
  background:#0b5fb3;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}
.frp-search-modal__row button:hover{ filter:brightness(.95); }

/* 6) Contact modal: force overlay center (fig1) */
.frp-contact-modal{
  position:fixed; inset:0;
  z-index:2200;
  display:none;
  overflow:auto;
  padding:20px;
  box-sizing:border-box;
}
.frp-contact-modal[aria-hidden="false"]{ display:block; }
.frp-contact-modal__backdrop{ position:absolute; inset:0; background:transparent; }
.frp-contact-modal__panel{
  position:absolute;
  left:50%; top:20px;
  transform:translateX(-50%);
  width:min(1320px, calc(100vw - 40px));
  max-height:none;
  overflow:visible;
  background:#fff;
  border-radius:2px;
  box-shadow:0 18px 50px rgba(0,0,0,.18);
}

/* Remove the inner "preview" gray wrapper when the contact form is used as a real modal */
.frp-contact-modal__panel .frp-overlay{
  background:transparent !important;
  padding:0 !important;
 height:auto !important;
  min-height:0 !important;
}
.frp-contact-modal__close{
  position:absolute;
  right:18px; top:18px;
  width:56px; height:56px;
  border-radius:999px;
  border:none;
  background:#0b5fb3;
  color:#fff;
  font-size:26px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}
.frp-contact-modal__close:hover{ filter:brightness(.95); }

/* Make sure any embedded contact modal content fits panel */
.frp-contact-modal__panel .contact-modal-inner,
.frp-contact-modal__panel .contact-modal,
.frp-contact-modal__panel .frp-contact-inner{
  width:100%;
}

/* ===== Force contact modal tokens (same on every page) ===== */
.frp-contact-modal{
  --line:#e5e7eb;     /* 你指定的线色 */
  --text:#333333;     /* 统一正文色，避免少数页没定义 --text */
}

/* Footer/buttons font sizes */
.frp-hf-topitem{ font-size:15px !important; }
.frp-hf-nav a{ font-size:20px !important; }
.frp-hf-ttl{ font-size:19px !important; }
.frp-hf-list a, .frp-hf-touchitem{ font-size:16px !important; }

/* ===== PATCH v4: Language dropdown + ensure single search UI ===== */

/* Strongly hide any legacy header search boxes/inputs */
.frp-hf-header .frp-hf-searchbox,
.frp-hf-header input[type="search"],
.frp-hf-header .frp-hf-search input{ display:none !important; }

/* Global button helpers (used by success page and lightweight CTAs) */
.frp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 18px;
  border-radius:2px;
  text-decoration:none;
  font-weight: normal;
  font-size: 18px;
  line-height:1;
  border:1px solid transparent;
  cursor:pointer;
}
.frp-btn--primary{ background:#0155B6; color:#fff; }
.frp-btn--primary:hover{ filter:brightness(.96); color:#fff; }
.frp-btn--ghost{ background:#fff; color:#0155B6; border-color:#cfd8e3; }
.frp-btn--ghost:hover{ background:#f6f8fb; }

body.frp-product-page .frp-btn--light{ background: #fff;
    color: var(--frp-primary);
    border-color: rgba(255, 255, 255, .30);
    font-weight: 700;
    border-radius: var(--frp-radius);}
/* Success page */
.frp-success{ padding:72px 0; }
.frp-nch-page .frp-success .frp-container{ max-width:1320px; margin:0 auto; padding:0 20px; }
.frp-success__card{
  border:1px solid #e5e7eb;
  border-radius:2px;
  background:#fff;
  box-shadow:0 18px 40px rgba(0,0,0,.06);
  padding: clamp(22px, 3vw, 36px);
  max-width: 860px;
  margin:0 auto;
}
.frp-success__icon{
  width:54px; height:54px;
  border-radius:999px;
  display:grid; place-items:center;
  background:rgba(1,85,182,.10);
  color:#0155B6;
  font-size:26px;
  font-weight:800;
  margin-bottom:14px;
}
.frp-success__title{ margin:0 0 10px; font-size:clamp(28px, 3vw, 42px); line-height:1.15; letter-spacing:-0.01em; }
.frp-success__text{ margin:0 0 22px; font-size:18px; line-height:1.75; color:#333; max-width:65ch; }
.frp-success__actions{ display:flex; flex-wrap:wrap; gap:12px; }

/* Language dropdown */
.frp-hf-lang{ position:relative; cursor:pointer; user-select:none; }
.frp-hf-langbtn{
  display:inline-flex; align-items:center; gap:8px;
  background:transparent; border:0; color:#fff; font:inherit;
  cursor:pointer; padding:6px 8px; border-radius:2px;
}
.frp-hf-langbtn:hover{ background:rgba(255,255,255,.10); }
.frp-hf-langmenu{
  position:absolute; right:0; top:calc(100% + 10px);
  min-width:180px; background:#fff;
  border:1px solid rgba(0,0,0,.12); border-radius:2px;
  box-shadow:0 14px 28px rgba(0,0,0,.14);
  padding:6px; display:none; z-index:2500;
}
.frp-hf-langmenu a{
  display:block; padding:10px 10px; border-radius:2px;
  color:#333; text-decoration:none; font-size:14px;
}
.frp-hf-langmenu a:hover{ background:#F8F9FA; }
.frp-hf-lang[aria-expanded="true"] .frp-hf-langmenu{ display:block; }

/*test*/

/* ===== PATCH v5: Footer typography + responsive column rules (Desktop/Tablet/Phone) ===== */
.frp-hf-footp,
.frp-hf-list a,
.frp-hf-touchitem{ font-size:18px !important; }

.frp-hf-ttl{
  font-size:clamp(18px, 1.2vw + 14px, 24px) !important;
  font-weight:600 !important;
  letter-spacing:0.02em !important;
}

/* Footer responsive rules:
   Desktop (>=1025): show all
   Tablet (768-1024): show Quick Links + Get In Touch (2 cols), keep copyright
   Phone (<=767.98): show only Get In Touch (1 col), hide copyright
*/
@media (min-width:768px) and (max-width:1024px){
  .frp-hf-footgrid{ grid-template-columns:1fr 1fr !important; gap:26px !important; }
  .frp-hf-footgrid > div:nth-child(-n+2){ display:none !important; } /* hide logo + hot products */
  .frp-hf-footgrid > div:nth-child(3){ display:block !important; } /* quick links */
  .frp-hf-footgrid > .frp-hf-touch{ display:flex !important; }
}

@media (max-width:767.98px){
  .frp-hf-footgrid{ grid-template-columns:1fr !important; gap:22px !important; }
  .frp-hf-footgrid > div:not(.frp-hf-touch){ display:none !important; }
  .frp-hf-footbar{ display:none !important; }
}

/* Ensure footer remains fully visible on desktop */
@media (min-width:1025px){
  .frp-hf-footgrid > *{ display:block; }
  .frp-hf-footbar{ display:block; }
}

/* Search icon: no border/outline box */
.frp-hf-searchicon{ border:0 !important; box-shadow:none !important; }

/* ===== PATCH v5: Phone header layout (logo + language + search + burger) ===== */
.frp-hf-lang--main{ display:none; align-items:center; gap:8px; }
.frp-hf-lang--main svg{ width:18px; height:18px; fill:#0b5fb3; }
.frp-hf-lang--main .frp-hf-langbtn{ color:#0b5fb3; }
.frp-hf-lang--main .frp-hf-langbtn:hover{ background:#F8F9FA; }

@media (max-width:767.98px){
  .frp-hf-topbar{ display:none !important; }
  .frp-hf-lang--main{ display:flex !important; }
  .frp-hf-main .frp-hf-wrap{ gap:10px; }
  .frp-hf-search{ display:flex !important; gap:6px; align-items:center;  }
        .frp-hf-logo img{ width: 125px;}
        body{ padding-top: 80px;}
        .frp-home-page .frp-banner-page{ margin-top: 0;}
        .search_box{ top: 80px;}
}

/* ===== PATCH v5: Contact modal should NOT include extra header/footer ===== */
.frp-contact-modal__panel .frp-hf-header,
.frp-contact-modal__panel .frp-hf-footer,
.frp-contact-modal__panel .frp-hf-drawer{ display:none !important; }

/* ===== PATCH v5: PRODUCTS FIX PATCH (moved from products.html stray tail) ===== */
/* ===============================
   PRODUCTS FIX PATCH
   (force cards to full-size FRP grid)
=============================== */

body.frp-products-page ul.plistul{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:clamp(10px, 2vw, 30px) !important;

  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}

@media (max-width:1024px){
  body.frp-products-page ul.plistul{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width:767.98px){
  body.frp-products-page ul.plistul{
    grid-template-columns:1fr !important;
  }
}

/* ✅关键：把“缩成小块”的来源全部打掉 */
body.frp-products-page ul.plistul > li,
body.frp-products-page ul.plistul > li .inpivsi,
body.frp-products-page ul.plistul > li .inpivsi > a{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}

/* 有些模板会给卡片 text-align:center 影响图片成为 inline 缩小，这里强制恢复 */
body.frp-products-page ul.plistul > li .inpivsi{
  text-align:initial !important;
}

/* 卡片本体 */
body.frp-products-page ul.plistul > li .inpivsi > a{
  display:flex !important;
  flex-direction:column !important;
  height:100% !important;

  background:#fff !important;
  border:1px solid #e5e7eb !important;
  overflow:hidden !important;
  text-decoration:none !important;
  color:inherit !important;

  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
}

body.frp-products-page ul.plistul > li .inpivsi > a:hover{
  transform:translateY(-4px) !important;
  border-color:#d1d5db !important;
  box-shadow:0 18px 40px rgba(0,0,0,.08) !important;
}

/* ✅图片必须“撑满盒子”：3:2 */
body.frp-products-page ul.plistul > li .inpivsi .changpic{
  width:100% !important;
  max-width:none !important;
  aspect-ratio:3 / 2 !important;
  overflow:hidden !important;
  background:#f3f4f6 !important;
}

/* ✅把所有导致图片变小的规则压掉 */
body.frp-products-page ul.plistul > li .inpivsi .changpic img{
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;

  display:block !important;          /* 防止 inline 缩小 */
  object-fit:cover !important;

  transform:none !important;         /* 压掉模板里可能的缩放 */
}

/* 标题：20px 居中 + 两行截断 */
body.frp-products-page ul.plistul > li .inpivsi > a > p{
  margin:0 !important;
  padding:22px 20px !important;

  font-size:20px !important;
  font-weight:600 !important;
  line-height:1.4 !important;
  text-align:center !important;
  color:#111827 !important;

  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  overflow:hidden !important;
  min-height:calc(1.4em * 2) !important;

  transition:color .25s ease !important;
}
body.frp-products-page ul.plistul > li .inpivsi > a:hover > p{
  color:#0155B6 !important;
}

.frp-hl-hero{
--wrap:1320px;
--container-pad:20px;

color:#fff;
background:linear-gradient(135deg,#0B5FB3,#083E77);
}

    /* full-bleed */
    .frp-hl-hero--fullbleed{
      width:100vw;
      margin-left:calc(50% - 50vw);
      margin-right:calc(50% - 50vw);
    }

    @media (min-width:1320px){
      .frp-hl-hero{ --container-pad:0px; }
    }

    .frp-hl-hero__wrap{
      max-width:var(--wrap);
      margin:0 auto;
      padding-left:var(--container-pad);
      padding-right:var(--container-pad);
    }

    .frp-hl-hero__inner{
      min-height:360px;
      display:flex;
      flex-direction:column;
      justify-content:center;
      padding:35px 0;
    }

    /* TECHNICAL HIGHLIGHTS: 14px / 600 */
    .frp-hl-hero__kicker{
      font-size:14px;
      font-weight:600;
      letter-spacing:0.14em;
      text-transform:uppercase;
      margin:0 0 14px 0;
      opacity:0.95;
    }

    /* H1 */
    .frp-hl-hero__title{
      font-size:52px;
      font-weight:800;
      line-height:1.08;
      letter-spacing:-0.02em;
      margin:0 0 12px 0;
    }

    /* Desc: 18px */
    .frp-hl-hero__desc{
      font-size:18px;
      line-height:1.75;
      margin:0;
      max-width:60ch;
      opacity:0.92;
    }

    @media (max-width:1024px){
      .frp-hl-hero__inner{ min-height:320px; padding:72px 0; }
      .frp-hl-hero__title{ font-size:46px; }
      .ban_arrow span i{ font-size: 28px;}
      .frp-hf-list li{ margin: 0; margin-bottom: 10px;}
      .frp-hf-touchitem{ line-height: 1.6;}
      .frp-hf-touch{ gap: 0;}
      
    }

    /* Mobile: H1 = 36px (fixed, no overall scaling) */
    @media (max-width:767.98px){
      .frp-hl-hero__inner{ min-height:240px; padding:56px 0; }
      .frp-hl-hero__title{ font-size:36px; }
    }

/* ===== PATCH v5: Mobile header language in main row ===== */
.frp-hf-lang--main{ display:none; }
@media (max-width: 767.98px){
  .frp-hf-topbar{ display:none !important; }
  .frp-hf-lang--main{ display:flex !important; position: absolute;
        right: 98px; }
        .frp-hf-burger{ display: flex;}
        .frp-hf-nav{ display:none; }
        .frp-hf-search{ width: auto;}
        .ban_arrow span.ban_prev{ left: 0;}
        .ban_arrow span.ban_next{ right: 0;}
        .frp-banner__desc{ padding: 0 10px; line-height: 1.4;}

}

/* Hide inner close button when the form is shown inside the contact modal (keep only the blue ×) */
.frp-contact-modal .frp-dialog__close{ display:none !important; }

/* ===== FRP REAL MODAL SYSTEM ===== */
.frp-modal{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
}

.frp-modal.is-open{
  display: block;
}

.frp-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.35);
}

.frp-modal__dialog{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(1120px, calc(100vw - 48px));
  max-height: calc(100vh - 48px);
  overflow: auto;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 18px 45px rgba(0,0,0,.25);
  padding: 24px;
}

.frp-modal__close{
  position: absolute;
  right: 14px;
  top: 14px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 0;
  cursor: pointer;
  font-size: 24px;
  line-height: 44px;
  background: #0a4ea3;
  color: #fff;
}

body.frp-modal-open{
  overflow: hidden;
  height: 100%;
}

/* =====================================================
   FRP Contact Modal – Global Stable Tokens
   Force identical appearance across all pages
===================================================== */
.frp-contact-modal{
  --frp-modal-text:#333333;
  --frp-modal-line:#e5e7eb;
  --frp-modal-bg:#ffffff;
  --frp-modal-shadow:0 24px 60px rgba(0,0,0,.18);
}
.frp-dialog{
  background:var(--frp-modal-bg);
  border:1px solid var(--frp-modal-line);
  box-shadow:var(--frp-modal-shadow);
  color:var(--frp-modal-text);
}
.frp-dialog__title{ color:var(--frp-modal-text); }
.frp-needs{ color:var(--frp-modal-text); border-right:1px solid var(--frp-modal-line); }
.frp-details{ color:var(--frp-modal-text); }
.frp-dialog hr{ border:none; border-top:1px solid var(--frp-modal-line); }
@media (max-width:1024px){
  .frp-needs{ border-right:none; border-bottom:1px solid var(--frp-modal-line); }
}

/* =========================================================
   FRP GLOBAL CONTENT WIDTH FIX — V2 CLEAN
   Notes:
   - Header / footer keep original wide .frp-hf-wrap layout
   - Wide / full-bleed modules keep original .frp-wide-container logic
   - Only content containers are normalized here
========================================================= */
:root{
  --frp-site-content-max:1320px;
  --frp-site-content-gutter:20px;
  --frp-site-content-gutter-mobile:16px;
}

/* Keep page-level container tokens consistent on desktop */
body.frp-about-page,
body.frp-contact-page,
body.frp-products-page,
body.frp-case-page,
body.frp-highlight-page,
body.frp-nch-page,
body.frp-product-page{
  --container-pad:20px;
}
body.frp-product-page{
  --frp-pad-x:16px;
}

/* Content containers only */
body.frp-home-page .frp-container,
body.frp-about-page .frp-container,
body.frp-contact-page .frp-container,
body.frp-product-page .frp-container,
body.frp-news-page .frp-container,
body.frp-nch-page .frp-container,
body.frp-products-page .frp-home-container,
body.frp-case-page .frp-home-container,
body.frp-highlight-page .frp-home-container{
  width:min(var(--frp-site-content-max), calc(100vw - (var(--frp-site-content-gutter) * 2)));
  max-width:none;
  margin-left:auto;
  margin-right:auto;
  padding-left:0;
  padding-right:0;
  box-sizing:border-box;
}

@media (max-width:767.98px){
  body.frp-home-page .frp-container,
  body.frp-about-page .frp-container,
  body.frp-contact-page .frp-container,
  body.frp-product-page .frp-container,
  body.frp-news-page .frp-container,
  body.frp-nch-page .frp-container,
  body.frp-products-page .frp-home-container,
  body.frp-case-page .frp-home-container,
  body.frp-highlight-page .frp-home-container{
    width:calc(100vw - (var(--frp-site-content-gutter-mobile) * 2));
  }
}

/* =========================================================
   FRP V4 TARGETED PATCH
   Based on V2.
   Only fixes:
   1) list-page top hero edge gap
   2) product-detail benefits alignment
   3) list-page bottom contact form double padding
   Header / footer / other sections remain as in V2.
========================================================= */

/* 1) Top hero on products / news / case / highlight */
.frp-hl-hero{
  --container-pad:20px !important;
}
.frp-hl-hero__wrap{
  width:min(1320px, calc(100vw - 40px));
  max-width:none !important;
  margin-left:auto;
  margin-right:auto;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box;
}
@media (max-width:767.98px){
  .frp-hl-hero__wrap{
    width:calc(100vw - 32px);
  }
}

/* 2) Product detail benefits: align card strip with section title container */
@supports (padding-left: max(0px, 1px)){
  .frp-pd-benefits__viewport{
    padding-left:max(
      var(--frp-pad-x),
      calc((100vw - min(var(--frp-container), calc(100vw - (var(--frp-pad-x) * 2)))) / 2)
    ) !important;
  }
}

@media (min-width:1024.02px){
  .frp-pd-benefits__card{
    flex:0 0 calc((min(var(--frp-container), calc(100vw - (var(--frp-pad-x) * 2))) - (var(--frp-gap) * 2)) / 3) !important;
  }
}

/* 3) Bottom contact form on products / case / news / highlight:
      remove double edge calculation, keep exact 20px side gap */
body.frp-products-page .frp-contact .frp-container,
body.frp-case-page .frp-contact .frp-container,
body.frp-news-page .frp-contact .frp-container,
body.frp-highlight-page .frp-contact .frp-container{
  width:min(1320px, calc(100vw - 40px));
  max-width:none !important;
  margin-left:auto;
  margin-right:auto;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box;
}
@media (max-width:767.98px){
  body.frp-products-page .frp-contact .frp-container,
  body.frp-case-page .frp-contact .frp-container,
  body.frp-news-page .frp-contact .frp-container,
  body.frp-highlight-page .frp-contact .frp-container{
    width:calc(100vw - 32px);
  }
}

@media (max-width: 1024px){
  body.frp-case-page .filinput{
    padding-left: 32px;
  }
}

@media (max-width: 767.98px){
  body.frp-case-page .filtivv{
    display: block;
  }

  body.frp-case-page .filtivv h3{
    width: 100%;
    margin-bottom: 20px;
  }

  body.frp-case-page .filinput{
    width: 100%;
    padding-left: 0;
  }
}

/* CASE page filter – keep standard 20px outer spacing at 1320–1360 */
body.frp-case-page .filtdiv > .frp-container{
  width: min(1320px, calc(100vw - 40px)) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* =========================
   CONTACT PAGE – map + newsletter spacing fix
   put at the very end of style.css
========================= */

/* 1) map top spacing: responsive like other sections */
body.frp-contact-page .map{
  margin-top: clamp(32px, 4vw, 68px) !important;
}

/* 2) newsletter section vertical spacing */
body.frp-contact-page .frp-home-newsletter{
  padding-top: clamp(64px, 7vw, 100px) !important;
  padding-bottom: clamp(64px, 7vw, 100px) !important;
}

/* 3) keep contact page newsletter inner container from adding weird extra spacing */
body.frp-contact-page .frp-home-newsletter > .frp-container{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* 4) small-screen form tightening */
@media (max-width: 767.98px){
  body.frp-contact-page .frp-home-newsletter__form{
    gap: 12px;
  }

  body.frp-contact-page .frp-home-newsletter__btn{
    padding: 12px 18px;
  }

  body.frp-contact-page .frp-home-newsletter__input{
    padding: 12px 14px;
  }
}

产品下拉页面优化排版
/* ===== Mega Menu Typography ===== */

/* 左侧标题 Products */
.nav_menu h4 a{
  font-size:18px;
  font-weight:600;
  color:#0155B6;
  letter-spacing:0.02em;
}

/* 左侧一级分类 */
.nadld dd span{
  font-size:16px;
  font-weight:400;
  color:#333333;
}

/* hover */
.nadld dd:hover span{
  color:#0155B6;
}

/* 右侧产品列表 */
.bldlb dd a{
  font-size:15px;
  font-weight:400;
  color:#444444;
  line-height:1.8;
}

/* hover */
.bldlb dd a:hover{
  color:#0155B6;
}

/* ===== Mega menu typography reset ===== */

/* 左上角标题 */
.nav_menu .nmelef h4 a{
  font-size:22px !important;
  font-weight:600 !important;
  color:#0155B6 !important;
  line-height:1.4 !important;
}

/* 左侧一级分类 */
.nav_menu .nmelef .nadld dd span{
  font-size:19px !important;
  font-weight:400 !important;
  color:#333333 !important;
  line-height:1.5 !important;
}

/* 右侧二级链接 */
.nav_menu .nmerig .bldlb dd a{
  font-size:18px !important;
  font-weight:400 !important;
  color:#333333 !important;
  line-height:1.7 !important;
}

文章页左右图文板块 移动端文字铺满
@media (max-width: 1024px){
  body.frp-nch-page .frp-sup-split__body{
    max-width: none;
  }
}
@media (max-width: 1024px){
  body.frp-nch-page .frp-sup-split__content > div{
    width: 100%;
    max-width: none;
  }

  body.frp-nch-page .frp-sup-split__body{
    max-width: none;
  }
}

/* =========================================================
   STAGE 3 STABILITY BRIDGE
   Safe semantic aliases for legacy classes.
   Keep old classes working while new names are introduced.
   ========================================================= */
:root{
  --site-space-xs:8px;
  --site-space-sm:16px;
  --site-space-md:24px;
  --site-space-lg:40px;
  --site-space-xl:80px;
  --site-radius-sm:10px;
  --site-radius-md:16px;
  --site-radius-lg:24px;
  --site-shadow-sm:0 8px 24px rgba(15,23,42,.08);
}

.container,
.frp-container{
  width:min(1320px, calc(100% - 48px));
  margin-left:auto;
  margin-right:auto;
}
.container--home,
.frp-home-container{
  width:min(1400px, calc(100% - 48px));
  margin-left:auto;
  margin-right:auto;
}
.container--wide,
.frp-wide-container{
  width:min(1600px, calc(100% - 48px));
  margin-left:auto;
  margin-right:auto;
}
@media (max-width: 767.98px){
  .container,
  .frp-container,
  .container--home,
  .frp-home-container,
  .container--wide,
  .frp-wide-container{
    width:calc(100% - 32px);
  }
}

.section{ padding:var(--site-space-xl) 0; }
.grid{ display:grid; gap:var(--site-space-md); }
.grid-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width: 991.98px){
  .grid-2,
  .grid-3{ grid-template-columns:1fr; }
}
.card{
  background:#fff;
  border-radius:var(--site-radius-md);
  box-shadow:var(--site-shadow-sm);
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:0 22px;
  border-radius:999px;
  text-decoration:none;
}

.site-nav-menu,
.nav_menu{}
.site-search,
.search_box{}
.site-dropdown-panel,
.insebox{}

.site-side-contact,
.sider-contact{}
.site-side-contact.hide,
.sider-contact.hide{ transform:translate(100%,-50%); }
.site-side-contact.hide #sider-contact-switcher i,
.sider-contact.hide #sider-contact-switcher i{ transform:rotate(180deg); }
.site-side-contact__list,
.right-nav{
  align-items:center;
  list-style:none;
  margin:0;
  display:flex;
  padding:16px 14px;
  flex-flow:column;
  font-size:1.2rem;
  line-height:1.4rem;
}
.site-side-contact__list li,
.right-nav li{
  height:62px;
  list-style:none;
  border-bottom:1px solid #f0f0f0;
  position:relative;
  width:56px;
}
.site-side-contact__list li:last-child,
.right-nav li:last-child{ border-bottom:none; }
.site-side-contact__list li a,
.right-nav li a{
  align-items:center;
  color:#1f1a17;
  display:flex;
  flex-flow:column;
  height:100%;
  justify-content:center;
  transition:all .3s ease;
  width:100%;
}
.site-side-contact__tooltip,
.right_hide{ display:none; }
.site-side-contact__list li:hover .site-side-contact__tooltip,
.site-side-contact__list li:hover .right_hide,
.right-nav li:hover .site-side-contact__tooltip,
.right-nav li:hover .right_hide{ display:block; }
