/*
Theme Name: Wushichuli
Description: 公寓出租主题
Author:  卓培增
Version: 2.0
*/

:root {
    --color-primary: #E55A3C;
    --color-primary-hover: #c94a30;
    --color-dark: #1a1a1a;
    --color-gray: #666;
    --color-light-gray: #f4f4f4;
    --color-white: #fff;
    --font-main: 'Inter', sans-serif;
    --max-width: 1100px;
    --radius: 12px;
    --shadow: 0 4px 24px rgba(0,0,0,0.08);
    --transition: 0.3s ease;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: var(--font-main);
    color: var(--color-dark);
    background: var(--color-white);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

a { text-decoration: none; color: inherit; }
ul { list-style: none; }
img { max-width: 100%; display: block; }
.container { max-width: var(--max-width); margin: 0 auto; padding: 0 24px; }

/* ================= 通用动画类 ================= */
.fade-up {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}

/* 表格行逐行出现 */
.compare-table .row-item {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}
.compare-table .row-item.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ================= 通用标题样式 ================= */
.section-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 1.2px;
    margin-bottom: 8px;
    display: block;
}
.section-title {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 12px;
}

/* ================= 头部导航 ================= */
.navbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 20px 0;
    z-index: 1000;
    transition: background 0.4s ease, padding 0.4s ease, box-shadow 0.4s ease;
}
.navbar.scrolled {
    background: rgba(15, 15, 15, 0.95);
    padding: 12px 0;
    box-shadow: 0 2px 20px rgba(0,0,0,0.2);
    backdrop-filter: blur(10px);
}
.navbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.navbar .logo { font-size: 22px; font-weight: 700; letter-spacing: 1px; color: #fff; }
.navbar .nav-links { display: flex; gap: 28px; font-size: 13px; font-weight: 400; color: #ddd; }
.navbar .nav-links a { transition: color 0.2s; }
.navbar .nav-links a:hover { color: #fff; }
.navbar .nav-actions { display: flex; align-items: center; gap: 16px; }
.btn-primary {
    display: inline-block;
    padding: 10px 22px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    transition: background var(--transition), transform var(--transition);
}
.btn-primary:hover { background: var(--color-primary-hover); transform: translateY(-2px); }
.navbar .contact-link { font-size: 13px; color: #ddd; display: flex; align-items: center; gap: 6px; }
.navbar .contact-link:hover { color: #fff; }

/* ================= Hero 区域 ================= */
.hero {
    position: relative;
    height: 100vh;
    min-height: 650px;
    background: url('https://images.unsplash.com/photo-1522202176988-66273c2fd55f?w=1600&q=80') center/cover no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.3) 100%);
}
.hero .container {
    position: relative;
    z-index: 1;
    text-align: center;
    color: #fff;
    max-width: 700px;
}
/* .hero h1 {
    font-size: 48px;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 16px;
    color: var(--color-primary);
}
.hero p {
    font-size: 15px;
    color: #ddd;
    margin-bottom: 32px;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}
.hero .btn-group { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.hero .btn-hero {
    display: inline-block;
    padding: 12px 32px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    transition: background var(--transition), transform var(--transition);
}
.hero .btn-hero:hover { background: var(--color-primary-hover); transform: translateY(-2px); }
.hero .btn-outline {
    display: inline-block;
    padding: 12px 32px;
    border: 1px solid rgba(255,255,255,0.5);
    color: #fff;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    transition: all var(--transition);
}
.hero .btn-outline:hover { background: rgba(255,255,255,0.15); border-color: #fff; } */

/* ================= Why NESTL 区域 ================= */
.why-section {
    padding: 100px 0;
    background: var(--color-white);
}
.why-section .container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}
.why-section .text-content { max-width: 450px; }
.why-section .text-content p {
    font-size: 15px;
    color: var(--color-gray);
    line-height: 1.7;
}
.why-section .image-content { display: flex; justify-content: center; align-items: center; }
.why-section .image-content img { width: 100%; max-width: 400px; height: auto; object-fit: contain; }

/* ================= Who we're for 区域 ================= */
.who-section {
    padding: 100px 0;
    background: var(--color-light-gray);
}
.who-section .section-title { text-align: center; margin-bottom: 48px; }
.who-section .section-title .section-label { text-align: center; }
.who-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.who-card {
    background: var(--color-white);
    border-radius: var(--radius);
    padding: 32px 22px;
    box-shadow: var(--shadow);
    transition: transform var(--transition), box-shadow var(--transition);
}
.who-card:hover { transform: translateY(-6px); box-shadow: 0 12px 32px rgba(0,0,0,0.12); }
.who-card .icon { font-size: 22px; color: var(--color-primary); margin-bottom: 16px; }
.who-card h3 { font-size: 16px; font-weight: 600; margin-bottom: 8px; }
.who-card p { font-size: 13px; color: var(--color-gray); line-height: 1.6; }

/* ================= Why choose us 区域 ================= */
.compare-section {
    padding: 100px 0;
    background: var(--color-white);
    text-align: center;
}
.compare-section .section-title { text-align: center; }
.compare-section .section-label { text-align: center; }
.compare-section .desc {
    font-size: 15px;
    color: var(--color-gray);
    max-width: 500px;
    margin: 0 auto 48px;
}
.compare-wrapper { max-width: 620px; margin: 0 auto; position: relative; }
.compare-table {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}
.compare-table .header {
    padding: 20px 24px;
    font-weight: 600;
    font-size: 14px;
    background: var(--color-light-gray);
    color: var(--color-dark);
}
.compare-table .header:nth-child(2) { background: var(--color-dark); color: #fff; }
.compare-table .header:nth-child(3) { background: #eee; color: #aaa; }
.compare-table .row-item {
    padding: 15px 24px;
    border-bottom: 1px solid #eee;
    font-size: 13px;
    display: flex;
    align-items: center;
    background: #fff;
}
.compare-table .row-item:nth-child(3n+2) { justify-content: center; color: #27ae60; font-size: 16px; }
.compare-table .row-item:nth-child(3n+3) { justify-content: center; color: #999; font-size: 13px; }
.compare-table .row-item:nth-child(3n+1) { font-weight: 500; color: var(--color-dark); }
.compare-table .row-item:last-child { border-bottom: none; }

.compare-footer {
    margin-top: 32px;
    font-size: 14px;
    color: var(--color-gray);
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}
.compare-footer .btn-primary { padding: 10px 28px; font-size: 13px; }

/* ================= Locations 区域 ================= */
.locations-section {
    padding: 100px 0;
    background: var(--color-white);
}
.locations-section .section-title { text-align: center; margin-bottom: 48px; }
.locations-section .section-title .section-label { text-align: center; }
.locations-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}
.location-card {
    background: var(--color-white);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: transform var(--transition), box-shadow var(--transition);
}
.location-card:hover { transform: translateY(-6px); box-shadow: 0 16px 40px rgba(0,0,0,0.12); }
.location-card .image-wrapper { position: relative; overflow: hidden; }
.location-card .image-wrapper img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.location-card:hover .image-wrapper img { transform: scale(1.06); }
.location-card .badge {
    position: absolute;
    top: 14px;
    right: 14px;
    background: #f1c40f;
    color: #1a1a1a;
    font-size: 11px;
    font-weight: 600;
    padding: 5px 14px;
    border-radius: 6px;
    z-index: 2;
}
.location-card .badge.leased { background: #e74c3c; color: #fff; }
.location-card .content { padding: 22px 24px 26px; }
.location-card .content .top-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 10px;
    gap: 12px;
}
.location-card .content h3 { font-size: 19px; font-weight: 700; }
.location-card .content .price { font-size: 19px; font-weight: 700; color: var(--color-primary); white-space: nowrap; }
.location-card .content .price span { font-size: 13px; font-weight: 400; color: #999; }
.location-card .content .address {
    font-size: 13px;
    color: var(--color-gray);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.location-card .content .desc {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.6;
    margin-bottom: 18px;
}
.location-card .content .meta {
    display: flex;
    gap: 16px;
    font-size: 12px;
    color: var(--color-gray);
    border-top: 1px solid #eee;
    padding-top: 14px;
}
.location-card .content .meta span { display: flex; align-items: center; gap: 6px; }

/* ============================================================
   CTA 区域 - 按钮（强制对齐 + 边框）
   ============================================================ */
.cta-section {
    padding: 80px 0;
    background: #f4f4f4;
}
.cta-card {
    background: #1a1a1a;
    border-radius: 24px;
    padding: 80px 60px;
    text-align: center;
    max-width: 820px;
    margin: 0 auto;
    color: #fff;
    box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}
.cta-label {
    color: #E55A3C;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    display: block;
    margin-bottom: 16px;
}
.cta-title {
    font-size: 44px;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 20px;
    color: #fff;
}
.cta-desc {
    color: #999;
    font-size: 14px;
    line-height: 1.7;
    margin-bottom: 36px;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
}

/* 按钮容器：flex 居中对齐 */
.cta-buttons {
    display: flex;
    justify-content: center;
    align-items: center;       /* ★ 垂直居中对齐 */
    gap: 14px;
    flex-wrap: wrap;
    min-height: 52px;          /* ★ 保证容器高度一致 */
}

/* 两个按钮共用基础样式：等高 + 同 padding */
.cta-btn-primary,
.cta-btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 52px;              /* ★ 强制等高 */
    padding: 0 34px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    line-height: 1;
    text-decoration: none;
    box-sizing: border-box;
    transition: all 0.3s ease;
    white-space: nowrap;
}

/* 主按钮：橙底白字 */
.cta-btn-primary {
    background: #E55A3C !important;
    color: #fff !important;
    border: 1px solid #E55A3C !important;
}
.cta-btn-primary:hover {
    background: #c94a30 !important;
    border-color: #c94a30 !important;
    transform: translateY(-2px);
}
.cta-btn-primary i {
    font-size: 12px;
    margin-left: 8px;
}

/* 次按钮：透明底 + 白色边框 + 白字 */
.cta-btn-outline {
    background: transparent !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,0.45) !important;
}
.cta-btn-outline:hover {
    background: rgba(255,255,255,0.12) !important;
    border-color: #fff !important;
}

@media (max-width: 768px) {
    .cta-section { padding: 50px 0; }
    .cta-card {
        padding: 60px 28px;
        border-radius: 16px;
    }
    .cta-title { font-size: 28px; }
    .cta-desc { font-size: 13px; }
    .cta-buttons { gap: 10px; }
}

/* ================= 页脚 ================= */
.footer {
    background: #111;
    color: #888;
    padding: 60px 0 30px;
    font-size: 13px;
}
.footer .grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
}
.footer .brand h4 { color: #fff; font-size: 18px; font-weight: 700; margin-bottom: 10px; }
.footer .brand p { max-width: 280px; line-height: 1.7; }
.footer h5 { color: #fff; font-size: 14px; font-weight: 600; margin-bottom: 14px; }
.footer ul li { margin-bottom: 8px; }
.footer ul li a:hover { color: #fff; }
.footer .bottom {
    border-top: 1px solid #222;
    padding-top: 20px;
    display: flex;
    justify-content: space-between;
}

/* ================= 响应式 ================= */
@media (max-width: 1024px) {
    .why-section .container { grid-template-columns: 1fr; gap: 40px; }
    .why-section .text-content { max-width: 100%; text-align: center; margin: 0 auto; }
    .why-section .image-content img { max-width: 300px; }
    .who-grid { grid-template-columns: repeat(2, 1fr); }
    .locations-grid { grid-template-columns: 1fr; }
    .footer .grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
    .navbar .nav-links { display: none; }
    .navbar .nav-actions .contact-link { display: none; }
    .hero h1 { font-size: 32px; }
    .hero p { font-size: 14px; }
    .hero { min-height: 500px; }
    .who-grid { grid-template-columns: 1fr; }
    .compare-table { grid-template-columns: 1fr; }
    .compare-table .header { text-align: left !important; }
    .compare-table .row-item { text-align: left !important; justify-content: flex-start !important; }
    .compare-footer { flex-direction: column; text-align: center; }
    .footer .grid { grid-template-columns: 1fr; }
    .footer .bottom { flex-direction: column; gap: 10px; text-align: center; }
    .section-title { font-size: 26px; }
    .locations-grid { grid-template-columns: 1fr; }
}
.hero {
    position: relative;
    height: 100vh;
    min-height: 650px;
    /* 删掉写死的 background 简写 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #1a1a1a;           /* 没图时的兜底底色 */
    transition: background-image 1s ease-in-out;   /* 淡入淡出切换效果 */
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.3) 100%);
    z-index: 0;                          /* 保证遮罩在下层，内容在上层 */
    pointer-events: none;                /* 让点击穿透到 hero 上 */
}
.hero .container {
    position: relative;
    z-index: 1;
    /* 其它原样式不变 */
}
/* Hero 轮播指示点 */
.hero-dots {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    z-index: 2;
}
.hero-dots .dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255,255,255,0.4);
    cursor: pointer;
    transition: all 0.3s ease;
}
.hero-dots .dot.active {
    background: var(--color-primary);
    width: 28px;                    /* 当前项拉长成胶囊状 */
    border-radius: 6px;
}
.hero-dots .dot:hover {
    background: rgba(255,255,255,0.7);
}
/* ================= Hero 左右切换箭头 ================= */
.hero-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: #fff;
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;                              /* 比 hero::after 遮罩更高，能点到 */
    transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.hero-arrow:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    transform: translateY(-50%) scale(1.08);
}
.hero-arrow:active {
    transform: translateY(-50%) scale(0.96);
}
.hero-arrow-prev { left: 24px; }
.hero-arrow-next { right: 24px; }

/* 移动端箭头变小 */
@media (max-width: 768px) {
    .hero-arrow { width: 38px; height: 38px; font-size: 13px; }
    .hero-arrow-prev { left: 12px; }
    .hero-arrow-next { right: 12px; }
}
/* ================= Locations 页 - Hero ================= */
.locations-hero {
    background: #1a1a1a;
    color: #fff;
    padding: 180px 0 80px;
}
.locations-hero .section-label { color: var(--color-primary); }
.locations-hero h1 {
    font-size: 48px;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 16px;
}
.locations-hero h1 em {
    color: var(--color-primary);
    font-style: normal;
}
.locations-hero p {
    color: #aaa;
    font-size: 15px;
    max-width: 460px;
}

/* ============================================================
   Locations 页（房源位置列表）
   ============================================================ */
.locations-hero {
    background: #1a1a1a;
    color: #fff;
    padding: 180px 0 80px;
}
.locations-hero .section-label {
    color: var(--color-primary);
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    display: block;
    margin-bottom: 12px;
}
.locations-hero h1 {
    font-size: 52px;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 16px;
}
.locations-hero h1 em {
    color: var(--color-primary);
    font-style: italic;
    font-weight: 700;
}
.locations-hero p {
    color: #aaa;
    font-size: 15px;
    max-width: 460px;
    line-height: 1.7;
}

.locations-list-section {
    padding: 60px 0 100px;
    background: #f4f4f4;
}

/* 筛选按钮 */
.locations-filter {
    display: flex;
    gap: 10px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}
.locations-filter .filter-btn {
    padding: 8px 20px;
    background: #fff;
    border-radius: 20px;
    font-size: 13px;
    color: var(--color-gray);
    border: 1px solid #eee;
    transition: all 0.25s ease;
}
.locations-filter .filter-btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.locations-filter .filter-btn.active {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

/* 卡片列表 */
.locations-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}
.locations-grid .location-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
    color: inherit;
    display: block;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.locations-grid .location-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.12);
}
.locations-grid .image-wrapper {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
}
.locations-grid .image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.locations-grid .location-card:hover img {
    transform: scale(1.06);
}

