.elementor-kit-1850{--e-global-color-primary:#1E1E2A;--e-global-color-secondary:#494A4D;--e-global-color-text:#494A4D;--e-global-color-accent:#1B8415;--e-global-color-b5aeb33:#1B8415;--e-global-color-c58817e:#0f2b3e;--e-global-color-5420d44:#2773a5;--e-global-color-58be983:#ffffff;--e-global-color-09cc561:#0d141a;--e-global-color-a495fd4:#1B8415;--e-global-color-dff8941:#D4D4D5;--e-global-color-a7b8c9d:#ffffff;--e-global-color-b1c2d3e:#16202A;--e-global-typography-primary-font-family:"Helvetica";--e-global-typography-primary-font-size:30px;--e-global-typography-primary-font-weight:600;--e-global-typography-primary-line-height:1.5em;--e-global-typography-secondary-font-family:"Helvetica";--e-global-typography-secondary-font-size:24px;--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-line-height:1.5em;--e-global-typography-text-font-family:"Helvetica";--e-global-typography-text-font-size:14px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Helvetica";--e-global-typography-accent-font-size:14px;--e-global-typography-accent-font-weight:400;--e-global-typography-accent-line-height:1.5em;--e-global-typography-5535e8e-font-family:"Helvetica";--e-global-typography-5535e8e-font-size:3rem;--e-global-typography-5535e8e-font-weight:700;--e-global-typography-c83476d-font-family:"Helvetica";--e-global-typography-c83476d-font-size:2.5rem;--e-global-typography-c83476d-font-weight:bold;--e-global-typography-ff8f921-font-family:"Helvetica";--e-global-typography-ff8f921-font-size:2.3rem;--e-global-typography-ff8f921-font-weight:bold;--e-global-typography-887fca2-font-family:"NunitoSans";--e-global-typography-887fca2-font-size:1rem;--e-global-typography-887fca2-font-weight:400;--e-global-typography-2142591-font-family:"NunitoSans";--e-global-typography-2142591-font-size:1rem;--e-global-typography-2142591-font-weight:700;--e-global-typography-6e52843-font-family:"NunitoSans";--e-global-typography-6e52843-font-size:1rem;--e-global-typography-6e52843-font-weight:500;--e-global-typography-a834ab5-font-family:"Helvetica";--e-global-typography-a834ab5-font-size:64px;--e-global-typography-a834ab5-font-weight:600;font-family:"NunitoSans", Sans-serif;}.elementor-kit-1850 button,.elementor-kit-1850 input[type="button"],.elementor-kit-1850 input[type="submit"],.elementor-kit-1850 .elementor-button{background-color:var( --e-global-color-b5aeb33 );font-family:"NunitoSans", Sans-serif;border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-b5aeb33 );border-radius:8px 8px 8px 8px;}.elementor-kit-1850 button:hover,.elementor-kit-1850 button:focus,.elementor-kit-1850 input[type="button"]:hover,.elementor-kit-1850 input[type="button"]:focus,.elementor-kit-1850 input[type="submit"]:hover,.elementor-kit-1850 input[type="submit"]:focus,.elementor-kit-1850 .elementor-button:hover,.elementor-kit-1850 .elementor-button:focus{background-color:var( --e-global-color-58be983 );color:var( --e-global-color-b5aeb33 );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-b5aeb33 );border-radius:4px 4px 4px 4px;}.elementor-kit-1850 e-page-transition{background-color:#FFBC7D;}.elementor-kit-1850 a{color:#1B8415;}.elementor-kit-1850 h1{font-family:"Montserrat", Sans-serif;font-size:3rem;font-weight:700;}.elementor-kit-1850 h2{font-family:"Montserrat", Sans-serif;font-size:2.5rem;font-weight:bold;}.elementor-kit-1850 h3{font-family:"Montserrat", Sans-serif;}.elementor-kit-1850 h4{font-family:"Montserrat", Sans-serif;}.elementor-kit-1850 h5{font-family:"Montserrat", Sans-serif;}.elementor-kit-1850 h6{font-family:"Montserrat", Sans-serif;}.elementor-kit-1850 img{border-radius:8px 8px 8px 8px;}.elementor-kit-1850 input:not([type="button"]):not([type="submit"]),.elementor-kit-1850 textarea,.elementor-kit-1850 .elementor-field-textual{border-radius:4px 4px 4px 4px;}.elementor-kit-1850 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-1850 textarea:focus,.elementor-kit-1850 .elementor-field-textual:focus{border-radius:4px 4px 4px 4px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:80%;}.e-con{--container-max-width:80%;--container-default-padding-top:10px;--container-default-padding-right:10px;--container-default-padding-bottom:10px;--container-default-padding-left:10px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-1850{--e-global-typography-c83476d-font-size:1.9rem;--e-global-typography-ff8f921-font-size:1.9rem;}.elementor-kit-1850 h2{font-size:1.9rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;--container-default-padding-top:1rem;--container-default-padding-right:1rem;--container-default-padding-bottom:1rem;--container-default-padding-left:1rem;}}/* Start custom CSS */body a:hover {
    background: linear-gradient(
        90deg,
        #1B8415 0%,
        #1B8415 40%,
        #7ED957 50%,
        #1B8415 60%,
        #1B8415 100%
    );

    background-size: 300% 100%;
    background-position: 100% 0;

    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;

    animation: globalLinkSweepGreen 1.2s ease forwards;
}


