/* ============================================================
   昆明松鹿部落风景区官网 · Organic Biophilic Design System
   风格：亲自然有机 + 大地质感 · 松林绿 / 陶土橙 / 奶油暖白
   ============================================================ */

/* ===== 设计令牌 ===== */
:root {
    /* 松林绿 */
    --pine-950: #0C1A13;
    --pine-900: #11241A;
    --pine-800: #163023;
    --pine-700: #1D3F2D;
    --pine-600: #2A5540;
    --pine-500: #3F6B52;
    --moss: #5F8A6A;
    --sage: #9DB9A0;
    --sage-soft: #C6D6C2;
    /* 陶土暖橙 */
    --clay-700: #96562A;
    --clay-600: #B0682F;
    --clay-500: #C97E3E;
    --clay-400: #D99962;
    --gold: #C8A45D;
    /* 奶油暖白 */
    --cream: #FAF7EF;
    --cream-2: #F3EDDE;
    --sand: #E9E1CE;
    --paper: #FFFDF7;
    --line: #E4DCC9;
    /* 暖墨 */
    --ink: #26221A;
    --ink-2: #4C4536;
    --ink-3: #7C7461;
    /* 深色区文字 */
    --mist: #EFEAD9;
    --mist-2: rgba(239, 234, 217, .72);
    --mist-3: rgba(239, 234, 217, .5);

    --r-sm: 12px;
    --r: 18px;
    --r-lg: 26px;
    --r-xl: 36px;

    --sh-sm: 0 6px 18px -10px rgba(18, 36, 26, .25);
    --sh: 0 22px 48px -24px rgba(18, 36, 26, .30);
    --sh-lg: 0 40px 90px -36px rgba(12, 26, 19, .5);
    --sh-clay: 0 16px 34px -14px rgba(176, 104, 47, .5);

    --serif: 'Noto Serif SC', 'Songti SC', 'STSong', serif;
    --sans: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;
    --latin: 'Cormorant Garamond', Georgia, serif;
    --ease: cubic-bezier(.22, .61, .36, 1);
    --nav-h: 78px;
}

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

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
    font-family: var(--sans);
    font-weight: 400;
    color: var(--ink);
    background: var(--cream);
    line-height: 1.7;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

/* 细颗粒自然纹理 */
body::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 5000;
    pointer-events: none;
    opacity: .05;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }

::selection { background: var(--clay-500); color: #fff; }

h1, h2, h3, h4 { font-family: var(--serif); font-weight: 700; line-height: 1.3; color: var(--ink); }

.container {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 28px;
    position: relative;
}

.section { padding: 110px 0; position: relative; }

/* 图标通用尺寸 */
.ic {
    width: 1em;
    height: 1em;
    flex-shrink: 0;
    stroke-width: 1.8;
}

/* ===== 按钮 ===== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 14px 32px;
    border-radius: 999px;
    font-family: var(--sans);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .04em;
    cursor: pointer;
    transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
    white-space: nowrap;
}
.btn .ic { width: 18px; height: 18px; }

.btn-primary {
    background: linear-gradient(135deg, var(--clay-400), var(--clay-600));
    color: #fff;
    box-shadow: var(--sh-clay);
}
.btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 40px -14px rgba(150, 86, 42, .6);
}

.btn-outline {
    background: transparent;
    color: var(--pine-700);
    border: 1.6px solid var(--pine-600);
}
.btn-outline:hover {
    background: var(--pine-700);
    color: #fff;
    transform: translateY(-3px);
}

/* 深色区使用的玻璃按钮 */
.btn-glass {
    background: rgba(255, 253, 247, .1);
    color: var(--mist);
    border: 1.4px solid rgba(255, 253, 247, .35);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.btn-glass:hover {
    background: rgba(255, 253, 247, .2);
    border-color: rgba(255, 253, 247, .65);
    transform: translateY(-3px);
}

.btn-lg { padding: 16px 38px; font-size: 16px; }
.btn-small { padding: 10px 22px; font-size: 14px; }
.btn-full { width: 100%; }

.btn:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2.5px solid var(--clay-500);
    outline-offset: 3px;
    border-radius: 6px;
}

/* ===== 顶部信息栏 ===== */
.top-bar {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 901;
    background: rgba(12, 26, 19, .88);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: var(--mist-2);
    font-size: 13px;
    letter-spacing: .03em;
    transition: transform .45s var(--ease);
    border-bottom: 1px solid rgba(255, 253, 247, .08);
}
.top-bar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 38px;
}
.top-info { display: flex; gap: 26px; }
.top-info span { display: inline-flex; align-items: center; gap: 7px; }
.top-info .ic { width: 14px; height: 14px; color: var(--clay-400); }
.top-links { display: flex; align-items: center; gap: 14px; }
.top-links a { color: var(--mist-2); transition: color .3s; }
.top-links a:hover { color: var(--clay-400); }
.top-dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(255, 253, 247, .3); }

body.nav-solid .top-bar { transform: translateY(-100%); }

/* ===== 导航栏 ===== */
.navbar {
    position: fixed;
    top: 38px; left: 0; right: 0;
    z-index: 900;
    transition: top .45s var(--ease), background .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
    border-bottom: 1px solid transparent;
}
body.nav-solid .navbar {
    top: 0;
    background: rgba(250, 247, 239, .82);
    backdrop-filter: blur(20px) saturate(1.4);
    -webkit-backdrop-filter: blur(20px) saturate(1.4);
    box-shadow: 0 10px 40px -18px rgba(12, 26, 19, .35);
    border-bottom-color: rgba(228, 220, 201, .7);
}

.nav-container {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 28px;
    height: var(--nav-h);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.nav-logo { display: flex; align-items: center; gap: 12px; }
.logo-mark {
    width: 44px; height: 44px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: linear-gradient(145deg, var(--pine-600), var(--pine-800));
    color: var(--sage-soft);
    box-shadow: inset 0 1px 0 rgba(255, 253, 247, .18), 0 8px 20px -8px rgba(12, 26, 19, .6);
    transition: transform .4s var(--ease);
}
.logo-mark .ic { width: 24px; height: 24px; }
/* 后台上传的自定义 Logo（右上角/页脚图标位），铺满图标底板 */
.logo-mark img.site-logo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 14px;
    display: block;
    box-shadow: inset 0 1px 0 rgba(255, 253, 247, .18);
}
.nav-logo:hover .logo-mark { transform: rotate(-6deg) scale(1.05); }
.logo-text { display: flex; flex-direction: column; line-height: 1.15; }
.logo-main {
    font-family: var(--serif);
    font-weight: 900;
    font-size: 21px;
    letter-spacing: .12em;
    color: #fff;
    transition: color .4s;
}
.logo-sub {
    font-family: var(--latin);
    font-size: 10.5px;
    letter-spacing: .34em;
    color: rgba(255, 253, 247, .6);
    transition: color .4s;
}
body.nav-solid .logo-main { color: var(--pine-800); }
body.nav-solid .logo-sub { color: var(--ink-3); }

