/* ============================================================
 * 城市页样式 — 最小差异层
 *
 * Hero / step-card / cta-section / section-alt 全部复用 home.css
 * 本文件仅写城市页专属差异（Hero 高度、标题不换行、附近城市卡）
 * ============================================================ */

/* Six publishing layouts share typography and controls; section order comes from SeoTemplates. */
.landing-page { color: var(--gray-900); background: #fff; }
body > .site-header ~ main .landing-page { padding-top:var(--header-height); }
.landing-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; padding-top:24px; padding-bottom:20px; font-size:14px; color:var(--gray-600); }
.landing-breadcrumb a { color:inherit; }
.landing-hero { padding:52px 0 64px; background:linear-gradient(135deg,#fff8f0,#fff); border-bottom:1px solid var(--gray-200); }
.landing-hero-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:40px; align-items:center; }
.landing-hero-copy { max-width:760px; }
.landing-eyebrow { margin:0 0 14px; color:var(--color-primary); font-size:14px; font-weight:600; }
.landing-hero h1 { margin:0 0 18px; font-size:clamp(28px,3.2vw,44px); line-height:1.2; font-weight:700; letter-spacing:-.025em; color:var(--gray-900); }
.landing-lead { margin:0; max-width:65ch; color:var(--gray-600); font-size:17px; line-height:1.75; }
.landing-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.landing-actions .btn { min-height:48px; }
.landing-hero-image { display:block; width:100%; height:340px; object-fit:cover; border-radius:18px; }
.landing-hero-summary { padding:28px; border:1px solid var(--gray-200); border-radius:16px; background:white; }
.landing-hero-summary h2 { font-size:18px; line-height:1.4; margin:0 0 16px; }
.landing-hero-summary a { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 0; color:var(--gray-700); border-bottom:1px solid var(--gray-200); }
.landing-hero-summary a:last-child { border-bottom:0; }
.landing-layout-service .landing-hero-copy { text-align:center; margin:auto; }
.landing-layout-service .landing-actions { justify-content:center; }
.landing-layout-menu .landing-hero-grid,.landing-layout-guide .landing-hero-grid { grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr); }
.landing-layout-experience .landing-hero-grid:has(.landing-hero-image),.landing-layout-story .landing-hero-grid:has(.landing-hero-image) { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
.landing-layout-story .landing-hero-image { order:-1; }
.landing-layout-guide .landing-hero { background:var(--gray-50); }
.landing-layout-quick .landing-hero { padding:30px 0 38px; }
.landing-layout-quick .landing-hero h1 { font-size:clamp(26px,3vw,36px); }
.landing-section { padding:48px 0; }
.landing-section + .landing-section { border-top:1px solid var(--gray-100); }
.landing-section--packages,.landing-section--scenes,.landing-related { background:var(--gray-50); }
.landing-section-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:24px; }
.landing-section h2 { margin:0; font-size:clamp(22px,2.2vw,28px); line-height:1.35; font-weight:700; }
.landing-section h3 { margin:0 0 10px; font-size:19px; line-height:1.4; font-weight:600; }
.landing-prose { max-width:78ch; font-size:16px; line-height:1.8; color:var(--gray-700); overflow-wrap:anywhere; }
.landing-prose p { margin:0 0 14px; }
.landing-prose p:last-child { margin-bottom:0; }
.landing-prose h2,.landing-prose h3 { margin:24px 0 12px; }
.landing-prose h2:first-child,.landing-prose h3:first-child { margin-top:0; }
.landing-prose ul,.landing-prose ol { padding-left:24px; margin:12px 0; }
.landing-caption { color:var(--gray-600); font-size:14px; line-height:1.7; margin:16px 0 0; }
.landing-packages,.landing-scenes,.landing-reviews { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); gap:20px; }
.landing-package,.landing-scenes article,.landing-reviews figure { margin:0; padding:26px; border:1px solid var(--gray-200); border-radius:14px; background:white; }
.landing-package { display:flex; flex-direction:column; align-items:flex-start; }
.landing-package .landing-prose { margin:18px 0 22px; }
.landing-package .btn { margin-top:auto; }
.landing-price { display:flex; flex-wrap:wrap; gap:8px; align-items:baseline; margin:0; color:var(--gray-600); }
.landing-price strong { color:var(--color-primary); font-size:30px; font-weight:700; }
.landing-package .landing-caption { margin:8px 0 0; }
.landing-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; padding:0; margin:0; list-style:none; }
.landing-process li { display:flex; align-items:flex-start; gap:14px; }
.landing-process li > span { display:grid; place-items:center; flex:0 0 36px; height:36px; border-radius:50%; color:var(--color-primary); background:#fff2e8; font-weight:600; }
.landing-process p,.landing-scenes p { margin:0; color:var(--gray-600); line-height:1.75; }
.landing-info { padding:26px 28px; border-left:3px solid var(--color-primary); background:var(--gray-50); border-radius:0 12px 12px 0; }
.landing-case { display:grid; gap:28px; align-items:center; }
.landing-case:has(img) { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.landing-case img { width:100%; height:320px; object-fit:cover; border-radius:14px; }
.landing-reviews blockquote { margin:0 0 20px; line-height:1.8; color:var(--gray-700); white-space:pre-line; }
.landing-reviews figcaption { display:flex; flex-wrap:wrap; gap:12px; align-items:center; font-size:14px; }
.landing-city-links { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; margin-top:24px; }
.landing-city-links a { display:flex; justify-content:space-between; gap:16px; padding:16px 20px; border:1px solid var(--gray-200); border-radius:10px; background:#fff; color:var(--gray-800); }
.landing-final .container { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.landing-final p { margin:12px 0 0; color:var(--gray-600); line-height:1.7; }
.landing-layout-quick .landing-section { padding:32px 0; }
@media(max-width:767px) {
 .landing-breadcrumb { padding-top:18px; padding-bottom:16px; font-size:13px; }
 .landing-hero { padding:30px 0 36px; }
 .landing-hero-grid,.landing-layout-menu .landing-hero-grid,.landing-layout-guide .landing-hero-grid,.landing-layout-experience .landing-hero-grid:has(.landing-hero-image),.landing-layout-story .landing-hero-grid:has(.landing-hero-image),.landing-case:has(img) { grid-template-columns:minmax(0,1fr); gap:24px; }
 .landing-layout-story .landing-hero-image { order:0; }
 .landing-hero-image,.landing-case img { height:240px; }
 .landing-lead { font-size:16px; }
 .landing-section { padding:32px 0; }
 .landing-process { grid-template-columns:1fr; gap:24px; }
 .landing-package,.landing-scenes article,.landing-reviews figure,.landing-info,.landing-hero-summary { padding:22px; }
 .landing-final .container { align-items:flex-start; flex-direction:column; }
 .landing-actions .btn { flex:1 1 150px; }
}

/* Hero 差异：内页高度略低 */
.city-hero {
    min-height: 480px;
}

.city-hero-content {
    padding: calc(var(--header-height) + var(--space-7)) 0 var(--space-7);
}

.city-hero-title {
    /* 完全继承 .hero-title 渐变文字效果，仅调小字号上限 */
    font-size: clamp(1.5rem, 3.5vw, 2.25rem);
}

/* 面包屑 */
.city-breadcrumb.section {
    padding: 0;
}

/* 服务亮点卡片 */
.city-services-grid {
    margin-top: var(--space-6);
}

/* 正文单列居中 */
.city-content {
    max-width: 760px;
    margin: 0 auto;
    font-size: var(--fs-base);
    line-height: var(--lh-base);
    color: var(--gray-700);
}

.city-content h2 {
    font-size: var(--fs-xl);
    font-weight: var(--fw-bold);
    line-height: var(--lh-heading);
    margin-top: var(--space-7);
    margin-bottom: var(--space-4);
    color: var(--gray-900);
}

.city-content h2:first-child {
    margin-top: 0;
}

.city-content h3 {
    font-size: var(--fs-lg);
    font-weight: var(--fw-medium);
    line-height: var(--lh-heading);
    margin-top: var(--space-6);
    margin-bottom: var(--space-3);
    color: var(--gray-800);
}

.city-content p {
    margin-bottom: var(--space-4);
}

.city-content ul {
    margin-bottom: var(--space-4);
    padding-left: var(--space-5);
    list-style: disc;
}

.city-content li {
    margin-bottom: var(--space-2);
}

/* 卡片内要点列表：去 disc，改用对号色块前缀，与首页 step-card 视觉一致 */
.city-feature-list {
    list-style: none;
    padding: 0;
    margin: var(--space-3) 0 0;
    text-align: left;
}

.city-feature-list li {
    position: relative;
    padding-left: var(--space-5);
    margin-bottom: var(--space-2);
    font-size: var(--fs-sm);
    line-height: var(--lh-base);
    color: var(--gray-700);
}

.city-feature-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--color-primary);
}

/* 附近城市卡（复用 .step-card，仅加 hover 态） */
.city-nearby-card {
    display: block;
    text-decoration: none;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.city-nearby-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-md);
}

.city-nearby-card:hover h3 {
    color: var(--color-primary);
}

/* 响应式 */
@media (max-width: 768px) {
    .city-hero {
        min-height: 380px;
    }

    .city-hero-content {
        padding: calc(var(--header-height) + var(--space-5)) 0 var(--space-5);
    }

    .city-hero-title {
        font-size: var(--fs-lg);
        white-space: normal;
    }

    .city-content {
        font-size: var(--fs-sm);
    }
}

/* ============================================================
 * 多布局排版差异（layout_key 控制 DOM 结构，非换色）
 * 仅写增量，standard 沿用 home.css 默认，不动。
 * ============================================================ */

/* feature：Hero 改为左文右图两栏 */
.layout-feature .hero-split .container {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--space-6);
    align-items: center;
}

.layout-feature .hero-media {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}

.layout-feature .hero-media img {
    width: 100%;
    height: 100%;
    max-height: 420px;
    object-fit: cover;
    display: block;
}

/* compact：无 hero，标题 + CTA 简约条 */
.layout-compact .city-compact-head {
    padding: calc(var(--header-height) + var(--space-6)) 0 var(--space-5);
    text-align: center;
}

.layout-compact .city-compact-title {
    font-size: clamp(1.5rem, 4vw, 2.25rem);
    font-weight: var(--fw-bold);
    line-height: var(--lh-heading);
    margin-bottom: var(--space-4);
    color: var(--gray-900);
}

.layout-compact .section {
    padding-top: var(--space-5);
    padding-bottom: var(--space-5);
}

/* feature / compact 两栏在移动端退化为单列 */
@media (max-width: 768px) {
    .layout-feature .hero-split .container {
        grid-template-columns: 1fr;
    }

    .layout-feature .hero-media {
        order: -1;
    }
}