.locations-grid .badge {
    position: absolute;
    top: 14px;
    right: 14px;
    background: #f1c40f;
    color: #1a1a1a;
    font-size: 11px;
    font-weight: 600;
    padding: 5px 14px;
    border-radius: 6px;
}
.locations-grid .badge.leased {
    background: #e74c3c;
    color: #fff;
}

.locations-grid .content { padding: 22px 24px 20px; }
.locations-grid .content .top-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 8px;
    gap: 12px;
}
.locations-grid .content h3 {
    font-size: 19px;
    font-weight: 700;
}
.locations-grid .content .price {
    text-align: right;
    line-height: 1.2;
    white-space: nowrap;
}
.locations-grid .content .price .from {
    font-size: 11px;
    color: #999;
    display: block;
}
.locations-grid .content .price strong {
    font-size: 20px;
    color: var(--color-primary);
    font-weight: 700;
}
.locations-grid .content .price .unit {
    font-size: 12px;
    color: #999;
    font-weight: 400;
}
.locations-grid .content .address {
    font-size: 13px;
    color: var(--color-gray);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 12px;
}
.locations-grid .content .desc {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.6;
    margin-bottom: 14px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.locations-grid .content .tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.locations-grid .content .tags span {
    font-size: 11px;
    padding: 4px 10px;
    background: #f4f4f4;
    border-radius: 12px;
    color: var(--color-gray);
}
.locations-grid .content .view-rooms {
    border-top: 1px solid #eee;
    padding-top: 14px;
    color: var(--color-primary);
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.locations-grid .content .view-rooms i {
    transition: transform 0.3s ease;
}
.locations-grid .location-card:hover .view-rooms i {
    transform: translateX(4px);
}

.locations-grid .no-data {
    grid-column: 1 / -1;
    text-align: center;
    padding: 60px 20px;
    color: #999;
    background: #fff;
    border-radius: 12px;
}

@media (max-width: 768px) {
    .locations-hero { padding: 140px 0 60px; }
    .locations-hero h1 { font-size: 34px; }
    .locations-grid { grid-template-columns: 1fr; }
}
/* ================= 语言切换器 ================= */
.lang-switcher {
    position: relative;
    display: inline-block;
}
.lang-switcher .lang-toggle {
    background: transparent;
    border: 1px solid rgba(255,255,255,0.25);
    color: #ddd;
    padding: 7px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.25s ease;
    font-family: inherit;
}
.lang-switcher .lang-toggle:hover {
    border-color: rgba(255,255,255,0.6);
    color: #fff;
}
.lang-switcher .lang-toggle .lang-code {
    letter-spacing: 0.5px;
}
.lang-switcher .lang-toggle .lang-caret {
    font-size: 9px;
    transition: transform 0.25s ease;
}
.lang-switcher.open .lang-toggle .lang-caret {
    transform: rotate(180deg);
}

/* 下拉列表 */
.lang-switcher .lang-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 180px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    padding: 6px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: all 0.25s ease;
    z-index: 100;
}
.lang-switcher.open .lang-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.lang-switcher .lang-dropdown li {
    list-style: none;
}
.lang-switcher .lang-dropdown .lang-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    color: #333;
    font-size: 13px;
    transition: background 0.2s ease;
}
.lang-switcher .lang-dropdown .lang-item:hover {
    background: #f4f4f4;
}
.lang-switcher .lang-dropdown .lang-item.active {
    color: var(--color-primary);
    font-weight: 600;
}
.lang-switcher .lang-dropdown .lang-item img {
    width: 20px;
    height: 14px;
    object-fit: cover;
    border-radius: 2px;
}
.lang-switcher .lang-dropdown .lang-item span {
    flex: 1;
}
.lang-switcher .lang-dropdown .lang-item .fa-check {
    color: var(--color-primary);
    font-size: 11px;
}