.nav-menu { display: flex; align-items: center; gap: 4px; }
.nav-link {
    position: relative;
    display: inline-block;
    padding: 9px 14px;
    font-size: 15px;
    font-weight: 400;
    color: rgba(255, 253, 247, .88);
    border-radius: 999px;
    transition: color .3s, background .3s;
}
.nav-link::after {
    content: '';
    position: absolute;
    left: 50%; bottom: 3px;
    width: 0; height: 2px;
    border-radius: 2px;
    background: var(--clay-400);
    transform: translateX(-50%);
    transition: width .35s var(--ease);
}
.nav-link:hover { color: #fff; }
.nav-link:hover::after, .nav-link.active::after { width: 20px; }
.nav-link.active { color: #fff; }
body.nav-solid .nav-link { color: var(--ink-2); }
body.nav-solid .nav-link:hover, body.nav-solid .nav-link.active { color: var(--pine-700); }

.nav-cta { flex-shrink: 0; }
body.nav-solid .nav-cta { /* 保持主色按钮 */ }

.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: 8px;
    z-index: 910;
}
.nav-toggle span {
    width: 24px; height: 2px;
    border-radius: 2px;
    background: #fff;
    transition: transform .35s var(--ease), opacity .3s, background .35s;
}
body.nav-solid .nav-toggle span { background: var(--pine-800); }
.nav-toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.active span:nth-child(2) { opacity: 0; }
.nav-toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ===== Hero ===== */
.hero {
    position: relative;
    min-height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
}
.hero-video-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.hero-video-bg video,
.hero-video-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.hero-video-bg video { animation: heroKenBurns 24s ease-in-out infinite alternate; }
@keyframes heroKenBurns {
    from { transform: scale(1.02); }
    to { transform: scale(1.12); }
}
.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(12, 26, 19, .55) 0%, rgba(12, 26, 19, .28) 38%, rgba(12, 26, 19, .72) 100%),
        radial-gradient(120% 90% at 50% 0%, transparent 40%, rgba(12, 26, 19, .45) 100%);
}
.hero-content {
    position: relative;
    z-index: 2;
    max-width: 960px;
    padding: 130px 24px 60px;
    color: #fff;
}
.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 9px 22px;
    border-radius: 999px;
    background: rgba(255, 253, 247, .12);
    border: 1px solid rgba(255, 253, 247, .28);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    font-size: 13.5px;
    letter-spacing: .12em;
    color: var(--mist);
    margin-bottom: 30px;
}
.badge-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--clay-400);
    box-shadow: 0 0 0 4px rgba(217, 153, 98, .25);
    animation: pulseDot 2.4s ease-in-out infinite;
}
@keyframes pulseDot {
    0%, 100% { box-shadow: 0 0 0 3px rgba(217, 153, 98, .25); }
    50% { box-shadow: 0 0 0 7px rgba(217, 153, 98, .08); }
}

.hero-title { margin-bottom: 18px; }
.title-line {
    display: block;
    font-size: clamp(52px, 8.5vw, 104px);
    font-weight: 900;
    letter-spacing: .14em;
    color: #fff;
    text-indent: .14em;
    text-shadow: 0 6px 40px rgba(0, 0, 0, .35);
}
.title-sub {
    display: block;
    margin-top: 10px;
    font-size: clamp(19px, 2.6vw, 30px);
    font-weight: 600;
    letter-spacing: .32em;
    text-indent: .32em;
    color: var(--sage-soft);
}
.title-line-img {
    display: block;
    width: auto;
    max-width: 80%;
    height: auto;
    margin: 0 auto 14px;
    filter: drop-shadow(0 6px 24px rgba(0, 0, 0, .45));
}
@media (max-width: 768px) {
    .title-line-img { max-width: 95%; margin-bottom: 10px; }
}
.hero-en {
    font-family: var(--latin);
    font-style: italic;
    font-size: clamp(17px, 2.2vw, 24px);
    letter-spacing: .06em;
    color: rgba(255, 253, 247, .75);
    margin-bottom: 22px;
}
.hero-desc {
    font-size: 15.5px;
    font-weight: 300;
    line-height: 2;
    letter-spacing: .06em;
    color: rgba(255, 253, 247, .86);
    margin-bottom: 38px;
}
.hero-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 54px;
}

.hero-stats {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
    padding: 26px 12px;
    border-radius: var(--r-lg);
    background: rgba(12, 26, 19, .32);
    border: 1px solid rgba(255, 253, 247, .16);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.stat-item {
    flex: 1 1 150px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 4px 14px;
    position: relative;
}
.stat-item + .stat-item::before {
    content: '';
    position: absolute;
    left: 0; top: 18%;
    height: 64%;
    width: 1px;
    background: rgba(255, 253, 247, .16);
}
.stat-num {
    font-family: var(--serif);
    font-size: 34px;
    font-weight: 700;
    color: var(--clay-400);
    line-height: 1.1;
}
.stat-unit { font-size: 13px; color: var(--sage-soft); margin-left: 1px; }
.stat-label {
    font-size: 13px;
    letter-spacing: .14em;
    color: rgba(255, 253, 247, .68);
}

/* 滚动提示（位于快捷服务卡片下方，奶油底上） */
.scroll-indicator {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
    width: max-content;
    margin: 36px auto 0;
    color: var(--ink-3);
    font-size: 12px;
    letter-spacing: .25em;
    text-indent: .25em;
    transition: color .3s;
}
.scroll-indicator:hover { color: var(--pine-600); }
.mouse {
    width: 24px; height: 38px;
    border: 1.6px solid rgba(42, 85, 64, .4);
    border-radius: 14px;
    display: flex;
    justify-content: center;
    padding-top: 7px;
    transition: border-color .3s;
}
.scroll-indicator:hover .mouse { border-color: var(--pine-600); }
.wheel {
    width: 3.5px; height: 8px;
    border-radius: 3px;
    background: var(--clay-500);
    animation: wheelDrop 1.8s ease-in-out infinite;
}
@keyframes wheelDrop {
    0% { transform: translateY(0); opacity: 1; }
    70% { transform: translateY(12px); opacity: 0; }
    100% { transform: translateY(0); opacity: 0; }
}

/* ===== 快速服务入口 ===== */
.quick-services {
    position: relative;
    z-index: 10;
    margin-top: -78px;
    padding-bottom: 30px;
}
.service-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 18px;
}
.quick-card {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 30px 18px 26px;
    text-align: center;
    box-shadow: var(--sh);
    transition: transform .4s var(--ease), box-shadow .4s var(--ease);
    overflow: hidden;
}
.quick-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, var(--pine-700), var(--pine-600));
    opacity: 0;
    transition: opacity .4s var(--ease);
}
.quick-card > * { position: relative; z-index: 1; }
.quick-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--sh-lg);
}
.quick-card:hover::before { opacity: 1; }
.quick-icon {
    width: 58px; height: 58px;
    margin: 0 auto 16px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: var(--cream-2);
    color: var(--pine-600);
    transition: background .4s var(--ease), color .4s var(--ease), transform .4s var(--ease);
}
.quick-icon .ic { width: 26px; height: 26px; }
.quick-card:hover .quick-icon {
    background: var(--clay-500);
    color: #fff;
    transform: scale(1.08) rotate(-4deg);
}
.quick-card h3 {
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 5px;
    transition: color .4s;
}
.quick-card p {
    font-size: 13px;
    color: var(--ink-3);
    transition: color .4s;
}
.quick-card:hover h3 { color: #fff; }
.quick-card:hover p { color: var(--mist-2); }
.quick-go {
    position: absolute;
    top: 14px; right: 14px;
    width: 28px; height: 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--sage);
    opacity: 0;
    transform: translate(-6px, 6px);
    transition: all .4s var(--ease);
}
.quick-go .ic { width: 16px; height: 16px; }
.quick-card:hover .quick-go {
    opacity: 1;
    transform: translate(0, 0);
    color: var(--clay-400);
}

/* ===== 区块标题 ===== */
.section-header {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 64px;
}
.section-tag {
    display: inline-block;
    font-family: var(--latin);
    font-size: 15px;
    font-weight: 600;
    font-style: italic;
    letter-spacing: .32em;
    text-indent: .32em;
    text-transform: uppercase;
    color: var(--clay-600);
    margin-bottom: 14px;
    position: relative;
}
.section-tag::before,
.section-tag::after {
    content: '';
    display: inline-block;
    width: 34px;
    height: 1px;
    vertical-align: middle;
    margin: 0 14px;
    background: linear-gradient(90deg, transparent, var(--clay-400));
}
.section-tag::after { background: linear-gradient(90deg, var(--clay-400), transparent); }
.section-title {
    font-size: clamp(30px, 4vw, 42px);
    font-weight: 900;
    letter-spacing: .08em;
    margin-bottom: 16px;
    position: relative;
}
.section-subtitle {
    font-size: 15.5px;
    font-weight: 300;
    color: var(--ink-3);
    letter-spacing: .04em;
}
.section-header.light .section-tag { color: var(--clay-400); }
.section-header.light .section-title { color: #fff; }
.section-header.light .section-subtitle { color: var(--mist-2); }

/* ===== 景区概况 ===== */
.overview-grid {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: 56px;
    align-items: start;
}
.overview-image {
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--sh-lg);
}
.overview-image img {
    width: 100%;
    aspect-ratio: 4/5;
    object-fit: cover;
    transition: transform 1.2s var(--ease);
}
.overview-image:hover img { transform: scale(1.05); }
.overview-caption {
    position: absolute;
    left: 18px; right: 18px; bottom: 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
    border-radius: var(--r);
    background: rgba(12, 26, 19, .55);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 253, 247, .18);
    color: #fff;
}
.cap-icon {
    width: 40px; height: 40px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--clay-500);
}
.cap-icon .ic { width: 20px; height: 20px; }
.overview-caption strong { display: block; font-family: var(--serif); font-size: 16px; letter-spacing: .06em; }
.overview-caption span:not(.cap-icon) { font-size: 13px; color: var(--mist-2); }
.overview-badge {
    position: absolute;
    top: 18px; left: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 999px;
    background: rgba(255, 253, 247, .92);
    color: var(--pine-700);
    font-size: 13.5px;
    font-weight: 500;
    letter-spacing: .06em;
    box-shadow: var(--sh-sm);
}
.overview-badge .ic { width: 17px; height: 17px; color: var(--clay-600); }