/* =========================================================
   WHITE HOVER
   Works when class is on:
   <a class="a-hover-white">
   OR Elementor parent/container
   ========================================================= */

body a.a-hover-white,
body .a-hover-white a {
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
}

body a.a-hover-white:hover,
body a.a-hover-white:focus,
body a.a-hover-white:active,

body .a-hover-white a:hover,
body .a-hover-white a:focus,
body .a-hover-white a:active {
    color: #FFFFFF !important;

    background: linear-gradient(
        90deg,
        #FFFFFF 0%,
        #FFFFFF 40%,
        #D9D9D9 50%,
        #FFFFFF 60%,
        #FFFFFF 100%
    ) !important;

    background-image: linear-gradient(
        90deg,
        #FFFFFF 0%,
        #FFFFFF 40%,
        #D9D9D9 50%,
        #FFFFFF 60%,
        #FFFFFF 100%
    ) !important;

    background-size: 300% 100% !important;
    background-position: 100% 0 !important;

    -webkit-background-clip: text !important;
    background-clip: text !important;

    -webkit-text-fill-color: transparent !important;

    animation: globalLinkSweepWhite 1.2s ease forwards !important;
}


/* =========================================================
   WHITE TEXT INSIDE ELEMENTOR
   ========================================================= */

body .a-hover-white a:hover span,
body .a-hover-white a:hover .elementor-button-text {
    color: #FFFFFF !important;
    -webkit-text-fill-color: transparent !important;

    background: linear-gradient(
        90deg,
        #FFFFFF 0%,
        #FFFFFF 40%,
        #D9D9D9 50%,
        #FFFFFF 60%,
        #FFFFFF 100%
    ) !important;

    background-size: 300% 100% !important;
    background-position: 100% 0 !important;

    -webkit-background-clip: text !important;
    background-clip: text !important;
}


/* =========================================================
   BLACK HOVER
   ========================================================= */

body a.a-hover-black,
body .a-hover-black a {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}

body a.a-hover-black:hover,
body a.a-hover-black:focus,
body a.a-hover-black:active,