/* 移动端简化 */
@media (max-width: 768px) {
    .lang-switcher .lang-toggle .lang-code { display: none; }
}
/* ============================================================
   Location Detail 详情页
   ============================================================ */
.detail-hero {
    background: #1a1a1a;
    color: #fff;
    padding: 140px 0 60px;
}
.detail-hero .breadcrumb {
    font-size: 12px;
    color: #888;
    margin-bottom: 20px;
}
.detail-hero .breadcrumb a {
    color: #888;
    transition: color 0.2s;
}
.detail-hero .breadcrumb a:hover { color: #fff; }
.detail-hero .breadcrumb span { color: #fff; }

.detail-hero-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    flex-wrap: wrap;
}
.detail-hero-top .left { flex: 1; }
.detail-hero-top .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    display: block;
    margin-bottom: 10px;
}
.detail-hero-top h1 {
    font-size: 40px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 12px;
}
.detail-hero-top .address {
    color: #aaa;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.detail-hero-top .right {
    text-align: right;
    line-height: 1.2;
}
.detail-hero-top .right .from {
    font-size: 12px;
    color: #888;
    display: block;
}
.detail-hero-top .right strong {
    font-size: 34px;
    color: #fff;
    font-weight: 700;
}
.detail-hero-top .right .unit {
    font-size: 13px;
    color: #888;
}

/* ============ 相册轮播 ============ */
.detail-gallery {
    background: #1a1a1a;
    padding: 0 0 60px;
}
.detail-gallery .container { max-width: 1200px; }
.gallery-main {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: #000;
}
.gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.4s ease;
}
.gallery-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.35);
    color: #fff;
    font-size: 15px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s ease;
    backdrop-filter: blur(6px);
}
.gallery-arrow:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
}
.gallery-arrow.gallery-prev { left: 20px; }
.gallery-arrow.gallery-next { right: 20px; }

.gallery-dots {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 2;
}
.gallery-dots .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255,255,255,0.4);
    cursor: pointer;
    transition: all 0.3s ease;
}
.gallery-dots .dot.active {
    background: #fff;
    width: 24px;
    border-radius: 4px;
}

/* ============ 数据条 ============ */
.detail-stats {
    background: #fff;
    padding: 40px 0;
    border-bottom: 1px solid #eee;
}
.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.stat-item {
    text-align: center;
    padding: 16px;
}
.stat-item strong {
    font-size: 24px;
    font-weight: 700;
    display: block;
    margin-bottom: 6px;
    color: var(--color-dark);
}
.stat-item span {
    font-size: 12px;
    color: var(--color-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ============ About 区 ============ */
.detail-about {
    background: #f4f4f4;
    padding: 80px 0;
}
.about-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 60px;
    align-items: flex-start;
}
.about-content .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    display: block;
    margin-bottom: 10px;
    padding-left: 20px;
}
.about-content h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 20px;
    text-indent: 20px;
}
.about-content .content-html {
    font-size: 15px;
    color: var(--color-gray);
    line-height: 1.8;
    padding-left: 20px;
}
.about-content .content-html h2 {
    font-size: 22px;
    color: var(--color-dark);
    margin: 20px 0 12px;
}
.about-content .content-html p {
    margin-bottom: 14px;
}

/* ============ 右侧预订卡片 ============ */
.booking-card {
    background: #fff;
    border-radius: 12px;
    padding: 28px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
    position: sticky;
    top: 100px;
}
.booking-card .price-head {
    text-align: center;
    padding-bottom: 20px;
    border-bottom: 1px solid #eee;
    margin-bottom: 20px;
}
.booking-card .price-head span {
    font-size: 12px;
    color: #999;
    display: block;
}
.booking-card .price-head strong {
    font-size: 32px;
    font-weight: 700;
    color: var(--color-primary);
}
.booking-card .price-head .unit {
    font-size: 13px;
    color: #999;
}
.booking-card .booking-info {
    list-style: none;
    margin-bottom: 24px;
}
.booking-card .booking-info li {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    font-size: 13px;
    border-bottom: 1px solid #f4f4f4;
}
.booking-card .booking-info li:last-child { border-bottom: none; }
.booking-card .booking-info span { color: #999; }
.booking-card .booking-info b { color: var(--color-dark); }

.btn-block {
    display: block;
    width: 100%;
    text-align: center;
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 6px;
    margin-bottom: 10px;
    transition: all 0.25s ease;
}
.btn-block.btn-primary {
    background: var(--color-primary);
    color: #fff;
    border: none;
}
.btn-block.btn-primary:hover {
    background: var(--color-primary-hover);
}
.btn-outline-dark {
    background: transparent;
    border: 1px solid #ddd;
    color: var(--color-dark);
}
.btn-outline-dark:hover {
    background: var(--color-dark);
    color: #fff;
    border-color: var(--color-dark);
}

/* ============ 响应式 ============ */
@media (max-width: 1024px) {
    .about-grid { grid-template-columns: 1fr; }
    .booking-card { position: static; }
}
@media (max-width: 768px) {
    .detail-hero { padding: 100px 0 40px; }
    .detail-hero-top h1 { font-size: 28px; }
    .detail-hero-top .right strong { font-size: 26px; }
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .gallery-arrow { width: 36px; height: 36px; font-size: 13px; }
}
/* ============================================================
   详情页下半部分
   ============================================================ */
.section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    display: block;
    margin-bottom: 10px;
    text-transform: uppercase;
}
.section-sub {
    color: var(--color-gray);
    font-size: 14px;
    margin-bottom: 32px;
}

/* ============ Room types ============ */
.detail-room-types {
    padding: 80px 0;
    background: #f4f4f4;
}
.detail-room-types h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 8px;
}
.room-types-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: 32px;
}
.room-type-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.room-type-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.1);
}
.room-type-img {
    height: 140px;
    overflow: hidden;
}
.room-type-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.room-type-info {
    padding: 16px 18px 20px;
}
.room-type-info h3 {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 8px;
}
.room-type-price {
    color: var(--color-primary);
    font-weight: 700;
    margin-bottom: 12px;
}
.room-type-price strong { font-size: 18px; }
.room-type-price span { font-size: 12px; color: #999; font-weight: 400; }
.room-type-status {
    display: block;
    text-align: center;
    padding: 8px 10px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 6px;
    background: var(--color-primary);
    color: #fff;
}
.room-type-status.booked {
    background: #ddd;
    color: #666;
}

/* ============ Inside the building ============ */
.detail-inside {
    padding: 80px 0;
    background: #fff;
}
.detail-inside h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 8px;
}
.inside-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 200px;
    gap: 12px;
    margin-top: 32px;
}
.inside-item {
    overflow: hidden;
    border-radius: 8px;
}
.inside-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.inside-item:hover img { transform: scale(1.05); }
.inside-item.wide {
    grid-column: span 2;
    grid-row: span 2;
}

/* ============ What's included ============ */
.detail-included {
    padding: 80px 0;
    background: #f4f4f4;
}
.detail-included h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 8px;
}
.included-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
    margin-top: 32px;
}
.included-item {
    background: #fff;
    border-radius: 10px;
    padding: 22px 16px;
    text-align: center;
    font-size: 13px;
    color: var(--color-dark);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.included-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.included-item i {
    font-size: 22px;
    color: var(--color-primary);
    margin-bottom: 10px;
    display: block;
}
.included-item span {
    font-weight: 500;
}

/* ============ At a glance ============ */
.detail-glance {
    padding: 80px 0;
    background: #fff;
}
.detail-glance h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 20px;
}
.glance-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--color-gray);
    max-width: 800px;
    margin-bottom: 24px;
}
.glance-tags {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.glance-tags span {
    padding: 8px 16px;
    background: #fff3ef;
    color: var(--color-primary);
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
}

/* ============ Local favourites ============ */
.detail-favourites {
    padding: 80px 0;
    background: #f4f4f4;
}
.detail-favourites h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 8px;
}
.favourites-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 32px;
}
.favourite-card {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.04);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.favourite-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(0,0,0,0.08);
}
.fav-tag {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    color: var(--color-primary);
    background: #fff3ef;
    padding: 3px 10px;
    border-radius: 4px;
    margin-bottom: 10px;
    letter-spacing: 0.5px;
}
.favourite-card h4 {
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 8px;
}
.favourite-card p {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.6;
    margin-bottom: 12px;
}
.fav-meta {
    font-size: 12px;
    color: #999;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* ============ Getting around ============ */
.detail-around {
    padding: 80px 0;
    background: #fff;
}
.detail-around h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 8px;
}
.around-map {
    height: 380px;
    border-radius: 12px;
    overflow: hidden;
    margin: 32px 0 24px;
    background: #f4f4f4;
}
.around-list {
    list-style: none;
    border-top: 1px solid #eee;
}
.around-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 0;
    border-bottom: 1px solid #eee;
    gap: 20px;
}
.around-left strong {
    font-size: 15px;
    font-weight: 600;
    display: block;
    margin-bottom: 4px;
}
.around-meta {
    font-size: 12px;
    color: #999;
    display: flex;
    align-items: center;
    gap: 6px;
}
.around-right {
    display: flex;
    align-items: center;
    gap: 12px;
}
.around-time {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
}
.around-transport {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-primary);
    background: #fff3ef;
    padding: 4px 10px;
    border-radius: 4px;
    letter-spacing: 0.5px;
}