.overview-intro h3 {
    font-size: 26px;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 22px;
    color: var(--pine-800);
}
.overview-intro p {
    font-size: 15px;
    font-weight: 300;
    color: var(--ink-2);
    line-height: 2;
    margin-bottom: 16px;
    text-align: justify;
}
.overview-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin: 30px 0;
}
.ov-card {
    padding: 22px 12px;
    text-align: center;
    border-radius: var(--r);
    background: var(--paper);
    border: 1px solid var(--line);
    transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.ov-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--sh);
    border-color: var(--sage);
}
.ov-icon {
    width: 46px; height: 46px;
    margin: 0 auto 10px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--cream-2);
    color: var(--pine-600);
}
.ov-icon .ic { width: 22px; height: 22px; }
.ov-card h4 { font-size: 16px; font-weight: 700; color: var(--pine-800); margin-bottom: 2px; }
.ov-card p { font-size: 12.5px; color: var(--ink-3); }

.overview-info {
    border-top: 1px solid var(--line);
    padding-top: 8px;
}
.info-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 4px;
    border-bottom: 1px dashed var(--line);
    font-size: 14.5px;
}
.info-label {
    flex-shrink: 0;
    width: 110px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
    color: var(--pine-700);
}
.info-label .ic { width: 16px; height: 16px; color: var(--clay-600); }
.info-value { color: var(--ink-2); }

/* ===== 深色区块通用 ===== */
.dark-section {
    background:
        radial-gradient(90% 60% at 85% 0%, rgba(63, 107, 82, .28), transparent 60%),
        radial-gradient(70% 50% at 8% 100%, rgba(201, 126, 62, .1), transparent 55%),
        linear-gradient(180deg, var(--pine-950), var(--pine-900) 55%, var(--pine-950));
    color: var(--mist);
    overflow: hidden;
}
.section-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    pointer-events: none;
    opacity: .5;
}
.glow-1 { width: 480px; height: 480px; top: -160px; right: -120px; background: rgba(95, 138, 106, .25); }
.glow-2 { width: 420px; height: 420px; bottom: -160px; left: -120px; background: rgba(63, 107, 82, .3); }
.glow-3 { width: 460px; height: 460px; top: 40%; right: -180px; background: rgba(201, 126, 62, .14); }

/* ===== 游玩项目 ===== */
.attraction-tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 46px;
    padding: 8px;
    border-radius: 999px;
    background: rgba(255, 253, 247, .07);
    border: 1px solid rgba(255, 253, 247, .12);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
}
.tab-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 26px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 500;
    color: var(--mist-2);
    transition: all .35s var(--ease);
}
.tab-btn .ic { width: 18px; height: 18px; }
.tab-btn:hover { color: #fff; background: rgba(255, 253, 247, .08); }
.tab-btn.active {
    background: linear-gradient(135deg, var(--clay-400), var(--clay-600));
    color: #fff;
    box-shadow: var(--sh-clay);
}

.attraction-panel { display: none; }
.attraction-panel.active { display: block; animation: panelIn .6s var(--ease); }
@keyframes panelIn {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: none; }
}

.attraction-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.attraction-card {
    position: relative;
    border-radius: var(--r-lg);
    overflow: hidden;
    min-height: 340px;
    box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7);
}
.attraction-card.large { grid-column: span 2; min-height: 400px; }
.attraction-card img {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    object-fit: cover;
    transition: transform 1.1s var(--ease);
}
.attraction-card:hover img { transform: scale(1.07); }
.attr-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 28px;
    background: linear-gradient(180deg, rgba(12, 26, 19, .05) 30%, rgba(12, 26, 19, .55) 62%, rgba(12, 26, 19, .9) 100%);
    transition: background .4s;
}
.attraction-card:hover .attr-overlay {
    background: linear-gradient(180deg, rgba(12, 26, 19, .15) 20%, rgba(12, 26, 19, .6) 58%, rgba(12, 26, 19, .94) 100%);
}
.attr-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(201, 126, 62, .92);
    color: #fff;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: .05em;
    margin-bottom: 14px;
    backdrop-filter: blur(6px);
}
.attr-tag .ic { width: 14px; height: 14px; }
.attr-overlay h3 {
    color: #fff;
    font-size: 23px;
    font-weight: 700;
    letter-spacing: .05em;
    margin-bottom: 8px;
}
.attraction-card.large .attr-overlay h3 { font-size: 28px; }
.attr-overlay p {
    font-size: 13.5px;
    font-weight: 300;
    line-height: 1.85;
    color: var(--mist-2);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.attraction-card.large .attr-overlay p { -webkit-line-clamp: 4; }
.attr-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 14px;
}
.attr-meta span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: var(--sage-soft);
}
.attr-meta .ic { width: 15px; height: 15px; color: var(--clay-400); }

/* ===== 虚拟旅游 ===== */
.virtual-hero {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 50px;
    align-items: center;
    margin-bottom: 90px;
}
.virtual-preview {
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
    cursor: pointer;
    box-shadow: var(--sh-lg);
}
.virtual-preview img {
    width: 100%;
    aspect-ratio: 16/10;
    object-fit: cover;
    transition: transform 1.1s var(--ease);
}
.virtual-preview:hover img { transform: scale(1.05); }
.virtual-preview-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(12, 26, 19, .15), rgba(12, 26, 19, .55));
}
.virtual-play {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #fff;
    text-align: center;
    padding: 20px;
}
.play-btn {
    width: 88px; height: 88px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(201, 126, 62, .92);
    color: #fff;
    box-shadow: 0 16px 40px -10px rgba(150, 86, 42, .7);
    transition: transform .4s var(--ease), background .4s;
    position: relative;
}
.play-btn::before, .play-btn::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1.5px solid rgba(217, 153, 98, .6);
    animation: playRipple 2.6s ease-out infinite;
}
.play-btn::after { animation-delay: 1.3s; }
@keyframes playRipple {
    from { transform: scale(1); opacity: .9; }
    to { transform: scale(1.7); opacity: 0; }
}
.virtual-preview:hover .play-btn { transform: scale(1.08); background: var(--clay-500); }
.play-btn .ic { width: 34px; height: 34px; margin-left: 4px; }
.play-text { font-family: var(--serif); font-size: 20px; font-weight: 700; letter-spacing: .08em; text-shadow: 0 2px 16px rgba(0,0,0,.4); }
.play-hint { font-size: 13px; color: rgba(255, 253, 247, .8); letter-spacing: .05em; }

.virtual-intro h3 {
    font-size: 28px;
    font-weight: 700;
    color: var(--pine-800);
    margin-bottom: 18px;
}
.virtual-intro > p {
    font-size: 15px;
    font-weight: 300;
    color: var(--ink-2);
    line-height: 2;
    margin-bottom: 26px;
}
.virtual-features { margin-bottom: 32px; }
.virtual-features li {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 11px 0;
    font-size: 14.5px;
    color: var(--ink-2);
    border-bottom: 1px dashed var(--line);
}
.vf-icon {
    width: 38px; height: 38px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--cream-2);
    color: var(--pine-600);
}
.vf-icon .ic { width: 19px; height: 19px; }