body .a-hover-black a:hover,
body .a-hover-black a:focus,
body .a-hover-black a:active {
    color: #000000 !important;

    background: linear-gradient(
        90deg,
        #000000 0%,
        #000000 40%,
        #555555 50%,
        #000000 60%,
        #000000 100%
    ) !important;

    background-image: linear-gradient(
        90deg,
        #000000 0%,
        #000000 40%,
        #555555 50%,
        #000000 60%,
        #000000 100%
    ) !important;

    background-size: 300% 100% !important;
    background-position: 100% 0 !important;

    -webkit-background-clip: text !important;
    background-clip: text !important;

    -webkit-text-fill-color: transparent !important;

    animation: globalLinkSweepBlack 1.2s ease forwards !important;
}


/* =========================================================
   BLACK TEXT INSIDE ELEMENTOR
   ========================================================= */

body .a-hover-black a:hover span,
body .a-hover-black a:hover .elementor-button-text {
    color: #000000 !important;
    -webkit-text-fill-color: transparent !important;

    background: linear-gradient(
        90deg,
        #000000 0%,
        #000000 40%,
        #555555 50%,
        #000000 60%,
        #000000 100%
    ) !important;

    background-size: 300% 100% !important;
    background-position: 100% 0 !important;

    -webkit-background-clip: text !important;
    background-clip: text !important;
}

/* =========================================================
   GREEN HOVER
   ========================================================= */

body a.a-hover-green,
body .a-hover-green a {
    color: #34BC8C !important;
    -webkit-text-fill-color: #34BC8C !important;
}

body a.a-hover-green:hover,
body a.a-hover-green:focus,
body a.a-hover-green:active,

body .a-hover-green a:hover,
body .a-hover-green a:focus,
body .a-hover-green a:active {
    color: #34BC8C !important;

    background: linear-gradient(
        90deg,
        #34BC8C 0%,
        #34BC8C 40%,
        #8BE8C8 50%,
        #34BC8C 60%,
        #34BC8C 100%
    ) !important;

    background-image: linear-gradient(
        90deg,
        #34BC8C 0%,
        #34BC8C 40%,
        #8BE8C8 50%,
        #34BC8C 60%,
        #34BC8C 100%
    ) !important;

    background-size: 300% 100% !important;
    background-position: 100% 0 !important;

    -webkit-background-clip: text !important;
    background-clip: text !important;

    -webkit-text-fill-color: transparent !important;

    animation: globalLinkSweepGreenMaterst 1.2s ease forwards !important;
}


/* =========================================================
   GREEN TEXT INSIDE ELEMENTOR
   ========================================================= */

body .a-hover-green a:hover span,
body .a-hover-green a:hover .elementor-button-text {
    color: #34BC8C !important;
    -webkit-text-fill-color: transparent !important;

    background: linear-gradient(
        90deg,
        #34BC8C 0%,
        #34BC8C 40%,
        #8BE8C8 50%,
        #34BC8C 60%,
        #34BC8C 100%
    ) !important;

    background-size: 300% 100% !important;
    background-position: 100% 0 !important;

    -webkit-background-clip: text !important;
    background-clip: text !important;
}


/* =========================================================
   GREEN ANIMATION
   ========================================================= */

@keyframes globalLinkSweepGreenMaterst {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: 0% 0;
    }
}
/* =========================================================
   ANIMATIONS
   ========================================================= */
body .a-hover:hover,
body .a-hover:hover *,
body .a-hover:focus,
body .a-hover:focus *,
body .a-hover:active,
body .a-hover:active * {
    color: inherit !important;

    background: transparent !important;
    background-image: none !important;
    background-size: auto !important;
    background-position: initial !important;

    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;

    -webkit-text-fill-color: currentColor !important;

    animation: none !important;
}
@keyframes globalLinkSweepGreen {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: 0% 0;
    }
}

@keyframes globalLinkSweepWhite {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: 0% 0;
    }
}

@keyframes globalLinkSweepBlack {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: 0% 0;
    }
}



/* =========================================
   Elementor 图片 Hover 扫光效果
   ========================================= */

.elementor-widget-image {
    position: relative;
    overflow: hidden;
}

