/* =========================================================
   全球业务地图 - 最终整理版
   目标：
   1. 保留飞线、点位、标签效果
   2. 删除图例
   3. 主题色 #58A248 → #2F9156
   4. PC 默认最大 1600px
   5. 4K 最大 2800px
   6. 坐标系统固定 2:1，避免点位和飞线错位
========================================================= */

/* 外层地图组件 */
#globalMap.global-map-component {
    width: 100%;
    max-width: 1600px;
    margin: 0 auto;
    position: relative;
    overflow: visible;
    box-sizing: border-box;
}

/* 地图比例核心：必须保持 2:1，对应 JS/SVG 的 1200 × 600 */
#globalMap .map-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 50%;
    overflow: visible !important;
    background: transparent;
    box-sizing: border-box;
}

/* 地图背景层 */
#globalMap .map-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 1;
    z-index: 1;
    pointer-events: none;
}

#globalMap .map-bg img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    opacity: 0.32;
    pointer-events: none;
    user-select: none;
}

/* SVG 飞线层 */
#globalMap .map-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    overflow: visible;
    pointer-events: none;
}

#globalMap .lines-group {
    pointer-events: none;
}

/* 飞线 */
#globalMap .connection-line {
    fill: none;
    stroke: url(#zc-fly-gradient-line);
    stroke-width: 1;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0.88;
    transition: none !important;
    animation: none !important;
}

/* 飞行光球 */
#globalMap .fly-ball {
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    filter: drop-shadow(0 0 8px rgba(88, 162, 72, 0.8));
    transition: opacity 0.18s ease;
}

#globalMap .fly-ball.zc-ball-show {
    opacity: 1;
}

/* 终点光点 */
#globalMap .line-end-light {
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(0.75);
    filter: drop-shadow(0 0 8px rgba(88, 162, 72, 0.8));
    transition:
        opacity 0.36s ease,
        transform 0.36s ease;
}

#globalMap .line-end-light.zc-light-show {
    opacity: 1;
    transform: scale(1);
}

/* 普通点位 */
#globalMap .point {
    position: absolute;
    width: 16px;
    height: 16px;
    transform: translate(-50%, -50%) scale(1);
    border-radius: 10px;
    background: linear-gradient(135deg, #58A248 0%, #2F9156 100%);
    border: 1.5px solid #fff;
    box-shadow: 0 2px 8px rgba(88, 162, 72, 0.28);
    z-index: 3;
    pointer-events: none;
    opacity: 1;
    box-sizing: border-box;
}

/* 飞线到达前的目标点 */
#globalMap .point.zc-target-wait {
    opacity: 0.38;
    transform: translate(-50%, -50%) scale(0.82);
}

/* 飞线到达后的目标点 */
#globalMap .point.zc-point-arrived {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    box-shadow:
        0 0 0 4px rgba(88, 162, 72, 0.14),
        0 2px 10px rgba(47, 145, 86, 0.38);
    transition:
        opacity 0.35s ease,
        transform 0.35s ease,
        box-shadow 0.35s ease;
}

/* 广州起点 */
#globalMap .point.point-gz {
    background: linear-gradient(135deg, #58A248 0%, #2F9156 100%);
    box-shadow:
        0 0 5px 6px rgba(88, 162, 72, 0.36),
        0 2px 10px rgba(47, 145, 86, 0.42);
    opacity: 1;
    animation: zc-map-breath-scale 1.5s infinite alternate cubic-bezier(.5, 0, .5, 1);
}

@keyframes zc-map-breath-scale {
    0% {
        transform: translate(-50%, -50%) scale(0.92);
        box-shadow:
            0 0 12px 3px rgba(88, 162, 72, 0.72),
            0 2px 8px rgba(47, 145, 86, 0.38);
    }

    100% {
        transform: translate(-50%, -50%) scale(1.18);
        box-shadow:
            0 0 32px 14px rgba(88, 162, 72, 0.22),
            0 2px 8px rgba(47, 145, 86, 0.38);
    }
}

/* 标签 */
#globalMap .label {
    position: absolute;
    z-index: 4;
    font-size: 14px;
    line-height: 23.3332px;
    color: #2F9156;
    font-weight: 500;
    white-space: nowrap;
    transform: translateX(-50%);
    opacity: 1;
    pointer-events: none;
    transition:
        opacity 0.35s ease,
        transform 0.35s ease;
    text-shadow:
        0 1px 3px rgba(255, 255, 255, 0.9),
        0 1px 5px rgba(255, 255, 255, 0.65);
}