/* ============ Beyond ============ */
.detail-beyond {
    padding: 80px 0;
    background: #f4f4f4;
}
.detail-beyond h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 8px;
}
.beyond-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 32px;
}
.beyond-card {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    cursor: pointer;
}
.beyond-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.beyond-card:hover img { transform: scale(1.06); }
.beyond-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 40px 20px 18px;
    background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, transparent 100%);
    color: #fff;
}
.beyond-overlay h4 {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 4px;
}
.beyond-overlay span {
    font-size: 12px;
    color: #ddd;
}

/* ============ Related ============ */
.detail-related {
    padding: 80px 0;
    background: #fff;
}
.detail-related h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 8px;
}
.related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 32px;
}
.related-card {
    display: block;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.related-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.1);
}
.related-card img {
    width: 100%;
    height: 180px;
    object-fit: cover;
}
.related-info {
    padding: 16px 20px 20px;
}
.related-info h4 {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--color-dark);
}
.related-info span {
    font-size: 12px;
    color: var(--color-gray);
}

/* ============ 响应式 ============ */
@media (max-width: 1024px) {
    .room-types-grid { grid-template-columns: repeat(2, 1fr); }
    .inside-grid { grid-template-columns: repeat(2, 1fr); }
    .included-grid { grid-template-columns: repeat(3, 1fr); }
    .beyond-grid { grid-template-columns: repeat(2, 1fr); }
    .favourites-grid { grid-template-columns: 1fr; }
    .related-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .detail-room-types,
    .detail-inside,
    .detail-included,
    .detail-glance,
    .detail-favourites,
    .detail-around,
    .detail-beyond,
    .detail-related {
        padding: 50px 0;
    }
    .room-types-grid,
    .beyond-grid,
    .related-grid { grid-template-columns: 1fr; }
    .inside-grid { grid-template-columns: 1fr; grid-auto-rows: 200px; }
    .inside-item.wide { grid-column: span 1; grid-row: span 1; }
    .included-grid { grid-template-columns: repeat(2, 1fr); }
    .around-list li { flex-direction: column; align-items: flex-start; gap: 8px; }
}
.locations-grid .location-card .price .from { font-size: 11px; color: #999; display: block; }
.locations-grid .location-card .price strong { font-size: 20px; color: var(--color-primary); font-weight: 700; }
.locations-grid .location-card .price .unit { font-size: 12px; color: #999; font-weight: 400; }
.locations-grid .location-card .view-rooms {
    border-top: 1px solid #eee;
    padding-top: 14px;
    color: var(--color-primary);
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ============================================================
   How it works 三步流程
   ============================================================ */
.how-section {
    padding: 100px 0;
    background: #f9f7f4;
}
.how-section .section-title { text-align: center; margin-bottom: 60px; }
.how-section .section-title .section-label { text-align: center; }
.how-section .section-title h2 em {
    color: var(--color-primary);
    font-style: italic;
}

.how-grid {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    max-width: 960px;
    margin: 0 auto;
}
.how-step {
    flex: 1;
    text-align: center;
    max-width: 260px;
}
.how-step .step-icon {
    position: relative;
    width: 72px;
    height: 72px;
    margin: 0 auto 20px;
    background: #fdeee8;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.how-step .step-icon i {
    font-size: 26px;
    color: var(--color-primary);
}
.how-step .step-num {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 26px;
    height: 26px;
    background: var(--color-primary);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.how-step h3 {
    font-size: 19px;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--color-dark);
}
.how-step p {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.7;
}
.how-line {
    flex: 1;
    height: 1px;
    background: #e0dcd6;
    margin-top: 36px;
    max-width: 100px;
}

/* ============================================================
   Testimonials 客户评价
   ============================================================ */
.testi-section {
    padding: 100px 0;
    background: #fff;
}
.testi-section .section-title { text-align: center; margin-bottom: 40px; }
.testi-section .section-title .section-label { text-align: center; }
.testi-section .section-title h2 em {
    color: var(--color-primary);
    font-style: italic;
}

.testi-wrapper {
    max-width: 780px;
    margin: 0 auto;
    text-align: center;
    position: relative;
}
.testi-quote-icon {
    font-size: 40px;
    color: #f5c8ba;
    margin-bottom: 30px;
}
.testi-slides {
    position: relative;
    min-height: 200px;
}
.testi-item {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease;
}
.testi-item.active {
    position: relative;
    opacity: 1;
    visibility: visible;
}
.testi-text {
    font-size: 20px;
    font-style: italic;
    line-height: 1.6;
    color: var(--color-dark);
    margin-bottom: 32px;
    font-weight: 400;
}
.testi-author strong {
    display: block;
    font-size: 15px;
    font-weight: 600;
    color: var(--color-dark);
    margin-bottom: 4px;
}
.testi-author span {
    font-size: 13px;
    color: var(--color-gray);
}

.testi-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin-top: 40px;
}
.testi-arrow {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid #ddd;
    background: #fff;
    color: var(--color-dark);
    font-size: 13px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s ease;
}
.testi-arrow:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.testi-dots {
    display: flex;
    gap: 8px;
    align-items: center;
}
.testi-dots .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ddd;
    cursor: pointer;
    transition: all 0.3s ease;
}
.testi-dots .dot.active {
    background: var(--color-primary);
    width: 24px;
    border-radius: 4px;
}

/* ============ 响应式 ============ */
@media (max-width: 768px) {
    .how-grid {
        flex-direction: column;
        align-items: center;
        gap: 32px;
    }
    .how-line { display: none; }
    .how-step { max-width: 100%; }

    .testi-text { font-size: 16px; }
    .how-section,
    .testi-section { padding: 60px 0; }
}
/* ================= Hero 按钮（修复样式丢失） ================= */
.hero .btn-group {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
.hero .btn-hero {
    display: inline-block;
    padding: 14px 36px;
    background: var(--color-primary);
    color: #fff !important;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.3s ease, transform 0.3s ease;
}
.hero .btn-hero:hover {
    background: var(--color-primary-hover);
    transform: translateY(-2px);
}
.hero .btn-outline {
    display: inline-block;
    padding: 14px 36px;
    border: 1px solid rgba(255,255,255,0.6);
    color: #fff !important;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
}
.hero .btn-outline:hover {
    background: rgba(255,255,255,0.15);
    border-color: #fff;
}
/* ============================================================
   Availability 页面
   ============================================================ */
.avail-hero {
    background: #1a1a1a;
    color: #fff;
    padding: 180px 0 80px;
    text-align: center;
}
.avail-hero .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 14px;
}
.avail-hero h1 {
    font-size: 52px;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 16px;
}
.avail-hero h1 em {
    color: var(--color-primary);
    font-style: italic;
}
.avail-hero p {
    color: #aaa;
    font-size: 15px;
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.7;
}

.avail-list-section {
    padding: 60px 0 100px;
    background: #f4f4f4;
}

/* 筛选栏 */
.avail-filters {
    background: #fff;
    border-radius: 16px;
    padding: 24px 28px;
    margin-bottom: 24px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.04);
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.filter-group {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}
.filter-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-gray);
    text-transform: uppercase;
    letter-spacing: 1px;
    min-width: 70px;
}
.filter-pills {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.filter-pills .pill {
    padding: 7px 16px;
    background: #f4f4f4;
    border-radius: 20px;
    font-size: 13px;
    color: var(--color-gray);
    text-decoration: none;
    transition: all 0.25s ease;
    border: 1px solid transparent;
}
.filter-pills .pill:hover {
    background: #fff;
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.filter-pills .pill.active {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

/* 统计条 */
.avail-summary {
    font-size: 14px;
    color: var(--color-gray);
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.avail-summary b {
    color: var(--color-dark);
    font-weight: 700;
}
.avail-summary .dot { color: #ccc; }

/* 房型卡片 */
.avail-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.avail-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.avail-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.1);
}
.avail-img {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}
.avail-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.avail-card:hover .avail-img img {
    transform: scale(1.05);
}
.avail-status {
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 11px;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 6px;
    letter-spacing: 0.3px;
}
.avail-status.available {
    background: #27ae60;
    color: #fff;
}
.avail-status.booked {
    background: #e74c3c;
    color: #fff;
}

.avail-info {
    padding: 20px 22px 22px;
}
.avail-building {
    font-size: 11px;
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: 1px;
    text-transform: uppercase;
    display: block;
    margin-bottom: 6px;
}
.avail-info h3 {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--color-dark);
}
.avail-addr {
    font-size: 12px;
    color: var(--color-gray);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 16px;
}
.avail-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 16px;
    border-top: 1px solid #eee;
}
.avail-price strong {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-dark);
}
.avail-price span {
    font-size: 12px;
    color: #999;
    margin-left: 2px;
}
.avail-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
    transition: gap 0.25s ease;
}
.avail-btn:hover {
    gap: 10px;
}