/* 扫光层 */
.elementor-widget-image::after {
    content: "";
    position: absolute;
    top: 0;
    left: -150%;
    width: 50%;
    height: 100%;

    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255,255,255,0.15) 35%,
        rgba(255,255,255,0.75) 50%,
        rgba(255,255,255,0.15) 65%,
        transparent 100%
    );

    transform: skewX(-20deg);
    pointer-events: none;
}

/* 鼠标滑过图片时扫光 */
.elementor-widget-image:hover::after {
    left: 150%;
    transition: left 1.2s ease;
}

/* =================================
   Image 4:3
   图片 4:3 比例 + Cover
   ================================= */

.image4-3 img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center center;
    display: block;
}



/* ============================================================
   Materst 文章富文本样式（蕾姆专用）
   所有类名带 -leimu 前缀，避免与网站/主题自带类名冲突。
   可直接并入网站全局样式表，配合文章 HTML 正文使用。
   ============================================================ */

/* ---------- 正文表格：表头深蓝底白字 + 斑马纹 ---------- */
.article-table-leimu {
  border-collapse: collapse;
  width: 100%;
  margin: 14px 0;
  font-size: 14px;
}
.article-table-leimu th,
.article-table-leimu td {
  border: 1px solid #cfcfcf;
  padding: 8px 10px;
  text-align: left;
  vertical-align: top;
}
.article-table-leimu th {
  background: #1b3a6b;
  color: #ffffff;
  font-weight: 600;
}
.article-table-leimu tr:nth-child(even) td {
  background: #f3f6fb;
}

/* ---------- if–then 选型小结） ---------- */
.decision-leimu {
  border-left: 4px solid #1d7a3d;
  background: #f0f8f1;
  margin: 14px 0;
  padding: 10px 16px;
}
.decision-leimu b {
  color: #1d7a3d;
}

/* ---------- 参考文献列表 ---------- */
.ref-leimu {
  font-size: 13px;
  color: #666666;
}
.ref-leimu li {
  margin-bottom: 5px;
}

/* ---------- 来源上标 [n] ---------- */
.sup-leimu {
  font-size: 11px;
  color: #1b3a6b;
}

/* ---------- 正文内站内链接 ---------- */
.article-leimu a {
  color: #1b3a6b;
  text-decoration: underline;
}

