/* hero paragraph forced line breaks */
.dz-hero-line{display:block;}

/* remove gaps around tracking bar (between hero and next section) */
.elementor-element-709914d{padding:0 !important;margin:0 !important;}
.lg-newslatter-wrap{padding:24px 0 !important;}
.lg-contact-sec{padding-bottom:0 !important;margin-top:0 !important;}
.lg-contact-sec .lg-contact-form{margin-top:40px !important;margin-bottom:60px !important;}
.elementor-element-b37738d{padding:0 !important;gap:0 !important;}

/* hero shrink to fit ~1 viewport */
.lg-hero-content{padding-bottom:80px !important;}
.lg-hero-content .lg-hero-text{padding-top:230px !important;padding-bottom:0 !important;}
.lg-hero-content .desc-text{margin-top:30px !important;}
.lg-hero-content .desc-text p{padding-bottom:0 !important;margin-bottom:0 !important;font-size:16px !important;line-height:1.55 !important;}
.lg_hero_title.hero_title_2{font-size:78px !important;line-height:1.15 !important;margin-bottom:0 !important;padding-bottom:0 !important;font-weight:800 !important;}
.lg-hero-sec .lg-hero-img2{display:none !important;}
.lg-hero-sec .lg-btn{display:none !important;}

/* hero left-bottom tag list */
.dz-hero-tags{
    list-style:none;
    padding:0;
    margin:202px 0 0;
    display:grid;
    grid-template-columns:repeat(3,auto);
    gap:16px 40px;
    max-width:680px;
}
.dz-hero-tags li{
    color:#0a1e3a;
    font-size:16px;
    font-weight:500;
    line-height:1.2;
    padding-left:14px;
    border-left:3px solid #2E7CE4;
    letter-spacing:1px;
    white-space:nowrap;
}
.lg-hero-sec .lg-bg-text{display:none !important;}

/* partner names */
.dz-partner-name{
    display:inline-block;
    font-family:"Helvetica Neue","Arial",sans-serif;
    font-weight:800;
    font-size:22px;
    letter-spacing:1px;
    line-height:1;
    white-space:nowrap;
}
.lg-cl-item .item-img{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:80px;
}

/* hide search / cta / offcanvas trigger */
.lg-header-section .hd-search,
.lg-header-section .cta_btn,
.lg-header-section .cta-info,
.lg-header-section .cta-action,
.lg-header-section .offcanvas-trigger.navSidebar-button{
    display:none !important;
}

/* logo shrink */
.lg-header-section .lg-header-navigation .header-nav-wrap{height:96px;}
.lg-header-section .lg-header-navigation .header-nav-wrap .brand-logo{
    max-width:320px;
    height:96px;
    padding:12px 18px;
    justify-content:flex-start !important;
}
.lg-header-section .lg-header-navigation .header-nav-wrap .brand-logo img.logo_site-size{
    max-height:56px;
    width:auto;
    height:auto;
}

/* service cards grid */
.dz-services-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:24px;
    margin-top:40px;
}
.dz-svc-card{
    background:#fff;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 4px 24px rgba(10,30,58,.08);
    display:flex;
    flex-direction:column;
    transition:transform .3s ease, box-shadow .3s ease;
}
.dz-svc-card:hover{
    transform:translateY(-6px);
    box-shadow:0 8px 32px rgba(10,30,58,.14);
}
.dz-svc-img{
    aspect-ratio:16/10;
    overflow:hidden;
    background:#eef2f7;
}
.dz-svc-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .5s ease;
}
.dz-svc-card:hover .dz-svc-img img{transform:scale(1.05);}
.dz-svc-body{padding:20px 22px 24px;}
.dz-svc-body h3{
    font-size:20px;
    font-weight:600;
    margin:0 0 10px;
    color:#0a1e3a;
}
.dz-svc-body p{
    font-size:14px;
    line-height:1.75;
    color:#555;
    margin:0;
}

/* contact form title on blue card → white */
.lg-contact-form .form-title,
.lg-contact-form .form-title h3,
.lg-contact-form .lg-cnt-form .b-title{
    color:#fff !important;
}