.video-title {
    text-align: center;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: .12em;
    color: var(--pine-800);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 40px;
}
.title-deco {
    width: 60px; height: 1px;
    background: linear-gradient(90deg, transparent, var(--clay-400));
}
.title-deco:last-child { background: linear-gradient(90deg, var(--clay-400), transparent); }

.video-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}
.video-card {
    cursor: pointer;
}
.video-thumb {
    position: relative;
    border-radius: var(--r);
    overflow: hidden;
    box-shadow: var(--sh-sm);
    margin-bottom: 14px;
    transition: box-shadow .4s var(--ease);
}
.video-thumb img {
    width: 100%;
    aspect-ratio: 16/10;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.video-card:hover .video-thumb img { transform: scale(1.06); }
.video-card:hover .video-thumb { box-shadow: var(--sh); }
.video-play {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 60px; height: 60px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 253, 247, .9);
    color: var(--clay-600);
    transition: all .35s var(--ease);
}
.video-play .ic { width: 22px; height: 22px; margin-left: 2px; }
.video-card:hover .video-play {
    background: var(--clay-500);
    color: #fff;
    transform: translate(-50%, -50%) scale(1.12);
}
.video-duration {
    position: absolute;
    right: 12px; bottom: 12px;
    padding: 4px 10px;
    border-radius: 8px;
    background: rgba(12, 26, 19, .75);
    color: #fff;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    backdrop-filter: blur(6px);
}
.video-card h4 {
    font-size: 16.5px;
    font-weight: 600;
    text-align: center;
    color: var(--pine-800);
    transition: color .3s;
}
.video-card:hover h4 { color: var(--clay-600); }

/* ===== 电子导览（上图下文） ===== */
.guide-content {
    display: flex;
    flex-direction: column;
    gap: 44px;
    align-items: stretch;
}
.guide-map {
    position: relative;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .8);
    border: 1px solid rgba(255, 253, 247, .14);
}
.guide-panel {
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
}
.guide-map img { width: 100%; transition: transform 1s var(--ease); }
.guide-map:hover img { transform: scale(1.04); }
.map-haze {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(12, 26, 19, .55));
    pointer-events: none;
}
.map-zoom {
    position: absolute;
    left: 50%; bottom: 20px;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 24px;
    border-radius: 999px;
    background: rgba(255, 253, 247, .92);
    color: var(--pine-800);
    font-size: 14px;
    font-weight: 500;
    box-shadow: var(--sh-sm);
    transition: transform .35s var(--ease), background .35s, color .35s;
}
.map-zoom .ic { width: 17px; height: 17px; }
.map-zoom:hover { background: var(--clay-500); color: #fff; transform: translateX(-50%) translateY(-3px); }

.guide-panel h3 {
    color: #fff;
    font-size: 24px;
    margin-bottom: 24px;
    letter-spacing: .06em;
    text-align: center;
}
.route-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 26px;
    align-items: start;
}
.route-card {
    border-radius: var(--r);
    background: rgba(255, 253, 247, .06);
    border: 1px solid rgba(255, 253, 247, .12);
    padding: 18px 22px;
    transition: background .35s, border-color .35s, transform .35s var(--ease);
    cursor: pointer;
}
.route-card:hover { background: rgba(255, 253, 247, .1); transform: translateX(4px); }
.route-card.active {
    background: linear-gradient(135deg, rgba(201, 126, 62, .22), rgba(201, 126, 62, .1));
    border-color: rgba(217, 153, 98, .55);
}
.route-header { display: flex; align-items: center; gap: 14px; }
.route-icon {
    width: 44px; height: 44px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: rgba(255, 253, 247, .1);
    color: var(--clay-400);
}
.route-card.active .route-icon { background: var(--clay-500); color: #fff; }
.route-icon .ic { width: 21px; height: 21px; }
.route-header > div { flex: 1; }
.route-header h4 { color: #fff; font-size: 17px; font-weight: 600; }
.route-time { font-size: 13px; color: var(--mist-3); }
.route-arrow { width: 18px; height: 18px; color: var(--mist-3); transition: transform .4s var(--ease); }
.route-card.active .route-arrow { transform: rotate(180deg); color: var(--clay-400); }
.route-stops {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height .5s var(--ease), opacity .4s, margin .4s;
    font-size: 13px;
}
.route-card.active .route-stops { max-height: 120px; opacity: 1; margin-top: 14px; }
.route-stops span {
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(255, 253, 247, .08);
    color: var(--mist-2);
    white-space: nowrap;
}
.route-stops i {
    width: 14px;
    height: 1px;
    background: rgba(255, 253, 247, .25);
    flex-shrink: 0;
}
.guide-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.gf-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-radius: var(--r-sm);
    background: rgba(255, 253, 247, .05);
    border: 1px solid rgba(255, 253, 247, .1);
    font-size: 14px;
    color: var(--mist-2);
    transition: background .3s;
}
.gf-item:hover { background: rgba(255, 253, 247, .1); }
.gf-icon {
    width: 34px; height: 34px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(157, 185, 160, .15);
    color: var(--sage-soft);
}
.gf-icon .ic { width: 17px; height: 17px; }

/* ===== 网络售票 ===== */
.ticket-notice {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 22px 26px;
    border-radius: var(--r);
    background: linear-gradient(135deg, var(--cream-2), #F7F1E3);
    border: 1px solid var(--sand);
    border-left: 4px solid var(--clay-500);
    margin-bottom: 56px;
    box-shadow: var(--sh-sm);
}
.notice-icon {
    flex-shrink: 0;
    width: 40px; height: 40px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--clay-500);
    color: #fff;
}
.notice-icon .ic { width: 20px; height: 20px; }
.ticket-notice p { font-size: 13.5px; line-height: 1.9; color: var(--ink-2); font-weight: 300; }
.ticket-notice strong { color: var(--clay-700); font-weight: 500; }

.ticket-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-bottom: 70px;
}
.ticket-card {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 36px 28px 28px;
    display: flex;
    flex-direction: column;
    box-shadow: var(--sh-sm);
    transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
}
.ticket-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--sh-lg);
    border-color: var(--sage);
}
.ticket-card.featured {
    border: 2px solid var(--clay-500);
    transform: translateY(-6px) scale(1.02);
    box-shadow: 0 30px 60px -24px rgba(176, 104, 47, .4);
    background: linear-gradient(180deg, #FFFCF4, var(--paper));
}
.ticket-card.featured:hover { transform: translateY(-12px) scale(1.02); }
.ticket-badge {
    position: absolute;
    top: -14px; left: 50%;
    transform: translateX(-50%);
    padding: 6px 20px;
    border-radius: 999px;
    background: var(--pine-600);
    color: #fff;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: .1em;
    white-space: nowrap;
    box-shadow: var(--sh-sm);
}
.ticket-badge.hot { background: linear-gradient(135deg, var(--clay-400), var(--clay-600)); }
.ticket-badge.vip { background: linear-gradient(135deg, var(--pine-500), var(--pine-800)); }
.ticket-card h3 {
    text-align: center;
    font-size: 21px;
    font-weight: 700;
    color: var(--pine-800);
    margin-bottom: 14px;
    letter-spacing: .05em;
}
.ticket-price {
    text-align: center;
    margin-bottom: 16px;
    color: var(--clay-600);
    font-family: var(--serif);
}
.ticket-price .currency { font-size: 20px; font-weight: 600; vertical-align: top; margin-right: 2px; }
.ticket-price .amount { font-size: 48px; font-weight: 900; line-height: 1; }
.ticket-price .unit { font-size: 13px; color: var(--ink-3); font-family: var(--sans); }
.ticket-desc {
    font-size: 13.5px;
    font-weight: 300;
    color: var(--ink-2);
    line-height: 1.8;
    text-align: center;
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px dashed var(--line);
    min-height: 72px;
}
.ticket-list { margin-bottom: 24px; flex: 1; }
.ticket-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 0;
    font-size: 13.5px;
    color: var(--ink-2);
}
.ticket-list .ic { width: 17px; height: 17px; flex-shrink: 0; }
.ticket-list .yes .ic { color: var(--pine-600); }
.ticket-list .no { color: var(--ink-3); }
.ticket-list .no .ic { color: #B7AFA0; }
.ticket-list .warn { color: var(--clay-700); }
.ticket-list .warn .ic { color: var(--clay-500); }

.ticket-faq { max-width: 820px; margin: 0 auto; }
.ticket-faq h3 {
    text-align: center;
    font-size: 24px;
    color: var(--pine-800);
    margin-bottom: 28px;
    letter-spacing: .08em;
}
.faq-list { display: flex; flex-direction: column; gap: 14px; }
.faq-item {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
    transition: box-shadow .3s, border-color .3s;
}
.faq-item.active { box-shadow: var(--sh); border-color: var(--sage); }
.faq-q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 26px;
    cursor: pointer;
    font-family: var(--serif);
    font-size: 16.5px;
    font-weight: 600;
    color: var(--pine-800);
    transition: color .3s;
}
.faq-q:hover { color: var(--clay-600); }
.faq-arrow {
    width: 20px; height: 20px;
    flex-shrink: 0;
    color: var(--clay-600);
    transition: transform .4s var(--ease);
}
.faq-item.active .faq-arrow { transform: rotate(180deg); }
.faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height .5s var(--ease), padding .4s var(--ease);
    padding: 0 26px;
    font-size: 14.5px;
    font-weight: 300;
    color: var(--ink-2);
    line-height: 1.9;
}
.faq-item.active .faq-a { max-height: 240px; padding: 0 26px 22px; }