/* ---------- 产品页用的 ---------- */
.product-leimu h3{margin:0 0 8px;font-size:17px;color:#111827}
.pdesc-leimu{margin:0 0 10px;color:#374151;font-size:14px;line-height:1.6}
table{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}
th,td{border:1px solid #e5e7eb;padding:6px 10px;text-align:left}
th{background:#0d2a52;color:#fff;font-weight:500}
td{vertical-align:top}

/* ============================================================
   materst.com — Technical Blog Shared Stylesheet (v1.0)
   All classes are prefixed with ms- to avoid collisions with the
   host-site theme. Mobile-first layout.
   Palette: industrial navy / steel blue / caution amber
   ============================================================ */

:root{
  --ms-navy:#14304a;
  --ms-blue:#1e6091;
  --ms-blue-soft:#eaf2f9;
  --ms-amber:#d97f24;
  --ms-amber-soft:#fdf3e3;
  --ms-bg:#f4f6f8;
  --ms-surface:#ffffff;
  --ms-text:#28303a;
  --ms-muted:#5b6772;
  --ms-line:#dde3e9;
  --ms-ok:#2e7d4f;
  --ms-radius:10px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ms-bg);color:var(--ms-text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.75;font-size:16px}

.ms-post{max-width:880px;margin:0 auto;background:var(--ms-surface);padding:24px 18px 40px}
@media(min-width:768px){.ms-post{padding:48px 56px 64px}}

/* ---- one-click copy actions ---- */
.ms-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.ms-btn{appearance:none;border:1px solid transparent;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer;min-height:44px;font-family:inherit;transition:background .2s,color .2s,transform .05s}
.ms-btn:active{transform:translateY(1px)}
.ms-btn:focus-visible{outline:3px solid var(--ms-blue);outline-offset:2px}
.ms-btn-title{background:var(--ms-navy);color:#fff}
.ms-btn-title:hover{background:#1b3f5e}
.ms-btn-content{background:var(--ms-blue);color:#fff}
.ms-btn-content:hover{background:#174f78}
.ms-btn-meta{background:var(--ms-amber-soft);color:#7a4a12;border-color:#e2b877}
.ms-btn-meta:hover{background:#f8e6c6}
.ms-btn-ok{background:var(--ms-ok)!important;color:#fff!important;border-color:var(--ms-ok)!important}

/* ---- header ---- */
.ms-title{font-family:Georgia,"Times New Roman",serif;font-size:30px;line-height:1.25;color:var(--ms-navy);margin:0 0 14px;font-weight:700}
@media(min-width:768px){.ms-title{font-size:38px}}

.ms-meta{background:var(--ms-blue-soft);border:1px solid #cfe0ef;border-radius:var(--ms-radius);padding:12px 16px;font-size:14px;color:var(--ms-muted);margin:0 0 28px}
.ms-meta strong{color:var(--ms-blue)}

/* ---- body ---- */
.ms-body{font-size:16.5px}
.ms-body p{margin:0 0 18px}
.ms-body h2{font-family:Georgia,"Times New Roman",serif;color:var(--ms-navy);font-size:24px;line-height:1.3;margin:38px 0 14px;padding-bottom:8px;border-bottom:2px solid var(--ms-line)}
.ms-body h3{font-family:Georgia,"Times New Roman",serif;color:var(--ms-blue);font-size:19px;margin:26px 0 10px}
.ms-body ul,.ms-body ol{margin:0 0 18px;padding-left:24px}
.ms-body li{margin-bottom:8px}
.ms-body a{color:var(--ms-blue);text-decoration:underline;text-underline-offset:2px}
.ms-body a:hover{color:var(--ms-navy)}
.ms-body strong{color:var(--ms-navy)}

.ms-note{background:var(--ms-blue-soft);border-radius:var(--ms-radius);padding:14px 18px;margin:0 0 18px;font-size:15px}
.ms-warn{background:var(--ms-amber-soft);border-radius:var(--ms-radius);padding:14px 18px;margin:0 0 18px;font-size:15px}

/* ---- tables ---- */
.ms-table-wrap{overflow-x:auto;margin:0 0 22px;-webkit-overflow-scrolling:touch;border:1px solid var(--ms-line);border-radius:var(--ms-radius)}
.ms-table{width:100%;border-collapse:collapse;font-size:14.5px;table-layout:fixed;min-width:560px}
.ms-table caption{caption-side:top;text-align:left;font-size:14px;color:var(--ms-muted);padding:10px 14px 8px}
.ms-table th{background:var(--ms-navy);color:#fff;text-align:left;padding:10px 12px;font-weight:600;vertical-align:top}
.ms-table td{padding:10px 12px;border-top:1px solid var(--ms-line);vertical-align:top}
.ms-table tbody tr:nth-child(even){background:#f6f8fa}
.ms-table td:first-child{font-weight:600;color:var(--ms-navy)}

/* ---- figure ---- */
.ms-figure{margin:0 0 24px}
.ms-figure img{display:block;width:100%;height:auto;border-radius:var(--ms-radius);border:1px solid var(--ms-line)}
.ms-figure figcaption{font-size:13.5px;color:var(--ms-muted);padding:8px 2px 0;line-height:1.5}

/* ---- references ---- */
.ms-refs{margin-top:36px;padding-top:18px;border-top:2px solid var(--ms-line)}
.ms-refs ol{margin:0;padding-left:22px;font-size:14px;color:var(--ms-muted)}
.ms-refs li{margin-bottom:6px;word-break:break-all}

@media print{.ms-actions{display:none}.ms-post{max-width:none;padding:0}}/* End custom CSS */