/* 空状态 */
.avail-empty {
    background: #fff;
    border-radius: 16px;
    padding: 80px 20px;
    text-align: center;
    color: var(--color-gray);
}
.avail-empty i {
    font-size: 40px;
    color: #ddd;
    margin-bottom: 16px;
    display: block;
}
.avail-empty p {
    font-size: 15px;
    margin-bottom: 20px;
}
.avail-empty .btn-primary {
    display: inline-block;
    padding: 10px 24px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 6px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
}

/* 响应式 */
@media (max-width: 1024px) {
    .avail-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .avail-hero { padding: 140px 0 60px; }
    .avail-hero h1 { font-size: 32px; }
    .avail-grid { grid-template-columns: 1fr; }
    .filter-group { flex-direction: column; align-items: flex-start; gap: 10px; }
    .filter-label { min-width: auto; }
}
/* ============================================================
   Availability 卡片按钮 + 预订弹窗
   ============================================================ */

/* 卡片底部按钮组 */
.avail-actions {
    display: flex;
    gap: 8px;
}
.avail-btn-outline,
.avail-btn-primary,
.avail-btn-disabled {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 38px;
    padding: 0 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    font-family: inherit;
    transition: all 0.25s ease;
    white-space: nowrap;
}
.avail-btn-outline {
    background: transparent;
    color: var(--color-dark);
    border-color: #ddd;
}
.avail-btn-outline:hover {
    border-color: var(--color-dark);
}
.avail-btn-primary {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}
.avail-btn-primary:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
}
.avail-btn-primary i { font-size: 11px; }
.avail-btn-disabled {
    background: #f0f0f0;
    color: #999;
    cursor: not-allowed;
}

/* ============================================================
   预订弹窗
   ============================================================ */
.booking-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
}
.booking-modal.open {
    display: flex;
}
.booking-modal-mask {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.booking-modal-panel {
    position: relative;
    background: #fbf7f1;
    width: 100%;
    max-width: 640px;
    max-height: 92vh;
    overflow-y: auto;
    border-radius: 20px;
    padding: 40px 44px 36px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.25);
    z-index: 1;
    animation: bookingSlideUp 0.3s ease;
}
@keyframes bookingSlideUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.booking-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: transparent;
    border: none;
    color: #999;
    font-size: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}
.booking-close:hover {
    background: #f0ece7;
    color: var(--color-dark);
}

.booking-head h2 {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 6px;
}
.booking-head p {
    font-size: 14px;
    color: #888;
    margin-bottom: 32px;
}

.form-section-title {
    font-size: 17px;
    font-weight: 700;
    margin: 24px 0 16px;
    color: var(--color-dark);
}

.form-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.form-field {
    margin-bottom: 14px;
}
.form-field label {
    font-size: 13px;
    color: #666;
    display: block;
    margin-bottom: 6px;
    font-weight: 500;
}
.form-field input[type="text"],
.form-field input[type="email"],
.form-field input[type="tel"],
.form-field input[type="number"],
.form-field input[type="date"],
.form-field select,
.form-field textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #e2dcd3;
    background: #fff;
    border-radius: 10px;
    font-size: 14px;
    font-family: inherit;
    color: var(--color-dark);
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(229,90,60,0.1);
}
.form-field textarea {
    resize: vertical;
    min-height: 80px;
}

/* 单选按钮 */
.radio-group {
    display: flex;
    gap: 24px;
    padding: 6px 0;
}
.radio-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 14px;
}
.radio-item input[type="radio"] {
    accent-color: var(--color-primary);
    width: 16px;
    height: 16px;
}

/* 租金估算框 */
.booking-price-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 22px;
    background: #f5efe8;
    border-radius: 12px;
    margin: 24px 0 20px;
}
.price-box-left strong {
    display: block;
    font-size: 14px;
    color: var(--color-dark);
    margin-bottom: 3px;
    font-weight: 600;
}
.price-box-left span {
    font-size: 12px;
    color: #999;
}
.price-box-right {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-dark);
}
.price-box-right span {
    font-size: 12px;
    color: #999;
    font-weight: 400;
}

/* 提交按钮 */
.booking-submit {
    margin-top: 8px;
}
.booking-submit .btn-submit {
    width: 100%;
    height: 54px;
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.25s ease, transform 0.25s ease;
}
.booking-submit .btn-submit:hover {
    background: var(--color-primary-hover);
}
.booking-submit .btn-submit:disabled {
    background: #e0e0e0;
    cursor: not-allowed;
}

@media (max-width: 640px) {
    .booking-modal-panel {
        max-height: 100vh;
        border-radius: 0;
        padding: 30px 24px;
    }
    .form-row-2 {
        grid-template-columns: 1fr;
    }
}
.room-type-img {
    height: 140px;
    overflow: hidden;
    /* background: linear-gradient(135deg, #f5efe8 0%, #ece4db 100%);   占位底色 */
}
.room-type-card {
    display: block;
    color: inherit;
    text-decoration: none;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.room-type-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.1);
}

/* 没有图片时，让卡片更紧凑 */
.room-type-info {
    padding: 24px 22px 22px;
}
.room-type-placeholder {
    height: 110px;
    background: linear-gradient(135deg, #fef4ee 0%, #fbe8de 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    color: #E55A3C;
    opacity: 0.75;
}
/* ============================================================
   Blog 页面
   ============================================================ */
.blog-hero {
    background: #1a1a1a;
    color: #fff;
    padding: 180px 0 80px;
    text-align: center;
}
.blog-hero .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 14px;
}
.blog-hero h1 {
    font-size: 52px;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 16px;
}
.blog-hero h1 em {
    color: var(--color-primary);
    font-style: italic;
}
.blog-hero p {
    color: #aaa;
    font-size: 15px;
    max-width: 520px;
    margin: 0 auto;
}

.blog-section {
    padding: 60px 0 100px;
    background: #f4f4f4;
}

/* 分类筛选 */
.blog-filter {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 48px;
}
.blog-filter .filter-btn {
    padding: 8px 20px;
    background: #fff;
    border-radius: 20px;
    font-size: 13px;
    color: var(--color-gray);
    border: 1px solid #eee;
    text-decoration: none;
    transition: all 0.25s ease;
}
.blog-filter .filter-btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.blog-filter .filter-btn.active {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

/* 文章网格 */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.blog-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
}
.blog-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.1);
}
.blog-card-img {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #f4f4f4;
}
.blog-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.blog-card:hover .blog-card-img img {
    transform: scale(1.06);
}
.blog-card-body {
    padding: 24px 24px 26px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.blog-card-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #999;
    margin-bottom: 10px;
}
.blog-card-meta .blog-cat {
    color: var(--color-primary);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.blog-card h3 {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 10px;
    color: var(--color-dark);
}
.blog-card p {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.6;
    margin-bottom: 16px;
    flex: 1;
}
.blog-readmore {
    color: var(--color-primary);
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: gap 0.25s ease;
}
.blog-card:hover .blog-readmore {
    gap: 10px;
}

/* 空状态 */
.blog-empty {
    background: #fff;
    border-radius: 12px;
    padding: 80px 20px;
    text-align: center;
    color: #999;
}
.blog-empty i {
    font-size: 40px;
    margin-bottom: 16px;
    display: block;
}

/* 分页 */
.blog-pagination {
    margin-top: 48px;
    text-align: center;
}
.blog-pagination .pagination {
    display: inline-flex;
    gap: 6px;
    padding: 0;
    list-style: none;
}
.blog-pagination .pagination li a,
.blog-pagination .pagination li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 12px;
    background: #fff;
    border-radius: 8px;
    color: var(--color-dark);
    font-size: 13px;
    text-decoration: none;
    transition: all 0.2s ease;
}
.blog-pagination .pagination li.active span,
.blog-pagination .pagination li a:hover {
    background: var(--color-primary);
    color: #fff;
}

/* ============================================================
   博客详情页
   ============================================================ */
.blog-detail-hero {
    background: #1a1a1a;
    color: #fff;
    padding: 160px 0 60px;
}
.blog-detail-hero .breadcrumb {
    font-size: 12px;
    color: #888;
    margin-bottom: 24px;
}
.blog-detail-hero .breadcrumb a { color: #888; }
.blog-detail-hero .breadcrumb span { color: #fff; }
.blog-detail-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #999;
    margin-bottom: 16px;
}
.blog-detail-meta .blog-cat {
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}
.blog-detail-hero h1 {
    font-size: 44px;
    font-weight: 700;
    line-height: 1.2;
    max-width: 900px;
}

.blog-detail-cover {
    background: #1a1a1a;
    padding: 0 0 60px;
}
.blog-detail-cover .container { max-width: 1000px; }
.blog-detail-cover img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    display: block;
}

.blog-detail-content {
    padding: 80px 0;
    background: #fff;
}
.blog-content-inner {
    max-width: 800px;
    margin: 0 auto;
    font-size: 16px;
    line-height: 1.8;
    color: #333;
}
.blog-content-inner h1,
.blog-content-inner h2,
.blog-content-inner h3 {
    color: var(--color-dark);
    margin: 32px 0 16px;
    line-height: 1.3;
}
.blog-content-inner h2 { font-size: 24px; }
.blog-content-inner h3 { font-size: 20px; }
.blog-content-inner p { margin-bottom: 16px; }
.blog-content-inner ul,
.blog-content-inner ol {
    margin: 16px 0;
    padding-left: 24px;
}
.blog-content-inner li { margin-bottom: 8px; }
.blog-content-inner img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 24px 0;
}
.blog-content-inner a {
    color: var(--color-primary);
    text-decoration: underline;
}