/* ===== 交通指南 ===== */
.transport-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
}
.transport-card {
    display: flex;
    flex-direction: column;
    padding: 34px 28px;
    border-radius: var(--r-lg);
    background: rgba(255, 253, 247, .055);
    border: 1px solid rgba(255, 253, 247, .12);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: transform .4s var(--ease), background .4s, border-color .4s;
}
.transport-card:hover {
    transform: translateY(-8px);
    background: rgba(255, 253, 247, .09);
    border-color: rgba(217, 153, 98, .4);
}
.transport-icon {
    width: 60px; height: 60px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--clay-400), var(--clay-600));
    color: #fff;
    box-shadow: var(--sh-clay);
    margin-bottom: 20px;
}
.transport-icon .ic { width: 28px; height: 28px; }
.transport-card h3 {
    color: #fff;
    font-size: 20px;
    margin-bottom: 16px;
    letter-spacing: .05em;
}
.transport-detail { flex: 1; margin-bottom: 22px; }
.transport-detail p {
    font-size: 13.5px;
    font-weight: 300;
    line-height: 1.85;
    color: var(--mist-2);
    margin-bottom: 10px;
}
.transport-detail strong { color: var(--sage-soft); font-weight: 500; }
.transport-card .btn { align-self: flex-start; }

/* ===== 服务专区 ===== */
.service-tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 50px;
    padding: 8px;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    border-radius: 999px;
    background: var(--cream-2);
    border: 1px solid var(--line);
}
.service-tab {
    padding: 12px 30px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 500;
    color: var(--ink-2);
    transition: all .35s var(--ease);
}
.service-tab:hover { color: var(--pine-700); }
.service-tab.active {
    background: linear-gradient(135deg, var(--pine-600), var(--pine-800));
    color: #fff;
    box-shadow: 0 12px 26px -12px rgba(29, 63, 45, .6);
}
.service-panel { display: none; }
.service-panel.active { display: block; animation: panelIn .6s var(--ease); }
.service-content {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 50px;
    align-items: center;
}
.service-image {
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--sh-lg);
}
.service-image img {
    width: 100%;
    aspect-ratio: 4/4.6;
    object-fit: cover;
    transition: transform 1.1s var(--ease);
}
.service-image:hover img { transform: scale(1.05); }
.service-text h3 {
    font-size: 26px;
    color: var(--pine-800);
    margin-bottom: 14px;
    letter-spacing: .04em;
}
.service-text > p {
    font-size: 15px;
    font-weight: 300;
    color: var(--ink-2);
    line-height: 1.9;
    margin-bottom: 28px;
}
.service-list { display: flex; flex-direction: column; gap: 8px; }
.service-item { display: flex; gap: 16px; padding: 14px 0; border-bottom: 1px dashed var(--line); }
.si-icon {
    width: 46px; height: 46px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--cream-2);
    color: var(--pine-600);
    transition: background .35s, color .35s, transform .35s var(--ease);
}
.si-icon .ic { width: 22px; height: 22px; }
.service-item:hover .si-icon {
    background: var(--pine-700);
    color: #fff;
    transform: rotate(-5deg);
}
.service-item h4 { font-size: 16.5px; color: var(--pine-800); margin-bottom: 3px; }
.service-item p { font-size: 13.5px; font-weight: 300; color: var(--ink-3); line-height: 1.75; }

.notice-list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 28px; margin-top: 8px; }
.notice-item { display: flex; gap: 14px; align-items: flex-start; }
.notice-num {
    font-family: var(--serif);
    font-size: 30px;
    font-weight: 900;
    line-height: 1.1;
    color: transparent;
    background: linear-gradient(160deg, var(--clay-400), var(--clay-600));
    -webkit-background-clip: text;
    background-clip: text;
    flex-shrink: 0;
    width: 42px;
}
.notice-item p {
    font-size: 13.5px;
    font-weight: 300;
    color: var(--ink-2);
    line-height: 1.85;
    padding-top: 4px;
}

/* ===== 住宿餐饮 ===== */
.stay-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.stay-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh-sm);
    transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.stay-card:hover { transform: translateY(-8px); box-shadow: var(--sh-lg); }
.stay-img { overflow: hidden; }
.stay-img img {
    width: 100%;
    aspect-ratio: 16/10;
    object-fit: cover;
    transition: transform 1s var(--ease);
}
.stay-card:hover .stay-img img { transform: scale(1.06); }
.stay-body { padding: 26px 26px 28px; }
.stay-body h3 { font-size: 20px; color: var(--pine-800); margin-bottom: 10px; letter-spacing: .04em; }
.stay-body > p { font-size: 14px; font-weight: 300; color: var(--ink-2); line-height: 1.85; margin-bottom: 18px; }
.stay-meta { display: flex; gap: 10px; flex-wrap: wrap; }
.stay-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--cream-2);
    color: var(--pine-700);
    font-size: 12.5px;
}
.stay-meta .ic { width: 14px; height: 14px; color: var(--clay-600); }

/* ===== 联系我们 ===== */
.contact-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 44px;
    align-items: start;
}
.contact-info { display: flex; flex-direction: column; gap: 16px; }
.info-card {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 20px 24px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    box-shadow: var(--sh-sm);
    transition: transform .35s var(--ease), box-shadow .35s, border-color .35s;
}
.info-card:hover { transform: translateX(6px); box-shadow: var(--sh); border-color: var(--sage); }
.info-icon {
    width: 50px; height: 50px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: linear-gradient(135deg, var(--pine-600), var(--pine-800));
    color: var(--sage-soft);
}
.info-icon .ic { width: 23px; height: 23px; }
.info-card h4 { font-size: 15.5px; color: var(--pine-800); margin-bottom: 2px; }
.info-card p { font-size: 14px; color: var(--ink-2); }
.qr-boxes { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 4px; }
.qr-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 24px 16px;
    border-radius: var(--r);
    background: var(--cream-2);
    border: 1px dashed var(--sand);
    font-size: 13.5px;
    color: var(--ink-2);
    transition: background .3s, transform .35s var(--ease);
    cursor: pointer;
}
.qr-item:hover { background: var(--sand); transform: translateY(-4px); }
.qr-icon {
    width: 46px; height: 46px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--paper);
    color: var(--pine-600);
}
.qr-icon .ic { width: 23px; height: 23px; }