#globalMap .label.zc-target-wait {
    opacity: 0.48;
}

#globalMap .label.zc-label-arrived {
    opacity: 1;
}

/* 删除图例 */
#globalMap .legend,
#globalMap .legend-row,
#globalMap .legend-item,
#globalMap .legend-dot,
#globalMap .legend-label,
#globalMap .legend-title,
#globalMap .legend-desc {
    display: none !important;
}

/* 清理旧版残留节点 */
#globalMap .origin-point,
#globalMap .target-point,
#globalMap .location-label,
#globalMap .point-core,
#globalMap .point-pulse {
    display: none !important;
}


/* =========================================================
   4K 外层容器放开
   根因：#globalMap 自己可以 2800，
   但 .e_container-7 / .e_html-14 原来卡在 1600
========================================================= */

@media (min-width: 2560px) {
    html body #c_static_001-17781365901880 .e_container-7,
    html body #c_static_001-17781365901880 .e_container-7 > .cbox-7-0,
    html body #c_static_001-17781365901880 .e_html-14,
    html body #c_static_001-17781365901880 .e_html-14.s_list,
    html body #c_static_001-17781365901880 #globalMap.global-map-component,
    html body #c_static_001-17781365901880 #globalMap .map-wrapper {
        width: 100% !important;
        max-width: 2800px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box !important;
    }

    html body #c_static_001-17781365901880 #globalMap .map-wrapper {
        padding-bottom: 50% !important;
        overflow: visible !important;
    }

    html body #c_static_001-17781365901880 #globalMap .map-bg,
    html body #c_static_001-17781365901880 #globalMap .map-bg img,
    html body #c_static_001-17781365901880 #globalMap .map-svg {
        width: 100% !important;
        height: 100% !important;
    }

    html body #c_static_001-17781365901880 #globalMap .map-bg img {
        object-fit: contain !important;
    }

    html body #c_static_001-17781365901880 #globalMap .connection-line {
        stroke-width: 1.8 !important;
    }

    html body #c_static_001-17781365901880 #globalMap .point {
        width: 18px !important;
        height: 18px !important;
        border-radius: 10px !important;
        border-width: 2px !important;
    }

    html body #c_static_001-17781365901880 #globalMap .label {
        font-size: 16px !important;
        line-height: 26px !important;
    }
}

/* 真 4K 满屏增强 */
@media (min-width: 3840px) {
    html body #c_static_001-17781365901880 .e_container-7,
    html body #c_static_001-17781365901880 .e_container-7 > .cbox-7-0,
    html body #c_static_001-17781365901880 .e_html-14,
    html body #c_static_001-17781365901880 .e_html-14.s_list,
    html body #c_static_001-17781365901880 #globalMap.global-map-component,
    html body #c_static_001-17781365901880 #globalMap .map-wrapper {
        max-width: 2800px !important;
    }

    html body #c_static_001-17781365901880 #globalMap .map-wrapper {
        padding-bottom: 50% !important;
    }

    html body #c_static_001-17781365901880 #globalMap .connection-line {
        stroke-width: 2px !important;
    }

    html body #c_static_001-17781365901880 #globalMap .point {
        width: 20px !important;
        height: 20px !important;
        border-radius: 11px !important;
    }

    html body #c_static_001-17781365901880 #globalMap .label {
        font-size: 18px !important;
        line-height: 30px !important;
    }
}


/* =========================================================
   中小屏适配
========================================================= */

@media (max-width: 1600px) {
    #globalMap.global-map-component {
        max-width: 100%;
    }
}

@media (max-width: 1366px) {
    #globalMap .map-wrapper {
        padding-bottom: 52%;
    }

    #globalMap .label {
        font-size: 13px;
        line-height: 21px;
    }
}

@media (max-width: 1024px) {
    #globalMap .map-wrapper {
        padding-bottom: 58%;
    }

    #globalMap .point {
        width: 13px;
        height: 13px;
        border-radius: 7px;
    }

    #globalMap .label {
        font-size: 11px;
        line-height: 18px;
    }

    #globalMap .connection-line {
        stroke-width: 1.35;
    }
}

@media (max-width: 768px) {
    #globalMap .map-wrapper {
        padding-bottom: 64%;
    }

    #globalMap .map-bg img {
        opacity: 0.38;
    }

    #globalMap .connection-line {
        stroke-width: 1.2;
    }

    #globalMap .point {
        width: 11px;
        height: 11px;
        border-radius: 6px;
    }

    #globalMap .fly-ball,
    #globalMap .line-end-light {
        filter: drop-shadow(0 0 6px rgba(88, 162, 72, 0.78));
    }

    #globalMap .label {
        font-size: 10px;
        line-height: 16px;
    }
}

