/* 全局box-sizing修复 */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* 主容器样式 */
.new-showcases-search-box {
    background-color: #fff;
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    box-sizing: border-box;
}

/* 头部导航样式 - 吸顶效果 */
.new-showcases-search-box-header {
    position: sticky;
    z-index: 100;
    background-color: #fff;
    padding: 15px 48px;
    border-bottom: 1px solid #eee;
    transition: box-shadow 0.3s ease, padding 0.3s ease;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.new-showcases-search-box-header-list {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 20px;
    flex-wrap: nowrap;
    /* 强制不换行 */
    overflow-x: auto;
    /* 启用横向滚动 */
    overflow-y: hidden;
    scrollbar-width: none;
    /* Firefox隐藏滚动条 */
    -ms-overflow-style: none;
    /* IE隐藏滚动条 */
    -webkit-overflow-scrolling: touch;
    /* iOS平滑滚动 */
}

/* 隐藏滚动条 */
.new-showcases-search-box-header-list::-webkit-scrollbar {
    display: none;
}

.new-showcases-search-box-header-list li {
    padding: 8px 16px;
    border: 1px solid #eee;
    color: #02060B;
    border-radius: 20px;
    cursor: pointer;
    transition: background-color 0.3s;
    -webkit-transition: background-color 0.3s;
    -moz-transition: background-color 0.3s;
    -ms-transition: background-color 0.3s;
    -o-transition: background-color 0.3s;
    white-space: nowrap;
    /* 防止文字换行 */
    flex-shrink: 0;
    /* 防止标签被压缩 */
}

.new-showcases-search-box-header-list li:hover,
.new-showcases-search-box-header-list li.active {
    border: 1px solid #02060B;
}

/* 内容区域布局 */
.new-showcases-search-box-content {
    display: flex;
    gap: 20px;
    height: 80vh;
    /* 固定高度，不允许撑开 */
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 20px;
    padding: 0 48px;
    overflow: hidden;
    /* 隐藏溢出内容 */
}

/* 左侧内容区域 */
.content-left-box {
    flex: 1;
    max-width: 1107px;
    height: 100%;
    /* 占满父容器高度 */
    box-sizing: border-box;
    position: relative;
}

/* 右侧地图区域 */
.content-right-box {
    width: 767px;
    flex-shrink: 0;
    min-width: 300px;
    max-width: 767px;
    height: 100%;
    /* 占满父容器高度 */
}

/* 展示网格容器 - 原生滚动 */
.showcases-grid-container {
    height: 100%;
    /* 占满父容器高度 */
    overflow: auto;
    /* 启用原生滚动 */
    position: relative;
    /* 滚动性能优化 */
    contain: layout style paint;
    will-change: scroll-position;
}

/* Webkit浏览器隐藏滚动条 */
.showcases-grid-container::-webkit-scrollbar {
    display: none;
}



/* 展示网格 - PC端3列 */
.showcases-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
    margin-bottom: 20px;
    max-width: 100%;
}

/* 单个展示项样式 */
.showcase-item {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    cursor: pointer;
    border: 2px solid #f0f0f0;
}

/* 悬浮高亮状态 - 只改变边框颜色，无动画 */
.showcase-item-hovered {
    border: 2px solid #FF385C !important;
}

.showcase-item-image {
    width: 100%;
    height: 200px;
    background-color: #f0f0f0;
    border-radius: 8px 8px 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.showcase-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.showcase-item-avatar {
    position: absolute;
    bottom: 12px;
    left: 12px;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    border: 2px solid white;
    background-color: #f5f5f5;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.showcase-item-content {
    padding: 16px;
}

.showcase-item-location {
    font-size: 12px;
    color: #8c8c8c;
    margin-bottom: 6px;
    font-weight: 400;
}

.showcase-item-title {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 12px;
    line-height: 1.4;
    color: #262626;
}

.showcase-item-button {
    display: inline-block;
    color: #666;
    font-size: 14px;
    text-decoration: underline !important;
}

/* 地图容器 - 动态高度 */
.map-container {
    width: 100%;
    height: calc(100vh - 200px);
    /* 基础高度：视口高度减去头部和边距 */
    min-height: 400px;
    /* 最小高度保证可用性 */
    max-height: calc(100vh - 150px);
    /* 最大高度限制 */
    background-color: #f0f0f0;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
}

/* 谷歌地图样式 */
.map-container .gm-style {
    border-radius: 8px;
}

/* 地图加载状态 */
.map-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #666;
}