/* 相册 */
.blog-gallery {
    max-width: 800px;
    margin: 40px auto 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.blog-gallery img {
    width: 100%;
    border-radius: 8px;
}

/* 上一篇/下一篇 */
.blog-nav {
    padding: 60px 0;
    background: #f4f4f4;
}
.blog-nav-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.blog-nav-item {
    background: #fff;
    border-radius: 12px;
    padding: 24px 28px;
    text-decoration: none;
    color: inherit;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    display: block;
}
.blog-nav-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.08);
}
.blog-nav-item.disabled {
    background: transparent;
    pointer-events: none;
}
.blog-nav-item.next { text-align: right; }
.blog-nav-item .nav-label {
    font-size: 12px;
    color: var(--color-primary);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 8px;
}
.blog-nav-item strong {
    font-size: 16px;
    font-weight: 600;
    color: var(--color-dark);
    line-height: 1.4;
}

/* 相关文章 */
.blog-related {
    padding: 80px 0;
    background: #fff;
}
.blog-related .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 12px;
}
.blog-related h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 40px;
}

/* 响应式 */
@media (max-width: 1024px) {
    .blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .blog-hero { padding: 140px 0 60px; }
    .blog-hero h1 { font-size: 32px; }
    .blog-detail-hero h1 { font-size: 28px; }
    .blog-grid { grid-template-columns: 1fr; }
    .blog-nav-grid { grid-template-columns: 1fr; }
    .blog-gallery { grid-template-columns: 1fr; }
    .blog-section, .blog-detail-content, .blog-related { padding: 50px 0; }
}
/* ============================================================
   About 页面
   ============================================================ */
.about-hero {
    position: relative;
    background-color: #1a1a1a;
    background-size: cover;
    background-position: center;
    color: #fff;
    padding: 200px 0 100px;
    text-align: center;
}
.about-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        /* rgba(0,0,0,0.75) 0%,
        rgba(0,0,0,0.55) 40%,
        rgba(0,0,0,0.30) 100% */
    );
}
.about-hero .container {
    position: relative;
    z-index: 1;
    max-width: 780px;
}
.about-hero .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 16px;
}
.about-hero h1 {
    font-size: 52px;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 16px;
}
.about-hero p {
    color: #ddd;
    font-size: 16px;
    line-height: 1.7;
}

/* 正文 */
.about-content {
    padding: 100px 0;
    background: #fff;
}
.about-content .container { max-width: 860px; }
.about-inner {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
}
.about-inner h1,
.about-inner h2,
.about-inner h3 {
    color: var(--color-dark);
    margin: 40px 0 16px;
    line-height: 1.3;
}
.about-inner h2 { font-size: 28px; }
.about-inner h3 { font-size: 22px; }
.about-inner h2:first-child,
.about-inner h3:first-child { margin-top: 0; }
.about-inner p { margin-bottom: 20px; }
.about-inner ul,
.about-inner ol {
    margin: 20px 0;
    padding-left: 24px;
}
.about-inner li { margin-bottom: 10px; }
.about-inner img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    margin: 32px 0;
}
.about-inner a {
    color: var(--color-primary);
    text-decoration: underline;
}

/* 数据统计 */
.about-stats {
    padding: 80px 0;
    background: #1a1a1a;
    color: #fff;
}
.about-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    text-align: center;
}
.about-stats-grid .stat-item strong {
    font-size: 48px;
    font-weight: 700;
    color: var(--color-primary);
    display: block;
    line-height: 1;
    margin-bottom: 12px;
}
.about-stats-grid .stat-item span {
    font-size: 13px;
    color: #aaa;
    text-transform: uppercase;
    letter-spacing: 1.2px;
}

/* Why NESTL */
.about-why {
    padding: 100px 0;
    background: #f4f4f4;
}
.about-why .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 12px;
}
.about-why h2 {
    font-size: 36px;
    font-weight: 700;
    margin-bottom: 56px;
    max-width: 600px;
}
.about-why-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
.why-card {
    background: #fff;
    border-radius: 12px;
    padding: 32px 26px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.04);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.why-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.08);
}
.why-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: #fdeee8;
    color: var(--color-primary);
    font-size: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}
.why-card h3 {
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--color-dark);
}
.why-card p {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.7;
}

/* 响应式 */
@media (max-width: 1024px) {
    .about-stats-grid { grid-template-columns: repeat(2, 1fr); }
    .about-why-grid   { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .about-hero { padding: 140px 0 60px; }
    .about-hero h1 { font-size: 32px; }
    .about-hero p { font-size: 14px; }
    .about-content { padding: 60px 0; }
    .about-stats { padding: 60px 0; }
    .about-stats-grid { gap: 40px 20px; }
    .about-stats-grid .stat-item strong { font-size: 36px; }
    .about-why { padding: 60px 0; }
    .about-why h2 { font-size: 26px; margin-bottom: 32px; }
    .about-why-grid { grid-template-columns: 1fr; }
}
/* ============================================================
   Management Services 页面
   ============================================================ */

/* Hero */
.mgmt-hero {
    position: relative;
    background: url('https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?w=1920&q=80') center/cover no-repeat;
    color: #fff;
    padding: 200px 0 120px;
    overflow: hidden;
}
.mgmt-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.80) 0%,
        rgba(0,0,0,0.65) 50%,
        rgba(0,0,0,0.45) 100%
    );
}
.mgmt-hero .container {
    position: relative;
    z-index: 1;
    max-width: 900px;
}
.mgmt-hero .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 20px;
}
.mgmt-hero h1 {
    font-size: 54px;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 24px;
    max-width: 800px;
}
.mgmt-hero h1 em {
    color: var(--color-primary);
    font-style: italic;
}
.mgmt-hero p {
    color: #ccc;
    font-size: 16px;
    line-height: 1.7;
    max-width: 640px;
    margin-bottom: 36px;
}
.mgmt-hero .btn-hero {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 15px 36px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}
.mgmt-hero .btn-hero:hover {
    background: var(--color-primary-hover);
    transform: translateY(-2px);
    gap: 14px;
}

/* 通用标题 */
.mgmt-h2 {
    font-size: 40px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 16px;
}
.mgmt-h2 em {
    color: var(--color-primary);
    font-style: italic;
}
.mgmt-sub {
    font-size: 15px;
    color: var(--color-gray);
    line-height: 1.7;
    max-width: 660px;
    margin-bottom: 56px;
}
.mgmt-foot-note {
    font-size: 13px;
    color: #999;
    text-align: center;
    margin-top: 56px;
    font-style: italic;
}

/* ============ Lifecycle ============ */
.mgmt-lifecycle {
    padding: 100px 0 80px;
    background: #f9f7f4;
    text-align: center;
}
.mgmt-lifecycle .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 16px;
}
.mgmt-lifecycle .mgmt-sub {
    margin: 0 auto 64px;
    text-align: center;
}
.mgmt-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
}
.mgmt-steps::before {
    content: '';
    position: absolute;
    top: 36px;
    left: 12%;
    right: 12%;
    height: 1px;
    background: #e0dcd6;
    z-index: 0;
}
.mgmt-step {
    position: relative;
    z-index: 1;
    text-align: center;
}
.mgmt-step .step-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto 20px;
    background: #fdeee8;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: var(--color-primary);
    border: 6px solid #f9f7f4;
}
.mgmt-step h3 {
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--color-dark);
}
.mgmt-step p {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.6;
    max-width: 200px;
    margin: 0 auto;
}

/* ============ Why ============ */
.mgmt-why {
    padding: 100px 0;
    background: #fff;
}
.mgmt-why .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 12px;
}
.mgmt-why-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-top: 56px;
}
.mgmt-why-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    padding: 32px 26px;
    transition: all 0.3s ease;
}
.mgmt-why-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.06);
    border-color: #fdeee8;
}
.mgmt-why-card .why-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #fdeee8;
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    margin-bottom: 20px;
}
.mgmt-why-card h3 {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--color-dark);
}
.mgmt-why-card p {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.65;
}

/* ============ What we look for ============ */
.mgmt-look {
    padding: 100px 0;
    background: #f9f7f4;
}
.mgmt-look .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 12px;
}
.mgmt-look-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 48px;
    margin-top: 24px;
}
.mgmt-look-col h3 {
    font-size: 19px;
    font-weight: 700;
    margin-bottom: 14px;
    color: var(--color-dark);
}
.mgmt-look-col > p {
    font-size: 14px;
    color: var(--color-gray);
    line-height: 1.7;
    margin-bottom: 24px;
}

/* UL 通用 */
.mgmt-ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.mgmt-ul li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 7px 0;
    font-size: 13.5px;
    color: #444;
    line-height: 1.5;
}
.mgmt-ul li i {
    color: var(--color-primary);
    font-size: 12px;
    margin-top: 5px;
    flex-shrink: 0;
}
.mgmt-ul.sm li {
    font-size: 13px;
    padding: 5px 0;
}

/* ============ Support grid ============ */
.mgmt-support {
    padding: 100px 0;
    background: #fff;
}
.mgmt-support .mgmt-sub {
    margin: 0 auto 60px;
    text-align: center;
}
.mgmt-support .mgmt-h2 {
    text-align: center;
}
.mgmt-support-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.mgmt-support-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.mgmt-support-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.1);
}
.mgmt-support-img {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #f4f4f4;
}
.mgmt-support-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.mgmt-support-card:hover .mgmt-support-img img {
    transform: scale(1.06);
}
.mgmt-support-body {
    padding: 28px 28px 32px;
}
.mgmt-support-body h3 {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 16px;
    color: var(--color-dark);
}

