/* ================== 全局重置 & 基础 ================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* ================== 自定义 Web 字体：思源宋体（全站唯一字体） ==================
   由 tools/build_woff2.py 从 fonts/ 下的 OTF 源字体子集化 + 转 woff2 生成。
   仅打包页面实际用到的字符，故体积从 36MB 降到约 440KB。
   若后续新增/修改文案，请重新运行：py tools/build_woff2.py
   （改用 --safe 参数可并入 GB2312 一级汉字，避免改文案后缺字）
   ========================================================================== */
@font-face {
    font-family: "思源宋体";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/siyuan_songti_regular.otf") format("otf");
}

@font-face {
    font-family: "思源宋体";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/siyuan_songti_bold.ttf") format("ttf");
}

:root {
    --primary: #c8a96a;
    --primary-dark: #a88a4d;
    --text: #2c2c2c;
    --text-light: #2e2e2e;
    --bg: #ffffff;
    --bg-soft: #f8f6f2;
    --border: #e8e2d5;
    --shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
    --shadow-hover: 0 16px 50px rgba(0, 0, 0, 0.15);
    --transition: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    --line-height: 1.7;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: "思源宋体", serif;
    color: var(--text);
    background: var(--bg);
    line-height: 1.7;
    width: 100%;
    overflow-x: hidden;
}

img {
    width: 100%;
    display: block;
}

a {
    text-decoration: none;
    color: inherit;
    transition: color var(--transition);
}

ul, ol { list-style: none; }

.font-size-83{font-size:4.32vw;}
.font-size-47{font-size:2.45vw;}
.font-size-42{font-size:2.19vw;}
.font-size-38{font-size:1.98vw;}
.font-size-32{font-size:1.67vw;}
.font-size-30{font-size:1.56vw;}
.font-size-28{font-size:1.46vw;}
.font-size-24{font-size:1.25vw;}
.font-size-22{font-size:1.15vw;}
.font-size-20{font-size:1.04vw;}
.font-size-18{font-size:0.94vw;line-height: 1.6;}


.container {
    width: 81.25%;
    margin: 0 auto;
}

.section {
    opacity: 0;
    transform: translateY(40px);
    animation: fadeUp 1s ease forwards;
    width: 100%;
    overflow-x: hidden;
}

@keyframes fadeUp {
    to { opacity: 1; transform: translateY(0); }
}

/* ================== 通用动画 keyframes ================== */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideDown { from { opacity: 0; transform: translateY(-30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes scaleIn { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: scale(1); } }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes shimmer { 0% { background-position: -1000px 0; } 100% { background-position: 1000px 0; } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } }

/* ================== 顶部导航 ================== */
.site-header {
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.05);
    animation: slideDown 0.8s ease;
    height: 11.09vw;
}

.header-inner {
    width: 100%;
    margin: 0 auto;
    height: 6.93vw;
    border-bottom: 2px solid #888888;
}
.header-content{
    width: 81.25%;
    height:100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ============== 顶部预订按钮：独立一行 / 靠右 / 圆角 ============== */
.header-topbar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width: 81.25%;
    margin: 0 auto;
}



.logo {
    width: 15vw;
    gap: 12px;
    animation: fadeIn 1s ease 0s both;
}

.logo-icon { font-size: 32px; }

.logo-text {
    font-size: 18px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.2;
}

.logo-text small {
    font-size: 10px;
    font-weight: 400;
    color: var(--text-light);
    letter-spacing: 1px;
}
.language{padding-top: 4%;}
.language a{
    font-size: 1.04vw;
}
.language a.active {
    color: var(--primary);
}

.main-nav {
    display: flex;
    gap: 32px;
    width: 100%;
    height: 4.17vw;
    align-items: center;
}

.main-nav .book-btn {
    margin-left: auto;
}
.nav-item {width: 81.25%;    height: 4.17vw;}

.main-nav a {
    position: relative;
    font-size: 0.94vw;
    color: var(--text);
    padding: 8px 0;
    transition: color var(--transition);
}

.main-nav a:hover,
.main-nav a.active {
    color: var(--primary);
}

.main-nav a.book-btn {
    display: inline-block;
    padding: 9px 28px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #fff;
    background: #bc9d6c;
    border: none;
    border-radius: 30px;
    cursor: pointer;
    transition: all var(--transition);
}

.main-nav a.book-btn:hover {
    background: #a88a4d;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(188, 157, 108, 0.4);
}

.main-nav a:hover::after,
.main-nav a.active::after {
    width: 100%;
}

.menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
}

.menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--text);
    margin: 5px 0;
    transition: all var(--transition);
}

/* ================== Hero 横幅 ================== */
.hero {
    position: relative;
    height: 40.63vw;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: #fff;
    text-align: center;
}

.hero-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.hero-bg .swiper,
.hero-bg .swiper-wrapper,
.hero-bg .swiper-slide {
    width: 100%;
    height: 100%;
}

.hero-bg .swiper-slide {
    overflow: hidden;
}

.hero-bg .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.08);
    transition: transform 6s ease;
}

/* 当前活动背景图缓慢推拉（Ken Burns 视觉） */
.hero-bg .swiper-slide-active img {
    transform: scale(1);
}

/* ============== Hero 切换按钮：左 / 右 ============== */
.left_btn,
.right_btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 2.97vw;
    height: 2.97vw;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0.78;
    transition: opacity 0.3s ease, transform 0.3s ease;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.left_btn { left: 6.51%; }
.right_btn { right: 6.51%; }

.left_btn img,
.right_btn img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    pointer-events: none;
    transition: transform 0.3s ease;
}

.left_btn:hover,
.right_btn:hover {
    opacity: 1;
    transform: translateY(-50%) scale(1);
}

.left_btn:active,
.right_btn:active {
    transform: translateY(-50%) scale(1);
}


.hero-content {
    position: relative;
    z-index: 2;
    animation: fadeIn 1.5s ease 0.4s both;
}

.hero-title {
    font-size: 3.91vw;
    font-weight: 700;
    letter-spacing: 4px;
    margin-bottom: 16px;
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
    animation: slideUp 1.2s ease 0.6s both;
}

.hero-subtitle {
    font-size: clamp(12px, 1.6vw, 18px);
    letter-spacing: 6px;
    color: var(--primary);
    margin-bottom: 24px;
    animation: slideUp 1.2s ease 0.8s both;
}

.hero-desc {
    font-size: clamp(14px, 1.4vw, 16px);
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 40px;
    animation: slideUp 1.2s ease 1s both;
}

.hero-actions {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    animation: slideUp 1.2s ease 1.2s both;
}

.btn {
    display: inline-block;
    padding: 14px 36px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 2px;
    border-radius: 0;
    cursor: pointer;
    transition: all var(--transition);
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
}

.btn-primary {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}

.btn-primary:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(200, 169, 106, 0.4);
}

.btn-ghost {
    background: transparent;
    color: #fff;
    border-color: #fff;
}

.btn-ghost:hover {
    background: #fff;
    color: var(--text);
    transform: translateY(-3px);
}

.hero-scroll {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    color: #fff;
    text-align: center;
    animation: fadeIn 1.5s ease 1.5s both;
}

.hero-scroll span {
    font-size: 11px;
    letter-spacing: 4px;
    display: block;
    margin-bottom: 12px;
    opacity: 0.8;
}