.map-loading-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid #02060B;
    border-radius: 50%;
    animation: mapSpin 1s linear infinite;
    margin-bottom: 12px;
}

@keyframes mapSpin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.map-placeholder {
    text-align: center;
    color: #666;
}

/* 加载状态 */
.loading {
    text-align: center;
    padding: 20px;
}

.loading-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid #007bff;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 10px;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* 骨架屏样式 */
.skeleton-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    margin-bottom: 20px;
    max-width: 100%;
}



/* 确保初始骨架屏立即可见 */
.skeleton-grid.initial-loading {
    opacity: 1;
    animation: skeleton-fade-in 0.3s ease-in-out;
}

@keyframes skeleton-fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.skeleton-item {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
}

.skeleton-image {
    width: 100%;
    height: 200px;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    position: relative;
}

.skeleton-avatar {
    position: absolute;
    bottom: 10px;
    left: 10px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(90deg, #e0e0e0 25%, #d0d0d0 50%, #e0e0e0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border: 2px solid white;
}

.skeleton-content {
    padding: 15px;
}

.skeleton-location {
    height: 12px;
    width: 60%;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: 4px;
    margin-bottom: 8px;
}

.skeleton-title {
    height: 16px;
    width: 90%;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: 4px;
    margin-bottom: 6px;
}

.skeleton-title-second {
    height: 16px;
    width: 75%;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: 4px;
    margin-bottom: 12px;
}

.skeleton-button {
    height: 14px;
    width: 50%;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: 4px;
}

@keyframes skeleton-loading {
    0% {
        background-position: -200% 0;
    }

    100% {
        background-position: 200% 0;
    }
}

@keyframes skeleton-pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.8;
    }
}

/* 错误状态样式 */
.error-state {
    grid-column: 1 / -1;
    text-align: center;
    padding: 60px 20px;
    color: #666;
    background: #f9f9f9;
    border-radius: 8px;
    margin: 20px 0;
}

.error-icon {
    font-size: 48px;
    margin-bottom: 16px;
    opacity: 0.6;
}

.error-title {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 8px 0;
    color: #333;
}

.error-message {
    font-size: 14px;
    margin: 0 0 20px 0;
    color: #666;
    line-height: 1.5;
}

.error-retry-btn {
    background: #02060B;
    color: white;
    border: none;
    padding: 12px 24px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s ease;
}

.error-retry-btn:hover {
    background: #333;
    transform: translateY(-1px);
}

/* 分页样式 */
.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
    padding: 20px 0;
    flex-wrap: wrap;
}