.contact-form-wrap {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r-xl);
    padding: 44px 42px;
    box-shadow: var(--sh);
}
.contact-form-wrap h3 { font-size: 24px; color: var(--pine-800); margin-bottom: 6px; letter-spacing: .05em; }
.form-hint { font-size: 14px; color: var(--ink-3); margin-bottom: 28px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-group { margin-bottom: 18px; }
.form-group label {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: var(--pine-800);
    margin-bottom: 8px;
}
.required { color: var(--clay-600); }
.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 13px 16px;
    border: 1.4px solid var(--line);
    border-radius: var(--r-sm);
    background: var(--cream);
    font-family: var(--sans);
    font-size: 14.5px;
    color: var(--ink);
    transition: border-color .3s, box-shadow .3s, background .3s;
}
.form-group textarea { resize: vertical; min-height: 96px; }
.form-group input::placeholder,
.form-group textarea::placeholder { color: #B4AB97; font-weight: 300; }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--clay-500);
    background: var(--paper);
    box-shadow: 0 0 0 4px rgba(201, 126, 62, .12);
}
.form-success {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 14px;
    padding: 12px;
    border-radius: var(--r-sm);
    background: rgba(95, 138, 106, .14);
    color: var(--pine-700);
    font-size: 14px;
}
.form-success .ic { width: 18px; height: 18px; }
.form-success.show { display: flex; animation: panelIn .5s var(--ease); }

/* ===== Footer ===== */
.footer {
    position: relative;
    background: linear-gradient(180deg, var(--pine-950), #08130D);
    color: var(--mist-2);
    padding: 80px 0 0;
    overflow: hidden;
}
.footer-glow {
    position: absolute;
    top: -200px; left: 50%;
    transform: translateX(-50%);
    width: 700px; height: 400px;
    background: radial-gradient(ellipse, rgba(201, 126, 62, .12), transparent 70%);
    pointer-events: none;
}
.footer-grid {
    position: relative;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
    gap: 44px;
    padding-bottom: 50px;
}
.footer-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.footer-logo .logo-main { font-size: 22px; }
.footer-brand > p { font-size: 13.5px; line-height: 2; color: var(--mist-3); margin-bottom: 14px; }
.footer-company { font-size: 12.5px; color: rgba(239, 234, 217, .4); }
.footer-col h4 {
    color: #fff;
    font-size: 16px;
    margin-bottom: 20px;
    letter-spacing: .1em;
    position: relative;
    padding-bottom: 12px;
}
.footer-col h4::after {
    content: '';
    position: absolute;
    left: 0; bottom: 0;
    width: 28px; height: 2px;
    border-radius: 2px;
    background: var(--clay-500);
}
.footer-col ul li { margin-bottom: 11px; }
.footer-col ul a {
    font-size: 14px;
    color: var(--mist-3);
    transition: color .3s, padding-left .3s;
}
.footer-col ul a:hover { color: var(--clay-400); padding-left: 5px; }
.footer-contact li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13.5px;
    color: var(--mist-3);
}
.footer-contact .ic { width: 15px; height: 15px; color: var(--clay-400); flex-shrink: 0; }
.footer-bottom {
    position: relative;
    border-top: 1px solid rgba(255, 253, 247, .09);
    padding: 24px 0;
    text-align: center;
    font-size: 13px;
    color: rgba(239, 234, 217, .4);
}