/* ============ Partner ============ */
.mgmt-partner {
    padding: 100px 0;
    background: #f9f7f4;
    text-align: center;
}
.mgmt-partner .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 16px;
}
.mgmt-partner-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    max-width: 1000px;
    margin: 64px auto 0;
}
.mgmt-partner-col {
    text-align: center;
}
.partner-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 20px;
    background: #eafaf1;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: #27ae60;
}
.mgmt-partner-col h3 {
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--color-dark);
}
.mgmt-partner-col p {
    font-size: 13.5px;
    color: var(--color-gray);
    line-height: 1.65;
    max-width: 280px;
    margin: 0 auto;
}
.mgmt-partner-note {
    margin-top: 64px;
    font-size: 15px;
    color: var(--color-gray);
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.7;
}
.mgmt-partner-note strong {
    color: var(--color-dark);
}

/* ============ Assets ============ */
.mgmt-assets {
    padding: 100px 0;
    background: #fff;
}
.mgmt-assets .mgmt-h2 {
    text-align: center;
}
.mgmt-assets .mgmt-sub {
    margin: 0 auto 56px;
    text-align: center;
}
.mgmt-assets-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.mgmt-asset-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.mgmt-asset-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.1);
}
.mgmt-asset-img {
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
.mgmt-asset-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.mgmt-asset-card:hover .mgmt-asset-img img {
    transform: scale(1.06);
}
.mgmt-asset-body {
    padding: 18px 20px 22px;
}
.mgmt-asset-body .asset-loc {
    font-size: 11px;
    color: var(--color-primary);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    display: block;
    margin-bottom: 6px;
}
.mgmt-asset-body h4 {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-dark);
}

/* ============ CTA ============ */
.mgmt-cta {
    padding: 120px 0;
    background: #1a1a1a;
    color: #fff;
    text-align: center;
}
.mgmt-cta .section-label.cta-light {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 16px;
}
.mgmt-cta h2 {
    font-size: 42px;
    font-weight: 700;
    margin-bottom: 20px;
    color: #fff;
}
.mgmt-cta p {
    color: #999;
    font-size: 15px;
    line-height: 1.7;
    max-width: 560px;
    margin: 0 auto 36px;
}
.mgmt-cta .btn-hero {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 15px 36px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}
.mgmt-cta .btn-hero:hover {
    background: var(--color-primary-hover);
    transform: translateY(-2px);
    gap: 14px;
}

/* ============ 响应式 ============ */
@media (max-width: 1024px) {
    .mgmt-hero h1 { font-size: 40px; }
    .mgmt-h2 { font-size: 30px; }
    .mgmt-steps { grid-template-columns: repeat(2, 1fr); gap: 40px 20px; }
    .mgmt-steps::before { display: none; }
    .mgmt-why-grid { grid-template-columns: repeat(2, 1fr); }
    .mgmt-look-grid { grid-template-columns: 1fr; gap: 40px; }
    .mgmt-support-grid { grid-template-columns: repeat(2, 1fr); }
    .mgmt-partner-grid { grid-template-columns: 1fr; gap: 40px; }
    .mgmt-assets-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .mgmt-hero { padding: 140px 0 80px; }
    .mgmt-hero h1 { font-size: 28px; }
    .mgmt-hero p { font-size: 14px; }
    .mgmt-lifecycle,
    .mgmt-why,
    .mgmt-look,
    .mgmt-support,
    .mgmt-partner,
    .mgmt-assets { padding: 60px 0; }
    .mgmt-h2 { font-size: 26px; }
    .mgmt-steps { grid-template-columns: 1fr; }
    .mgmt-why-grid { grid-template-columns: 1fr; }
    .mgmt-support-grid { grid-template-columns: 1fr; }
    .mgmt-assets-grid { grid-template-columns: 1fr; }
    .mgmt-cta { padding: 80px 0; }
    .mgmt-cta h2 { font-size: 28px; }
}
/* ============================================================
   Contact 页面
   ============================================================ */
.contact-hero {
    background: #0a0a0a;
    color: #fff;
    padding: 180px 0 80px;
}
.contact-hero .section-label {
    color: #E55A3C;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    display: block;
    margin-bottom: 16px;
}
.contact-hero h1 {
    font-size: 52px;
    font-weight: 700;
    line-height: 1.15;
    margin: 0;
}
.contact-hero h1 em {
    color: #E55A3C;
    font-style: italic;
    font-weight: 700;
}

.contact-section {
    background: #efedeb;
    padding: 80px 0 100px;
}
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 60px;
    max-width: 1040px;
    margin: 0 auto;
    align-items: flex-start;
}

/* ---------- 表单 ---------- */
/* ============================================================
   Contact 页面美化升级版
   ============================================================ */

/* 1. 整体背景与阴影 */
.contact-section {
    background: #faf9f6; /* 换成温暖的米白色，比冷灰色更高级 */
    padding: 80px 0 100px;
}

/* 2. 表单白色卡片 */
.contact-form-wrapper {
    background: #fff;
    border-radius: 20px;
    padding: 40px 36px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.06); /* 柔和的高级阴影 */
    border: 1px solid rgba(0,0,0,0.02);
}

/* 3. 输入框容器与图标 */
.contact-form .input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}
.contact-form .input-wrapper > i {
    position: absolute;
    left: 16px;
    color: #aaa;
    font-size: 15px;
    pointer-events: none; /* 让点击穿透图标 */
    transition: color 0.3s ease;
}
.contact-form .input-wrapper input,
.contact-form .input-wrapper select,
.contact-form .input-wrapper textarea {
    width: 100%;
    padding: 14px 16px 14px 44px; /* 左边留出图标位置 */
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    border-radius: 12px;
    font-size: 14px;
    font-family: inherit;
    color: #1a1a1a;
    outline: none;
    transition: all 0.3s ease;
}
/* 下拉框由于使用了 padding-left，可能需要对图标位置稍作调整 */
.contact-form .input-wrapper select {
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
}

/* 聚焦时的光晕效果 */
.contact-form .input-wrapper input:focus,
.contact-form .input-wrapper select:focus,
.contact-form .input-wrapper textarea:focus {
    border-color: #E55A3C;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(229,90,60,0.08); /* 橙色光晕 */
}
.contact-form .input-wrapper:focus-within > i {
    color: #E55A3C; /* 聚焦时图标变橙 */
}

/* 4. 验证码区域微调 */
.contact-form .input-wrapper.captcha-wrap {
    display: flex;
    gap: 12px;
}
.contact-form .input-wrapper.captcha-wrap input {
    flex: 1;
    padding-left: 44px;
}
.contact-form .input-wrapper.captcha-wrap i {
    top: 50%;
    transform: translateY(-50%);
}
.contact-form .input-wrapper.captcha-wrap img {
    height: 48px;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
    cursor: pointer;
    transition: transform 0.2s ease;
}
.contact-form .input-wrapper.captcha-wrap img:hover {
    transform: scale(1.02);
}

/* 5. 提交按钮焕然一新 */
.contact-form .btn-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%; /* 移动端全宽更美观 */
    height: 56px;
    background: linear-gradient(135deg, #E55A3C 0%, #d4482b 100%); /* 渐变橙色 */
    color: #fff;
    border: none;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    margin-top: 12px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 14px rgba(229,90,60,0.3);
}
.contact-form .btn-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(229,90,60,0.4);
}
.contact-form .btn-submit:active {
    transform: translateY(0);
    box-shadow: 0 4px 14px rgba(229,90,60,0.3);
}
.contact-form .btn-submit:disabled {
    background: #ccc;
    box-shadow: none;
    cursor: not-allowed;
    transform: none;
}

/* 6. 右侧联系卡片微调 */
.contact-details {
    background: #fff;
    border-radius: 20px;
    padding: 36px 30px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.06);
    border: 1px solid rgba(0,0,0,0.02);
}
.contact-details h3 {
    font-size: 20px;
    margin-bottom: 24px;
}
.contact-details .detail-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    font-size: 16px;
}
.contact-details .btn-whatsapp {
    padding: 15px 20px;
    border-radius: 12px; /* 方形圆角比胶囊更显专业 */
    font-size: 15px;
}

/* ---------- 右侧 Contact details ---------- */
.contact-details {
    background: #fff;
    border-radius: 14px;
    padding: 32px 28px 28px;
    box-shadow: 0 4px 24px rgba(0,0,0,.05);
}
.contact-details h3 {
    font-size: 19px;
    font-weight: 700;
    margin-bottom: 20px;
    color: #1a1a1a;
}
.contact-details .detail-item {
    display: flex;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid #f2f2f2;
}
.contact-details .detail-item:last-of-type { border-bottom: none; }

.contact-details .detail-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #fdeee8;
    color: #E55A3C;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}
