/* common */
.container { width:100%;max-width: 1600px; margin: 0 auto; padding:0 50px;display: flex; }
.container .header { width:100%;margin-bottom: 40px;}
.container .header h2 { color: #000; margin-bottom: 20px;font-size:32px;}
.container .header .subtitle { font-size:20px;color:#000;height:20px;line-height: 20px;margin-bottom:45px; }
.container .header .subtitle::after { content:'';display:inline-block;vertical-align: middle;width:32px;height:2px;margin-left:16px;background-color: #000;margin-top:-1px; }

.container .title { display: flex;align-items: flex-start;flex-direction: column;width:400px; }
.container .title h2 { margin: 0;font-size: 36px;line-height: 36px;}
.container .title h2::after { content:'';display:block;margin:15px 0; width:24px;height:16px;background-image: url('../images/icon-case-detail-more.png'); background-size:inherit;background-repeat: no-repeat; background-position: center;  }
.container .title span { margin-left:0; color: #666; }

/* banner */
.banner { background: url('../images/banner-contact.jpg') no-repeat center; background-size: cover; height: 480px; display: flex;align-items: flex-end; justify-content: flex-start; color: white; position: relative;}
.banner .container { flex-direction: column;  }
.banner p { width:100%;color:#fff;font-size:72px;font-weight:bolder; }
.banner h1 {  width:100%; display: block; font-size: 32px; margin-bottom: 40px;}

/* 工地 */
.map { height:900px; }
.wrapper {  display: flex; flex-direction: column; width: 100%; height: 100%; position: relative;}
.search-bar { position: relative; padding:18px 18px 18px 58px; background-color: #fff; background-image: url(../images/icon-search.png); background-repeat: no-repeat; background-position: 18px 18px;z-index: 9}
.search-bar input { font-size:16px;}
.search-bar, .filters { position: relative;display: flex; gap: 10px;z-index: 9;}
.filters { padding:18px;border-bottom:solid 1px #ddd; }
.filters select { font-size:16px; }
.main-content { width:100%; position: absolute; background-color: transparent; z-index: 1; display: flex; flex: 1;justify-content: space-between; overflow: hidden;}
.left-panel, .right-panel { position: relative; width: 440px; padding: 10px; margin:10px;z-index: 9}
.map-container { flex: 1; position: absolute; background-color: #666; left:0; top:0; width:100%; height:100%;z-index: 0;}
.project-list { margin-top:20px; display: flex; flex-direction: column; background-color: #fff;max-height:721px;overflow-y: scroll;}
.project-item {  padding: 20px; border-radius: 4px; cursor: pointer;}
.project-item a { margin:0;padding:0;width:100%;display:inline-block;display: flex; align-items: center; }
.project-item .project-item-image { width:125px;height:125px;margin-right:20px;overflow: hidden; }
.project-item .project-item-image img {  width: auto; height: 100%; object-fit: cover; overflow: hidden;}
.project-item .project-item-info { height:125px;overflow: hidden; }
.project-item .project-item-info h3 { font-size:24px;color:#333;margin-bottom:20px; }
.project-item .project-item-info .tags span { font-size:14px;padding: 5px 10px;border: none;background-color: #f5f5f5;color: #333;border-radius: 4px;margin-right:5px; }
.project-item .project-item-info .address { height:24px; padding-left:30px;background-image: url(../images/icon-worksite-address.png);background-repeat: no-repeat;margin-top:10px;}
.stats { display: flex; justify-content: space-around; padding: 20px; background-color: #f8f8f8; border-bottom: 1px solid #ddd;}
.stat-item { text-align: center;}
.stat-item span { display:block;font-size:24px;margin:10px 0 5px 0; }
.stat-item p { font-size:14px; }


.custom-label {
    position: absolute;
    background-color: red;
    color: white;
    padding: 5px;
    border-radius: 10px;
    font-size: 12px;
    white-space: nowrap;
    pointer-events: none; /* 确保标签不会干扰地图交互 */
}

/* 工地详情 */
.case-slider { width:100%;background-color: #f5f5f5; }
.case-slider .container { position: relative;padding:0;width:800px;margin:0 auto; }
.case-slider .hd { position: absolute;bottom: 40px;width: 100%;text-align: center;z-index: 1; }
.case-slider .hd ul { display: inline-block; list-style: none; padding: 0; margin: 0 auto; }
.case-slider .hd ul li { display: inline-block;margin-right: 2px;width: 12px;height: 12px;border-radius: 50%; background: #fff;cursor: pointer;text-indent: -9999px; }
.case-slider .hd ul li.on { background: #f00;color: #fff; }
.case-slider .bd { position: relative;height: 100%;z-index: 0; }
.case-slider .prev { position: absolute;left: 0;top: 50%;margin-top: -60px;display: block;width: 66px;height: 120px;background: url(../images/icon-case-detail-prev.png) no-repeat;filter: alpha(opacity=50);opacity: 0.5; }
.case-slider .next { position: absolute;left: auto;right: 0;top: 50%;margin-top: -60px;display: block;width: 66px;height: 120px;background: url(../images/icon-case-detail-next.png) no-repeat;filter: alpha(opacity=50);opacity: 0.5; }

.stage-container { display: flex; align-items: center; position: relative;}
.stage-item .circle::before { content: ''; position: absolute; top: 10px; left: 0; width: calc(50% - 10px); height: 3px; background-color: #e2e2e2;}
.stage-item .circle::after { content: ''; position: absolute; top: 10px; right: 0; width: calc(50% - 10px); height: 3px; background-color: #e2e2e2;}
.stage-item:first-child .circle::before { width:0; }
.stage-item:last-child .circle::after { width:0; }
.stage-item { padding:0 60px; position: relative; text-align: center;}
.stage-item .circle { width: 20px; height: 20px; border-radius: 50%; display: inline-block; background-color: #fff; border:solid 3px #e2e2e2;}
.stage-item.completed .circle { border:solid 3px #e6212a;}
.stage-item:not(.completed) .circle { background-color: #fff;}
.stage-item .label { position: relative;margin-top:46px; display: block; padding: 10px 20px; border-radius: 5px; background-color: transparent;color:#9a9a9a;}
.stage-item .label::before { position: absolute;content:'';display:block;left:0;top:-36px;width:100%;height:24px;background-image: url(../images/icon-worksite-stage.png);background-repeat: no-repeat;background-position: center center; }
.stage-item.completed .label { background-color: #fff; color: #333;}
.stage-item.completed.active .label { background-color: #ff4d4f; color: white;}
.stage-item.completed .label::before { background-image: url(../images/icon-worksite-stage-complate.png); }

.case-details { background-color: #f5f5f5;}
.case-details .container { padding: 90px 0;border-bottom-color: #e6e6e6;border-bottom-style:dashed; }
.case-details .title { display: flex;align-items: flex-start;flex-direction: column;width:400px; }
.case-details .title h1 { margin: 0;font-size: 36px;line-height: 36px;}
.case-details .title h1::after { content:'';display:block;margin:15px 0; width:24px;height:16px;background-image: url('../images/icon-case-detail-more.png'); background-size:inherit;background-repeat: no-repeat; background-position: center;  }
.case-details .title span { margin-left:0; color: #666; }
.case-details .info { flex:1; }
.case-details .info ul { list-style: none;padding: 0;display: flex;flex-wrap:nowrap;justify-content: flex-end;}
.case-details .info ul li { flex:1;}
.case-details .info ul li span { display:block;}
.case-details .info ul li span:first-child { font-weight: bold;color: #333;font-size:24px;margin-bottom:30px;}
.case-details .info ul li span:last-child { font-weight:400;}

.case-designer { background-color: #f5f5f5;}
.case-designer .container { padding: 90px 0;border-bottom-color: #e6e6e6;border-bottom-style:dashed;flex-direction: column; }
.case-designer .title { display: flex;align-items: flex-start;flex-direction: column;width:400px; }
.case-designer .title h2 { margin: 0;font-size: 36px;line-height: 36px;}
.case-designer .title h2::after { content:'';display:block;margin:15px 0; width:24px;height:16px;background-image: url('../images/icon-case-detail-more.png'); background-size:inherit;background-repeat: no-repeat; background-position: center;  }
.case-designer .title span { margin-left:0; color: #666; }

.case-designer .info { margin-top: 40px;padding: 40px;background-color: #fff;display: flex;justify-content: space-between;}
.case-designer .info .designer-image { flex: 1;margin-right: 60px; }
.case-designer .info .designer-image img { width: 100%;height: auto;}
.case-designer .info .designer-details { flex: 3;}
.case-designer .info .designer-details h2 { margin: 0;font-size: 36px;margin-bottom:30px; }
.case-designer .info .designer-details h2 span { font-size:24px;font-weight:400;margin-left:20px; }
.case-designer .info .designer-details p { margin-bottom: 20px; }
.case-designer .info .timeline { position: relative;padding-left: 50px;padding-top: 5px;}
.case-designer .info .timeline::before { content: '';position: absolute;left: 20px;top: 0;bottom: 0;width: 2px;background-color: #ccc; }
.case-designer .info .timeline ul {list-style: none;padding: 0; }
.case-designer .info .timeline ul li { position: relative;margin-bottom: 20px;width:100%; }
.case-designer .info .timeline ul li:last-child { margin-bottom: 0; }
.case-designer .info .timeline .marker { position: absolute;left: -40px;top: 3px;width: 20px;height: 20px;border-radius: 50%;background-color: #fff;border: 2px solid #e6212a; }
.case-designer .info .timeline .content span { display: block;margin-bottom: 5px;color:#666; }



@media (max-width: 768px) {
    .main-content {
        flex-direction: column;
    }

    .left-panel, .right-panel {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid #ddd;
    }
}