@media (max-width: 480px) {
    #globalMap .map-wrapper {
        padding-bottom: 70%;
    }

    #globalMap .map-bg img {
        opacity: 0.42;
    }

    #globalMap .connection-line {
        stroke-width: 1.05;
    }

    #globalMap .point {
        width: 9px;
        height: 9px;
        border-radius: 5px;
        border-width: 1px;
    }

    #globalMap .label {
        font-size: 8px;
        line-height: 13px;
        text-shadow:
            0 1px 2px rgba(255, 255, 255, 0.95),
            0 1px 4px rgba(255, 255, 255, 0.85);
    }
}



/* 分割线 */
/* =========================================================
   全球地图手机端错位修复
   核心原因：
   JS / SVG 坐标系统是 1200 × 600，也就是 2:1。
   所以 .map-wrapper 所有端口都必须保持 padding-bottom: 50%。
   不能在手机端改成 58%、64%、70%，否则点位和飞线必然错位。
========================================================= */

html body #globalMap.global-map-component {
    width: 100% !important;
    position: relative !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}

html body #globalMap .map-wrapper {
    position: relative !important;
    width: 100% !important;
    height: 0 !important;
    padding-bottom: 50% !important;
    overflow: visible !important;
    background: transparent !important;
    box-sizing: border-box !important;
}

/* 背景图、SVG、点位必须共用同一个 2:1 坐标层 */
html body #globalMap .map-bg,
html body #globalMap .map-svg {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

html body #globalMap .map-bg {
    z-index: 1 !important;
    pointer-events: none !important;
}

html body #globalMap .map-bg img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: contain !important;
    object-position: center center !important;
    pointer-events: none !important;
    user-select: none !important;
}

html body #globalMap .map-svg {
    z-index: 2 !important;
    overflow: visible !important;
    pointer-events: none !important;
}

/* 点位和标签继续使用百分比定位，但现在百分比坐标层恢复正确 */
html body #globalMap .point,
html body #globalMap .label {
    position: absolute !important;
}

/* =========================================================
   中小屏只允许改点位大小、文字大小、线条粗细
   不允许再改 map-wrapper 的 padding-bottom
========================================================= */

@media (max-width: 1366px) {
    html body #globalMap .map-wrapper {
        padding-bottom: 50% !important;
    }

    html body #globalMap .label {
        font-size: 13px !important;
        line-height: 21px !important;
    }
}

@media (max-width: 1024px) {
    html body #globalMap .map-wrapper {
        padding-bottom: 50% !important;
    }

    html body #globalMap .point {
        width: 13px !important;
        height: 13px !important;
        border-radius: 7px !important;
    }

    html body #globalMap .label {
        font-size: 11px !important;
        line-height: 18px !important;
    }

    html body #globalMap .connection-line {
        stroke-width: 1.35 !important;
    }
}

@media (max-width: 768px) {
    html body #globalMap .map-wrapper {
        padding-bottom: 50% !important;
    }

    html body #globalMap .map-bg img {
        opacity: 0.38 !important;
    }

    html body #globalMap .connection-line {
        stroke-width: 1.2 !important;
    }

    html body #globalMap .point {
        width: 11px !important;
        height: 11px !important;
        border-radius: 6px !important;
    }

    html body #globalMap .fly-ball,
    html body #globalMap .line-end-light {
        filter: drop-shadow(0 0 6px rgba(88, 162, 72, 0.78)) !important;
    }

    html body #globalMap .label {
        font-size: 10px !important;
        line-height: 16px !important;
    }
}

@media (max-width: 480px) {
    html body #globalMap .map-wrapper {
        padding-bottom: 50% !important;
    }

    html body #globalMap .map-bg img {
        opacity: 0.42 !important;
    }

    html body #globalMap .connection-line {
        stroke-width: 1.05 !important;
    }

    html body #globalMap .point {
        width: 9px !important;
        height: 9px !important;
        border-radius: 5px !important;
        border-width: 1px !important;
    }

    html body #globalMap .label {
        font-size: 8px !important;
        line-height: 13px !important;
        text-shadow:
            0 1px 2px rgba(255, 255, 255, 0.95),
            0 1px 4px rgba(255, 255, 255, 0.85) !important;
    }
}