.contact-details .detail-text strong {
    display: block;
    font-size: 11px;
    color: #999;
    font-weight: 500;
    margin-bottom: 3px;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.contact-details .detail-text a,
.contact-details .detail-text span {
    font-size: 14px;
    color: #1a1a1a;
    line-height: 1.55;
    text-decoration: none;
}
.contact-details .detail-text a:hover { color: #E55A3C; }

.contact-details .divider {
    height: 1px;
    background: #f0f0f0;
    margin: 20px 0;
}
.contact-details .chat-note {
    font-size: 13px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 14px;
}
.contact-details .btn-whatsapp {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 13px 20px;
    background: #5c8d3a;
    color: #fff;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background .25s ease;
}
.contact-details .btn-whatsapp:hover { background: #4a7530; }
.contact-details .response-note {
    font-size: 12px;
    color: #999;
    line-height: 1.6;
    margin-top: 16px;
    text-align: center;
}

/* ---------- 响应式 ---------- */
@media (max-width: 960px) {
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}
@media (max-width: 640px) {
    .contact-hero { padding: 140px 0 60px; }
    .contact-hero h1 { font-size: 32px; }
    .contact-section { padding: 50px 0 60px; }
    .contact-form .form-row { grid-template-columns: 1fr; gap: 14px; }
    .contact-details { padding: 24px 20px; }
}
/* ---- 验证码美化 ---- */
.captcha-wrap {
    display: flex;
    align-items: center; /* 垂直居中 */
    gap: 12px;           /* 间距 */
}
.captcha-wrap input {
    flex: 1;             /* 占满剩余空间 */
    padding: 12px 16px;
    border: 1px solid #ddd;
    background: #fff;
    border-radius: 8px;
    font-size: 14px;
    font-family: inherit;
    color: #333;
    outline: none;
    height: 48px;        /* 固定高度，跟右边图片等高 */
    box-sizing: border-box;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.captcha-wrap input:focus {
    border-color: #E55A3C;
    box-shadow: 0 0 0 3px rgba(229,90,60,.08);
}
.captcha-wrap img {
    height: 48px;        /* 跟左侧输入框等高 */
    width: auto;
    cursor: pointer;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    display: block;
}

/* ---- 发送按钮美化（修复过于透明的问题） ---- */
.contact-form .btn-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 40px;
    height: 52px;              /* 加高一点更好看 */
    background: #E55A3C;       /* 改为实色，或者保留你想要的色 */
    color: #fff;
    border: none;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: all .3s ease;
    margin-top: 10px;
}
.contact-form .btn-submit:hover {
    background: #c94a30;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(229,90,60,.25);
}
.contact-form .btn-submit:disabled {
    background: #ddd;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}
/* 房型相册（小图预览） */
.room-type-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    margin-top: 10px;
    margin-bottom: 10px;
}
.room-type-gallery img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
    cursor: zoom-in;
    transition: transform 0.2s ease;
}
.room-type-gallery img:hover {
    transform: scale(1.05);
}

/* 灯箱 */
.rt-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}
.rt-lightbox-mask {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.75);
    backdrop-filter: blur(4px);
}
.rt-lightbox-panel {
    position: relative;
    background: #fff;
    max-width: 90vw;
    max-height: 88vh;
    border-radius: 16px;
    padding: 28px 32px;
    overflow-y: auto;
    z-index: 1;
    animation: rtFadeIn 0.25s ease;
}
@keyframes rtFadeIn {
    from { opacity: 0; transform: scale(0.96); }
    to   { opacity: 1; transform: scale(1); }
}
.rt-lightbox-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    font-size: 20px;
    color: #999;
    cursor: pointer;
    border-radius: 50%;
    transition: all 0.2s;
}
.rt-lightbox-close:hover {
    background: #f0f0f0;
    color: #1a1a1a;
}
.rt-lightbox-panel h4 {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 16px;
    padding-right: 40px;
}
.rt-lightbox-body {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.rt-lightbox-body img {
    width: 100%;
    border-radius: 8px;
    display: block;
}
@media (max-width: 640px) {
    .rt-lightbox-body { grid-template-columns: 1fr; }
    .rt-lightbox-panel { padding: 20px; }
}
/* ============================================================
   Downloads 页（下载表格）
   ============================================================ */
.dl-hero {
    background: #1a1a1a;
    color: #fff;
    padding: 180px 0 80px;
    text-align: center;
}
.dl-hero .section-label {
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    display: block;
    margin-bottom: 14px;
}
.dl-hero h1 {
    font-size: 52px;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 16px;
}
.dl-hero h1 em {
    color: var(--color-primary);
    font-style: italic;
}
.dl-hero p {
    color: #aaa;
    font-size: 15px;
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.7;
}

.dl-list-section {
    padding: 70px 0 100px;
    background: #f4f4f4;
}

/* 表格卡片网格 */
.dl-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.dl-card {
    background: #fff;
    border-radius: 16px;
    padding: 32px 28px 28px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.dl-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.1);
}

/* 图标区 */
.dl-card-icon {
    position: relative;
    width: 56px;
    height: 56px;
    background: #fff3ef;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}
.dl-card-icon i {
    font-size: 26px;
    color: var(--color-primary);
}
.dl-card-icon .dl-ext {
    position: absolute;
    right: -8px;
    bottom: -6px;
    background: var(--color-primary);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 2px 6px;
    border-radius: 4px;
}

/* 文字区 */
.dl-card h3 {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 10px;
    color: var(--color-dark);
}
.dl-desc {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.7;
    margin-bottom: 16px;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.dl-meta {
    font-size: 12px;
    color: #999;
    padding-bottom: 16px;
    border-bottom: 1px solid #eee;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* 按钮组 */
.dl-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.dl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border: none;
    text-decoration: none;
    font-family: inherit;
    transition: all 0.25s ease;
    white-space: nowrap;
}
.dl-btn-primary {
    background: var(--color-primary);
    color: #fff;
}
.dl-btn-primary:hover {
    background: var(--color-primary-hover);
    transform: translateY(-2px);
}
.dl-btn-outline {
    background: transparent;
    color: var(--color-dark);
    border: 1px solid #ddd;
}
.dl-btn-outline:hover {
    border-color: var(--color-dark);
    background: var(--color-dark);
    color: #fff;
}

/* 空状态 */
.dl-empty {
    background: #fff;
    border-radius: 16px;
    padding: 80px 20px;
    text-align: center;
    color: var(--color-gray);
}
.dl-empty i {
    font-size: 40px;
    color: #ddd;
    margin-bottom: 16px;
    display: block;
}
.dl-empty p {
    font-size: 15px;
}

/* ============================================================
   上传弹窗
   ============================================================ */
.dl-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
}
.dl-modal.open {
    display: flex;
}
.dl-modal-mask {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.55);
    backdrop-filter: blur(4px);
}
.dl-modal-panel {
    position: relative;
    background: #fff;
    width: 100%;
    max-width: 620px;
    max-height: 92vh;
    overflow-y: auto;
    border-radius: 20px;
    padding: 40px 44px 36px;
    z-index: 1;
    animation: dlFadeIn 0.3s ease;
}
@keyframes dlFadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.dl-modal-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: transparent;
    border: none;
    color: #999;
    font-size: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}
.dl-modal-close:hover {
    background: #f0f0f0;
    color: var(--color-dark);
}

.dl-modal-head {
    margin-bottom: 28px;
}
.dl-modal-head h2 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--color-dark);
}
.dl-modal-head p {
    font-size: 13px;
    color: #999;
}

/* 表单 */
.dl-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}
.dl-form-field {
    display: flex;
    flex-direction: column;
    margin-bottom: 14px;
}
.dl-form-field label {
    font-size: 13px;
    font-weight: 500;
    color: #666;
    margin-bottom: 6px;
}
.dl-form-field input[type="text"],
.dl-form-field input[type="email"],
.dl-form-field textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #e2dcd3;
    background: #fafbfc;
    border-radius: 10px;
    font-size: 14px;
    font-family: inherit;
    color: var(--color-dark);
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.dl-form-field input:focus,
.dl-form-field textarea:focus {
    border-color: var(--color-primary);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(229,90,60,0.1);
}
.dl-form-field textarea {
    resize: vertical;
    min-height: 80px;
}

/* 上传框 */
.dl-upload-box {
    position: relative;
    border: 2px dashed #ddd;
    border-radius: 10px;
    background: #fafbfc;
    padding: 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.25s ease;
}
.dl-upload-box:hover {
    border-color: var(--color-primary);
    background: #fff9f6;
}
.dl-upload-box.has-file {
    border-color: var(--color-primary);
    background: #fff3ef;
    border-style: solid;
}
.dl-upload-box input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
.dl-upload-inner {
    pointer-events: none;
}
.dl-upload-inner i {
    font-size: 24px;
    color: var(--color-primary);
    display: block;
    margin-bottom: 8px;
}
.dl-upload-text {
    display: block;
    font-size: 13px;
    color: var(--color-dark);
    font-weight: 500;
    margin-bottom: 4px;
}
.dl-upload-inner small {
    font-size: 11px;
    color: #999;
}

/* 提交按钮 */
.dl-submit-btn {
    width: 100%;
    height: 52px;
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    margin-top: 8px;
    transition: background 0.25s ease;
}
.dl-submit-btn:hover {
    background: var(--color-primary-hover);
}
.dl-submit-btn:disabled {
    background: #ddd;
    cursor: not-allowed;
}

/* 响应式 */
@media (max-width: 1024px) {
    .dl-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .dl-hero { padding: 140px 0 60px; }
    .dl-hero h1 { font-size: 34px; }
    .dl-grid { grid-template-columns: 1fr; }
    .dl-modal-panel {
        max-height: 100vh;
        border-radius: 0;
        padding: 30px 24px;
    }
    .dl-form-row {
        grid-template-columns: 1fr;
    }
}