.scroll-line {
    width: 1px;
    height: 50px;
    background: linear-gradient(to bottom, transparent, #fff);
    margin: 0 auto;
    animation: scrollMove 2s ease-in-out infinite;
}

@keyframes scrollMove {
    0% { transform: scaleY(0); transform-origin: top; }
    50% { transform: scaleY(1); transform-origin: top; }
    51% { transform-origin: bottom; }
    100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ================== 章节标题 ================== */
.section-header {
    text-align: center;
    margin-bottom: 60px;
}

.section-header.left {
    text-align: left;
}
.intro{padding: 7.76vw 0;}
.section-title {
    font-weight: 700;
    color: var(--text);
    margin-bottom: 1.98vw;
    position: relative;
    line-height: 1;
    display: inline-block;
}

.section-title.left {
    display: block;
}

.section-title .more {
    font-size: 1.04vw;
    font-weight: 400;
    color: var(--primary);
}

.section-sub,
.section-desc {
    color: var(--text-light);
    width: 100%;
}

.section-header.left .section-sub,
.section-header.left .section-desc {
    margin: 0;
}

/* ================== 酒店介绍 ================== */
.intro-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.intro-image {
    overflow: hidden;
    box-shadow: var(--shadow);
}

.intro-image img {
    width: 100%;
    object-fit: cover;
    transition: transform 0.8s ease;
}

.intro-image .play_btn {
    width: 6.2vw;
    height: 6.2vw;
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translate(-50%, 0%);
    cursor: pointer;
}

.intro-image:hover img {
    transform: scale(1.05);
}

.intro-text h3 {
    font-size: 26px;
    margin-bottom: 20px;
    color: var(--text);
    position: relative;
    padding-left: 16px;
}

.intro-text h3::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 3px;
    background: var(--primary);
}

.intro-text p {
    color: var(--text-light);
    margin-bottom: 16px;
    line-height: 1.9;
}

.intro-features {
    margin-top: 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.intro-features li {
    color: var(--text);
    font-size: 14px;
    padding: 8px 0;
    transition: all var(--transition);
}

.intro-features li:hover {
    color: var(--primary);
    transform: translateX(6px);
}

/* ================== 酒店客房 ================== */
.rooms-grid {
    width: 81.25%;
    overflow: unset;
    margin: 0 auto;
}

.room-card {
    width: 63.96vw;
    margin-right: 3.13vw;
    overflow: hidden;
    box-shadow: var(--shadow);
    background: #fff;
    transition: all var(--transition);
    opacity: 0.6;
}

.room-card.swiper-slide-active{opacity: 1;}
.room-card:hover {
    box-shadow: var(--shadow-hover);
}

.room-image {
    width: 63.96vw;
    overflow: hidden;
    height: auto;
}

.room-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease;
}

.room-card:hover .room-image img {
    transform: scale(1.05);
}

.room-info {
    position: absolute;
    width: 100%;
    left: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.46vw 28px;
    transition: all var(--transition);
}

.room-info h3 {
    color: #fff;
    line-height: 1;
    margin-top: 1vw;
}

.room-info p {
    color: var(--text-light);
    font-size: 14px;
}

.room-actions {
    display: flex;
    gap: 1.30vw;
    flex-shrink: 0;
}

.room-btn {
    display: inline-block;
    height: 2.34vw;
    width: 7.45vw;
    line-height: 2.2;
    font-weight: 500;
    letter-spacing: 1px;
    text-align: center;
    color: #fff;
    background: #bc9d6c;
    border-radius: 30px;
    white-space: nowrap;
    cursor: pointer;
    transition: all var(--transition);
}

.room-btn:hover {
    background: #a88a4d;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(188, 157, 108, 0.4);
}

.rooms-left,
.rooms-right {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 2.97vw;
    height: 2.97vw;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 1;
    transition: opacity 0.3s ease, transform 0.3s ease;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.rooms-left { left: 3.51%; }
.rooms-right { right: 23.51%; }



/* ================== 宴会厅 ================== */
.banquet{padding: 7.76vw 0;}
.banquet-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.banquet-item {
    position: relative;
    overflow: hidden;
    width: 25.31vw;
    height: auto;
    cursor: pointer;
}

.banquet-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease;
}

.banquet-item:hover img {
    transform: scale(1.1);
}

.banquet-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.98vw;
    color: #fff;
    opacity: 1;
    transition: opacity var(--transition);
}

.banquet-item:hover .banquet-overlay {
    opacity: 1;
}

.banquet-overlay h4 {
    margin-bottom: 6px;
    transform: translateY(20px);
    transition: transform 0.5s ease 0.1s;
}

.banquet-item:hover .banquet-overlay h4 {
    transform: translateY(0);
}

.banquet-left,
.banquet-right {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 2.97vw;
    height: 2.97vw;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 1;
    transition: opacity 0.3s ease, transform 0.3s ease;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.banquet-left { left: 3.51%; }
.banquet-right { right: 3.51%; }

/* ================== 会议设施 ================== */
.meeting{background:url('../images/meeting_bg.jpg') no-repeat center/cover #f7f4ef;}
.meeting-grid {
    display: grid;
    /* 设计稿 1920 下：左侧文字区 820 / 右侧图片区 1100，两列铺满整行 */
    grid-template-columns: 820fr 1100fr;
    align-items: center;
}
.meeting-text{padding-left: 22%;padding-right: 9%;}
.meeting-text p {
    color: var(--text-light);
    line-height: 1.6;
}
.meeting-text .meeting-btn{
    display: inline-block;
    border: 1px solid var(--primary);
    transition: all 0.3s ease;
    margin-top: 3vw;
}
.meeting-text .meeting-btn:hover{
    background: var(--primary);
}
.meeting-text .meeting-btn a{display: block;width: 100%;height: 100%;padding: 0.3vw 2vw;}

.meeting-image {
    overflow: hidden;
    width: 100%;
    box-shadow: var(--shadow);
}

.meeting-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s ease;
}

.meeting-image:hover img {
    transform: scale(1.05);
}

/* ================== 婚宴庆典 ================== */
.wedding{padding: 7.76vw 0;}
.wedding-banner {
    position: relative;
    height: 100%;
    overflow: hidden;
    box-shadow: var(--shadow);
}

.wedding-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease;
}

.wedding-banner:hover img {
    transform: scale(1.05);
}

/* ================== 康乐设施 ================== */
.recreation{background:url('../images/recreation_bg.jpg') no-repeat center/cover #f7f4ef;}
.recreation-grid {
    display: grid;
    /* 设计稿 1920 下：左侧文字区 820 / 右侧图片区 1100，两列铺满整行 */
    grid-template-columns:1100fr 820fr;
    align-items: center;
}
.recreation-text{padding-left: 9%;padding-right: 22%;}
.recreation-text p {
    color: var(--text-light);
    line-height: 1.6;
}
.recreation-text .recreation-btn{
    display: inline-block;
    border: 1px solid var(--primary);
    transition: all 0.3s ease;
    margin-top: 6vw;
}
.recreation-text .recreation-btn:hover{
    background: var(--primary);
}
.recreation-text .recreation-btn a{display: block;width: 100%;height: 100%;padding: 0.3vw 2vw;}

.recreation-image {
    overflow: hidden;
    width: 100%;
    box-shadow: var(--shadow);
}

.recreation-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s ease;
}

.recreation-image:hover img {
    transform: scale(1.05);
}

/* ================== 艺术空间 ================== */
.art{background:url('../images/meeting_bg.jpg') no-repeat center/cover #f7f4ef;margin-top: 7.76vw;}
.art-grid {
    display: grid;
    /* 设计稿 1920 下：左侧文字区 820 / 右侧图片区 1100，两列铺满整行 */
    grid-template-columns: 820fr 1100fr;
    align-items: center;
}
.art-text{padding-left: 22%;padding-right: 9%;}
.art-text p {
    color: var(--text-light);
    line-height: 1.6;
}
.art-text .art-btn{
    display: inline-block;
    border: 1px solid var(--primary);
    transition: all 0.3s ease;
    margin-top: 6vw;
}
.art-text .art-btn:hover{
    background: var(--primary);
}
.art-text .art-btn a{display: block;width: 100%;height: 100%;padding: 0.3vw 2vw;}

.art-image {
    overflow: hidden;
    box-shadow: var(--shadow);
    width: 100%;
}

.art-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);
}

.art-image:hover img {
    transform: scale(1.05);
    filter: saturate(1.2);
}

/* ================== 常年优惠 ================== */
.promotion{padding: 7.76vw 0;}
.promotion-banner {
    position: relative;
    height: 100%;
    overflow: hidden;
    box-shadow: var(--shadow);
}

.promotion-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease;
}

.promotion-banner:hover img {
    transform: scale(1.05);
}


/* ================== 城市微度假 ================== */
.vacation{background:url('../images/recreation_bg.jpg') no-repeat center/cover #f7f4ef;margin-bottom: 7.76vw;}
.vacation-grid {
    display: grid;
    /* 设计稿 1920 下：左侧文字区 820 / 右侧图片区 1100，两列铺满整行 */
    grid-template-columns:1100fr 820fr;
    align-items: center;
}
.vacation-text{padding-left: 9%;padding-right: 22%;}
.vacation-text p {
    color: var(--text-light);
    line-height: 1.6;
}
.vacation-text .vacation-btn{
    display: inline-block;
    border: 1px solid var(--primary);
    transition: all 0.3s ease;
    margin-top: 6vw;
}
.vacation-text .vacation-btn:hover{
    background: var(--primary);
}
.vacation-text .vacation-btn a{display: block;width: 100%;height: 100%;padding: 0.3vw 2vw;}

.vacation-image {
    overflow: hidden;
    box-shadow: var(--shadow);
    width: 100%;
}

.vacation-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);
}

.vacation-image:hover img {
    transform: scale(1.05);
    filter: saturate(1.2);
}

/* ================== 页脚 ================== */
.site-footer {
    background: #404040;
    color: #dbdbdb;
    padding: 80px 0 0;
}

.footer-grid {
    display: grid;
    width: 81.25%;
    margin: 0 auto;
    grid-template-columns: 1.6fr 0.7fr 1fr;
    gap: 40px;
    padding-bottom: 50px;
}

.footer-logo {
    display: flex;
    align-items: center;
    width: 23.02vw;
}


.footer-col p {
    display: block;
    color: #ffffff;
    margin-bottom: 10px;
    transition: all var(--transition);
}