.pagination-btn {
    padding: 8px 12px;
    border: 1px solid #ddd;
    background-color: #fff;
    color: #333;
    cursor: pointer;
    border-radius: 4px;
    font-size: 14px;
    transition: all 0.3s ease;
    min-width: 40px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pagination-btn:hover:not(:disabled) {
    background-color: #f5f5f5;
    border-color: #02060B;
}

.pagination-btn:disabled {
    background-color: #f5f5f5;
    color: #999;
    cursor: not-allowed;
    border-color: #eee;
}

.pagination-btn.active {
    background-color: #02060B;
    color: #fff;
    border-color: #02060B;
}

.pagination-btn.active:hover {
    background-color: #333;
}

.pagination-ellipsis {
    padding: 8px 4px;
    color: #999;
    font-size: 14px;
    display: flex;
    align-items: center;
    height: 36px;
}

.pagination-info {
    margin-left: 16px;
    font-size: 14px;
    color: #666;
    white-space: nowrap;
}

.pagination-prev,
.pagination-next {
    font-weight: 500;
}

/* ===== 超大屏幕 ===== */
/* 4K显示器 (2560px+) */
@media (min-width: 2560px) {
    .showcases-grid {
        grid-template-columns: repeat(4, 323px);
        gap: 25px;
        justify-content: flex-start;
    }

    .content-right-box {
        width: 800px;
    }

    .new-showcases-search-box-content {
        padding: 0 60px;
    }
}

/* 超宽屏 (1920px-2560px) */
@media (min-width: 1920px) and (max-width: 2559px) {
    .new-showcases-search-box-content {
        padding: 0 48px;
    }

    .skeleton-grid {
        grid-template-columns: repeat(3, 323px);
    }

    .showcases-grid {
        grid-template-columns: repeat(3, 323px);
        gap: 20px;
        justify-content: flex-start;
    }

    .content-right-box {
        width: 767px;
    }
}

/* ===== 桌面端 ===== */
/* 大桌面 (1680px-1920px) */
@media (min-width: 1680px) and (max-width: 1919px) {
    .new-showcases-search-box-content {
        padding: 0 45px;
    }


    .showcases-grid {
        grid-template-columns: repeat(3, minmax(310px, 323px));
        gap: 18px;
    }

    .content-right-box {
        width: 720px;
    }
}

/* 标准桌面 (1440px-1680px) - MacBook Pro 16", 主流显示器 */
@media (min-width: 1440px) and (max-width: 1679px) {
    .new-showcases-search-box-content {
        padding: 0 48px;
    }

    .content-left-box {
        max-width: calc(100% - 580px);
    }

    .content-right-box {
        width: 580px;
    }

    .showcases-grid {
        grid-template-columns: repeat(3, minmax(240px, 1fr));
        gap: 24px;
    }

    .showcase-item-title {
        font-size: 14px;
    }

    /* 骨架屏匹配实际内容尺寸 */
    .skeleton-grid {
        grid-template-columns: repeat(3, minmax(240px, 1fr));
        gap: 24px;
        justify-content: flex-start;
    }

    .skeleton-item {
        width: 240px;
        /* 匹配展示项宽度 */
        min-height: 280px;
        /* 匹配展示项高度 */
    }

    .skeleton-image {
        height: 160px;
        /* 匹配实际图片高度 */
    }

    /* 地图高度适配桌面端 */
    .map-container {
        height: calc(100vh - 180px);
        min-height: 500px;
    }
}

/* 15寸笔记本优化 (1366px-1440px) - 主流笔记本 */
@media (min-width: 1366px) and (max-width: 1439px) {
    .new-showcases-search-box-header {
        top: 40px;
    }

    .new-showcases-search-box-content {
        padding: 0 20px;
        gap: 16px;
    }

    .content-left-box {
        max-width: calc(100% - 500px);
        /* 给地图更多空间 */
    }

    .content-right-box {
        width: 480px;
        /* 增加地图宽度 */
    }

    .showcases-grid {
        grid-template-columns: repeat(3, 240px);
        /* 3列，每列固定240px */
        gap: 10px;
        /* 减少间距 */
        justify-content: flex-start;
        /* 左对齐 */
    }

    .showcase-item {
        min-height: 200px;
        /* 减少高度 */
        width: 240px;
        /* 固定宽度 */
    }

    .showcase-item-content {
        padding: 10px;
        /* 减少内边距 */
    }

    .showcase-item-title {
        font-size: 14px;
        /* 减小标题字体 */
        font-weight: 600;
        margin-bottom: 3px;
        line-height: 1.3;
    }

    .showcase-item-location {
        font-size: 11px;
        /* 减小位置字体 */
        color: #8c8c8c;
        margin-bottom: 6px;
        line-height: 1.2;
    }

    .showcase-item-button {
        font-size: 11px;
        /* 减小按钮字体 */
        padding: 5px 10px;
        /* 减少按钮内边距 */
    }

    .showcase-item-avatar {
        width: 36px;
        /* 减小头像尺寸 */
        height: 36px;
        bottom: 8px;
        left: 8px;
        border: 2px solid white;
    }

    .showcase-item-image {
        height: 120px;
        /* 减少图片高度 */
    }

    /* 骨架屏也要匹配240px宽度 */
    .skeleton-grid {
        grid-template-columns: repeat(3, 240px);
        gap: 10px;
        justify-content: flex-start;
    }

    .skeleton-item {
        width: 240px;
        /* 固定骨架屏宽度 */
        min-height: 200px;
    }

    .skeleton-image {
        height: 120px;
        /* 匹配实际图片高度 */
    }

    /* 地图高度适配笔记本端 */
    .map-container {
        height: calc(100vh - 160px);
        min-height: 450px;
        max-height: calc(100vh - 120px);
    }
}

/* ===== 平板端 ===== */
/* 大平板横屏 (1280px-1366px) - iPad Pro 12.9" 横屏 */
@media (min-width: 1280px) and (max-width: 1365px) {
    .new-showcases-search-box-header {
        top: 28px;
    }

    .new-showcases-search-box-content {
        padding: 0 30px;
    }

    .content-left-box {
        max-width: calc(100% - 350px);
    }

    .content-right-box {
        width: 330px;
    }

    .showcases-grid {
        grid-template-columns: repeat(2, minmax(280px, 1fr));
        gap: 16px;
    }

    /* 骨架屏适配平板端 */
    .skeleton-grid {
        grid-template-columns: repeat(2, minmax(280px, 1fr));
        gap: 16px;
    }

    .skeleton-item {
        min-height: 300px;
    }

    .skeleton-image {
        height: 180px;
    }

    /* 地图高度适配平板端 */
    .map-container {
        height: calc(100vh - 140px);
        min-height: 400px;
        max-height: calc(100vh - 100px);
    }
}

/* 中等平板横屏 (1024px-1280px) - iPad Air/Pro 横屏 */
@media (min-width: 1024px) and (max-width: 1279px) {
    .new-showcases-search-box-header {
        top: 28px;
    }

    .new-showcases-search-box-content {
        padding: 0 30px;
        gap: 24px;
    }

    .content-left-box {
        max-width: calc(100% - 480px);
        /* 给地图更多空间 */
    }

    .content-right-box {
        width: 450px;
        /* 增加地图宽度 */
        min-width: 400px;
    }

    .showcases-grid {
        grid-template-columns: repeat(2, minmax(260px, 1fr));
        gap: 18px;
    }

    /* 地图高度适配中等平板 */
    .map-container {
        height: calc(100vh - 140px);
        min-height: 420px;
        max-height: calc(100vh - 100px);
    }
}

/* 小平板横屏 (834px-1024px) - 响应式缩放PC端样式 */
@media (min-width: 834px) and (max-width: 1024px) {

    /* 设置响应式缩放变量 */
    :root {
        --tablet-scale: clamp(0.85, (100vw - 834px) / (1024 - 834), 1);
        --tablet-spacing-sm: clamp(16px, 2.5vw, 24px);
        --tablet-spacing-md: clamp(20px, 3vw, 30px);
        --tablet-spacing-lg: clamp(24px, 3.5vw, 36px);
    }

    /* 使用PC端的并排布局但支持响应式缩放 */
    .new-showcases-search-box-content {
        display: flex;
        gap: var(--tablet-spacing-sm);
        height: 80vh;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        margin-top: clamp(16px, 2vw, 24px);
        padding: 0 clamp(24px, 4vw, 48px);
        overflow: hidden;
    }

    /* 左侧内容区域 - 响应式 */
    .content-left-box {
        flex: 1;
        max-width: clamp(400px, calc(100% - clamp(380px, 40vw, 500px)), calc(100% - 380px));
        height: 100%;
        box-sizing: border-box;
        position: relative;
    }

    /* 右侧地图区域 - 响应式 */
    .content-right-box {
        width: clamp(380px, 40vw, 500px);
        flex-shrink: 0;
        min-width: 350px;
        height: 100%;
    }

    /* 展示网格 - 响应式列数和尺寸 */
    .showcases-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(clamp(180px, 22vw, 240px), 1fr));
        gap: clamp(12px, 1.8vw, 20px);
        margin-bottom: clamp(16px, 2vw, 24px);
        max-width: 100%;
    }

    /* 展示网格容器 - PC样式 */
    .showcases-grid-container {
        height: 100%;
        overflow: auto;
        position: relative;
        contain: layout style paint;
        will-change: scroll-position;
    }

    /* 隐藏滚动条 */
    .showcases-grid-container::-webkit-scrollbar {
        display: none;
    }

    /* 响应式展示项目样式 */
    .showcase-item {
        font-size: clamp(13px, 1.4vw, 16px);
    }

    .showcase-item-content {
        padding: clamp(12px, 1.6vw, 18px);
    }

    .showcase-item-title {
        font-size: clamp(14px, 1.6vw, 17px);
        margin-bottom: clamp(8px, 1vw, 12px);
    }

    .showcase-item-location {
        font-size: clamp(11px, 1.2vw, 14px);
        margin-bottom: clamp(4px, 0.6vw, 8px);
    }

    .showcase-item-button {
        font-size: clamp(12px, 1.3vw, 15px);
    }

    /* 地图容器 - 响应式 */
    .map-container {
        width: 100%;
        height: clamp(calc(100vh - 220px), calc(100vh - 18vw), calc(100vh - 180px));
        min-height: clamp(350px, 35vw, 450px);
        max-height: calc(100vh - 150px);
        background-color: #f0f0f0;
        border-radius: clamp(6px, 0.8vw, 10px);
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        position: relative;
    }

    /* 头部导航响应式调整 */
    .new-showcases-search-box-header {
        padding: clamp(12px, 1.8vw, 18px) var(--tablet-spacing-md);
    }

    .new-showcases-search-box-header-list {
        gap: clamp(14px, 2vw, 22px);
    }

    .new-showcases-search-box-header-list li {
        padding: clamp(6px, 1vw, 10px) clamp(12px, 1.8vw, 18px);
        font-size: clamp(13px, 1.5vw, 16px);
        border-radius: clamp(16px, 2vw, 24px);
    }
}