/* blog unified slider */
.elementor-element-949f699{padding-top:40px !important;padding-bottom:0 !important;}
.elementor-element-4b0d9a9{padding-left:89px !important;}
#lg-price.lg-price-sec{padding-top:40px !important;}
.elementor-element-949f699 > .e-con-inner{
    display:block !important;
    max-width:1720px !important;
    margin:0 auto !important;
    padding:0 20px !important;
    box-sizing:border-box;
    width:100% !important;
}
.dz-blog-wrap{
    position:relative;
    display:block !important;
    padding:0 44px;
    margin-top:60px !important;
    box-sizing:border-box;
}
.dz-blog-track{
    display:flex;
    gap:20px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    scrollbar-width:none;
    padding:4px;
}
.dz-blog-track::-webkit-scrollbar{display:none;}
.dz-blg-card{
    flex:0 0 22%;
    scroll-snap-align:start;
    background:#fff;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 4px 20px rgba(10,30,58,.08);
    display:flex;
    flex-direction:column;
}
.dz-blg-card.dz-blg-ft{
    flex:0 0 42%;
    position:relative;
}
.dz-blg-card.dz-blg-ft .item-img{
    aspect-ratio:auto;
    height:100%;
    min-height:420px;
}
.dz-blg-card.dz-blg-ft .item-img::after{
    content:"";
    position:absolute;left:0;right:0;bottom:0;height:55%;
    background:linear-gradient(to top,rgba(10,30,58,.85) 0%,rgba(10,30,58,.35) 60%,rgba(10,30,58,0) 100%);
    pointer-events:none;
    z-index:1;
}
.dz-blg-card.dz-blg-ft .item-text{
    position:absolute;
    left:0;right:0;bottom:0;
    padding:24px 26px 26px;
    z-index:2;
}
.dz-blg-card.dz-blg-ft .cat a{color:#7fb3ff;}
.dz-blg-card.dz-blg-ft .blg_title a{
    color:#fff;
    font-size:22px;
    line-height:1.35;
}
.dz-blg-card.dz-blg-ft .blg_title a:hover{color:#7fb3ff;}
.dz-blg-card .item-img{
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
    background:#eef2f7;
}
.dz-blg-card .item-img img{width:100%;height:100%;object-fit:cover;display:block;}
.dz-blg-card .item-date{
    position:absolute;
    left:14px; bottom:-22px;
    width:56px; height:56px;
    background:#fff;
    border-radius:10px;
    box-shadow:0 4px 12px rgba(10,30,58,.15);
    display:flex;align-items:center;justify-content:center;
    z-index:2;
}
.dz-blg-card.dz-blg-ft .item-date{position:absolute; left:14px; top:14px; bottom:auto;}
.dz-blg-card .item-date h4{margin:0;font-size:20px;font-weight:700;color:#0a1e3a;line-height:1;}
.dz-blg-card .item-date span{display:block;font-size:11px;color:#6c7a90;letter-spacing:1px;}
.dz-blg-card .item-date .inner-item i.fas{font-size:26px;color:#0a5cff;line-height:1;}
.dz-blg-card .item-text{padding:32px 18px 22px;flex:1;display:flex;flex-direction:column;gap:10px;}
.dz-blg-card.dz-blg-ft .item-text{padding:22px 20px;}
.dz-blg-card .cat{display:none !important;}
.dz-blg-card .cat a{
    display:inline-block;
    color:#0a5cff;
    font-size:12px;
    font-weight:600;
    letter-spacing:1px;
    text-transform:uppercase;
    text-decoration:none;
}
.dz-blg-card .blg_title a{
    color:#0a1e3a;
    font-size:16px;
    font-weight:600;
    line-height:1.4;
    text-decoration:none;
    display:block;
}
.dz-blg-card .blg_title a:hover{color:#0a5cff;}
.dz-blg-card .blg_desc{
    color:#555;
    font-size:13px;
    line-height:1.7;
    margin:8px 0 0;
    display:-webkit-box;
    -webkit-line-clamp:4;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.dz-blg-card.dz-blg-ft .blg_desc{
    color:rgba(255,255,255,.92);
    font-size:14px;
    -webkit-line-clamp:3;
    margin-top:10px;
}
.dz-blog-prev, .dz-blog-next{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:5;
    width:44px;height:44px;
    border-radius:50%;
    border:none;
    background:#fff;
    box-shadow:0 6px 18px rgba(10,30,58,.18);
    color:#0a1e3a;
    font-size:26px;
    line-height:1;
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:background .2s,color .2s;
}
.dz-blog-prev:hover, .dz-blog-next:hover{background:#0a5cff;color:#fff;}
.dz-blog-prev{left:8px;}
.dz-blog-next{right:8px;}
@media (max-width:1200px){
    .dz-blg-card{flex:0 0 calc((100% - 40px) / 3);}
}
@media (max-width:900px){
    .dz-blg-card{flex:0 0 calc((100% - 20px) / 2);}
}
@media (max-width:600px){
    .dz-blg-card{flex:0 0 85%;}
    .dz-blog-prev{left:4px;}
    .dz-blog-next{right:4px;}
}

/* ==========================================================================
   屏幕自适应修正
   上面那些定制规则是照桌面写死的，且大量使用 !important 且不带媒体查询，
   把主题自带的响应式规则压死了。这里按断点把它们接回来。
   断点沿用主题 style.css 的 1200 / 991 / 767 / 575 / 480 / 360。
   ========================================================================== */

/* --- 首屏标题：原 78px 一路顶到手机，375 屏上一行只剩 5 个字 --- */
@media (max-width:1200px){
    .lg_hero_title.hero_title_2{font-size:64px !important;}
}
@media (max-width:991px){
    .lg_hero_title.hero_title_2{font-size:56px !important;letter-spacing:-1px !important;}
    .lg-hero-content .lg-hero-text{padding-top:160px !important;}
}
@media (max-width:767px){
    .lg_hero_title.hero_title_2{font-size:46px !important;}
    .lg-hero-content .lg-hero-text{padding-top:130px !important;}
    .lg-hero-content{padding-bottom:56px !important;}
}
@media (max-width:575px){
    .lg_hero_title.hero_title_2{font-size:38px !important;letter-spacing:0 !important;}
}
@media (max-width:480px){
    .lg_hero_title.hero_title_2{font-size:34px !important;}
    .lg-hero-content .lg-hero-text{padding-top:110px !important;}
    .lg-hero-content .desc-text{margin-top:20px !important;}
    .lg-hero-content .desc-text p{font-size:15px !important;}
}
@media (max-width:360px){
    .lg_hero_title.hero_title_2{font-size:30px !important;}
}

/* --- 首屏标签组：3 列 + nowrap 导致第三列被裁掉，服务项看不见 --- */
@media (max-width:991px){
    .dz-hero-tags{margin-top:80px;gap:14px 28px;}
}
@media (max-width:767px){
    .dz-hero-tags{margin-top:56px;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;}
    .dz-hero-tags li{white-space:normal;}
}
@media (max-width:480px){
    .dz-hero-tags{margin-top:40px;gap:12px 16px;}
    .dz-hero-tags li{font-size:15px;letter-spacing:0;padding-left:10px;}
}

/* --- 顶部 logo / 导航条：320px 宽、96px 高的 logo 在手机上占掉大半屏 --- */
@media (max-width:767px){
    .lg-header-section .lg-header-navigation .header-nav-wrap{height:76px;}
    .lg-header-section .lg-header-navigation .header-nav-wrap .brand-logo{
        max-width:210px;height:76px;padding:8px 12px;
    }
    .lg-header-section .lg-header-navigation .header-nav-wrap .brand-logo img.logo_site-size{
        max-height:44px;
    }
}

/* --- 内容区左内边距：89px / 44px 是按 1720px 画布定的，小屏上纯属浪费 --- */
@media (max-width:991px){
    .elementor-element-4b0d9a9{padding-left:0 !important;}
    .dz-blog-wrap{padding:0;margin-top:40px !important;}
}
@media (max-width:480px){
    .dz-blog-wrap{margin-top:28px !important;}
}

/* --- 报价表：本就能横向滚，补上触屏惯性和可滚提示 --- */
.dz-quote-wrap{-webkit-overflow-scrolling:touch;}
@media (max-width:767px){
    .dz-quote-wrap{
        background:
            linear-gradient(to right,#fff 30%,rgba(255,255,255,0)) left center/40px 100% no-repeat,
            linear-gradient(to left,#fff 30%,rgba(255,255,255,0)) right center/40px 100% no-repeat,
            radial-gradient(farthest-side at 0 50%,rgba(10,30,58,.18),rgba(0,0,0,0)) left center/14px 100% no-repeat,
            radial-gradient(farthest-side at 100% 50%,rgba(10,30,58,.18),rgba(0,0,0,0)) right center/14px 100% no-repeat;
        background-attachment:local,local,scroll,scroll;
    }
}

/* --- 报价区右侧装饰图：小屏上被裁成一条，只剩右边一小溜，不如收掉 --- */
@media (max-width:991px){
    .lg-price-sec .lg-price-img.right_view{display:none !important;}
}

/* --- 伙伴 logo 跑马灯 ---
   桌面上 GSAP 给容器打内联 transform 做横向滚动。小屏上 flex-wrap 让每个 logo
   各占一整行，跑马灯的位移就把整块推出屏外、右半截被 body 的 overflow-x:hidden 裁掉。
   小屏直接冻掉位移，改成两列静态排布。!important 可压过 GSAP 的内联样式。 */
@media (max-width:991px){
    .lg-top-client.sponsor_1,
    .lg-bottom-client.sponsor_2{
        transform:none !important;
        justify-content:center !important;
    }
    .lg-top-client.sponsor_1 .lg-cl-item,
    .lg-bottom-client.sponsor_2 .lg-cl-item{
        flex:0 0 50% !important;
        width:50% !important;
        max-width:50% !important;
    }
    .lg-cl-item .item-img{min-height:64px;}
}
@media (max-width:360px){
    .dz-partner-name{font-size:18px;}
}

/* ============================================================
   全站左右留白
   主题 body .container 写死 max-width:1424px，Elementor 容器同样 1424/1720。
   这套值是按 1720px 画布定的，在 1440 及以下屏幕上容器几乎顶满，
   内容离屏幕边只剩 5~17px。这里用 --dz-side 统一定义
  「内容到屏幕边缘」的目标距离，随断点收放。
   只收窄内层容器，section 背景仍然通栏，不影响满幅底图。
   ============================================================ */
:root{ --dz-side:64px; }
@media (max-width:1599px){ :root{ --dz-side:56px; } }
@media (max-width:1399px){ :root{ --dz-side:48px; } }
@media (max-width:1199px){ :root{ --dz-side:40px; } }
@media (max-width:991px){  :root{ --dz-side:32px; } }
@media (max-width:767px){  :root{ --dz-side:24px; } }
@media (max-width:575px){  :root{ --dz-side:20px; } }
@media (max-width:360px){  :root{ --dz-side:16px; } }

/* Bootstrap 容器自带 12px 左右 padding，故实际只需再收 (--dz-side - 12) */
body .container{
    max-width:min(1424px, calc(100% - (var(--dz-side) - 12px) * 2)) !important;
    margin-left:auto !important;
    margin-right:auto !important;
}

/* Elementor 容器：外层 e-con 自带 12px、内层 widget-container 再 12px，
   共 24px 已经算在留白里，所以只需再收 (--dz-side - 24)，且不许为负 */
.e-con > .e-con-inner{
    max-width:min(1424px, calc(100% - max(0px, var(--dz-side) - 24px) * 2)) !important;
    margin-left:auto !important;
    margin-right:auto !important;
}
/* 服务区原来单独放宽到 1720px 且带 padding:0 20px，
   宽屏上会比其它区块多伸出 148px、标题也对不齐。统一按上面那条走。 */
.elementor-element-949f699 > .e-con-inner{
    padding-left:0 !important;
    padding-right:0 !important;
}

/* 顶栏联系条不在 .container 里，单独给留白（logo 块是设计上的贴边深色块，不动） */
.lg-header-section .lg-header-top{
    padding-left:var(--dz-side) !important;
    padding-right:var(--dz-side) !important;
}

/* 服务区标题 89px、卡片 44px 的左内边距是叠在容器留白之上的。
   容器已统一给出 --dz-side 后再叠就和其它区块对不齐，一律归零。 */
.elementor-element-4b0d9a9{padding-left:0 !important;}
.dz-blog-wrap{padding-left:0;padding-right:0;}