.footer-bottom {
    padding: 24px 0;
    text-align: center;
    color: #ffffff;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-bottom-nav{width: 81.25%;margin: 0 auto;display: flex;justify-content: space-between;padding: 1.5vw 0;}
.footer-bottom-nav a{display: block;}

.footer-bottom p{padding: 1.5vw 0;}

.food-kv-content{width: 100%;}
.food-left,
.food-right {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 2.97vw;
    height: 2.97vw;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 1;
    transition: opacity 0.3s ease, transform 0.3s ease;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.food-left { left: 3.51%; }
.food-right { right: 3.51%; }
.food-content{width: 100%;display: flex;justify-content: space-between;flex-wrap: wrap;padding-bottom: 4.69vw;}
.food-content1{width: 100%;display: flex;justify-content: space-between;flex-wrap: wrap;padding-bottom: 0;}
.food-title{padding-top: 5.36vw;padding-bottom:2.86vw;}
.food-title h2{line-height: 1;font-weight: 700;}
.food-item{width: 39.48vw;margin-bottom: 2.08vw;}
.food-item01{width: 100%;margin-bottom: 2.08vw;}
.food-item .food-img{
    overflow: hidden;
    box-shadow: var(--shadow);
    width: 100%;
}
.food-item .food-img img{
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);}
.food-item:hover .food-img img{    transform: scale(1.05);
    filter: saturate(1.2);}
.food-kv-text{background: #f5f5f5;padding: 2.4vw 2.6vw;height: 23.7vw;position: relative;}
.food-kv-text1{background: #f5f5f5;padding: 2.4vw 2.6vw;height: 22.14vw;position: relative;}
.food-item01 .food-kv-text{height: 100%;background: #fff;}
.food-kv-text-desc1{color: rgba(0, 0, 0, 0.8);margin-bottom: 1vw;}
.food-kv-text-desc{color: rgba(0, 0, 0, 0.8);}
.food-kv-text-time{color: rgba(0, 0, 0, 1);}
.food-kv-text-btn{position: absolute;  right: 2.08vw;
    bottom: 2.08vw; display: inline-block;border: 1px solid var(--primary);transition: all 0.3s ease;}
.food-kv-text-btn a{display: block;width: 100%;height: 100%;padding: 0.3vw 4vw;}
.food-kv-text-btn:hover{background: var(--primary);}

.food-kv-text-menu{position: relative; display: inline-block;border: 1px solid var(--primary);transition: all 0.3s ease;background: var(--primary);margin-top: 4.95vw;}
.food-kv-text-menu a{display: block;width: 100%;height: 100%;padding: 0.3vw 2vw;color: #fff;}
.food-kv-text-menu:hover{background: var(--primary);}

.food-return{padding: 1vw 0;}

.food-show{width: 100%;display: flex;justify-content: space-between;padding-bottom: 4.69vw;}
.food-show-item{width: 39.48vw;overflow: hidden;
    box-shadow: var(--shadow);}
.food-show-item img{
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);}
.food-show-item:hover img{    transform: scale(1.05);
    filter: saturate(1.2);}
.mb-1{margin-bottom: 1vw;}
.mb-15{margin-bottom: 1.5vw;}
.mb-2{margin-bottom: 2vw;}

.art-content{width: 100%;}
.art-content-image{width: 100%;overflow: hidden;
    box-shadow: var(--shadow);}
.art-content-image img{
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);}
.art-content-image:hover img{    transform: scale(1.05);
    filter: saturate(1.2);}
.art-content-text{padding: 2.4vw 8.8vw;background: #f7f4ef;}


.art-show-content{width: 100%;display: flex;justify-content: space-between;flex-wrap: wrap;padding-bottom: 4.69vw;}
.art-show-title{padding-top: 5.36vw;padding-bottom:2.86vw;}
.art-show-title h2{line-height: 1;font-weight: 700;}
.art-show-item{width: 39.48vw;margin-bottom: 2.08vw;position: relative;overflow: hidden;border: 1px solid #f7f4ef;}
.art-show-text{padding: 2.4vw;background: #f7f4ef;padding-bottom: 6.5vw;}

.art-show-item img{
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);}
.art-show-item:hover img{    transform: scale(1.05);
    filter: saturate(1.2);}


.art-show-btn{position: absolute;  right: 2.08vw;
    bottom: 2.08vw; display: inline-block;border: 1px solid var(--primary);transition: all 0.3s ease;padding: 0.3vw 4vw;cursor: pointer;}
.art-show-btn:hover{background: var(--primary);}
.art-show-popup-title{margin-bottom: 1vw;margin-top: 1vw;}

/* 详情弹窗：默认隐藏，.active 时覆盖全屏；自身可滚动，并阻止滚动穿透到页面 */
.art-show-popup{
    display: none;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    z-index: 1001;
    background: #fff;
    overflow-y: auto;                 /* auto 而非 scroll：内容不超出时不显示滚动条 */
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;     /* 滚动到边界时不把滚动传递给页面 */
}
.art-show-popup.active{ display: block; }

/* 关闭按钮：项目未引入 iconfont，.icon-close 为空标签，故隐藏它并用伪元素绘制 × */
.art-show-popup-close{
    position: fixed;
    top: 2vw;
    right: 6vw;
    z-index: 2;
    width: 3.28vw;
    cursor: pointer;

}

.art-show-popup-close .icon-close{ display: none; }

.art-show-popup-content{width: 81.25%;background: #f6f4ee;margin: 5vw auto;padding: 6vw;display: flex;justify-content: center;flex-direction: column;align-items: center;}



/* 弹窗打开时锁定页面滚动；用 padding 补偿滚动条宽度，避免开合时页面横向抖动 */
body.popup-open{
    overflow: hidden;
    padding-right: var(--scrollbar-width, 0px);
}

/* ================== 会议预定表单弹窗 ================== */
.meeting-popup{
    display: none;
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 1100;
    background: rgba(0, 0, 0, 0.5);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.meeting-popup.active{ display: flex; align-items: center; justify-content: center; padding: 2vw; }

.meeting-popup-panel{
    position: relative;
    width: 70%;
    background: #fff;
    padding: 2.6vw 4.2vw 3vw;
    border-radius: 4px;
}


.meeting-popup-close:hover{ color: #d4c1a4; }

.meeting-popup-title{
    font-size: 1.45vw;
    font-weight: 700;
    margin-bottom: 0.4vw;
    color: var(--text);
}
.meeting-popup-required{
    font-size: 0.78vw;
    color: var(--text-light);
    margin-bottom: 1.6vw;
}

.meeting-popup-form{ width: 100%; }
.meeting-popup-row{
    display: flex;
    gap: 1.2vw;
    margin-bottom: 1.1vw;
}
.meeting-popup-field{ flex: 1; min-width: 0; }

.meeting-popup-label{
    display: block;
    font-size: 0.83vw;
    color: var(--text);
    margin-bottom: 0.3vw;
}
.meeting-popup-label span{ color: #d44; margin-left: 0.2vw; }

.meeting-popup-form input,
.meeting-popup-form select{
    width: 100%;
    padding: 0.55vw 0.8vw;
    font-size: 0.94vw;
    color: var(--text);
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 2px;
    outline: none;
    transition: border-color 0.2s ease;
}
.meeting-popup-form input::placeholder{ color: #b3a78f; }
.meeting-popup-form input:focus,
.meeting-popup-form select:focus{ border-color: var(--primary); }
.meeting-popup-form input:invalid:not(:placeholder-shown){ border-color: #d44; }

.meeting-popup-submit{
    display: flex;
    margin: 1.8vw 0 1.2vw;
}
.meeting-popup-btn{
    width: 9.5vw;
    min-width: 140px;
    padding: 0.55vw 0;
    font-size: 1.04vw;
    color: #fff;
    background:var(--primary);
    border: none;
    cursor: pointer;
    transition: background 0.2s ease;
}
.meeting-popup-btn:hover{ background: var(--primary); }

.meeting-popup-privacy{
    font-size: 0.73vw;
    line-height: 1.7;
    color: var(--text-light);
    margin-top: 0.6vw;
}

/* ---------- 活动日期双月日历 ---------- */
.meeting-popup-field{ position: relative; }
.meeting-popup-date-display{ cursor: pointer; caret-color: transparent; }

.meeting-popup-calendar{
    position: absolute;
    top: calc(100% + 0.2vw);
    left: 0;
    z-index: 5;
    width: 38vw;
    padding: 0.9vw 1.2vw;
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 4px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.meeting-popup-calendar-nav{
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.6vw;
}
.meeting-popup-calendar-months{
    display: flex;
    gap: 5vw;
    font-size: 0.94vw;
    color: var(--text);
}
.meeting-popup-calendar-prev,
.meeting-popup-calendar-next{
    width: 1.6vw;
    height: 1.6vw;
    min-width: 22px;
    min-height: 22px;
    font-size: 1.1vw;
    line-height: 1;
    color: #8a7d68;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
}
.meeting-popup-calendar-prev:hover,
.meeting-popup-calendar-next:hover{ color: var(--primary); border-color: #d4c1a4; }

.meeting-popup-calendar-grids{ display: flex; gap: 1.6vw; }
.meeting-popup-calendar-grid{
    flex: 1;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-size: 0.78vw;
    color: var(--text);
}
.meeting-popup-calendar-weekday{
    padding: 0.3vw 0;
    margin-bottom: 0.45vw;
    color: var(--text-light);
    font-weight: 600;
    font-size: 0.72vw;
    letter-spacing: 0.12em;
}
.meeting-popup-calendar-day{
    padding: 0.5vw 0;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.15s ease;
}
.meeting-popup-calendar-day.blank{ cursor: default; }
.meeting-popup-calendar-day.disabled{ color: #c9c1b0; cursor: not-allowed; }
.meeting-popup-calendar-day:not(.blank):not(.disabled):hover{ background: #efe7d8; }
.meeting-popup-calendar-day.today{ background: #f4ecdc; font-weight: 600; }
.meeting-popup-calendar-day.selected{ background: #d4c1a4; color: #fff; font-weight: 600; }
.meeting-popup-calendar-day.selected:hover{ background: var(--primary); }

/* ---------- 电话号码：区号下拉 + 号码输入 ---------- */
.meeting-popup-phone{ display: flex; gap: 0.6vw; }
.meeting-popup-phone-code{ position: relative; flex: 0 0 12vw; max-width: 180px; min-width: 130px; }
.meeting-popup-phone-code > select{ display: none; }
.meeting-popup-phone input[type="tel"]{ flex: 1; min-width: 0; }

.meeting-popup-select-trigger{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4vw;
    width: 100%;
    padding: 0.55vw 0.8vw;
    font-size: 0.94vw;
    color: var(--text);
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 2px;
    cursor: pointer;
    transition: border-color 0.2s ease;
}
.meeting-popup-select-trigger:hover{ border-color: var(--primary); }
.meeting-popup-select-trigger[aria-expanded="true"]{ border-color: var(--primary); }
.meeting-popup-select-text{ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.meeting-popup-select-arrow{
    flex: 0 0 auto;
    width: 0; height: 0;
    border-left: 0.26vw solid transparent;
    border-right: 0.26vw solid transparent;
    border-top: 0.32vw solid #8a7d68;
    transition: transform 0.2s ease;
}
.meeting-popup-select-trigger[aria-expanded="true"] .meeting-popup-select-arrow{ transform: rotate(180deg); }

.meeting-popup-select-panel{
    position: absolute;
    top: calc(100% + 0.2vw);
    left: 0;
    z-index: 6;
    width: 17vw;
    min-width: 220px;
    padding: 0.4vw;
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 2px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.meeting-popup-select-search{
    width: 100%;
    padding: 0.4vw 0.6vw;
    margin-bottom: 0.3vw;
    font-size: 0.83vw;
    color: var(--text);
    background: #faf7f1;
    border: 1px solid #e8e2d5;
    border-radius: 2px;
    outline: none;
}
.meeting-popup-select-search:focus{ border-color: var(--primary); }

.meeting-popup-select-list{
    max-height: 12vw;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.meeting-popup-select-item{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6vw;
    padding: 0.34vw 0.6vw;
    font-size: 0.83vw;
    color: var(--text);
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.15s ease;
}
.meeting-popup-select-item:hover{ background: #efe7d8; }
.meeting-popup-select-item.selected{ background: #d4c1a4; color: #fff; font-weight: 600; }
.meeting-popup-select-name{ overflow: hidden; text-overflow: ellipsis; }
.meeting-popup-select-code{ color: var(--text-light); }
.meeting-popup-select-item.selected .meeting-popup-select-code{ color: #fff; }
.meeting-popup-select-group{
    padding: 0.3vw 0.6vw;
    font-size: 0.73vw;
    font-weight: 600;
    color: var(--primary);
    background: #faf7f1;
}
.meeting-popup-select-empty{
    padding: 0.6vw;
    font-size: 0.83vw;
    color: var(--text-light);
    text-align: center;
}


/* ================== 客房预定表单弹窗 ================== */
.room-popup{
    display: none;
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 1100;
    background: rgba(0, 0, 0, 0.5);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.room-popup.active{ display: flex; align-items: center; justify-content: center; padding: 2vw; }

.room-popup-panel{
    position: relative;
    width: 85%;
    background: #fff;
    padding: 2.6vw 10vw 3vw;
    border-radius: 4px;
}

.room-popup-close{
    position: absolute;
    top: 1.2vw;
    right: 1.4vw;
    width: 3.28vw;
    display: flex;
    cursor: pointer;
}


.room-popup-title{
    font-size: 1.45vw;
    font-weight: 700;
    margin-bottom: 0.4vw;
    color: var(--text);
}
.room-popup-required{
    font-size: 0.9vw;
    color: var(--text-light);
    margin-bottom: 1.6vw;
}
.room-popup-required span{ color: #d44; }

.room-popup-form{ width: 100%; }
.room-popup-row{
    display: flex;
    gap: 1.2vw;
    margin-bottom: 1.1vw;
}
.room-popup-row-3 > .room-popup-field{ flex: 1 1 0; }
.room-popup-field{ flex: 1; min-width: 0; position: relative; border: 1px solid #333;}

.room-popup-label{
    display: block;
    font-size: 0.83vw;
    color: var(--text);
    margin-left: 1vw;
}
.room-popup-label span{ color: #d44; margin-left: 0.2vw; }

.room-popup-form input,
.room-popup-form select{
    width: 100%;
    padding: 0.55vw 1vw;
    font-size: 0.94vw;
    color: var(--text);
    background: #fff;
    border: 1px solid #fff;
    border-radius: 2px;
    outline: none;
    transition: border-color 0.2s ease;
}
.room-popup-form input::placeholder{ color: #333; }
.room-popup-form input:focus,
.room-popup-form select:focus{ border-color: #fff; }
.room-popup-form input:invalid:not(:placeholder-shown){ border-color: #d44; }

/* 住客下拉：trigger + 面板（成人/儿童计数器 + 确定） */
.room-popup-guests{ position: relative; }
.room-popup-guests-trigger{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6vw;
    width: 100%;
    padding: 0.55vw 1vw;
    font-size: 0.94vw;
    color: var(--text);
    background: #fff;
    border: 1px solid #fff;
    border-radius: 2px;
    cursor: pointer;
    outline: none;
    transition: border-color 0.2s ease;
}
.room-popup-guests-trigger:hover,
.room-popup-guests-trigger[aria-expanded="true"]{ border-color: #fff; }
.room-popup-guests-text{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    color: #333;
}
.room-popup-guests-text.filled{ color: var(--text); }
.room-popup-guests-arrow{
    width: 0;
    height: 0;
    flex: none;
    border-left: 0.32vw solid transparent;
    border-right: 0.32vw solid transparent;
    border-top: 0.42vw solid var(--primary);
    transition: transform 0.2s ease;
}
.room-popup-guests-trigger[aria-expanded="true"] .room-popup-guests-arrow{ transform: rotate(180deg); }

.room-popup-guests-panel{
    position: absolute;
    z-index: 20;
    top: calc(100% + 0.4vw);
    left: 0;
    width: 22vw;
    min-width: 230px;
    padding: 1vw;
    background: #fff;
    border: 1px solid #efe7d8;
    box-shadow: 0 0.6vw 1.6vw rgba(0, 0, 0, 0.12);
    border-radius: 2px;
}
.room-popup-guests-confirm{
    width: 100%;
    margin-top: 1vw;
    padding: 0.5vw 1vw;
    font-size: 0.94vw;
    color: #fff;
    background: var(--primary);
    border: none;
    border-radius: 2px;
    cursor: pointer;
    transition: background 0.15s ease;
}
.room-popup-guests-confirm:hover{ background: #bda47f; }

/* 住客计数器：成人 + 儿童 两行 */
.room-popup-counter-group{
    display: flex;
    flex-direction: column;
    gap: 0.6vw;
}
.room-popup-counter{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8vw;
    padding: 0.45vw 0;
    border-bottom: 1px solid #efe7d8;
}
.room-popup-counter-title{
    font-size: 0.83vw;
    color: var(--text);
    white-space: nowrap;
}
.room-popup-counter-control{
    display: flex;
    align-items: center;
    gap: 0.6vw;
    margin-left: auto;
}
.room-popup-counter-btn{
    width: 1.6vw;
    height: 1.6vw;
    min-width: 22px;
    min-height: 22px;
    padding: 0;
    border: 1px solid #d4c1a4;
    background: #fff;
    color: var(--primary);
    font-size: 1.1vw;
    line-height: 1;
    cursor: pointer;
    border-radius: 2px;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.room-popup-counter-btn:hover:not(:disabled){
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}
.room-popup-counter-btn:disabled{
    color: #c9c1b0;
    border-color: #e6e1d4;
    cursor: not-allowed;
    background: #faf8f3;
}
.room-popup-counter-value{
    min-width: 1.4vw;
    text-align: center;
    font-size: 0.94vw;
    color: var(--primary);
    font-weight: 600;
}

.room-popup-price{
    font-size: 0.94vw;
    color: var(--text);
    margin: 1.4vw 0 0.6vw;
}
.room-popup-price span{ color: var(--primary); font-weight: 600; }

.room-popup-submit{
    display: flex;
    margin: 1.4vw 0 1vw;
}
.room-popup-btn{
    width: 11vw;
    min-width: 160px;
    padding: 0.55vw 0;
    font-size: 1.04vw;
    color: #fff;
    background: var(--primary);
    border: none;
    cursor: pointer;
    transition: background 0.2s ease;
}
.room-popup-btn:hover{ background: var(--primary); }

/* ---------- 双月日历 ---------- */
.room-popup-date-display{ cursor: pointer; caret-color: transparent; }
.room-popup-calendar{
    position: absolute;
    top: calc(100% + 0.2vw);
    left: 0;
    z-index: 5;
    width: 38vw;
    padding: 0.9vw 1.2vw;
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 4px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.room-popup-calendar-nav{
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.6vw;
}
.room-popup-calendar-months{
    display: flex;
    gap: 5vw;
    font-size: 0.94vw;
    color: var(--text);
}
.room-popup-calendar-prev,
.room-popup-calendar-next{
    width: 1.6vw;
    height: 1.6vw;
    min-width: 22px;
    min-height: 22px;
    font-size: 1.1vw;
    line-height: 1;
    color: #8a7d68;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
}
.room-popup-calendar-prev:hover,
.room-popup-calendar-next:hover{ color: var(--primary); border-color: #d4c1a4; }
.room-popup-calendar-grids{ display: flex; gap: 1.6vw; }
.room-popup-calendar-grid{
    flex: 1;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-size: 0.78vw;
    color: var(--text);
}
.room-popup-calendar-weekday{
    padding: 0.3vw 0;
    margin-bottom: 0.45vw;
    color: var(--text-light);
    font-weight: 600;
    font-size: 0.72vw;
    letter-spacing: 0.12em;
}
.room-popup-calendar-day{
    padding: 0.5vw 0;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.15s ease;
}
.room-popup-calendar-day.blank{ cursor: default; }
.room-popup-calendar-day.disabled{ color: #c9c1b0; cursor: not-allowed; }
.room-popup-calendar-day:not(.blank):not(.disabled):hover{ background: #efe7d8; }
.room-popup-calendar-day.today{ background: #f4ecdc; font-weight: 600; }
.room-popup-calendar-day.selected{ background: #d4c1a4; color: #fff; font-weight: 600; }
.room-popup-calendar-day.selected:hover{ background: var(--primary); }

/* ---------- 电话号码：区号下拉 + 号码输入 ---------- */
.room-popup-phone{ display: flex; gap: 0.6vw; }
.room-popup-phone-code{ position: relative; flex: 0 0 12vw; max-width: 180px; min-width: 130px; }
.room-popup-phone-code > select{ display: none; }
.room-popup-phone input[type="tel"]{ flex: 1; min-width: 0; }

.room-popup-select-trigger{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4vw;
    width: 100%;
    padding: 0.55vw 1vw;
    font-size: 0.94vw;
    color: var(--text);
    background: #fff;
    border: 1px solid #fff;
    border-radius: 2px;
    cursor: pointer;
    transition: border-color 0.2s ease;
}
.room-popup-select-trigger:hover{ border-color: #fff; }
.room-popup-select-trigger[aria-expanded="true"]{ border-color: #fff; }
.room-popup-select-text{ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.room-popup-select-arrow{
    flex: 0 0 auto;
    width: 0; height: 0;
    border-left: 0.26vw solid transparent;
    border-right: 0.26vw solid transparent;
    border-top: 0.32vw solid #8a7d68;
    transition: transform 0.2s ease;
}
.room-popup-select-trigger[aria-expanded="true"] .room-popup-select-arrow{ transform: rotate(180deg); }

.room-popup-select-panel{
    position: absolute;
    top: calc(100% + 0.2vw);
    left: 0;
    z-index: 6;
    width: 17vw;
    min-width: 220px;
    padding: 0.4vw;
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 2px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.room-popup-select-search{
    width: 100%;
    padding: 0.4vw 0.6vw;
    margin-bottom: 0.3vw;
    font-size: 0.83vw;
    color: var(--text);
    background: #faf7f1;
    border: 1px solid #e8e2d5;
    border-radius: 2px;
    outline: none;
}
.room-popup-select-search:focus{ border-color: var(--primary); }

.room-popup-select-list{
    max-height: 12vw;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.room-popup-select-item{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6vw;
    padding: 0.34vw 0.6vw;
    font-size: 0.83vw;
    color: var(--text);
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.15s ease;
}
.room-popup-select-item:hover{ background: #efe7d8; }
.room-popup-select-item.selected{ background: #d4c1a4; color: #fff; font-weight: 600; }
.room-popup-select-name{ overflow: hidden; text-overflow: ellipsis; }
.room-popup-select-code{ color: var(--text-light); }
.room-popup-select-item.selected .room-popup-select-code{ color: #fff; }
.room-popup-select-group{
    padding: 0.3vw 0.6vw;
    font-size: 0.73vw;
    font-weight: 600;
    color: var(--primary);
    background: #faf7f1;
}
.room-popup-select-empty{
    padding: 0.6vw;
    font-size: 0.83vw;
    color: var(--text-light);
    text-align: center;
}


/* 详情按钮是可点击控件，给一个可聚焦样式 */
.art-show-btn:focus-visible{ outline: 2px solid var(--primary); outline-offset: 2px; }
.recreation-content-text{background: #f7f4ef;padding: 2.4vw 2.4vw 6vw; position: relative;}
.recreation-content-text1{background: #fff;padding: 5.5vw 0 5.5vw; position: relative;}
.recreation-content-title{font-weight: 700;}
.recreation-content-des{width: 49%;}
.recreation-content-des1{width: 100%;text-align: center;}
.kangle-time{position: absolute;top:21%;left: 52vw;width: 19.53vw;}

.recreation-content01{padding: 7.4vw 0; }
.recreation-content02{margin: 7.4vw 0; }
.recreation-content03{margin: 0 0 7.4vw; }

.recreation-content-image{width: 100%;overflow: hidden;
    box-shadow: var(--shadow);}
.recreation-content-image img{
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);}
.recreation-content-image:hover img{    transform: scale(1.05);
    filter: saturate(1.1);}
.recreation-content-grid01 {
    display: grid;
    /* 设计稿 1920 下：左侧文字区 820 / 右侧图片区 1100，两列铺满整行 */
    grid-template-columns: 640fr 920fr;
    align-items: center;
    background: #f7f4ef;
}
.recreation-content-grid02 {
    display: grid;
    /* 设计稿 1920 下：左侧文字区 820 / 右侧图片区 1100，两列铺满整行 */
    grid-template-columns: 920fr 640fr;
    align-items: center;
    background: #f7f4ef;
}
.recreation-content-grid-text{padding: 3.13vw;}
.recreation-content-grid-text p {
    color: var(--text-light);
    line-height: 1.6;
}
.recreation-content-grid-text .recreation-content-grid-btn{
    display: inline-block;
    border: 1px solid var(--primary);
    transition: all 0.3s ease;
    margin-top: 6vw;
}
.recreation-content-grid-text .recreation-content-grid-btn:hover{
    background: var(--primary);
}
.recreation-content-grid-text .recreation-content-grid-btn a{display: block;width: 100%;height: 100%;padding: 0.3vw 2vw;}

.recreation-content-grid-image {
    overflow: hidden;
    box-shadow: var(--shadow);
    width: 100%;
}

.recreation-content-grid-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);
}

.recreation-content-grid-image:hover img {
    transform: scale(1.05);
    filter: saturate(1.1);
}

.wedding-content-text{background: #f7f4ef;padding: 2.4vw 8.85vw 3.5vw; position: relative;}
.wedding-lianxi{position: absolute;top:28%;left: 54.69vw;width: 8.8vw;}
.recreation-content-des{width: 49%;}


.activity-space-content{width: 100%;display: flex;justify-content: space-between;flex-wrap: wrap;}
.activity-space-content1{width: 100%;display: flex;justify-content: space-between;flex-wrap: wrap;}
.activity-space-title{padding-top: 5.36vw;padding-bottom:2.86vw;}
.activity-space-title h2{line-height: 1;font-weight: 700;}
.activity-space-item{width: 39.48vw;margin-bottom: 2.08vw;position: relative;overflow: hidden;border: 1px solid #f7f4ef;background: #f7f4ef;}
.activity-space-text{padding: 2.3vw;background: #f7f4ef;padding-bottom: 6.25vw;}

.activity-space-content1 .activity-space-image{width: 39.53vw;}
.activity-space-content1 .activity-space-text{width: calc(100% - 39.53vw);display: flex;
    flex-direction: column;
    justify-content: center;padding-bottom: 2.3vw;}

.activity-space-image{width: 100%;overflow: hidden;
    box-shadow: var(--shadow);}
.activity-space-item img{
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);}
.activity-space-item:hover img{    transform: scale(1.05);
    filter: saturate(1.1);}
.activity-space-content1 img{
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);}
.activity-space-content1:hover img{    transform: scale(1.05);
    filter: saturate(1.1);}
.font-weight-700{font-weight: 700;}

.pic-show{width: 100%;padding-bottom: 4.69vw;}
.pic-show-content{width: 100%;display: flex;justify-content: space-between;flex-wrap: wrap;}
.pic-show-content-box1{display: flex;justify-content: space-between;flex-wrap: wrap;width: 44vw;}
.pic-show-content-box2{width: 15.31vw;display: flex;justify-content: space-between;flex-direction: column;}
.pic-show-content-box3{width: 20.42vw;display: flex;justify-content: space-between;flex-direction: column;}
.pic-show-content-item{margin-bottom: 0.3vw;cursor: pointer;}
.pic-show-content-item1{width: 26.88vw;}
.pic-show-content-item2{width: 16.7vw;}
.pic-show-content-item3{width: 100%;}

/* 详情弹窗：默认隐藏，.active 时覆盖全屏；自身可滚动，并阻止滚动穿透到页面 */
.pic-show-popup{
    display: none;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    z-index: 1001;
    background: #fff;
    overflow-y: auto;                 /* auto 而非 scroll：内容不超出时不显示滚动条 */
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;     /* 滚动到边界时不把滚动传递给页面 */
}
.pic-show-popup.active{ display: block; }

/* 关闭按钮：项目未引入 iconfont，.icon-close 为空标签，故隐藏它并用伪元素绘制 × */
.pic-show-popup-close{
    position: fixed;
    top: 2vw;
    right: 6vw;
    z-index: 2;
    width: 3.28vw;
    cursor: pointer;

}

.pic-show-popup-close .icon-close{ display: none; }

.pic-show-popup-content{width: 81.25%;margin: 2vw auto;display: flex;justify-content: center;flex-direction: column;align-items: center;}

/* 图片库弹窗：容器同时是 swiper，需覆盖上面的纵向 flex，否则横向轮播失效 */
.pic-show-popup .pic-show-popup-content{
    display: block;
}
.pic-show-popup .swiper-slide{
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pic-show-popup .pic-show-popup-image{ width: 100%; }
.pic-show-popup .pic-show-popup-image img{
    width: 100%;
    height: auto;
    max-height: 80vh;
    object-fit: contain;
    display: block;
}

/* 弹窗翻页条：上一张 / < 当前 / 总数 > / 下一张 */
.pic-show-popup-nav{
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.4vw;
    margin: 0 auto 3vw;
    user-select: none;
}

/* 只有一张图片时隐藏翻页栏（箭头与计数均无意义） */
.pic-show-popup.is-single .pic-show-popup-nav{ display: none; }

.pic-show-popup-arrow{
    width: 0.94vw;
    height: 0.94vw;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    cursor: pointer;
    transition: all var(--transition);
}

/* 计数由 Swiper pagination(fraction) 渲染；还原 .swiper-pagination 默认的绝对定位 */
.pic-show-popup-counter{
    position: static;
    bottom: auto;
    left: auto;
    width: auto;
    transform: none;
    display: flex;
    align-items: center;
    gap: 0.4vw;
    font-size: 1.15vw;
    letter-spacing: 2px;
    color: var(--text);
    white-space: nowrap;
}
.pic-show-popup-counter .swiper-pagination-current{ color: var(--primary); font-weight: 600; }

.room-content{width: 100%;margin: 0 auto;display: flex;justify-content: space-between;flex-wrap: wrap;padding-bottom: 0;}
.room-content1{width: 81.25%;margin: 0 auto;display: flex;justify-content: space-between;flex-wrap: wrap;padding-bottom: 0;}
.room-title{padding-top: 5.36vw;padding-bottom:2.86vw;}
.room-item{width: 39.48vw;margin-bottom: 2vw;}
.room-kv-text{position: relative;width: 100%;height: 100%;overflow: hidden;}
.room-kv-text-body{position: absolute;top:0;left: 0;padding: 0.5vw 2.6vw;}
.room-kv-text-btn-boxs{position: absolute;top: 18.6vw;left:20%;width: 60%;display: flex;justify-content: space-between;align-items: center;}
.room-kv-text-btn-boxs .room-kv-text-btn{border: 1px solid #d4c1a4;}
.room-kv-text-btn-boxs .room-kv-text-btn a{padding: 0.4vw 4vw;display: block;}
.room-item .room-img{width: 100%;overflow: hidden;
    box-shadow: var(--shadow);}
.room-item .room-img img{
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);}
.room-item:hover .room-img img{    transform: scale(1.05);
    filter: saturate(1.1);}

.rule-content-grid {
    display: grid;
    /* 设计稿 1920 下：左侧文字区 820 / 右侧图片区 1100，两列铺满整行 */
    grid-template-columns: 788fr 774fr;
    align-items: center;
    background: #f7f4ef;
    margin-bottom: 5.69vw;
}
.rule-content-grid-text{padding: 3.13vw;}
.rule-content-grid-text p {
    color: var(--text-light);
    line-height: 1.6;
}
.rule-content-grid-text .rule-content-grid-btn{
    display: inline-block;
    border: 1px solid var(--primary);
    transition: all 0.3s ease;
    margin-top: 6vw;
    background: var(--primary);
    float: right;
}
.rule-content-grid-text .rule-content-grid-btn:hover{
    background: var(--primary);
}
.rule-content-grid-text .rule-content-grid-btn a{display: block;width: 100%;height: 100%;padding: 0.3vw 2vw;color: #fff;}
.rule-content-grid-text .section-title{margin-bottom: 1vw;}

.rule-content-grid-image {
    overflow: hidden;
    box-shadow: var(--shadow);
    width: 100%;
}

.rule-content-grid-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);
}

.rule-content-grid-image:hover img {
    transform: scale(1.05);
    filter: saturate(1.1);
}

.tags{width: 100%;display: flex;justify-content: start;margin: 4vw auto;}
.tags-item{margin-right: 5vw;display: flex; align-items: center;}
.tags-item-icon{margin-right: 0.5vw;}
.tags-item-icon1{width: 1.98vw;}
.tags-item-icon2{width: 1.46vw;}
.tags-item-icon3{width: 1.56vw;}
.tags-item-text{font-weight: 700;}
.room-item01{width: 100%;padding: 2.4vw 2.6vw;}
.room-text-menu{position: relative; display: inline-block;border: 1px solid var(--primary);transition: all 0.3s ease;background: var(--primary);}
.room-text-menu a{display: block;width: 100%;height: 100%;padding: 0.3vw 4vw;color: #fff;}
.room-xian{width: 100%;height: 1px;background:#dddddd;margin-top: 4vw;margin-bottom: 4vw;}
.room-light-title{margin-bottom: 1vw;margin-top: 1vw;}
.room-light-point{width: 80%;display: flex;justify-content: start;align-items: center;flex-wrap: wrap;}
.room-light-point1{width: 107%;display: flex;justify-content: start;align-items: center;flex-wrap: wrap;}
.room-light-point .room-light-point-item{width: 33.3%;margin-bottom: 1vw;}
.room-light-point1 .room-light-point-item{width: 25%;margin-bottom: 1vw;}
.room-light-point-item span{color: var(--primary);font-weight:700;}

.pic-show-content-box11{width: 20.73vw; display: flex;justify-content: space-between;flex-direction: column;}
.pic-show-content-box22{width: 59.2vw;height: 60vw; display: flex;justify-content: space-between;flex-wrap: wrap;align-content: space-between;}
.pic-show-content-item4{width: 32.81vw;}
.pic-show-content-item5{width: 25.57vw;}
.pic-show-content-item6{width: 20.63vw;}
.pic-show-content-item7{width: 37.76vw;height: 39.7vw; display: flex;justify-content: space-between;flex-wrap: wrap;align-content: space-between;}
.pic-show-content-item8{width: 19.3vw;}
.pic-show-content-item9{width: 18.39vw;}

.vacation-content{width: 100%;background: #f1f3f5;padding-bottom: 5.94vw;}
.vacation-content1{width: 100%;background: #f1f3f5;display: flex;justify-content: space-between;}
.vacation-content .container{width: 100%;display: flex;align-items: center;flex-direction: column;flex-wrap:wrap; }
.vacation-content-text{padding: 4.17vw 0;}
.vacation-content-des{text-align: center;}
.vacation-btn{position: relative; display: block;border: 1px solid var(--primary);transition: all 0.3s ease;background: var(--primary);margin-bottom: 4.17vw;}
.vacation-btn a{display: block;width: 100%;height: 100%;padding: 0.3vw 4vw;color: #fff;}

.vacation-content-title{padding-top: 4.17vw;padding-bottom: 2.6vw;}
.vacation-content-title h2{line-height: 1;}
.vacation-list-box{margin-left: 1.46vw;height: 55.65vw;overflow:hidden;}
.vacation-content-list{width: 44.47vw;height: 46.8vw; overflow-y: scroll;}
.vacation-content-list {
    overflow-y: scroll;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}

.vacation-content-list::-webkit-scrollbar {
    width: 0;
    height: 0;
}
.vacation-content-list .vacation-content-item{background: #fff;padding: 2.08vw 2.6vw;margin-bottom: 2.08vw;cursor: pointer;}
.vacation-content-list .vacation-content-item.active{border: 1px solid #d4c1a4;}
.vacation-content-item-btn{padding: 0.3vw 2vw;display: inline-block;border: 1px solid #d4c1a4;margin-top: 2vw;cursor: pointer;}
.vacation-map-box{width: 53.02vw;}
.vacation-map-box .vacation-map-image{width: 100%;display:none;}
.vacation-map-box .vacation-map-image img{width: 100%;}
.vacation-map-box .vacation-map-image.active{display: block;}

.meeting-content-text{background: #f7f4ef;padding: 2.4vw 8.85vw 3.5vw; position: relative;}
.meeting-lianxi{position: absolute;top:22%;left: 55vw;width:9.9vw;}


.meeting_venue-content{width: 100%;display: flex;justify-content: space-between;flex-wrap: wrap;}
.meeting_venue-content1{width: 100%;display: flex;justify-content: space-between;flex-wrap: wrap;}
.meeting_venue-title{padding-top: 5.36vw;padding-bottom:2.86vw;}
.meeting_venue-title h2{line-height: 1;font-weight: 700;}
.meeting_venue-item{width: 38.65vw!important;margin-bottom: 3.08vw;position: relative;overflow: hidden;border: 1px solid #f7f4ef;background: #f7f4ef;}
.meeting_venue-text{padding: 2.3vw;height: 20vw; background: #f7f4ef;padding-bottom: 6.25vw;position: relative;}

.meeting_venue-content1 .meeting_venue-image{width: 38.65vw;}
.meeting_venue-content1 .meeting_venue-text{width: calc(100% - 39.53vw);display: flex;
    flex-direction: column;
    justify-content: center;padding-bottom: 2.3vw;}

.meeting_venue-image{width: 100%;overflow: hidden;
    box-shadow: var(--shadow);}
.meeting_venue-item img{
    transition: transform 1s ease, filter 0.6s ease;
    filter: saturate(0.9);}
.meeting_venue-item:hover img{    transform: scale(1.05);
    filter: saturate(1.1);}

.meeting_venue-box{position: absolute;left: 2.3vw;width: calc(100% - 4.6vw);bottom: 2.3vw;display: flex;justify-content: space-between;}
.meeting_venue-box-item{width: 8.59vw;height: 2.45vw;text-align: center;cursor: pointer;}
.meeting_venue-box-item a{width: 100%;height: 100%;display: block;line-height: 2.2;}
.meeting—order{background: #d4c1a4;color: #fff;}
.floor—pic{border:1px solid #d4c1a4;color: #000;margin-left: 6vw;}
.meeting_venue—pic{border:1px solid #d4c1a4;color: #000;}

/* ================== 会议场地：筛选栏 ================== */
.meeting-filter{
    width: 100%;
    background: #f7f4ef;
    padding: 1.4vw 2.3vw;
    margin-bottom: 2.08vw;
}

/* 单行排列：空间大小 / 接待能力 / 单位 / 重置 */
.meeting-filter-row{
    display: flex;
    align-items: center;
    gap: 1.2vw;
    flex-wrap: wrap;
}

/* ---------- 下拉多选 ---------- */
.meeting-filter-field{ position: relative; }

.meeting-filter-trigger{
    display: inline-flex;
    align-items: center;
    gap: 0.5vw;
    min-width: 9.4vw;
    padding: 0.55vw 1vw;
    font-size: 0.94vw;
    color: var(--text);
    background: #fff;
    border: 1px solid #d4c1a4;
    cursor: pointer;
    transition: all var(--transition);
}
.meeting-filter-trigger:hover{ border-color: var(--primary); }
.meeting-filter-field.open .meeting-filter-trigger{ border-color: var(--primary); }
.meeting-filter-field.has-value .meeting-filter-trigger{ background: #efe7d8; }

.meeting-filter-trigger-badge{
    min-width: 1.15vw;
    height: 1.15vw;
    padding: 0 0.3vw;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    font-size: 0.73vw;
    line-height: 1.15vw;
    text-align: center;
}

.meeting-filter-trigger-arrow{
    width: 0;
    height: 0;
    margin-left: auto;
    border-left: 0.26vw solid transparent;
    border-right: 0.26vw solid transparent;
    border-top: 0.34vw solid #8a7d68;
    transition: transform 0.25s ease;
}
.meeting-filter-field.open .meeting-filter-trigger-arrow{ transform: rotate(180deg); }

/* 下拉面板 */
.meeting-filter-panel{
    display: none;
    position: absolute;
    top: calc(100% + 0.4vw);
    left: 0;
    z-index: 20;
    min-width: 100%;
    padding: 0.4vw 0;
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 0.4vw;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}
.meeting-filter-field.open .meeting-filter-panel{ display: block; }

.meeting-filter-option{
    display: flex;
    align-items: center;
    gap: 0.6vw;
    padding: 0.45vw 1vw;
    font-size: 0.94vw;
    color: var(--text);
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.2s ease;
}
.meeting-filter-option:hover{ background: #f7f4ef; }
.meeting-filter-option.checked{ color: var(--primary); font-weight: 600; }
.meeting-filter-option input{
    width: 0.9vw;
    height: 0.9vw;
    min-width: 13px;
    min-height: 13px;
    accent-color: #d4c1a4;
    cursor: pointer;
}

/* ---------- 单位：椭圆开关 ---------- */
.meeting-unit-switch{
    position: relative;
    display: inline-flex;
    padding: 0.2vw;
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 2vw;
}
.meeting-unit-thumb{
    position: absolute;
    top: 0.2vw;
    left: 0.2vw;
    width: calc(50% - 0.2vw);
    height: calc(100% - 0.4vw);
    border-radius: 2vw;
    background: #bc9d6c;
    transition: transform var(--transition);
}
.meeting-unit-switch[data-unit="feet"] .meeting-unit-thumb{
    transform: translateX(100%);
}
.meeting-unit-btn{
    position: relative;
    z-index: 1;
    padding: 0.4vw 1.8vw;
    font-size: 0.94vw;
    color: var(--text);
    background: none;
    border: none;
    border-radius: 2vw;
    cursor: pointer;
    transition: color var(--transition);
}
.meeting-unit-btn.active{ color: #fff; }

.meeting-filter-reset{
    margin-left: auto;
    padding: 0.55vw 1.4vw;
    font-size: 0.94vw;
    color: var(--primary);
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 2vw;
    cursor: pointer;
    transition: all var(--transition);
}
.meeting-filter-reset:hover{ background: #efe7d8; }

.meeting-filter-meta{
    margin-top: 0.8vw;
    padding-top: 0.7vw;
    border-top: 1px solid #e8e2d5;
    font-size: 0.94vw;
    color: var(--text-light);
    display: none;
}

.meeting-filter-empty{
    width: 100%;
    padding: 5vw 0;
    text-align: center;
    color: var(--text-light);
    font-size: 1.15vw;
}

/* ---------- 按楼层分组：每组横向排列，超过 2 个启用轮播 ---------- */
.meeting_venue-floor{ width: 100%; margin-bottom: 2.6vw; }

.meeting_venue-floor-bar{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 1.1vw;
    margin-bottom: 1.4vw;
}
.meeting_venue-floor-title{
    font-weight: 700;
    line-height: 1;
    color: var(--text);
}

/* 不超过 2 个：直接横向平铺 */
.meeting_venue-row{ display: flex; justify-content: space-between; flex-wrap: wrap; }

/* 轮播组：卡片宽度交由 slide 控制 */
.meeting_venue-swiper{ width: 100%; }
.meeting_venue-swiper .swiper-slide{ height: auto; }
.meeting_venue-swiper .meeting_venue-item{ width: 100%; margin-bottom: 0; }

/* 翻页箭头 */
.meeting_venue-nav{ display: flex; gap: 0.6vw; }
.meeting_venue-arrow{
    position: absolute;
    top: 45%;
    left: 3%;
    transform: translateY(-50%);
    width: 2.3vw;
    height: 2.3vw;
    min-width: 32px;
    min-height: 32px;
    cursor: pointer;
    z-index: 11;
    transition: all var(--transition);
}
.meeting_venue-next{left: auto; right: 3%;}

/* Swiper 在首尾自动置灰不可用箭头 */
.meeting_venue-arrow.swiper-button-disabled{ opacity: 0.35; cursor: default; }
.meeting_venue-arrow.swiper-button-disabled:hover{ background: transparent; }
.meeting_venue-arrow.swiper-button-disabled:hover::before{ color: #8a7d68; }

/* ================== 会议预定表单弹窗 ================== */
.meeting-popup{
    display: none;
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 1100;
    background: rgba(0, 0, 0, 0.5);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.meeting-popup.active{ display: flex; align-items: center; justify-content: center; padding: 2vw; }

.meeting-popup-panel{
    position: relative;
    width: 85%;
    background: #fff;
    padding: 2.6vw 10vw 3vw;
    border-radius: 4px;
}

.meeting-popup-close{
    position: absolute;
    top: 1.2vw;
    right: 1.4vw;
    width: 3.28vw;
    display: flex;
    cursor: pointer;
}


.meeting-popup-title{
    font-size: 1.45vw;
    font-weight: 700;
    margin-bottom: 0.4vw;
    color: var(--text);
}
.meeting-popup-required{
    font-size: 0.9vw;
    color: var(--text-light);
    margin-bottom: 1.6vw;
}
.meeting-popup-required span{color: #d44;}

.meeting-popup-form{ width: 100%; }
.meeting-popup-row{
    display: flex;
    gap: 1.2vw;
    margin-bottom: 1.1vw;

}
.meeting-popup-field{ flex: 1; min-width: 0;border: 1px solid #333;}

.meeting-popup-label{
    display: block;
    font-size: 0.83vw;
    color: var(--text);
    margin-bottom:0;
    margin-left: 0.8vw;
    padding-top: 0.2vw;
}
.meeting-popup-label span{
    color: #d44;
    margin-left: 0.2vw;
}

.meeting-popup-form input,
.meeting-popup-form select{
    width: 100%;
    padding: 0.55vw 0.8vw;
    font-size: 0.94vw;
    color: var(--text);
    background: #fff;
    border: 1px solid #fff;
    border-radius: 2px;
    outline: none;
    transition: border-color 0.2s ease;
}
.meeting-popup-form input::placeholder{ color: #333; }
.meeting-popup-form input:focus,
.meeting-popup-form select:focus{ border-color: #fff; }

.meeting-popup-form input:invalid:not(:placeholder-shown){ border-color: #d44; }

.meeting-popup-submit{
    display: flex;
    margin: 1.8vw 0 1.2vw;
}
.meeting-popup-btn{
    width: 9.5vw;
    min-width: 140px;
    padding: 0.55vw 0;
    font-size: 1.04vw;
    letter-spacing: 0.2em;
    color: #fff;
    background: #d4c1a4;
    border: none;
    cursor: pointer;
    transition: background 0.2s ease;
}
.meeting-popup-btn:hover{ background: #d4c1a4; }

.meeting-popup-privacy{
    font-size: 0.68vw;
    line-height: 1.6;
    color: var(--text-light);
    margin-top: 0.6vw;
}

/* ---------- 电话号码：区号下拉 + 号码输入 复合控件 ---------- */
.meeting-popup-phone{
    display: flex;
    gap: 0.6vw;
}

.meeting-popup-phone-code{
    position: relative;
    flex: 0 0 12vw;
    max-width: 180px;
    min-width: 130px;
}

/* 原生 select 仅作为数据源与表单字段，界面由自定义面板呈现 */
.meeting-popup-phone-code > select{ display: none; }

.meeting-popup-phone input[type="tel"]{ flex: 1; min-width: 0; }

/* ---------- 区号自定义下拉：高度可控，约为原生下拉的一半 ---------- */
.meeting-popup-select-trigger{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4vw;
    width: 100%;
    padding: 0.55vw 0.8vw;
    font-size: 0.94vw;
    color: var(--text);
    background: #fff;
    border: 1px solid #fff;
    border-radius: 2px;
    cursor: pointer;
    transition: border-color 0.2s ease;
}
.meeting-popup-select-trigger:hover{ border-color: #fff; }
.meeting-popup-select-trigger[aria-expanded="true"]{ border-color: #fff; }

.meeting-popup-select-text{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.meeting-popup-select-arrow{
    flex: 0 0 auto;
    width: 0;
    height: 0;
    border-left: 0.26vw solid transparent;
    border-right: 0.26vw solid transparent;
    border-top: 0.32vw solid #8a7d68;
    transition: transform 0.2s ease;
}
.meeting-popup-select-trigger[aria-expanded="true"] .meeting-popup-select-arrow{
    transform: rotate(180deg);
}

.meeting-popup-select-panel{
    position: absolute;
    top: calc(100% + 0.2vw);
    left: 0;
    z-index: 6;
    width: 17vw;
    min-width: 220px;
    padding: 0.4vw;
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 2px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.meeting-popup-select-search{
    width: 100%;
    padding: 0.4vw 0.6vw;
    margin-bottom: 0.3vw;
    font-size: 0.83vw;
    color: var(--text);
    background: #faf7f1;
    border: 1px solid #e8e2d5;
    border-radius: 2px;
    outline: none;
}
.meeting-popup-select-search:focus{ border-color: var(--primary); }

/* 约 10 行可见（原生下拉约 20 行），超出滚动 */
.meeting-popup-select-list{
    max-height: 12vw;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.meeting-popup-select-item{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6vw;
    padding: 0.34vw 0.6vw;
    font-size: 0.83vw;
    color: var(--text);
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.15s ease;
}
.meeting-popup-select-item:hover{ background: #efe7d8; }
.meeting-popup-select-item.selected{
    background: #d4c1a4;
    color: #fff;
    font-weight: 600;
}
.meeting-popup-select-name{
    overflow: hidden;
    text-overflow: ellipsis;
}
.meeting-popup-select-code{ color: var(--text-light); }
.meeting-popup-select-item.selected .meeting-popup-select-code{ color: #fff; }

.meeting-popup-select-group{
    padding: 0.3vw 0.6vw;
    font-size: 0.73vw;
    font-weight: 600;
    color: var(--primary);
    background: #faf7f1;
}

.meeting-popup-select-empty{
    padding: 0.6vw;
    font-size: 0.83vw;
    color: var(--text-light);
    text-align: center;
}

/* ---------- 活动日期双月日历 ---------- */
.meeting-popup-field{ position: relative; }
.meeting-popup-date-display{
    cursor: pointer;
    caret-color: transparent;   /* 不可编辑，无需插入符 */
}

.meeting-popup-calendar{
    position: absolute;
    top: calc(100% + 0.2vw);
    left: 0;
    z-index: 5;
    width: 38vw;
    /*max-width: 560px;*/
    padding: 0.9vw 1.2vw;
    background: #fff;
    border: 1px solid #d4c1a4;
    border-radius: 4px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.meeting-popup-calendar-nav{
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.6vw;
}
.meeting-popup-calendar-months{
    display: flex;
    gap: 5vw;
    font-size: 0.94vw;
    color: var(--text);
}
.meeting-popup-calendar-prev,
.meeting-popup-calendar-next{
    width: 1.6vw;
    height: 1.6vw;
    min-width: 22px;
    min-height: 22px;
    font-size: 1.1vw;
    line-height: 1;
    color: #8a7d68;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
}
.meeting-popup-calendar-prev:hover,
.meeting-popup-calendar-next:hover{ color: var(--primary); border-color: #d4c1a4; }

.meeting-popup-calendar-grids{
    display: flex;
    gap: 1.6vw;
}
.meeting-popup-calendar-grid{
    flex: 1;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-size: 0.78vw;
    color: var(--text);
}
.meeting-popup-calendar-weekday{
    padding: 0.3vw 0.1vw;
    margin-bottom: 0.45vw;
    color: var(--text-light);
    font-weight: 600;
    font-size: 0.72vw;
    letter-spacing: 0.12em;
}
.meeting-popup-calendar-day{
    padding: 0.5vw 0;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.15s ease;
}
.meeting-popup-calendar-day.blank{ cursor: default; }
.meeting-popup-calendar-day.disabled{
    color: #c9c1b0;
    cursor: not-allowed;
}
.meeting-popup-calendar-day:not(.blank):not(.disabled):hover{
    background: #efe7d8;
}
.meeting-popup-calendar-day.today{
    background: #f4ecdc;
    font-weight: 600;
}
.meeting-popup-calendar-day.selected{
    background: #d4c1a4;
    color: #fff;
    font-weight: 600;
}
.meeting-popup-calendar-day.selected:hover{ background: var(--primary); }

.meeting_venue-floor .swiper{overflow: unset;}

.erweima_box{position: fixed;width: 16vw;display: flex;justify-content: end;top:50%;right: 5%;z-index: 999;}
.erweima_box_img{width: 12.03vw;display: none;}
.erweima_box_btn{width: 3.23vw;margin-left: 1%;}