/* ===== 移动端 ===== */
/* 小于833px - 单行滑动标签 + 底部抽屉 */
@media (max-width: 833px) {

    /* 设置CSS变量，基于视口宽度实现等比缩放 */
    :root {
        --mobile-scale: clamp(0.8, 2.5vw / 16px, 1.2);
        /* 缩放比例 */
        --mobile-font-base: clamp(12px, 2.5vw, 16px);
        --mobile-spacing-xs: clamp(4px, 0.8vw, 8px);
        --mobile-spacing-sm: clamp(8px, 1.5vw, 12px);
        --mobile-spacing-md: clamp(12px, 2vw, 20px);
        --mobile-spacing-lg: clamp(16px, 3vw, 24px);
        --mobile-spacing-xl: clamp(20px, 4vw, 32px);
        --mobile-radius-sm: clamp(4px, 0.8vw, 8px);
        --mobile-radius-md: clamp(6px, 1.2vw, 10px);
        --mobile-radius-lg: clamp(20px, 4vw, 30px);
    }

    /* 设置根字体大小，基于视口宽度 */
    html {
        font-size: var(--mobile-font-base);
        height: 100vh;
        margin: 0;
        padding: 0;
        overflow: hidden;
    }

    /* 防止页面滚动但保留头部筛选滚动 */
    body {
        overflow-x: hidden;
        overflow-y: hidden;
        height: 100vh;
        margin: 0;
        padding: 0;
    }

    /* 移动端隐藏多余的骨架项 */
    .skeleton-grid .skeleton-item:nth-child(n+7) {
        display: none;
    }

    /* 移动端隐藏分页 */
    .pagination {
        display: none !important;
    }

    /* 移动端隐藏footer */
    footer,
    .footer,
    [role="contentinfo"] {
        display: none !important;
    }

    /* 移动端地图弹窗样式 */
    #mobile-info-window {
        position: fixed !important;
        bottom: 0 !important;
        left: 16px !important;
        right: 16px !important;
        background: white !important;
        border-radius: 12px 12px 0 0 !important;
        box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15) !important;
        z-index: 1000 !important;
        padding: 16px !important;
        max-height: 35vh !important;
        overflow-y: auto !important;
        transform: translateY(100%) !important;
        transition: transform 0.3s ease-out !important;
        max-width: 400px !important;
        margin: 0 auto !important;
        -webkit-transform: translateY(100%) !important;
        -moz-transform: translateY(100%) !important;
        -ms-transform: translateY(100%) !important;
        -o-transform: translateY(100%) !important;
    }

    #mobile-info-window.show {
        transform: translateY(0) !important;
    }

    /* 移动端内容区域调整 */
    .new-showcases-search-box-content {
        height: auto !important;
        overflow: visible !important;
    }

    .showcases-grid-container {
        overflow: visible !important;
        height: auto !important;
    }

    /* 头部标签单行滑动 */
    .new-showcases-search-box-header {
        padding: 8px 0;
        margin-bottom: 12px;
        border-bottom: 1px solid #eee;
        position: fixed;
        width: 100%;
        background: #fff;
        z-index: 200;
    }

    /* 移动端标签列表滚动 - 使用CSS变量 */
    .new-showcases-search-box-header-list {
        overflow-x: auto !important;
        overflow-y: hidden !important;
        white-space: nowrap;
        padding: 0 var(--mobile-spacing-md) !important;
        gap: var(--mobile-spacing-sm) !important;
        flex-wrap: nowrap !important;
        scrollbar-width: none;
        -ms-overflow-style: none;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-x;
    }

    /* Webkit浏览器隐藏滚动条 */
    .new-showcases-search-box-header-list::-webkit-scrollbar {
        display: none;
        height: 3px;
    }

    .new-showcases-search-box-header-list::-webkit-scrollbar-track {
        background: #f1f1f1;
        border-radius: 3px;
    }

    .new-showcases-search-box-header-list::-webkit-scrollbar-thumb {
        background: #c1c1c1;
        border-radius: 3px;
    }

    .new-showcases-search-box-header-list::-webkit-scrollbar-thumb:hover {
        background: #a8a8a8;
    }

    /* 移动端标签样式 - 使用CSS变量 */
    .new-showcases-search-box-header-list li {
        padding: var(--mobile-spacing-sm) var(--mobile-spacing-lg) !important;
        white-space: nowrap !important;
        flex-shrink: 0 !important;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        min-width: auto;
        border-radius: var(--mobile-radius-lg) !important;
        font-size: clamp(12px, 2.2vw, 16px) !important;
        font-weight: 500;
    }

    /* 优化触摸体验 */
    .showcase-item,
    .new-showcases-search-box-header-list li,
    .pagination-btn {
        -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
        touch-action: manipulation;
    }

    /* 主内容区域 - 地图全屏 */
    .new-showcases-search-box-content {
        flex-direction: column;
        height: 100vh;
        padding: 0;
        margin: 0;
        /* 移除所有外边距 */
        position: relative;
        overflow: hidden;
        /* 防止内容溢出 */
    }

    /* 确保主容器也不会产生滚动 */
    .new-showcases-search-box {
        margin: 0;
        padding: 0;
        height: 100vh;
        overflow: hidden;
    }

    /* 地图容器 - 全屏背景 */
    .content-right-box {
        width: 100%;
        height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        z-index: 1;
    }

    .map-container {
        width: 100vw !important;
        height: 100vh !important;
        border-radius: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        z-index: 1 !important;
    }

    /* 确保地图内部不产生滚动条 */
    .map-container * {
        box-sizing: border-box !important;
    }

    /* 底部抽屉容器 - 优化动画性能 */
    .content-left-box {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100vh !important; /* 固定高度，使用transform控制显示 */
        min-height: unset !important;
        max-height: unset !important;
        background: #fff !important;
        border-radius: 16px 16px 0 0 !important;
        box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15) !important;
        z-index: 100 !important;
        /* 使用transform动画替代height动画 - 性能更好 */
        transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
        transform: translateY(50vh) translate3d(0, 0, 0) !important; /* 默认一半状态 + GPU加速 */
        overflow: hidden !important;
        display: block !important;
        max-width: none !important;
        flex: none !important;
        flex-grow: 0 !important;
        flex-shrink: 0 !important;
        flex-basis: auto !important;
        /* 性能优化 */
        will-change: transform !important;
        backface-visibility: hidden !important;
        -webkit-backface-visibility: hidden !important;
        contain: layout style paint !important;
    }

    /* 抽屉收缩状态 - 使用transform优化性能 */
    .content-left-box.drawer-collapsed {
        transform: translateY(calc(100vh - 80px)) translate3d(0, 0, 0) !important;
    }

    /* 抽屉一半状态 - 默认状态 */
    .content-left-box.drawer-half {
        transform: translateY(50vh) translate3d(0, 0, 0) !important;
    }

    /* 抽屉全屏状态 - 完全展开 */
    .content-left-box.drawer-fullscreen {
        transform: translateY(80px) translate3d(0, 0, 0) !important;
        border-radius: 0 !important;
    }

    /* 抽屉拖拽手柄 - 响应式尺寸 */
    .drawer-handle {
        width: clamp(35px, 6vw, 50px) !important;
        height: clamp(3px, 0.6vw, 5px) !important;
        background: #ddd !important;
        border-radius: clamp(2px, 0.3vw, 3px) !important;
        margin: clamp(10px, 2vw, 16px) auto clamp(12px, 2.5vw, 20px) !important;
        cursor: grab !important;
        transition: background-color 0.2s ease !important;
        display: block !important;
        position: relative !important;
        z-index: 10 !important;
    }

    .drawer-handle:hover {
        background: #bbb;
    }

    /* 拖拽状态样式 - 优化性能 */
    .content-left-box.dragging {
        transition: none !important;
        user-select: none !important;
        -webkit-user-select: none !important;
        -moz-user-select: none !important;
        -ms-user-select: none !important;
        pointer-events: none !important; /* 拖拽时禁用指针事件 */
        will-change: transform !important;
    }

    .content-left-box.dragging .drawer-handle {
        background: #999 !important;
    }

    .drawer-handle:active {
        cursor: grabbing;
        background: #999;
    }

    /* 抽屉内容区域 - 优化滚动性能 */
    .showcases-grid-container {
        height: calc(100vh - clamp(70px, 12vw, 100px)) !important;
        padding: 0 clamp(12px, 2.5vw, 20px) clamp(16px, 3vw, 24px) clamp(12px, 2.5vw, 20px) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        position: relative !important;
        background: #fff !important;
        /* 滚动性能优化 */
        contain: layout style paint !important;
        will-change: scroll-position !important;
        transform: translate3d(0, 0, 0) !important; /* 启用硬件加速 */
        /* 滚动边界视觉反馈 */
        overscroll-behavior: contain !important;
        scroll-behavior: smooth !important;
    }

    /* 收缩状态下隐藏内容 */
    .content-left-box.drawer-collapsed .showcases-grid-container {
        opacity: 0 !important;
        pointer-events: none !important;
        transition: opacity 0.2s ease !important;
    }

    /* 一半和全屏状态显示内容 */
    .content-left-box.drawer-half .showcases-grid-container,
    .content-left-box.drawer-fullscreen .showcases-grid-container {
        opacity: 1 !important;
        pointer-events: auto !important;
        transition: opacity 0.3s ease 0.1s !important; /* 延迟显示，等动画完成 */
    }

    /* 抽屉头部信息 */
    .drawer-header {
        padding: 0 16px 12px;
        position: sticky;
        top: 0;
        z-index: 10;
    }

    .drawer-title {
        font-size: 18px;
        font-weight: 600;
        color: #222;
        margin: 0 0 4px 0;
    }

    .drawer-subtitle {
        font-size: 14px;
        color: #717171;
        margin: 0;
    }

    /* 地图切换按钮 */
    .map-toggle-button {
        position: fixed !important;
        bottom: 20px !important;
        right: 0 !important;
        left: 0 !important;
        margin: 0 auto !important;
        width: 6rem !important;
        height: 2.5rem !important;
        background: #000 !important;
        border-radius: 20px !important;
        display: none;
        align-items: center !important;
        justify-content: center !important;
        cursor: pointer !important;
        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3) !important;
    }

    .map-toggle-button:hover {
        background: #333 !important;
    }

    .map-toggle-icon span {
        color: #fff !important;
        font-size: 12px !important;
        font-weight: 500 !important;
    }

    /* 无限滚动加载指示器 */
    .loading-indicator {
        display: flex !important;
        /* 移动端强制显示 */
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 20px;
        margin: 10px 0;
        color: #666;
        font-size: 14px;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
        z-index: 1000;
        /* 确保在最上层 */
        position: relative;
    }

    .loading-spinner {
        width: 20px;
        height: 20px;
        border: 2px solid #f0f0f0;
        border-top: 2px solid #1890ff;
        border-radius: 50%;
        animation: spin 1s linear infinite;
        margin-bottom: 8px;
    }

    @keyframes spin {
        0% {
            transform: rotate(0deg);
        }

        100% {
            transform: rotate(360deg);
        }
    }

    /* 移动端展示项目样式优化 - 响应式尺寸 */
    .showcase-item {
        border-radius: clamp(6px, 1.2vw, 10px);
        overflow: hidden;
        box-shadow: 0 clamp(1px, 0.3vw, 3px) clamp(6px, 1.2vw, 10px) rgba(0, 0, 0, 0.1);
        background: #fff;
        margin-bottom: clamp(12px, 2.5vw, 20px);
    }

    .showcase-image {
        width: 100%;
        height: clamp(160px, 25vw, 220px);
        overflow: hidden;
    }

    .showcase-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .showcase-info {
        padding: clamp(10px, 2vw, 16px);
    }

    .showcase-info h3 {
        margin: 0 0 clamp(6px, 1.2vw, 10px) 0;
        font-size: clamp(14px, 2.5vw, 18px);
        font-weight: 600;
        color: #222;
        line-height: 1.3;
    }

    .showcase-info .location {
        margin: 0 0 clamp(3px, 0.6vw, 6px) 0;
        font-size: clamp(12px, 2vw, 15px);
        color: #666;
    }

    .showcase-info .description {
        margin: 0 0 clamp(10px, 2vw, 15px) 0;
        font-size: clamp(11px, 1.8vw, 14px);
        color: #888;
        line-height: 1.4;
    }

    /* 展示项目新增样式 */
    .showcase-header {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 8px;
    }

    .showcase-products {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        margin-left: 8px;
    }

    .product-tag {
        background: #f0f8ff;
        color: #1890ff;
        padding: 2px 6px;
        border-radius: 10px;
        font-size: 10px;
        font-weight: 500;
    }

    .product-more {
        background: #f5f5f5;
        color: #666;
        padding: 2px 6px;
        border-radius: 10px;
        font-size: 10px;
    }

    .showcase-avatar {
        position: absolute;
        bottom: 12px;
        left: 12px;
        width: 40px;
        height: 40px;
        border-radius: 50%;
        overflow: hidden;
        border: 2px solid #fff;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    }

    .showcase-avatar img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .showcase-actions {
        margin-top: 12px;
    }

    .btn-book,
    .btn-contact {
        width: 100%;
        padding: clamp(6px, 1.2vw, 10px) clamp(12px, 2.5vw, 20px);
        border: none;
        border-radius: clamp(4px, 0.8vw, 8px);
        font-size: clamp(11px, 2vw, 15px);
        font-weight: 500;
        cursor: pointer;
        text-decoration: none;
        text-align: center;
        display: inline-block;
        transition: all 0.2s ease;
    }

    .btn-book {
        background: #1890ff;
        color: #fff;
    }

    .btn-book:hover {
        background: #40a9ff;
    }

    .btn-contact {
        background: #f5f5f5;
        color: #333;
    }

    .btn-contact:hover {
        background: #e6e6e6;
    }

    /* 错误消息样式 */
    .error-message {
        display: none;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 20px;
        margin: 10px 0;
        background: #fff2f0;
        border: 1px solid #ffccc7;
        border-radius: 6px;
        color: #ff4d4f;
    }

    .error-content {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .error-icon {
        font-size: 16px;
    }

    .error-text {
        font-size: 14px;
    }

    .error-retry {
        background: #ff4d4f;
        color: #fff;
        border: none;
        padding: 4px 12px;
        border-radius: 4px;
        font-size: 12px;
        cursor: pointer;
        margin-left: 8px;
    }

    .error-retry:hover {
        background: #ff7875;
    }

    .new-showcases-search-box-header-list {
        display: flex;
        overflow-x: auto;
        overflow-y: hidden;
        white-space: nowrap;
        padding: 0 16px;
        gap: 12px;
        flex-wrap: nowrap;
        scrollbar-width: none;
        -ms-overflow-style: none;
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
        /* iOS平滑滚动 */
    }

    .new-showcases-search-box-header-list::-webkit-scrollbar {
        display: none;
    }

    .new-showcases-search-box-header-list li {
        padding: 10px 20px;
        white-space: nowrap;
        flex-shrink: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: auto;
        border-radius: 25px;
        font-size: 14px;
        font-weight: 500;
        border: 1px solid #ddd;
        background: #fff;
        color: #333;
        transition: all 0.2s ease;
        -webkit-transition: all 0.2s ease;
        -moz-transition: all 0.2s ease;
        -ms-transition: all 0.2s ease;
        -o-transition: all 0.2s ease;
    }

    .new-showcases-search-box-header-list li.active {
        color: #02060B;
        border-color: #02060B;
    }

    .new-showcases-search-box-header-list li:hover {
        border-color: none;
    }

}



/* 标准手机横屏 (640px-768px) - iPhone Pro Max 横屏 */
@media (min-width: 640px) and (max-width: 767px) {
    .new-showcases-search-box-content {
        flex-direction: column;
        padding: 0 16px;
    }



    .content-right-box {
        width: 100%;
    }

    .map-container {
        height: 100vh;
        min-height: 100vh;
    }

    .new-showcases-search-box-header-list li {
        font-size: 14px;
    }
}

/* 大手机竖屏 (414px-640px) - iPhone Pro Max, Android 大屏 */
@media (min-width: 414px) and (max-width: 639px) {
    .new-showcases-search-box-content {
        padding: 0 16px;
        flex-direction: column;
    }



    .content-right-box {
        width: 100%;
    }

    .map-container {
        height: 100vh;
        min-height: 100vh;
    }

    .new-showcases-search-box-header-list li {
        font-size: 13px;
    }
}

/* 标准手机竖屏 (375px-414px) - iPhone 标准尺寸 */
@media (min-width: 375px) and (max-width: 413px) {
    .new-showcases-search-box-content {
        padding: 0 12px;
        flex-direction: column;
    }



    .content-right-box {
        width: 100%;
    }

    .map-container {
        height: 100vh;
        min-height: 100vh;
    }

    .new-showcases-search-box-header-list li {
        font-size: 12px;
    }
}

/* 小手机竖屏 (320px-375px) - iPhone SE, 小屏Android */
@media (max-width: 374px) {
    .new-showcases-search-box-content {
        padding: 0 10px;
        flex-direction: column;
    }



    .content-right-box {
        width: 100%;
    }

    .map-container {
        height: 100vh;
        min-height: 100vh;
    }

    .new-showcases-search-box-header-list li {
        font-size: 11px;
    }
}