/* ===== 弹窗 ===== */
.modal {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(8, 19, 13, .72);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .35s var(--ease), visibility .35s;
}
.modal.show { opacity: 1; visibility: visible; }
.modal-content {
    position: relative;
    background: var(--paper);
    border-radius: var(--r-lg);
    padding: 38px 36px 32px;
    max-width: 520px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: var(--sh-lg);
    transform: translateY(26px) scale(.97);
    transition: transform .4s var(--ease);
}
.modal.show .modal-content { transform: none; }
.modal-content h3 {
    font-size: 22px;
    color: var(--pine-800);
    margin-bottom: 22px;
    text-align: center;
    letter-spacing: .06em;
}
.modal-close {
    position: absolute;
    top: 14px; right: 14px;
    width: 38px; height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--cream-2);
    color: var(--ink-2);
    font-size: 22px;
    line-height: 1;
    transition: background .3s, color .3s, transform .3s;
    z-index: 2;
}
.modal-close:hover { background: var(--clay-500); color: #fff; transform: rotate(90deg); }

.video-modal-content { background: var(--pine-950); max-width: 860px; padding: 22px; }
.video-modal-content h3 { color: #fff; margin-bottom: 14px; }
.video-modal-content .modal-close { background: rgba(255, 253, 247, .12); color: #fff; }
.video-modal-content video { width: 100%; border-radius: var(--r); display: block; }

.map-modal-content { max-width: 920px; }
.map-modal-content img { width: 100%; border-radius: var(--r); }

.virtual-modal-content { max-width: 900px; background: var(--pine-950); }
.virtual-modal-content h3 { color: #fff; }
.virtual-modal-content .modal-close { background: rgba(255, 253, 247, .12); color: #fff; }
.virtual-tour-viewer { position: relative; border-radius: var(--r); overflow: hidden; }
.vt-placeholder {
    position: absolute;
    top: 18px; left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    text-align: center;
    color: var(--mist);
    pointer-events: none;
}
.vt-icon {
    display: inline-grid;
    place-items: center;
    width: 46px; height: 46px;
    border-radius: 50%;
    background: rgba(201, 126, 62, .9);
    margin-bottom: 8px;
}
.vt-icon .ic { width: 22px; height: 22px; }
.vt-placeholder p { font-family: var(--serif); font-size: 16px; }
.vt-hint { font-size: 12px; color: var(--mist-3); }
.vt-scenes { position: relative; aspect-ratio: 16/9; }
.vt-scene {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 1s var(--ease), transform: 6s var(--ease);
    transform: scale(1.05);
}
.vt-scene.active { opacity: 1; transform: scale(1); }
.vt-controls {
    position: absolute;
    bottom: 16px; left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 10px 22px;
    border-radius: 999px;
    background: rgba(12, 26, 19, .6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 253, 247, .18);
    color: #fff;
    font-size: 14px;
    font-variant-numeric: tabular-nums;
    z-index: 4;
}
.vt-btn {
    width: 36px; height: 36px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 253, 247, .14);
    color: #fff;
    transition: background .3s, transform .3s;
}
.vt-btn:hover { background: var(--clay-500); transform: scale(1.08); }
.vt-btn .ic { width: 17px; height: 17px; }

/* 票务弹窗表单 */
.tf-info {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    border-radius: var(--r);
    background: var(--cream-2);
    margin-bottom: 22px;
    font-size: 14.5px;
}
.tf-label { color: var(--ink-3); }
.tf-name { font-weight: 600; color: var(--pine-800); flex: 1; }
.tf-price { font-family: var(--serif); font-size: 22px; font-weight: 900; color: var(--clay-600); }
.tf-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 4px;
    margin-bottom: 18px;
    border-top: 1px dashed var(--line);
    font-size: 15px;
    color: var(--ink-2);
}
.tf-total strong { font-family: var(--serif); font-size: 28px; color: var(--clay-600); }
.tf-tip { text-align: center; font-size: 12.5px; color: var(--ink-3); margin-top: 12px; }
.ticket-modal-content .form-group label { font-size: 13.5px; }

/* ===== Toast ===== */
.toast {
    position: fixed;
    bottom: 36px;
    left: 50%;
    transform: translate(-50%, 30px);
    z-index: 4000;
    padding: 14px 30px;
    border-radius: 999px;
    background: rgba(12, 26, 19, .92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: var(--mist);
    font-size: 14.5px;
    letter-spacing: .03em;
    box-shadow: var(--sh-lg);
    opacity: 0;
    visibility: hidden;
    transition: all .4s var(--ease);
    pointer-events: none;
    max-width: 90vw;
    text-align: center;
}
.toast.show {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

/* ===== 回到顶部 ===== */
.back-top {
    position: fixed;
    right: 26px;
    bottom: 30px;
    z-index: 800;
    width: 50px; height: 50px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--clay-400), var(--clay-600));
    color: #fff;
    box-shadow: var(--sh-clay);
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    transition: all .4s var(--ease);
}
.back-top .ic { width: 22px; height: 22px; }
.back-top.show { opacity: 1; visibility: visible; transform: none; }
.back-top:hover { transform: translateY(-4px); box-shadow: 0 20px 36px -12px rgba(150, 86, 42, .65); }

/* ===== 滚动入场动画 ===== */
.fade-up {
    opacity: 0;
    transform: translateY(34px);
    transition: opacity .9s var(--ease), transform .9s var(--ease);
    will-change: opacity, transform;
}
.fade-up.visible { opacity: 1; transform: none; }

/* ============================================================
   文字入场动效（基于 csscankao：animista.css 的 3D 入镜 +
   移植自 animate.css 的 fadeInDown / fadeInUp）
   ============================================================ */
.hero-content { perspective: 1200px; }
.section-header { perspective: 1000px; }

/* animate.css 关键帧（移植自 csscankao/animate.css-main，距离柔化） */
@keyframes fadeInDown {
    from { opacity: 0; transform: translate3d(0, -34px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes fadeInUp {
    from { opacity: 0; transform: translate3d(0, 34px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* 首屏：逐元素电影感入场（slide-in-fwd-top 来自 animista.css） */
.hero-badge { animation: fadeInDown .8s var(--ease) .1s both; }
.hero-title {
    animation: slide-in-fwd-top 1.15s cubic-bezier(.22, .9, .32, 1) .22s both;
    transform-origin: center bottom;
}
.hero-en { animation: fadeInUp .8s var(--ease) .52s both; }
.hero-desc { animation: fadeInUp .8s var(--ease) .64s both; }
.hero-actions { animation: fadeInUp .8s var(--ease) .76s both; }
.hero-stats { animation: fadeInUp .9s var(--ease) .88s both; }

/* 区块标题：滚动进入视口时文字浮现（slide-in-fwd-center 来自 animista.css） */
.section-header.visible .section-tag { animation: fadeInDown .7s var(--ease) both; }
.section-header.visible .section-title {
    animation: slide-in-fwd-center .95s cubic-bezier(.22, .9, .32, 1) .06s both;
}
.section-header.visible .section-subtitle { animation: fadeInUp .8s var(--ease) .16s both; }

/* ============================================================
   关于我们 / 董事长 / 公益慈善 子页面组件
   ============================================================ */

/* ===== 子页 Hero ===== */
.page-hero {
    position: relative;
    padding: 170px 0 96px;
    text-align: center;
    background: linear-gradient(150deg, var(--pine-950), var(--pine-800) 55%, var(--pine-700));
    overflow: hidden;
}
.page-hero-glow {
    position: absolute;
    top: -140px; left: 50%;
    width: 720px; height: 420px;
    transform: translateX(-50%);
    background: radial-gradient(closest-side, rgba(201, 126, 62, .22), transparent);
    pointer-events: none;
}
.page-hero-tag {
    display: inline-block;
    font-family: var(--latin);
    font-size: 16px;
    font-weight: 600;
    font-style: italic;
    letter-spacing: .32em;
    text-indent: .32em;
    text-transform: uppercase;
    color: var(--clay-400);
    margin-bottom: 18px;
}
.page-hero-title {
    font-size: clamp(40px, 5.4vw, 60px);
    font-weight: 900;
    letter-spacing: .08em;
    color: #fff;
    margin-bottom: 18px;
}
.page-hero-sub {
    font-size: 17px;
    color: var(--mist-2);
    letter-spacing: .04em;
    max-width: 640px;
    margin: 0 auto;
}

/* ===== 关于我们入口卡片 ===== */
.about-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    max-width: 1040px;
    margin: 0 auto;
}
.about-card {
    display: block;
    background: var(--paper);
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--sh);
    transition: transform .45s var(--ease), box-shadow .45s var(--ease);
}
.about-card:hover {
    transform: translateY(-10px);
    box-shadow: var(--sh-lg);
}
.about-card-media {
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--cream-2);
}
.about-card-media img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.about-card:hover .about-card-media img { transform: scale(1.06); }
.about-card-body {
    padding: 34px 34px 38px;
    text-align: center;
}
.about-card-icon {
    width: 72px; height: 72px;
    margin: -70px auto 18px;
    border-radius: 50%;
    display: grid; place-items: center;
    background: linear-gradient(135deg, var(--clay-400), var(--clay-600));
    color: #fff;
    box-shadow: var(--sh-clay);
    position: relative;
}
.about-card-icon .ic { width: 34px; height: 34px; }
.about-card-body h3 {
    font-size: 24px;
    font-weight: 700;
    color: var(--pine-800);
    margin-bottom: 12px;
}
.about-card-body p {
    font-size: 15px;
    line-height: 1.9;
    color: var(--ink-2);
    margin-bottom: 22px;
}
.about-card-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 26px;
    border-radius: 999px;
    background: var(--cream-2);
    color: var(--pine-700);
    font-size: 14px;
    font-weight: 500;
    transition: background .35s var(--ease), color .35s var(--ease);
}
.about-card-cta .ic { width: 16px; height: 16px; }
.about-card:hover .about-card-cta { background: var(--pine-600); color: #fff; }

/* ===== 详情页通用 ===== */
.dsz-detail,
.charity-detail { padding-top: 150px; }
.detail-wrap {
    max-width: 900px;
    margin: 0 auto;
}
.page-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--clay-600);
    font-size: 14.5px;
    font-weight: 500;
    margin-bottom: 28px;
    transition: color .3s var(--ease), transform .3s var(--ease);
}
.page-back .ic { width: 18px; height: 18px; }
.page-back:hover { color: var(--clay-700); transform: translateX(-3px); }

/* ===== 董事长 ===== */
.profile-card {
    background: var(--paper);
    border-radius: var(--r-xl);
    box-shadow: var(--sh-lg);
    padding: 44px 46px;
}
.profile-head {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    align-items: center;
    margin-bottom: 34px;
}
.profile-photo {
    flex-shrink: 0;
    width: 190px; height: 230px;
    border-radius: var(--r-lg);
    overflow: hidden;
    background: var(--cream-2);
    box-shadow: var(--sh);
}
.profile-photo img { width: 100%; height: 100%; object-fit: cover; }
.profile-info { flex: 1; min-width: 260px; }
.profile-name {
    font-size: 34px;
    font-weight: 900;
    letter-spacing: .06em;
    color: var(--pine-800);
    margin-bottom: 8px;
}
.profile-title {
    font-size: 18px;
    font-weight: 500;
    color: var(--clay-600);
    margin-bottom: 18px;
}
.profile-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.pill {
    padding: 7px 16px;
    border-radius: 999px;
    background: var(--cream-2);
    color: var(--ink-2);
    font-size: 13px;
    font-weight: 500;
    border: 1px solid var(--line);
}
.profile-body {
    border-top: 1px solid var(--line);
    padding-top: 30px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}
.profile-h {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 20px;
    font-weight: 700;
    color: var(--pine-800);
    margin-bottom: 14px;
}
.profile-h-ic {
    flex-shrink: 0;
    width: 38px; height: 38px;
    border-radius: 12px;
    display: grid; place-items: center;
    background: var(--cream-2);
    color: var(--clay-600);
}
.profile-h-ic .ic { width: 20px; height: 20px; }
.profile-p {
    font-size: 15.5px;
    line-height: 2;
    color: var(--ink-2);
    text-align: justify;
}
.profile-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    color: var(--clay-600);
    font-weight: 500;
    font-size: 15px;
    transition: color .3s var(--ease);
}
.profile-link .ic { width: 18px; height: 18px; }
.profile-link:hover { color: var(--clay-700); }

/* ===== 风采 / 影像画廊 ===== */
.gallery-title {
    margin: 56px 0 28px;
    text-align: center;
}
.gallery-title .section-tag { margin-bottom: 8px; }
.gallery-title h3 {
    font-size: 26px;
    font-weight: 700;
    color: var(--pine-800);
    letter-spacing: .06em;
}
.dsz-gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
.gallery-item {
    border-radius: var(--r-lg);
    overflow: hidden;
    aspect-ratio: 4/3;
    background: var(--cream-2);
    box-shadow: var(--sh-sm);
}
.gallery-item img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.gallery-item:hover img { transform: scale(1.05); }

/* ===== 公益慈善 ===== */
.charity-head { text-align: center; margin-bottom: 40px; }
.charity-title {
    font-size: clamp(32px, 4vw, 40px);
    font-weight: 900;
    letter-spacing: .06em;
    color: var(--pine-800);
    margin-bottom: 14px;
}
.charity-sub {
    font-size: 16px;
    color: var(--ink-3);
    max-width: 620px;
    margin: 0 auto;
}
.charity-idea {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    background: var(--cream-2);
    border-radius: var(--r);
    padding: 26px 30px;
    margin-bottom: 46px;
}
.charity-idea-ic {
    flex-shrink: 0;
    width: 46px; height: 46px;
    border-radius: 50%;
    display: grid; place-items: center;
    background: linear-gradient(135deg, #E8A87C, #D4885A);
    color: #fff;
    box-shadow: var(--sh-clay);
}
.charity-idea-ic .ic { width: 24px; height: 24px; }
.charity-idea h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--pine-800);
    margin-bottom: 8px;
}
.charity-idea p {
    font-size: 15px;
    line-height: 1.9;
    color: var(--ink-2);
}
.charity-section-h {
    font-size: 22px;
    font-weight: 700;
    color: var(--pine-800);
    margin-bottom: 26px;
    padding-left: 16px;
    border-left: 4px solid var(--clay-500);
}
.charity-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-bottom: 46px;
}
.charity-item {
    display: flex;
    gap: 24px;
    align-items: center;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 20px 24px;
    transition: box-shadow .35s var(--ease), transform .35s var(--ease);
}
.charity-item:hover { box-shadow: var(--sh); transform: translateY(-3px); }
.charity-thumb {
    flex-shrink: 0;
    width: 150px; height: 120px;
    border-radius: var(--r-sm);
    overflow: hidden;
    background: var(--cream-2);
}
.charity-thumb img { width: 100%; height: 100%; object-fit: cover; }
.charity-body h4 {
    font-size: 18px;
    font-weight: 700;
    color: var(--pine-800);
    margin-bottom: 8px;
}
.charity-body p {
    font-size: 14.5px;
    line-height: 1.85;
    color: var(--ink-2);
}
.charity-body strong { color: var(--clay-700); }
.charity-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.charity-foot {
    margin-top: 44px;
    padding-top: 30px;
    border-top: 1px solid var(--line);
    text-align: center;
    font-size: 15px;
    color: var(--clay-600);
}
.charity-foot .ic { width: 22px; height: 22px; vertical-align: -5px; margin-right: 8px; }

/* ============================================================
   响应式
   ============================================================ */
@media (max-width: 1200px) {
    .service-grid { grid-template-columns: repeat(3, 1fr); }
    .ticket-grid { grid-template-columns: repeat(2, 1fr); gap: 30px; }
    .transport-grid { grid-template-columns: repeat(2, 1fr); }
    .nav-menu { gap: 0; }
    .nav-link { padding: 8px 10px; font-size: 14px; }
}

@media (max-width: 1024px) {
    .section { padding: 84px 0; }
    .overview-grid,
    .virtual-hero,
    .guide-content,
    .service-content,
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .overview-image img,
    .service-image img { aspect-ratio: 16/10; }
    .attraction-grid { grid-template-columns: repeat(2, 1fr); }
    .attraction-card.large { grid-column: span 2; }
    .video-grid,
    .stay-grid { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
    .nav-menu {
        position: fixed;
        top: 0; right: 0;
        width: min(320px, 82vw);
        height: 100vh;
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
        gap: 6px;
        padding: 90px 32px 40px;
        background: rgba(250, 247, 239, .96);
        backdrop-filter: blur(22px);
        -webkit-backdrop-filter: blur(22px);
        box-shadow: -20px 0 60px -20px rgba(12, 26, 19, .4);
        transform: translateX(105%);
        transition: transform .45s var(--ease);
    }
    .nav-menu.active { transform: translateX(0); }
    .nav-link {
        color: var(--ink-2) !important;
        font-size: 17px;
        padding: 13px 18px;
        border-radius: var(--r-sm);
    }
    .nav-link:hover, .nav-link.active { background: var(--cream-2); color: var(--pine-700) !important; }
    .nav-link::after { display: none; }
    .nav-toggle { display: flex; }
    .nav-cta { display: none; }
    .contact-form-wrap { padding: 34px 26px; }
}

@media (max-width: 768px) {
    .top-bar { display: none; }
    .navbar { top: 0; }
    .container { padding: 0 20px; }
    .section { padding: 68px 0; }
    .section-header { margin-bottom: 44px; }
    .service-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
    .quick-card { padding: 24px 14px 20px; }
    .quick-card p { font-size: 12px; }
    .attraction-grid,
    .video-grid,
    .stay-grid,
    .transport-grid { grid-template-columns: 1fr; }
    .attraction-card.large { grid-column: span 1; min-height: 360px; }
    .ticket-grid { grid-template-columns: 1fr; }
    .ticket-card.featured { transform: none; }
    .ticket-card.featured:hover { transform: translateY(-8px); }
    .overview-cards { grid-template-columns: repeat(2, 1fr); }
    .guide-features { grid-template-columns: 1fr; }
    .route-list { grid-template-columns: 1fr; }
    .notice-list { grid-template-columns: 1fr; }
    .form-row { grid-template-columns: 1fr; gap: 0; }
    .footer-grid { grid-template-columns: 1fr; gap: 30px; }
    .hero-content { padding: 120px 18px 70px; }
    .hero-actions { gap: 12px; }
    .hero-actions .btn { padding: 13px 24px; font-size: 14.5px; }
    .hero-stats { padding: 18px 8px; gap: 14px 0; }
    .stat-item { flex: 1 1 30%; }
    .stat-item:nth-child(4n+1)::before { display: none; }
    .stat-num { font-size: 27px; }
    .title-line { letter-spacing: .1em; text-indent: .1em; }
    .about-grid { grid-template-columns: 1fr; gap: 28px; }
    .about-card-media { aspect-ratio: 16/10; }
    .about-card-body { padding: 28px 24px 32px; }
    .quick-services { margin-top: -56px; }
    .attr-overlay { padding: 20px; }
    .attraction-tabs, .service-tabs { width: 100%; justify-content: flex-start; overflow-x: auto; border-radius: var(--r); flex-wrap: nowrap; }
    .tab-btn, .service-tab { white-space: nowrap; padding: 11px 18px; }
    .contact-form-wrap { padding: 28px 20px; }
    .modal-content { padding: 32px 22px 26px; }
    .back-top { right: 18px; bottom: 20px; width: 44px; height: 44px; }
    .info-row { flex-direction: column; align-items: flex-start; gap: 4px; }
    .info-label { width: auto; }
}

@media (max-width: 420px) {
    .service-grid { grid-template-columns: 1fr 1fr; }
    .hero-badge { font-size: 12px; padding: 8px 16px; }
    .qr-boxes { grid-template-columns: 1fr; }
    .page-hero-title { font-size: 34px; }
    .charity-gallery { grid-template-columns: 1fr; }
}

/* ===== 减弱动效偏好 ===== */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .fade-up { opacity: 1; transform: none; }
    .hero-video-bg video { animation: none; }
}

/* ===== 图片 Lightbox（点击放大，动画参考 csscankao zoomIn） ===== */
.lightbox {
    position: fixed;
    inset: 0;
    z-index: 4000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(8, 19, 13, .84);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .35s var(--ease), visibility .35s;
}
.lightbox.show { opacity: 1; visibility: visible; }
.lightbox-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 253, 247, .14);
    color: #fff;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    transition: background .3s var(--ease), transform .3s var(--ease);
}
.lightbox-close:hover { background: var(--clay-500); transform: rotate(90deg); }
.lightbox-figure { margin: 0; position: relative; display: flex; flex-direction: column; align-items: center; }
.lightbox-figure img {
    display: block;
    max-width: min(92vw, 1100px);
    max-height: 82vh;
    width: auto;
    height: auto;
    border-radius: var(--r-lg);
    box-shadow: var(--sh-lg);
}
.lightbox-figure img.pop { animation: lightboxZoomIn .55s var(--ease) both; }
.lightbox-figure figcaption {
    margin-top: 18px;
    color: var(--mist);
    font-size: 15px;
    letter-spacing: .08em;
    text-align: center;
}
@keyframes lightboxZoomIn {
    from { opacity: 0; transform: scale(.55) translateY(14px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* ===== 页脚后台入口 ===== */
.footer-admin { margin-top: 8px; font-size: 13px; }
.footer-admin a { color: rgba(239, 234, 217, .72); text-decoration: underline; }
.footer-admin a:hover { color: var(--clay-400); }
