/* gallery-x-heal-20261015 */
/* pic-pdp-cachebust:1792398000 */
/* pic-btn-contrast-fix:20261019 */
/* pic-search-chrome-tokens:20261019 */
/* ==========================================================================
   PlayingInChina — 站点皮肤（design theme）
   work_mode=design_theme · 只覆盖外观，不改业务逻辑。
   令牌以 --pic-* 命名；不直接改模块根 chrome。
   body.playinginchina-storefront：框架壳页（如未覆盖的 Search）已注入的站码类，
   与 pic-body 同挂令牌/链接重置，避免头尾 --pic-* 空导致裸链样式。
   ========================================================================== */

.pic-root,
body.pic-body,
body.playinginchina-storefront {
    /* Phase-2（full-ui-demo/styles.css 后半段）：#0f66d8 · Inter · sticky 白顶栏 */
    --pic-ink:            #18304f;
    --pic-ink-soft:       #4d6480;
    --pic-ink-faint:      #566d86;
    --pic-canvas:         #f8fbff;
    --pic-canvas-alt:     #f3f8ff;
    --pic-surface:        #ffffff;
    --pic-line:           #e4edf7;
    --pic-line-strong:    #dce6f2;
    --pic-brand:          #0f66d8;
    --pic-brand-strong:   #0b4ea8;
    --pic-brand-deep:     #102d59;
    --pic-brand-soft:     #edf5ff;
    --pic-accent:         #ffb51b;
    --pic-accent-soft:    #fff6e0;
    --pic-price:          #cf3a2a;
    --pic-link:           #176ee5;
    --pic-navy:           #102d59;
    --pic-radius-sm:      10px;
    --pic-radius:         15px;
    --pic-radius-lg:      18px;
    --pic-shadow-sm:      0 1px 2px rgba(24, 52, 79, .06);
    --pic-shadow:         0 12px 32px rgba(24, 52, 79, .08);
    --pic-shadow-lg:      0 18px 44px rgba(24, 52, 79, .12);
    --pic-font:           "InterLocal", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    --pic-font-display:   Georgia, "Times New Roman", "Noto Serif SC", serif;
}

body.pic-body,
body.playinginchina-storefront {
    margin: 0;
    background: var(--pic-canvas);
    color: var(--pic-ink);
    font-family: var(--pic-font);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

body.pic-body *,
body.pic-body *::before,
body.pic-body *::after,
body.playinginchina-storefront *,
body.playinginchina-storefront *::before,
body.playinginchina-storefront *::after { box-sizing: border-box; }

body.pic-body img,
body.playinginchina-storefront img { max-width: 100%; display: block; }
/* 用 :where() 把这条重置的特异度压到 0。
   原写法 `body.pic-body a` 特异度是 (0,1,1)，高于皮肤里所有单类链接规则 (0,1,0)，
   于是 .pic-chip--view / .pic-btn--accent 想给的金褐字色被 color:inherit 吃掉，
   实测「View All 300+ →」变成白字压金底（1.68:1）、.pic-view-all 丢了蓝色链接色。
   :where() 归零后，作者层的皮肤规则正常胜出；UA 默认链接色仍被作者层覆盖。 */
:where(body.pic-body a),
:where(body.playinginchina-storefront a) { color: inherit; text-decoration: none; }
body.pic-body h1, body.pic-body h2, body.pic-body h3, body.pic-body h4,
body.playinginchina-storefront h1, body.playinginchina-storefront h2,
body.playinginchina-storefront h3, body.playinginchina-storefront h4 { margin: 0; line-height: 1.2; }

/* ---------------------------------------------------------------------------
   字体族兜底（与 variables/_playinginchina.css 的变量接管成对存在）
   ---------------------------------------------------------------------------
   .pic-root 就是框架的 .weline-page-wrapper 本体。框架在 @layer layout 里给
   .weline-page-wrapper 设了 font-family（解析到宋体），元素自身命中后，
   body 上的 --pic-font 传不进子树 —— 实测 header/nav/p/footer 全是 Noto Serif SC。
   本文件未分层，所以一条同元素规则即可压掉分层声明，不依赖特异度。
   h3/h4/h5/h6 皮肤原本没有规则，会落回 @layer base 的
   h1..h6 { font-family: var(--weline-font-display) }（霞鹜文楷）—— 显式补齐。 */
.pic-root { font-family: var(--pic-font); }
.pic-root h1, .pic-root h2, .pic-root h3,
.pic-root h4, .pic-root h5, .pic-root h6 { font-family: var(--pic-font-display); }
.pic-root button, .pic-root input, .pic-root select, .pic-root textarea { font-family: var(--pic-font); }

/* 版心：消费骨架 token（本主题把 max 定为 1260px），不再自建 --pic-container */
:root { --weline-layout-content-max-width: 1260px; }
.pic-container {
    box-sizing: border-box;
    width: min(100%, var(--weline-layout-content-max-width));
    max-width: 100%;
    margin-inline: auto;
    padding-inline: var(--weline-layout-content-padding-inline);
}

/* ---------- Header ---------- */
.pic-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(255, 255, 255, .97);
    border-bottom: 1px solid #e7edf5;
    backdrop-filter: blur(14px);
    box-shadow: none;
}
.pic-header__inner {
    display: flex;
    align-items: center;
    gap: 22px;
    min-height: 76px;
}
.pic-logo { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; text-decoration: none; }
/* changcheng-user-v1：48 圆裁切；外框只在 mark 图/SVG 内，.pic-logo__mark 禁止 border */
header.pic-header .pic-logo__mark,
.pic-footer .pic-logo__mark,
.pic-logo__mark {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: transparent;
    border: 0;
    box-shadow: none;
    overflow: hidden;
}
header.pic-header .pic-logo__mark svg,
.pic-footer .pic-logo__mark svg,
.pic-logo__mark svg,
.pic-logo__mark .pic-logo__img { width: 48px; height: 48px; display: block; object-fit: contain; }
.pic-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.pic-logo__text b { font-size: 22px; font-weight: 800; letter-spacing: -.04em; color: var(--pic-ink); }
.pic-logo__text small { font-size: 11px; color: var(--pic-ink-faint); letter-spacing: .3px; opacity: .85; }
.pic-logo--inverse .pic-logo__mark {
    background: transparent;
    border: 0;
    color: #fff;
}
.pic-logo--inverse .pic-logo__mark svg { color: #fff; }

/* 1440 单行顶栏（审图：About 不得掉到第二行） */
.pic-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-inline-start: 8px;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}
.pic-nav::-webkit-scrollbar { display: none; }
.pic-nav__link {
    padding: 8px 9px;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--pic-ink);
    white-space: nowrap;
    transition: background .16s ease, color .16s ease;
}
.pic-nav__link:hover { background: var(--pic-brand-soft); color: var(--pic-brand); }
.pic-nav__link.is-active {
    color: var(--pic-brand);
    font-weight: 700;
    background: var(--pic-brand-soft);
}

.pic-header__actions { display: flex; align-items: center; gap: 14px; margin-inline-start: auto; }
.pic-search {
    display: flex; align-items: center; gap: 8px;
    background: var(--pic-brand-soft);
    border: 1px solid var(--pic-line);
    border-radius: 999px;
    padding: 8px 14px;
    min-width: 250px;
    color: var(--pic-ink-faint);
}
.pic-search input {
    border: 0; background: transparent; outline: none;
    font: inherit; font-size: 14px; color: var(--pic-ink); width: 100%;
}
.pic-lang {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 14px; font-weight: 600; color: var(--pic-ink-soft);
    white-space: nowrap;
}
/* Login local captcha: keep challenge label above image (not floating over it). */
body.pic-body .weline-captcha .w-field > .w-field__label {
    position: static;
    inset: auto;
    translate: none;
    display: block;
    max-inline-size: none;
    margin: 0 0 0.5rem;
    padding: 0;
    overflow: visible;
    background: transparent;
    white-space: normal;
    pointer-events: auto;
    color: var(--pic-ink, #0f1111);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
}

/* Auth chrome: text link (not primary CTA) — stays visible when .pic-btn--header hides ≤1100px */
.pic-auth-link {
    display: inline-flex;
    align-items: center;
    font-size: 14px;
    font-weight: 700;
    color: var(--pic-brand);
    text-decoration: none;
    white-space: nowrap;
    padding: 6px 4px;
}
.pic-auth-link:hover,
.pic-auth-link:focus-visible {
    color: var(--pic-ink);
    text-decoration: underline;
    text-underline-offset: 3px;
}
/* Menu control: pin box + SVG size — framework/svg em rules otherwise shrink to a speck. */
.pic-burger {
    display: none;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    box-sizing: border-box;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--pic-ink);
    cursor: pointer;
    line-height: 0;
}
header.pic-header .pic-burger svg,
.pic-burger svg {
    display: block;
    width: 24px;
    height: 24px;
    min-width: 24px;
    min-height: 24px;
    flex: 0 0 auto;
}
.pic-burger:hover,
.pic-burger:focus-visible {
    background: var(--pic-brand-soft);
    color: var(--pic-brand);
}

/* ---------- Hero ---------- */
/* 设计稿里 hero 是一条「横幅」而不是整屏：标题两行 + 右侧热门目的地，搜索条横跨整行。
   原来 78/66 的上下内边距把 hero 顶到 ~746px，首屏完全看不到正文（分类、Top20 全在折叠线以下）。 */
.pic-hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    /* 图未加载时的兜底底色：用 scrim 同系深海军蓝（原金暖 #c9854a 会让 hero 文案
       在无障碍审计里被判定压在该暖色上：eyebrow 2.02:1 / 白字 3.03:1）。
       #0a1b2b 上 #ffcc49 ≈13:1、白字 ≈15:1，均远高于 4.5:1。 */
    background: #0a1b2b;
    min-height: 480px;
}
/* 真图铺满（风格稿明亮白天）；裁切偏墙体，禁止只露漂白天空 */
.pic-hero__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 55%;
    /* 真实照片：禁止再叠 HDR 饱和/提亮（会像 AI 涂抹） */
    filter: none;
    z-index: 0;
}
.pic-hero__veil {
    /* 风格稿明亮白天：禁止整幅暗罩把墙体压成灰雾；字可读靠文案区轻 scrim + text-shadow */
    display: none !important;
}
.pic-hero__bg { display: none !important; } /* 兼容旧 markup */
.pic-hero__inner { position: relative; z-index: 2; padding: 52px 20px 40px; }
.pic-hero__copy {
    max-width: 36rem;
    padding: 8px 10px 8px 0;
    /* 风格稿：无左侧灰罩；白字靠 text-shadow 保可读 */
    background: transparent;
}

/* 第一行：左文案 + 右热门目的地；第二行：整宽搜索条 */
.pic-hero__top {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 30px;
    align-items: end;
    margin-bottom: 20px;
}
.pic-hero__eyebrow {
    display: inline-block;
    font-size: 12px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase;
    color: #ffe08a;
    text-shadow: 0 1px 10px rgba(8, 20, 40, .35);
    margin-bottom: 9px;
}
.pic-hero h1 {
    font-family: var(--pic-font-display);
    font-size: var(--pic-fs-h1);
    font-weight: 800;
    letter-spacing: -1.4px;
    line-height: 1.06;
    /* 不设 max-width：列宽已经约束住了。"Your China Adventure" 要落在第一行、
       "Starts Here" 落在第二行，与设计稿一致；卡到 15ch 会折成三行。 */
    margin-bottom: 12px;
    /* 必须显式给色：框架 theme.css 在 @layer base 里给 h1..h6 设了 var(--weline-theme-text)
       (#1c1c1c)，深色 hero 图上等于隐形（对比度 ~1.06:1）。本文件未分层 → 直接胜出。 */
    color: #fff;
    text-shadow: 0 2px 18px rgba(8, 20, 40, .35);
}
.pic-hero h1 .pic-accent-line {
    display: block;
    color: #ffd24a;
    text-decoration: underline;
    text-decoration-thickness: 4px;
    text-underline-offset: 7px;
    text-decoration-color: rgba(255, 210, 74, .7);
}
.pic-hero__lead {
    font-size: var(--pic-fs-lead);
    line-height: 1.5;
    color: #f4f8fc;
    max-width: 54ch;
    margin: 0;
    text-shadow: 0 1px 12px rgba(8, 20, 40, .4);
}
.pic-trust-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}
.pic-trust-strip span {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .35px;
    text-transform: uppercase;
    padding: 5px 11px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .28);
}
.pic-trust-strip--inline {
    margin: 10px 0 12px;
}
.pic-trust-strip--inline span {
    background: var(--pic-brand-soft, #edf5ff);
    color: var(--pic-ink-soft, #667b97);
    border: 1px solid var(--pic-line, #e4edf7);
    box-shadow: none;
    font-weight: 650;
    letter-spacing: .02em;
    text-transform: none;
}
.pic-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
    align-items: center;
}
.pic-btn--on-dark {
    background: rgba(255, 255, 255, .12);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .45);
}
.pic-btn--on-dark:hover {
    background: rgba(255, 255, 255, .22);
    color: #fff;
}

/* 旗舰决策包（首页 E1）— 横条决策卡，避免单卡竖堆占满一屏压住 CTA */
.pic-grid--flagship {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
.pic-flagship {
    display: grid;
    /* 运营密度：左图窄条 + 右文贴顶，禁止右栏垂直居中撑出大留白 */
    grid-template-columns: minmax(120px, 22%) minmax(0, 1fr);
    grid-template-rows: auto;
    align-items: stretch;
    background: var(--pic-surface);
    border-radius: var(--pic-radius);
    box-shadow: var(--pic-shadow);
    overflow: hidden;
    border: 1px solid var(--pic-line);
    max-height: 128px;
}
.pic-flagship--primary {
    border-color: var(--pic-brand);
    box-shadow: 0 8px 28px rgba(37, 99, 235, .12);
}
.pic-flagship__media {
    display: block;
    min-height: 100%;
    max-height: inherit;
    background: var(--pic-line, #e5e7eb);
}
.pic-flagship__media img {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 128px;
    object-fit: cover;
    display: block;
}
.pic-flagship__foot .pic-btn {
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 8px 14px;
    font-size: 13px;
}
.pic-flagship__body {
    padding: 10px 14px 10px;
    display: grid;
    gap: 4px;
    align-content: start;
    align-self: center;
}
.pic-flagship__badge {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: var(--pic-brand);
}
.pic-flagship__body h3 {
    margin: 0;
    font-size: 1.12rem;
    line-height: 1.25;
}
.pic-flagship__body h3 a {
    color: var(--pic-ink);
    text-decoration: none;
}
.pic-flagship__meta {
    font-size: 13px;
    color: var(--pic-ink-faint);
    margin: 0;
}
.pic-flagship__foot {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    align-items: center;
    justify-content: flex-start;
    margin-top: 4px;
}
.pic-flagship__price {
    font-weight: 700;
    color: var(--pic-price, #e11d48);
    margin-right: 0;
}
.pic-flagship__price small {
    font-weight: 600;
    color: var(--pic-ink-faint);
    font-size: 12px;
}
#flagship.pic-section--tight {
    padding-top: 16px;
    padding-bottom: 20px;
}
#flagship .pic-sec-head--compact {
    margin-bottom: 8px;
}
#flagship .pic-sec-head .pic-sub {
    max-width: 42rem;
}
#flagship .pic-sec-head h2.pic-serif {
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    margin: 0 0 4px;
}
@media (max-width: 760px) {
    .pic-flagship {
        grid-template-columns: 1fr;
        max-height: none;
    }
    .pic-flagship__media img {
        min-height: 0;
        max-height: 120px;
        height: 120px;
    }
    .pic-flagship__body {
        padding: 10px 12px 12px;
        align-self: stretch;
    }
}

/* 信息包 PDP：单份数字交付，彻底隐藏 Count/数量/qty 行（含 sticky） */
.pic-product--pack .product-native-detail__qty-row,
.pic-product--pack .product-native-detail__qty-controls,
.pic-product--pack .product-native-detail__qty-label,
.pic-product--pack .product-native-detail__qty-select,
.pic-product--pack [data-testid="product-qty"],
.pic-product--pack .product-native-detail__qty,
.pic-product--pack [data-sticky-purchase] .product-native-detail__qty-row,
.pic-product--pack [data-testid="product-sticky-purchase"] .product-native-detail__qty-row,
body.pic-product--pack .product-native-detail__qty-row,
body.pic-product--pack label.product-native-detail__qty-label {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    clip: rect(0, 0, 0, 0) !important;
}

/* 三遍销售长文（线路页） */
.pic-sales-longform {
    margin: 1.5rem 0 2rem;
    padding: 1.25rem 0;
    border-top: 1px solid var(--pic-line, #e5e1d8);
}
.pic-sales-longform > h2 {
    margin: 0 0 0.75rem;
    font-size: clamp(1.35rem, 2vw, 1.65rem);
}
.pic-lead { font-size: 1.05rem; line-height: 1.55; color: var(--pic-ink-soft, #3d4450); }
.pic-cta-row { margin: 1rem 0 0.25rem; }
.pic-pass {
    margin: 1.1rem 0;
    padding: 1rem 1.1rem;
    border-radius: var(--pic-radius-sm, 10px);
    background: var(--pic-surface, #fff);
    border: 1px solid var(--pic-line, #e5e1d8);
}
.pic-pass h3 { margin: 0 0 0.5rem; font-size: 1.1rem; }
.pic-pass__bridge {
    margin: 0.65rem 0 0;
    color: var(--pic-ink-faint, #6b7280);
    font-size: 0.95rem;
    font-style: italic;
}
.pic-offer-block {
    margin: 1.25rem 0;
    padding: 1.15rem 1.2rem;
    border-radius: var(--pic-radius-sm, 10px);
    background: color-mix(in srgb, var(--pic-brand, #c2432e) 8%, #fff);
    border: 1px solid color-mix(in srgb, var(--pic-brand, #c2432e) 28%, #e5e1d8);
}
.pic-offer-block ul { margin: 0.5rem 0 0; padding-left: 1.15rem; }
.pic-faq { margin: 1.5rem 0 0.5rem; }
.pic-faq__item {
    margin: 0.45rem 0;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--pic-line, #e5e1d8);
    border-radius: var(--pic-radius-sm, 10px);
    background: var(--pic-surface, #fff);
}
.pic-faq__item summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--pic-ink, #0f1111);
}
.pic-faq__item p { margin: 0.55rem 0 0.15rem; color: var(--pic-ink-soft, #3d4450); }

/* 搜索条：横跨整行（设计稿如此），内边距压紧 */
.pic-search-card {
    background: var(--pic-surface);
    border-radius: var(--pic-radius);
    box-shadow: var(--pic-shadow-lg);
    padding: 14px 16px;
    color: var(--pic-ink);
}
.pic-search-card__rows {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr auto;
    gap: 10px;
    align-items: end;
}
.pic-field label { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--pic-ink-faint); margin-bottom: 6px; }
.pic-field select, .pic-field input {
    width: 100%;
    font: inherit; font-size: 14px;
    padding: 11px 12px;
    border: 1px solid var(--pic-line-strong);
    border-radius: var(--pic-radius-sm);
    background: #fdfcfa; color: var(--pic-ink);
}

/* Contact page — Weline_Inquiry 渲染的 `contact` 表单主题化。
   渲染器负责表单结构（.weline-inquiry__*）；主题只做本主题的版式与控件皮肤。
   inline 模式的 place-items / 关闭按钮由渲染器兜底，这里再钉一次，避免旧模块版本回退。 */
.pic-contact-embed { margin: 18px 0 10px; }
.pic-contact .weline-inquiry { max-width: none; }
.pic-contact .weline-inquiry__modal { place-items: normal; }
.pic-contact .weline-inquiry__dialog {
    width: auto;
    padding: 0;
    overflow: visible;
    background: transparent;
    box-shadow: none;
}
.pic-contact .weline-inquiry__close { display: none; }
.pic-contact .weline-inquiry__title,
.pic-contact .weline-inquiry__description { display: none; } /* 页面已有 h2 + 导语，避免重复标题 */
.pic-contact .weline-inquiry__form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 16px;
    margin: 0;
}
.pic-contact .weline-inquiry__field {
    display: grid;
    gap: 6px;
    min-width: 0;
    margin: 0 0 16px;
}
.pic-contact .weline-inquiry__field--wide,
.pic-contact .weline-inquiry__field:has(textarea),
.pic-contact .weline-inquiry__field:has(input[type="file"]),
.pic-contact .weline-inquiry__field:has(input[name^="values[attach_photos]"]),
.pic-contact .weline-inquiry__captcha,
.pic-contact .weline-inquiry__form > .weline-captcha,
.pic-contact .weline-inquiry__message,
.pic-contact .weline-inquiry__submit { grid-column: 1 / -1; }
.pic-contact .weline-inquiry__field > label,
.pic-contact .weline-inquiry__field > span {
    font-size: 11.5px; font-weight: 700; letter-spacing: .4px;
    text-transform: uppercase; color: var(--pic-ink-faint);
}
.pic-contact .weline-inquiry__field small {
    font-size: 12.5px; line-height: 1.5; color: var(--pic-ink-faint);
}
.pic-contact .weline-inquiry__field input[type="text"],
.pic-contact .weline-inquiry__field input[type="email"],
.pic-contact .weline-inquiry__field input[type="tel"],
.pic-contact .weline-inquiry__field input[type="url"],
.pic-contact .weline-inquiry__field input[type="number"],
.pic-contact .weline-inquiry__field input[type="date"],
.pic-contact .weline-inquiry__field select,
.pic-contact .weline-inquiry__field textarea {
    width: 100%;
    font: inherit; font-size: 14px; line-height: 1.55;
    padding: 11px 12px;
    border: 1px solid var(--pic-line-strong);
    border-radius: var(--pic-radius-sm);
    background: #fdfcfa; color: var(--pic-ink);
}
.pic-contact .weline-inquiry__field input[type="file"] {
    width: 100%;
    font: inherit; font-size: 13px; line-height: 1.55;
    padding: 9px 12px;
    border: 1px solid var(--pic-line-strong);
    border-radius: var(--pic-radius-sm);
    background: #fdfcfa; color: var(--pic-ink-soft);
}
.pic-contact .weline-inquiry__field input[type="checkbox"],
.pic-contact .weline-inquiry__field input[type="radio"] {
    width: 18px; height: 18px;
    margin: 0;
    accent-color: var(--pic-brand);
}
/* 单个复选框（如 Attach photos）走一行：勾选框在前，说明文案在后。 */
.pic-contact .weline-inquiry__field--checkbox,
.pic-contact .weline-inquiry__field:has(> input[type="checkbox"]) {
    display: flex;
    align-items: center;
    gap: 10px;
}
.pic-contact .weline-inquiry__field--checkbox > label,
.pic-contact .weline-inquiry__field:has(> input[type="checkbox"]) > label {
    order: 2;
    font-size: 14px; font-weight: 500; letter-spacing: 0;
    text-transform: none; color: var(--pic-ink-soft);
}
.pic-contact .weline-inquiry__field textarea { min-height: 132px; resize: vertical; }
.pic-contact .weline-inquiry__field input:focus-visible,
.pic-contact .weline-inquiry__field select:focus-visible,
.pic-contact .weline-inquiry__field textarea:focus-visible {
    outline: 2px solid var(--pic-brand);
    outline-offset: 1px;
}
/* 人机验证：标签/图片/刷新按钮/输入框并入本站字段节奏。 */
.pic-contact .weline-captcha {
    width: 100%; max-width: 100%;
    margin: 0;
}
.pic-contact .weline-inquiry__form > .weline-captcha .w-field > .w-field__label,
.pic-contact .weline-inquiry__captcha .weline-captcha .w-field > .w-field__label {
    position: static;
    display: block;
    margin: 0 0 6px;
    font-size: 11.5px; font-weight: 700; letter-spacing: .4px;
    text-transform: uppercase; color: var(--pic-ink-faint);
    line-height: 1.35;
}
.pic-contact .weline-captcha-stack { width: fit-content; max-width: 100%; gap: 10px; }
.pic-contact .weline-captcha-visual { gap: 10px; }
.pic-contact .weline-captcha-image {
    height: 46px;
    border: 1px solid var(--pic-line-strong);
    border-radius: var(--pic-radius-sm);
    background: #fdfcfa;
    box-shadow: none;
}
.pic-contact .weline-captcha-refresh.weline-captcha-refresh {
    min-height: 46px;
    padding: 0 16px;
    border: 1px solid var(--pic-line-strong);
    border-radius: var(--pic-radius-sm);
    background: var(--pic-surface);
    color: var(--pic-brand);
    font: inherit; font-size: 13px; font-weight: 700;
    box-shadow: none;
}
.pic-contact .weline-captcha-refresh.weline-captcha-refresh:hover {
    border-color: var(--pic-brand);
    background: var(--pic-brand-soft);
}
.pic-contact .weline-captcha-field { width: 100%; }
.pic-contact .weline-captcha-field .w-input {
    width: 100%; min-height: 46px;
    padding: 11px 12px;
    border: 1px solid var(--pic-line-strong);
    border-radius: var(--pic-radius-sm);
    background: #fdfcfa; color: var(--pic-ink);
    font: inherit; font-size: 14px;
    letter-spacing: .2em; text-align: center; text-transform: uppercase;
}
.pic-contact .weline-inquiry__submit {
    justify-self: start;
    min-height: 46px;
    font: inherit; font-size: 15px; font-weight: 700;
    padding: 12px 18px;
    border: 0; border-radius: 10px;
    background: var(--pic-brand);
    color: var(--color-text-inverse, #fff);
    cursor: pointer;
    box-shadow: 0 7px 18px rgba(22, 119, 242, .15);
}
.pic-contact .weline-inquiry__submit:hover { background: var(--pic-brand-strong); }
.pic-contact .weline-inquiry__submit[disabled] { opacity: .6; cursor: default; }
.pic-contact .weline-inquiry__message {
    margin: 10px 0 0; min-height: 1.2em;
    font-size: 13px; color: var(--pic-ink-soft);
}
.pic-contact-fallback {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    margin: 6px 0 0;
}
.pic-contact-form__hint { font-size: 13px; color: var(--pic-brand); }
a.pic-btn.pic-btn--sm,
.pic-btn--sm { padding: 8px 14px; font-size: 13px; border-radius: var(--pic-radius-sm); }
@media (max-width: 760px) {
    .pic-contact .weline-inquiry__form { grid-template-columns: 1fr; }
    .pic-contact .weline-captcha-visual { align-items: center; }
    .pic-contact .weline-captcha-image { height: 40px; width: auto; max-width: 100%; }
}
/* a.pic-btn 与 .pic-btn 同绑：侧栏/正文里 `… a { color: link }` 特异度 (0,1,1)
   会压过单类 .pic-btn 的白字，蓝底链色 ≈ 不可读（What to know CTA）。 */
a.pic-btn,
.pic-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    font: inherit; font-size: 15px; font-weight: 700;
    padding: 12px 18px;
    border: 0; border-radius: 10px;
    background: var(--pic-brand);
    color: var(--color-text-inverse, #fff);
    cursor: pointer;
    box-shadow: 0 7px 18px rgba(22, 119, 242, .15);
    transition: background .16s ease, transform .16s ease;
}
a.pic-btn:hover,
.pic-btn:hover { background: #155db5; color: var(--color-text-inverse, #fff); transform: translateY(-1px); }
a.pic-btn.pic-btn--ghost,
.pic-btn--ghost { background: transparent; color: var(--pic-brand); border: 1px solid var(--pic-line-strong); box-shadow: none; }
a.pic-btn.pic-btn--ghost:hover,
.pic-btn--ghost:hover { background: var(--pic-brand-soft); color: var(--pic-brand); }
a.pic-btn.pic-btn--accent,
.pic-btn--accent { background: var(--pic-accent); color: #2b1e05; box-shadow: none; }
a.pic-btn.pic-btn--accent:hover,
.pic-btn--accent:hover { background: #e0a010; color: #2b1e05; }
.pic-btn--block { width: 100%; }
.pic-btn--header { padding: 10px 14px; font-size: 13px; white-space: nowrap; flex: 0 0 auto; min-width: max-content; }
.pic-btn--search { min-width: 130px; align-self: stretch; }

.pic-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.pic-tag {
    font-size: 11.5px; font-weight: 600;
    padding: 4px 10px; border-radius: 999px;
    background: var(--pic-brand-soft); color: var(--pic-brand);
}
.pic-tag--accent { background: var(--pic-accent-soft); color: #8a5a10; }

/* Hero 右侧：设计稿是一排「小图 + 白标签」缩略卡 + View All 白按钮，
   原来是一堆文字药丸（pic-chips），密度和信息层级跟设计稿完全不是一回事。 */
.pic-hero__side { display: grid; gap: 9px; align-content: end; }
.pic-hero__side h3 {
    font-size: 14.5px; font-weight: 700; letter-spacing: -.2px;
    color: #fff; margin: 0;
    text-shadow: 0 1px 12px rgba(8, 20, 40, .45);
}
.pic-hero__side p {
    font-size: 12px; line-height: 1.4; color: #eef4fa; margin: 0;
    text-shadow: 0 1px 9px rgba(8, 20, 40, .4);
}
.pic-hero__thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr)) 50px;
    gap: 8px;
    margin-top: 2px;
}
.pic-thumb {
    position: relative; display: block; overflow: hidden;
    aspect-ratio: 3 / 4;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, .34);
    box-shadow: 0 8px 22px rgba(9, 22, 19, .4);
}
.pic-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.pic-thumb:hover img { transform: scale(1.07); }
.pic-thumb__label {
    position: absolute; left: 4px; right: 4px; bottom: 4px;
    display: block; text-align: center;
    background: rgba(255, 255, 255, .95);
    color: var(--pic-ink);
    font-size: 9.5px; font-weight: 700; line-height: 1.15;
    padding: 3px 4px; border-radius: 999px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* View All 与缩略图同高，做成白底按钮（设计稿是右侧那块白色小按钮） */
.pic-thumb--view {
    display: grid; place-items: center; text-align: center;
    background: rgba(255, 255, 255, .95);
    border-color: rgba(255, 255, 255, .8);
    color: var(--pic-ink);
    font-size: 10.5px; font-weight: 700; line-height: 1.3;
}
.pic-thumb--view:hover { background: #fff; }
.pic-thumb--view small { display: block; font-size: 10px; font-weight: 700; color: var(--pic-brand); }

/* ---------- 字色必须显式声明（框架 @layer base 陷阱） ----------
   框架 theme.css 在 @layer base 里给 h1..h6 设了 var(--weline-theme-text)(#1c1c1c)、
   给 b/strong 设了 #0f1111。本皮肤未分层，**但没声明 color 的规则不构成覆盖** ——
   于是深色区块（hero / travel style / CTA）里靠继承取色的标题会拿到近黑字，
   深底上等于隐形（实测 .pic-style__body b = #0f1111 on #223029、
   .pic-cta__body h2 = #1c1c1c on #0b3f35）。浅底上则拿到框架的 #1c1c1c 而非本主题墨色。
   下面把这些元素的 color 全部钉死，深色块给白、浅色块给 --pic-ink。 */
.pic-sec-head h2,
.pic-page-head h1,
.pic-prose h2,
.pic-panel h3,
.pic-cat b,
.pic-cat__tx b,
.pic-card__title,
.pic-s-card__body b,
.pic-g-card b,
.pic-style__tx b,
.pic-guide-mini__row b { color: var(--pic-ink); }

.pic-cta__body h2 { color: #fff; }

/* ---------- Sections ---------- */
.pic-section { padding: 60px 0; }
.pic-section--alt { background: var(--pic-canvas-alt); }
/* 风格稿：Hero 下紧贴兴趣 pill 行，无大标题 */
.pic-section--cats {
    padding-top: 18px;
    padding-bottom: 8px;
    background: var(--pic-surface);
}
.pic-sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }

/* 设计稿每个区块标题前都有一枚彩色圆角图标徽章（橙色火苗 / 绿色叶子 / 蓝色罗盘），
   标题本体是重型无衬线。原来只有一行 12px 灰绿 kicker，层级完全立不起来。

   注意：.pic-kicker 被复用为详情页的 meta 标签（PlayingInChinaViews.php 里输出
   "Beijing · Beijing Municipality"、"3 days · Cycling" 等），所以**徽章不能加在基类上**，
   只在 .pic-sec-head / .pic-cta 这两个「区块标题」语境里画出来。
   图标与底色走自定义属性，由修饰类注入 —— 这样只有两条 ::before 规则。 */
.pic-kicker {
    /* 默认：四宫格（Browse by category） */
    --pic-kicker-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7.5' height='7.5' rx='1.6'/%3E%3Crect x='13.5' y='3' width='7.5' height='7.5' rx='1.6'/%3E%3Crect x='3' y='13.5' width='7.5' height='7.5' rx='1.6'/%3E%3Crect x='13.5' y='13.5' width='7.5' height='7.5' rx='1.6'/%3E%3C/svg%3E");
    --pic-kicker-badge: var(--pic-brand);
    font-size: 12px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase;
    color: var(--pic-brand); margin-bottom: 8px;
}
/* 叶子（风景分类） */
.pic-kicker--leaf {
    color: #2f7d6f;
    --pic-kicker-badge: #2f7d6f;
    --pic-kicker-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19C5 9 12 4 20 4c0 8-5 15-15 15Z'/%3E%3Cpath d='M5 19 15 9'/%3E%3C/svg%3E");
}
/* 火苗（Top 20 热门）—— 设计稿同款橙色火苗 */
.pic-kicker--flame {
    color: #b06f14;
    --pic-kicker-badge: #e2a23c;
    --pic-kicker-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2c0 4-5 5-5 10.5A5 5 0 0 0 17 12.5c0-3-2-4-3-6.5 0 2-1 2.5-2 2.5 0-2 0-4 0-6.5Z'/%3E%3C/svg%3E");
}
/* 罗盘（出行方式） */
.pic-kicker--compass {
    color: #1d6fa5;
    --pic-kicker-badge: #1d6fa5;
    --pic-kicker-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m15.5 8.5-2 5-5 2 2-5Z'/%3E%3C/svg%3E");
}
/* 星（CTA） */
.pic-kicker--star {
    color: #f2c05a;
    --pic-kicker-badge: #f2c05a;
    --pic-kicker-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b1e05' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 2.6 6.2 6.4.5-4.9 4.3 1.5 6.3L12 17l-5.6 3.3 1.5-6.3L3 9.7l6.4-.5Z'/%3E%3C/svg%3E");
}

/* 只在「区块标题」语境里画出徽章 */
.pic-sec-head .pic-kicker,
.pic-cta__body .pic-kicker {
    display: inline-flex; align-items: center; gap: 9px;
    margin-bottom: 10px;
}
.pic-sec-head .pic-kicker::before,
.pic-cta__body .pic-kicker::before {
    content: "";
    width: 26px; height: 26px; flex: 0 0 auto;
    border-radius: 8px;
    background-color: var(--pic-kicker-badge);
    background-image: var(--pic-kicker-icon);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 15px 15px;
    box-shadow: 0 2px 7px rgba(27, 43, 38, .18);
}

.pic-sec-head h2 { font-family: var(--pic-font-display); font-size: var(--pic-fs-h2); font-weight: 800; letter-spacing: -1px; line-height: 1.15; }
.pic-sec-head .pic-sub { margin: 9px 0 0; color: var(--pic-ink-soft); max-width: 68ch; font-size: 15px; }
.pic-view-all { flex: 0 0 auto; font-size: 14.5px; font-weight: 600; color: var(--pic-link); white-space: nowrap; }
.pic-view-all:hover { text-decoration: underline; }
/* 2026-10-29 无障碍（Lighthouse tap-targets）：文字链默认 18–22px 高，低于 24px 门槛被判失败。
   用 inline-flex + min-block-size 抬高可点区域，视觉位置不变（垂直居中）。 */
.pic-view-all,
.pic-footer a,
.pic-footer__grid a,
.pic-legal a {
    display: inline-flex;
    align-items: center;
    min-block-size: 1.5rem;
}

/* ---------- Category chips row ---------- */
/* 设计稿是「一行 8 个紧凑 chip」：彩色圆形图标在左，两行文字在右，整条无卡片边框。
   原来做成了 161×125 的带框竖排磁贴（图标在上），跟设计稿的结构就不是一个东西。 */
.pic-cats { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 6px; }
.pic-cat {
    display: flex; flex-direction: row; align-items: center; gap: 10px;
    text-align: left;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--pic-radius-sm);
    padding: 9px 8px;
    transition: background .16s ease, border-color .16s ease;
}
.pic-cat:hover { background: var(--pic-surface); border-color: var(--pic-line); }
.pic-cat__ic {
    width: 38px; height: 38px; border-radius: 50%; flex: 0 0 auto;
    display: grid; place-items: center; color: #fff;
    box-shadow: 0 3px 9px rgba(27, 43, 38, .18);
}
.pic-cat__tx { display: grid; gap: 1px; min-width: 0; }
.pic-cat__tx b { font-size: 12.5px; font-weight: 700; letter-spacing: -.15px; line-height: 1.2; }
/* :not(__ic) 必需：.pic-cat__ic 也是 <span>，被 `.pic-cat span`(0,1,1) 压过它自己的
   `color:#fff`(0,1,0)，图标描边会变成 --pic-ink-faint（深灰绿）压在彩色圆底上 —— 又糊又脏。
   同源陷阱见 .pic-g-card span。 */
.pic-cat__tx span { font-size: 10.5px; line-height: 1.25; color: var(--pic-ink-faint); }

/* ---------- Card grids ---------- */
.pic-grid { display: grid; gap: 20px; }
.pic-grid--4 { grid-template-columns: repeat(auto-fill, minmax(248px, 1fr)); }
.pic-grid--3 { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
.pic-grid--scenery { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

.pic-card {
    background: var(--pic-surface);
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius);
    overflow: hidden;
    display: flex; flex-direction: column;
    transition: transform .18s ease, box-shadow .18s ease;
}
.pic-card:hover { transform: translateY(-4px); box-shadow: var(--pic-shadow); }
.pic-card__thumb { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #e9e3d8; }
.pic-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.pic-card:hover .pic-card__thumb img { transform: scale(1.05); }
.pic-card__badge {
    position: absolute; top: 10px; left: 10px;
    display: inline-grid; place-items: center;
    min-width: 30px; height: 30px; padding: 0 8px;
    font-size: 12.5px; font-weight: 800; letter-spacing: -.3px;
    border-radius: 999px;
    /* 设计稿是金色「★ N」硬币徽章，不是浅黄药丸。 */
    background: linear-gradient(180deg, #f8cf74 0%, #e2a23c 100%);
    color: #3a2604;
    border: 1.5px solid rgba(255, 255, 255, .88);
    box-shadow: 0 2px 9px rgba(27, 43, 38, .3);
}
.pic-card__body { padding: 14px 15px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.pic-card__title { font-size: 16.5px; font-weight: 700; letter-spacing: -.25px; }
.pic-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 12.5px; color: var(--pic-ink-soft); }
.pic-card__meta span { display: inline-flex; align-items: center; gap: 5px; }
/* 第二个 meta（景点类型）做成小药丸，跟设计稿的 History / Hiking 标签一致 */
.pic-card__meta > span + span {
    background: var(--pic-brand-soft); color: var(--pic-brand);
    font-size: 11.5px; font-weight: 600;
    padding: 2px 9px; border-radius: 999px;
}
.pic-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.pic-card__foot { margin-top: auto; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding-top: 4px; }
/* 设计稿价格是加粗橙色，要压过卡片里其他文字 */
.pic-card__price { font-size: 16.5px; font-weight: 800; letter-spacing: -.3px; color: var(--pic-price); }
.pic-card__price small { font-weight: 500; color: var(--pic-ink-faint); font-size: 12px; letter-spacing: 0; }

/* scenery card */
.pic-s-card { background: var(--pic-surface); border: 1px solid var(--pic-line); border-radius: var(--pic-radius); overflow: hidden; }
.pic-s-card:hover { transform: translateY(-3px); box-shadow: var(--pic-shadow); }
.pic-s-card__thumb { aspect-ratio: 3 / 2; overflow: hidden; background: #e9e3d8; }
.pic-s-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.pic-s-card__body { padding: 12px 14px 14px; }
.pic-s-card__body b { display: block; font-size: 14.5px; }
.pic-s-card__body span { font-size: 12.5px; color: var(--pic-ink-faint); }

/* ---------- Map panel ---------- */
.pic-map {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr);
    gap: 0;
    background: var(--pic-surface);
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius-lg);
    overflow: hidden;
    box-shadow: var(--pic-shadow);
}
.pic-map__canvas {
    position: relative;
    min-height: 420px;
    background:
        radial-gradient(circle at 24% 22%, rgba(226, 162, 60, .18), transparent 42%),
        radial-gradient(circle at 74% 66%, rgba(15, 111, 92, .16), transparent 46%),
        #f6f3ec;
}
.pic-map__svg { position: absolute; inset: 0; width: 100%; height: 100%; }
/* 散布点：/map 上有 330 个，做成药丸（原来 padding 3px 9px + 白底 + 红点）会互相重叠糊成一团。
   改成 9px 圆点。颜色必须与图例一致 —— 景点 #b0563a、酒店 #1d6fa5（方形）、路线绿色虚线。 */
.pic-map__pin {
    position: absolute;
    transform: translate(-50%, -50%);
    display: block;
    width: 9px; height: 9px;
    border-radius: 50%;
    background: #b0563a;
    border: 1.5px solid rgba(255, 255, 255, .92);
    box-shadow: 0 1px 3px rgba(27, 43, 38, .35);
    transition: transform .14s ease, box-shadow .14s ease;
}
.pic-map__pin:hover {
    transform: translate(-50%, -50%) scale(1.7);
    box-shadow: 0 2px 9px rgba(27, 43, 38, .5);
    z-index: 6;
}
/* 方形 = 酒店基地：用形状区分，不单靠颜色 */
.pic-map__pin--hotel { background: #1d6fa5; border-radius: 2px; }
/* 详情页「当前景点」高亮 */
.pic-map__pin--current {
    width: 13px; height: 13px;
    background: var(--pic-brand);
    border-width: 2.5px;
    box-shadow: 0 0 0 4px rgba(15, 111, 92, .22), 0 2px 8px rgba(27, 43, 38, .45);
    z-index: 4;
}
/* 详情页侧栏的小示意图：全量淡点 + 当前高亮，替掉原来「一大块空白 + 一个孤零零药丸」 */
.pic-map__scatter { position: absolute; inset: 0; width: 100%; height: 100%; }
.pic-map__scatter circle { fill: #bdb2a0; }
.pic-map__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 12px 0 4px; }
.pic-map__facts b {
    display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .5px;
    text-transform: uppercase; color: var(--pic-ink-faint); margin-bottom: 2px;
}
.pic-map__facts span { display: block; font-size: 13px; color: var(--pic-ink); }
.pic-map__legend { padding: 22px; border-left: 1px solid var(--pic-line); }
.pic-map__legend h3 { font-size: 16px; margin-bottom: 4px; }
.pic-map__legend p { font-size: 13.5px; color: var(--pic-ink-soft); margin: 0 0 16px; }
.pic-legend-row { display: flex; align-items: center; gap: 9px; font-size: 13.5px; padding: 7px 0; border-bottom: 1px dashed var(--pic-line); }
.pic-legend-row:last-of-type { border-bottom: 0; }
.pic-legend-row .pic-swatch { width: 12px; height: 12px; border-radius: 3px; flex: 0 0 auto; }

/* ---------- Guide cards ---------- */
.pic-g-card {
    display: flex; gap: 14px; align-items: flex-start;
    background: var(--pic-surface);
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius);
    padding: 18px;
    transition: transform .16s ease, box-shadow .16s ease;
}
.pic-g-card:hover { transform: translateY(-3px); box-shadow: var(--pic-shadow); }
.pic-g-card__ic {
    width: 42px; height: 42px; border-radius: 11px; flex: 0 0 auto;
    display: grid; place-items: center;
    background: var(--pic-brand-soft); color: var(--pic-brand);
}
.pic-g-card b { display: block; font-size: 15.5px; }
.pic-g-card span:not(.pic-g-card__ic) { font-size: 12.5px; color: var(--pic-ink-faint); }

/* ---------- Travel style cards ---------- */
/* 设计稿是「白卡 + 上图 + 下面一行 [彩色圆形图标 | 标题/副标题 | →]」。
   原来做成了整块压暗大图 + 左下白字（min-height 210px），卡片比设计稿重得多。
   6 种出行方式一行排开（设计稿示意 5 张；数据是 6 条，不丢 luxury）。 */
.pic-grid--styles { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.pic-style {
    display: flex; flex-direction: column;
    background: var(--pic-surface);
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius);
    overflow: hidden;
    color: var(--pic-ink);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.pic-style:hover { transform: translateY(-3px); box-shadow: var(--pic-shadow); border-color: var(--pic-line-strong); }
.pic-style__bg {
    position: relative; display: block;
    height: 96px;
    overflow: hidden;
    background-size: cover; background-position: center;
    transition: background-size .45s ease;
}
/* 设计稿这张小图上没有压暗遮罩（文字在白卡下半部分，不在图上） */
.pic-style__bg::after { content: none; }
.pic-style:hover .pic-style__bg { background-size: 108% auto; }
.pic-style__body { display: flex; align-items: center; gap: 9px; padding: 12px 12px 13px; }
.pic-style__ic {
    width: 32px; height: 32px; border-radius: 50%; flex: 0 0 auto;
    display: grid; place-items: center; color: #fff;
    background: var(--pic-sic, var(--pic-brand));
    box-shadow: 0 2px 8px rgba(27, 43, 38, .16);
}
.pic-style__tx { display: grid; gap: 1px; min-width: 0; flex: 1 1 auto; }
.pic-style__tx b { display: block; font-size: 12.5px; font-weight: 700; line-height: 1.2; }
.pic-style__tx span {
    font-size: 10.5px; line-height: 1.25; color: var(--pic-ink-faint);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pic-style__go { flex: 0 0 auto; color: var(--pic-brand); opacity: .85; }
.pic-style:hover .pic-style__go { opacity: 1; }

/* ---------- CTA ---------- */
.pic-cta {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    background: var(--pic-brand-deep);
    color: #fff;
    border-radius: var(--pic-radius-lg);
    overflow: hidden;
}
.pic-cta__body { padding: 42px 38px; }
.pic-cta__body h2 { font-family: var(--pic-font-display); font-size: clamp(24px, 2.6vw, 32px); font-weight: 800; letter-spacing: -.9px; line-height: 1.15; margin-bottom: 10px; }
.pic-cta__body p { color: #c9d8d2; margin: 0 0 18px; max-width: 52ch; }
.pic-cta__list { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 9px; }
.pic-cta__list li { display: flex; align-items: center; gap: 9px; font-size: 15px; color: #e6efeb; }
.pic-cta__photo { min-height: 260px; background-size: cover; background-position: center; }

/* ---------- Breadcrumb / page head ---------- */
.pic-crumb { background: var(--pic-canvas-alt); border-bottom: 1px solid var(--pic-line); }
.pic-crumb__inner { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--pic-ink-soft); padding: 13px 20px; }
.pic-crumb a:hover { color: var(--pic-brand); text-decoration: underline; }
.pic-page-head { padding: 44px 0 30px; }
.pic-page-head h1 { font-family: var(--pic-font-display); font-size: clamp(28px, 3.4vw, 42px); font-weight: 800; letter-spacing: -1.1px; line-height: 1.12; margin-bottom: 10px; }
.pic-page-head p { color: var(--pic-ink-soft); max-width: 76ch; margin: 0; font-size: 16px; }

/* ---------- Filters ---------- */
.pic-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 22px 0 26px; }
.pic-filter {
    font-size: 13.5px; font-weight: 600;
    padding: 8px 14px; border-radius: 999px;
    border: 1px solid var(--pic-line-strong);
    background: var(--pic-surface); color: var(--pic-ink);
}
.pic-filter:hover { border-color: var(--pic-brand); color: var(--pic-brand); }
.pic-filter.is-active { background: var(--pic-brand); border-color: var(--pic-brand); color: #fff; }
.pic-filters__label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; color: var(--pic-ink-faint); margin-inline-end: 2px; }

/* ---------- Detail page ---------- */
.pic-detail { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 34px; align-items: start; }
.pic-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin-top: 18px; }
.pic-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--pic-radius-sm); }
.pic-gallery--route { grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin: 18px 0 28px; }
/* 设计稿的行程页没有「首图通栏 + 11 图」的图库；6 图等格更接近编辑式节奏。 */
.pic-gallery--route img:first-child { grid-column: auto; aspect-ratio: 4 / 3; }
.pic-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 22px 0; }
.pic-fact { background: var(--pic-surface); border: 1px solid var(--pic-line); border-radius: var(--pic-radius-sm); padding: 13px 15px; }
.pic-fact dt, .pic-fact > b { display: block; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; color: var(--pic-ink-faint); margin-bottom: 4px; }
.pic-fact dd, .pic-fact > span { display: block; margin: 0; font-size: 14.5px; font-weight: 550; }
.pic-prose h2 { font-family: var(--pic-font-display); font-size: 24px; font-weight: 800; letter-spacing: -.6px; margin: 30px 0 12px; }
.pic-prose ul { padding-left: 20px; margin: 0 0 14px; }
.pic-prose li { margin-bottom: 7px; }
.pic-aside { position: sticky; top: 88px; display: grid; gap: 16px; }
.pic-panel { background: var(--pic-surface); border: 1px solid var(--pic-line); border-radius: var(--pic-radius); padding: 20px; }
.pic-panel h3 { font-size: 16px; margin-bottom: 10px; }
.pic-price-lg { font-size: 30px; font-weight: 750; color: var(--pic-price); letter-spacing: -.5px; }
.pic-price-lg small { display: block; font-size: 12.5px; font-weight: 500; color: var(--pic-ink-faint); letter-spacing: 0; }

/* itinerary */
/* itinerary — 视图实际输出的是 div.pic-itin__row（不是 li），两条都留：
   只写 li 会让时间标签与描述挤成一行（"0.5hTicket gate…"）。 */
.pic-itin { list-style: none; padding: 0; margin: 0; }
.pic-itin li,
.pic-itin .pic-itin__row { display: grid; grid-template-columns: 78px 1fr; gap: 14px; padding: 12px 0; border-bottom: 1px dashed var(--pic-line); }
.pic-itin li:last-child,
.pic-itin .pic-itin__row:last-child { border-bottom: 0; }
.pic-itin b { font-size: 13px; color: var(--pic-brand); }
.pic-itin span { font-size: 14.5px; color: var(--pic-ink-soft); }

/* variant pills */
/* variant cards — 视图实际输出 b/span/small（不是 h4/p/em）。 */
.pic-variants { display: grid; gap: 12px; }
.pic-variant { border: 1px solid var(--pic-line); border-radius: var(--pic-radius-sm); padding: 14px 16px; background: #fdfcfa; }
.pic-variant h4, .pic-variant > b { display: block; font-size: 14.5px; margin-bottom: 6px; color: var(--pic-brand-deep); }
.pic-variant p, .pic-variant > span { display: block; margin: 0 0 6px; font-size: 14px; color: var(--pic-ink-soft); }
.pic-variant em, .pic-variant > small { display: block; font-size: 13px; color: var(--pic-ink-faint); font-style: normal; }

/* ---------- Utility ---------- */
.pic-empty { padding: 60px 0; text-align: center; color: var(--pic-ink-faint); }
.pic-note { font-size: 13px; color: var(--pic-ink-faint); }
.pic-hr { height: 1px; background: var(--pic-line); border: 0; margin: 40px 0; }

/* ---------- Footer ---------- */
.pic-footer { background: #12211d; color: #cfdcd6; padding: 54px 0 26px; }
.pic-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr; gap: 32px; }
.pic-footer h2 { font-size: 13px; text-transform: uppercase; letter-spacing: 1px; color: #8fb3a6; margin-bottom: 14px; }
.pic-footer__col a { display: block; font-size: 14px; padding: 5px 0; color: #cfdcd6; }
.pic-footer__col a:hover { color: #fff; text-decoration: underline; }
.pic-footer__brand p { font-size: 14px; margin: 14px 0 0; max-width: 42ch; }
.pic-footer__note { color: #93a79e; font-size: 12.5px; }
.pic-footer__contact { margin: 16px 0 0; font-size: 15px; }
.pic-footer__contact a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.pic-footer__legal { margin: 12px 0 0; font-size: 12px; line-height: 1.65; color: #93a79e; }
.pic-footer__bottom a { color: #cfdcd6; text-decoration: underline; text-underline-offset: 3px; }
.pic-footer__bottom a:hover { color: #fff; }
.pic-logo--inverse .pic-logo__text b { color: #fff; }
.pic-logo--inverse .pic-logo__text small { color: #93a79e; }
.pic-footer__bottom {
    display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
    margin-top: 38px; padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    font-size: 12.5px; color: #8fa39a;
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
    .pic-nav { display: none; }
    .pic-nav.is-open {
        display: flex; flex-direction: column; align-items: stretch;
        position: absolute; top: 100%; left: 0; right: 0;
        background: var(--pic-surface); border-bottom: 1px solid var(--pic-line);
        padding: 10px 20px 18px; box-shadow: var(--pic-shadow);
        z-index: 1001;
    }
    .pic-burger { display: inline-flex; }
    /* Keep primary CTA from crowding the 44px menu control in this band.
       Must beat a.pic-btn { display: inline-flex } (0,1,1). */
    a.pic-btn.pic-btn--header,
    .pic-btn.pic-btn--header { display: none; }
    .pic-header__inner { position: relative; }
    .pic-search { min-width: 0; }
    .pic-search input { width: 120px; }
    .pic-hero__top { grid-template-columns: 1fr; align-items: start; gap: 20px; }
    .pic-map { grid-template-columns: 1fr; }
    .pic-map__legend { border-left: 0; border-top: 1px solid var(--pic-line); }
    .pic-detail { grid-template-columns: 1fr; }
    .pic-aside { position: static; }
    .pic-cta { grid-template-columns: 1fr; }
    .pic-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
    .pic-search-card__rows { grid-template-columns: 1fr 1fr; }
    .pic-search-card__rows .pic-field:first-child { grid-column: 1 / -1; }
    .pic-search { display: none; }
    .pic-hero__inner { padding: 26px 20px 24px; }
    .pic-sec-head { flex-direction: column; align-items: flex-start; }
    .pic-footer__grid { grid-template-columns: 1fr; }
    .pic-section { padding: 44px 0; }
}

/* ==========================================================================
   首页专用：span 版卡片需要显式 display，否则 aspect-ratio / padding 不生效
   ========================================================================== */
/* 注意：不要把 .pic-style__body 放进这个 display:block 列表 ——
   它现在是 flex 行（图标 + 文字 + 箭头），本块在文件末尾，会反过来压掉前面的 flex。 */
.pic-card__thumb,
.pic-s-card__thumb,
.pic-s-card__body { display: block; }

.pic-card__title,
.pic-card__meta,
.pic-card__foot { display: block; }
.pic-card__meta,
.pic-card__foot { display: flex; }

/* ---------- 首页 Top20 / 地图 / 攻略 三栏分栏 ---------- */
/* 设计稿主栏占约 72%，右侧栏约 28%。原来 2.05fr/1fr 让主栏只有 ~816px，
   Top20 在 5 列目标下只能塞进 3 列，卡片比设计稿大一倍。 */
.pic-home-split {
    display: grid;
    grid-template-columns: minmax(0, 2.8fr) minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}
.pic-home-split__side { display: grid; gap: 18px; }

.pic-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }

/* 侧栏地图面板 */
.pic-panel--map { padding: 18px; }
.pic-map__box {
    /* 必须定位：内部的 .pic-map__svg(absolute inset:0) 与 338 个 .pic-map__pin(absolute left/top%)
       都以本盒为包含块。少了这一行，它们会以 <body> 为包含块 → 全页撒点、压住标题与页头。 */
    position: relative;
    width: 100%;
    height: 260px;
    border-radius: var(--pic-radius-sm);
    overflow: hidden;
    background: #f2efe7;
    border: 1px solid var(--pic-line);
}
/* /map 主图需要更高，否则 420px 的 canvas 被 260px 的盒子裁掉。 */
.pic-panel--map .pic-map__box { height: 420px; }
/* 详情页侧栏的小示意图：150px 高，配全量淡点 + 当前高亮，不再是一大块空白 */
.pic-map__box--mini { height: 150px; }
.pic-map__box--mini .pic-map__canvas { min-height: 0; height: 100%; }
/* 真图 iframe：比示意图略高，避免裁切控件栏 */
.pic-map__box--live {
    height: 220px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius-sm);
    background: #e8efe9;
}
.pic-map__box--mini.pic-map__box--live { height: 200px; }
.pic-map__iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: #e8efe9;
}
/* /map 全站真图（Leaflet） */
.pic-map__live {
    height: 420px;
    width: 100%;
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius-sm);
    background: #e8efe9;
    z-index: 0;
}
.pic-map__live .leaflet-container { font: inherit; }
.pic-map__legend-inline {
    display: flex; flex-wrap: wrap; gap: 12px;
    margin-top: 12px; font-size: 12.5px; color: var(--pic-ink-soft);
}
.pic-map__legend-inline span { display: inline-flex; align-items: center; gap: 6px; }
.pic-map__hint { margin-top: 12px; }
.pic-map__hint code {
    background: var(--pic-canvas-alt);
    padding: 1px 5px; border-radius: 4px;
    font-size: 12px;
    /* 落在 --pic-canvas-alt 底上，faint 只有 4.0:1；给 ink-soft 抬到 4.66:1。 */
    color: var(--pic-ink-soft);
}
/* 设计稿地图面板底部有醒目的「View Map →」按钮 */
.pic-map__cta { margin-top: 14px; }

/* 无 key 时的地区目录 */
.pic-region-list { display: grid; gap: 2px; margin-top: 6px; }
.pic-region-row {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; padding: 9px 10px;
    border-radius: var(--pic-radius-sm);
    font-size: 14px;
}
.pic-region-row:hover { background: var(--pic-brand-soft); }
.pic-region-row span { display: inline-flex; align-items: center; gap: 8px; }
.pic-region-row b { font-size: 13px; color: var(--pic-ink-faint); }

/* 侧栏攻略速览 */
.pic-guide-mini { display: grid; gap: 4px; margin: 6px 0 10px; }
.pic-guide-mini__row {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 8px; border-radius: var(--pic-radius-sm);
}
.pic-guide-mini__row:hover { background: var(--pic-brand-soft); }
.pic-guide-mini__ic {
    width: 34px; height: 34px; border-radius: 9px; flex: 0 0 auto;
    display: grid; place-items: center;
    background: var(--pic-brand-soft); color: var(--pic-brand);
}
.pic-guide-mini__row b { display: block; font-size: 14px; font-weight: 600; }
.pic-guide-mini__row small { display: block; font-size: 12px; color: var(--pic-ink-faint); }

/* 首页侧栏的攻略速览：设计稿是「2 列彩色圆角磁贴」
   （白底圆角框 + 左彩色图标 + 右标题/副标题），
   不是单列 34px 细描边浅绿图标（那个版本图标几乎看不见）。 */
.pic-guide-mini--tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 10px 0 12px;
}
.pic-guide-mini--tiles .pic-guide-mini__row {
    align-items: flex-start;
    padding: 9px 8px;
    gap: 8px;
    border: 1px solid var(--pic-line);
    border-radius: 12px;
    background: var(--pic-canvas-alt);
    transition: border-color .14s ease, background .14s ease, box-shadow .14s ease;
}
.pic-guide-mini--tiles .pic-guide-mini__row:hover {
    background: var(--pic-surface);
    border-color: var(--pic-line-strong);
    box-shadow: 0 4px 12px rgba(27, 43, 38, .08);
}
.pic-guide-mini--tiles .pic-guide-mini__ic {
    width: 34px; height: 34px; border-radius: 10px;
    /* 每行的色由 PHP 内联 --pic-gic 给（设计稿里 SIM/签证/支付/交通/贴士 是五种不同色） */
    background: var(--pic-gic, var(--pic-brand));
    color: #fff;
    box-shadow: 0 3px 10px rgba(27, 43, 38, .18);
}
.pic-guide-mini--tiles .pic-guide-mini__row > span:last-child {
    min-width: 0; flex: 1 1 auto;
}
/* 侧栏窄：允许两行换行，禁止 ellipsis 把 Transportation / Useful Travel Tips 截成半词 */
.pic-guide-mini--tiles .pic-guide-mini__row b {
    font-size: 11px; font-weight: 700; line-height: 1.25;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    white-space: normal;
}
.pic-guide-mini--tiles .pic-guide-mini__row small {
    font-size: 10px; line-height: 1.25;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    white-space: normal;
}

@media (max-width: 1080px) {
    .pic-home-split { grid-template-columns: 1fr; }
}

/* 新排布用的是「固定列数」（设计稿是一行 5/6/8 个），窄屏必须显式降列，
   否则 5 列会挤成 ~120px 的卡片，标题全折行。 */
@media (max-width: 1240px) {
    .pic-cats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pic-grid--5 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pic-grid--styles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pic-guide-mini--tiles { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
    .pic-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pic-grid--styles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .pic-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pic-grid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pic-grid--styles { grid-template-columns: 1fr; }
    .pic-hero__thumbs { grid-template-columns: repeat(3, minmax(0, 1fr)) 46px; }
}

/* ------------------------------------------------------------------
   分页条（/destinations 及分类页在 1500+ 景点下的分页）
   ------------------------------------------------------------------ */
.pic-pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 30px 0 6px;
}
.pic-pager__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 11px;
    border: 1px solid var(--pic-line);
    border-radius: 10px;
    background: #fff;
    color: var(--pic-ink);
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color .14s ease, color .14s ease, background .14s ease;
}
.pic-pager__link:hover { border-color: var(--pic-brand); color: var(--pic-brand); }
.pic-pager__link.is-active {
    background: var(--pic-brand);
    border-color: var(--pic-brand);
    color: #fff;
}
.pic-pager__gap { color: var(--pic-ink-faint); padding: 0 2px; }

/* 1500+ 景点时地图点阵过密：缩小圆点，避免糊成一片 */
.pic-map__canvas--dense .pic-map__pin {
    width: 6px;
    height: 6px;
    border-width: 1px;
}
.pic-map__canvas--dense .pic-map__pin--hotel { border-radius: 1px; }

/* ==========================================================================
   Catalog / PDP — 旅行产品介绍壳（权威：websites/.../docs/风格UI.md）
   藏电商错壳；买盒 → From 价订票卡；侧栏 Essentials / Map。
   ========================================================================== */

body.pic-product,
body.pic-category {
    background: var(--pic-canvas) !important;
    color: var(--pic-ink);
    font-family: var(--pic-font);
}
body.pic-product .pic-root,
body.pic-category .pic-root,
body.pic-product .weline-page-wrapper,
body.pic-product .weline-main-content,
body.pic-product .product-detail-layout__content-root-slot,
body.pic-product .product-detail-layout__main,
body.pic-product .pic-pdp {
    background: var(--pic-canvas) !important;
    font-family: var(--pic-font);
}

body.pic-product .product-native-detail__crumb { display: none !important; }
body.pic-product .w-frontend-breadcrumb {
    max-width: var(--weline-layout-content-max-width);
    margin: 0 auto;
    padding: 14px 20px 0;
    font-size: 13.5px;
}
body.pic-product .w-frontend-breadcrumb a { color: var(--pic-link); font-weight: 600; }
body.pic-product .w-frontend-breadcrumb a:hover { text-decoration: underline; }

body.pic-product .product-detail-layout__container,
body.pic-product .product-detail-layout__reviews-container,
body.pic-product .product-detail-layout__personalization-container,
body.pic-category .category-layout__container,
body.pic-category .amz-plp,
body.pic-category .weline-main-content {
    max-width: var(--weline-layout-content-max-width);
    margin-inline: auto;
    padding-inline: 20px;
}

/* —— 藏电商错壳 —— */
body.pic-product .affiliate-share,
body.pic-product [class*="affiliate-share"],
body.pic-product .w-helppay-cta,
body.pic-product .product-native-detail__quote,
body.pic-product .product-native-detail__quote-modal,
body.pic-product .product-native-detail__quote-dialog,
body.pic-product .product-native-detail__quote-backdrop,
body.pic-product [data-testid="product-quote-modal"],
body.pic-product [data-testid="product-submit-quote"],
body.pic-product .product-native-detail__secure,
body.pic-product .product-native-detail__purchase-failsafe,
body.pic-product .product-native-detail__selling-mode,
body.pic-product .b2b-selling-mode__soft-cta,
body.pic-product .b2b-retail-only-hint,
body.pic-product .product-native-detail__delivery,
body.pic-product .product-native-detail__delivery-mode,
body.pic-product .shipping-delivery-mode,
body.pic-product .product-native-detail__shipping-hint,
body.pic-product .product-native-detail__shipping-note,
body.pic-product [data-testid="product-delivery-mode"],
body.pic-product .product-express-payment,
body.pic-product .product-native-detail__express,
body.pic-product .w-payment-express,
body.pic-product .w-payment-express__btn,
body.pic-product .w-payment-express__paypal,
body.pic-product [data-product-express-pay],
body.pic-product [data-express-pay],
body.pic-product [data-testid="product-express-pay"],
body.pic-product [data-testid="product-quick-pay"],
body.pic-product [data-testid="product-quick-pay-wrap"],
body.pic-product .widget-wrapper:has([data-testid="product-quick-pay"]),
body.pic-product [class*="product-express"],
body.pic-product .product-detail-layout__faq,
body.pic-product [data-sticky-purchase],
body.pic-product .product-native-detail__sticky-purchase,
body.pic-product [data-testid="product-sticky-purchase"],
body.pic-product [data-testid="product-add-wishlist"],
body.pic-product .product-native-detail__wishlist,
body.pic-product .product-native-detail__compare,
body.pic-product [data-testid="product-selection-share"],
body.pic-product [data-testid="product-selection-share-wrap"] {
    display: none !important;
}

/* 2026-10-30 移除：本主题曾在 PDP 用 display:none!important 强藏悬浮层 dismiss「×」，
   属主题越界（框架 header/footer chrome 的显隐由框架契约决定，主题只能改外观不能删控件），
   也是「悬浮窗关闭叉叉没显示」的直接原因之一。Marker: pic-float-dismiss-visible-v1 */
/* 若图廊曾注入坏字形控件，统一藏空圆钮；正常箭头由 content 重钉 */
body.pic-product .product-native-detail__gallery-nav,
body.pic-product .product-native-detail__gallery-prev,
body.pic-product .product-native-detail__gallery-next,
body.pic-product button.product-native-detail__gallery-control {
    /* 无真实图廊导航节点时不强制显示；有则改为箭头气质 */
    border: 1px solid var(--pic-line) !important;
    background: var(--pic-surface) !important;
    color: var(--pic-ink) !important;
    box-shadow: var(--pic-shadow-sm);
}
body.pic-product .product-native-detail__gallery-prev::before,
body.pic-product button.product-native-detail__gallery-control[data-dir="prev"]::before {
    content: "‹" !important;
    font-size: 22px;
    line-height: 1;
    color: var(--pic-brand);
}
body.pic-product .product-native-detail__gallery-next::before,
body.pic-product button.product-native-detail__gallery-control[data-dir="next"]::before {
    content: "›" !important;
    font-size: 22px;
    line-height: 1;
    color: var(--pic-brand);
}

/* 信息包 PDP：仅一主 CTA（#0f66d8 Buy information pack）；金只作点缀，禁双主按钮 */
body.pic-product--pack [data-testid="product-buy-now"],
body.pic-product--pack .product-native-detail__buy-now,
body.pic-product--pack .weline-checkout-product-buy-now,
body.pic-product--pack [data-testid="product-quick-pay"],
body.pic-product--pack [data-testid="product-quick-pay-wrap"],
body.pic-product--pack .widget-wrapper:has([data-testid="product-buy-now"]),
body.pic-product--pack .widget-wrapper:has([data-testid="product-quick-pay"]),
body.pic-product--pack .widget-wrapper:has(.weline-checkout-product-buy-now) {
    display: none !important;
}

/* PDP 页眉 + 双栏（审图闭环）：左图文满宽，右订票卡+Essentials
   禁止再叠「hero 双栏 + 外置侧栏」= 三栏挤窄标题被订票卡裁切 */
body.pic-product .pic-pdp { padding-block: 4px 28px; }
body.pic-product .pic-pdp__eyebrow {
    margin: 6px 0 14px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--pic-brand);
}
/* P1 · PDP digital trust badges — quiet chips, not primary CTAs */
body.pic-product .pic-pdp__trust {
    margin: -6px 0 16px;
}
body.pic-product .pic-pdp__trust span,
body.pic-product .pic-trust-strip--inline span,
body.pic-product .pic-trust-strip.pic-pdp__trust span {
    background: var(--pic-brand-soft, #edf5ff) !important;
    color: var(--pic-ink-soft, #667b97) !important;
    border: 1px solid var(--pic-line, #e4edf7) !important;
    box-shadow: none !important;
    font-weight: 650 !important;
    letter-spacing: .02em;
    text-transform: none;
    padding: 4px 10px;
    border-radius: 999px;
}
body.pic-product .pic-pdp__wrapper {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 340px);
    gap: 28px;
    align-items: start;
}
body.pic-product .pic-pdp__stage { min-width: 0; overflow: visible; }
body.pic-product .pic-pdp__rail {
    position: sticky;
    top: 88px;
    display: grid;
    gap: 16px;
    min-width: 0;
}
body.pic-product .pic-pdp__book {
    background: var(--pic-surface);
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius);
    box-shadow: var(--pic-shadow);
    padding: 18px;
}
body.pic-product .pic-panel--dark {
    background: var(--pic-brand-deep);
    border-color: transparent;
    color: #eef4ff;
}
body.pic-product .pic-panel--dark h3 { color: #fff; }
body.pic-product .pic-panel--dark .pic-note { color: rgba(238, 244, 255, .78); }
body.pic-product .pic-pdp__rail > .pic-panel:not(.pic-panel--dark) {
    background: var(--pic-surface) !important;
    border: 1px solid var(--pic-line);
    color: var(--pic-ink);
    box-shadow: var(--pic-shadow-sm);
}
body.pic-product .pic-essentials { display: grid; gap: 8px; }
body.pic-product .pic-essentials__item {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border-radius: var(--pic-radius-sm);
    border: 1px solid var(--pic-line);
    background: var(--pic-canvas) !important;
    color: var(--pic-ink);
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease;
}
body.pic-product .pic-essentials__item:hover {
    border-color: color-mix(in srgb, var(--pic-brand) 40%, var(--pic-line));
    background: var(--pic-brand-soft);
}
body.pic-product .pic-essentials__ic {
    width: 36px; height: 36px;
    display: grid; place-items: center;
    border-radius: 10px;
    background: #fff;
    font-size: 18px;
}
body.pic-product .pic-essentials__item b {
    display: block;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--pic-ink);
}
body.pic-product .pic-essentials__item small {
    display: block;
    font-size: 12px;
    color: var(--pic-ink-faint);
}

/* 主卡：去 Amazon 硬边 */
body.pic-product .product-native-detail,
body.pic-product .product-native-detail-- {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0 0 12px;
    font-family: var(--pic-font);
}
/* 主舞台内单列：图廊 → 标题全文；订票卡由 JS 迁入右侧栏，避免叠压 */
body.pic-product .product-native-detail__hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    align-items: start;
}
body.pic-product .product-native-detail__media-column,
body.pic-product .product-native-detail__buy-column {
    min-width: 0;
    width: 100%;
    max-width: 100%;
}
body.pic-product .product-native-detail h1,
body.pic-product .product-native-detail__title {
    font-family: var(--pic-font-display);
    font-weight: 800;
    letter-spacing: -.6px;
    color: var(--pic-ink);
    font-size: clamp(26px, 3vw, 34px);
    line-height: 1.25;
    margin: 0 0 10px;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
    overflow: visible;
}
body.pic-product .product-native-detail__meta-row {
    color: var(--pic-ink-soft);
    font-size: 13.5px;
    margin-bottom: 12px;
    flex-wrap: wrap;
    gap: 6px 10px;
}
/* 旅行介绍不强调电商 SKU */
body.pic-product .product-native-detail__sku,
body.pic-product [data-testid="product-sku"] {
    display: none !important;
}
body.pic-product .product-native-detail__summary-panel {
    background: var(--pic-surface);
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius);
    box-shadow: var(--pic-shadow-sm);
    padding: 20px 22px 18px;
    overflow: visible;
}
body.pic-product .product-native-detail__buy-column {
    display: grid;
    gap: 14px;
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
    position: static;
}
/* 订票卡迁入侧栏后仍保留样式；未迁入时也不 sticky 盖标题 */
body.pic-product .product-native-detail__buybox,
body.pic-product .product-native-detail__purchase,
body.pic-product .pic-pdp__book .product-native-detail__buybox {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
    position: static;
    width: 100%;
    max-width: 100%;
}
body.pic-product .product-native-detail__gallery,
body.pic-product .product-native-detail__media,
body.pic-product .product-native-detail__media-column {
    border-radius: var(--pic-radius);
    overflow: hidden;
}
body.pic-product .product-native-detail__gallery,
body.pic-product .product-native-detail__media {
    background: var(--pic-surface);
    border: 1px solid var(--pic-line);
    box-shadow: var(--pic-shadow-sm);
}
body.pic-product .product-native-detail__price-label {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    color: var(--pic-ink-soft);
    text-transform: none;
}
/* JS 会把 Price → From；CSS 兜底 */
body.pic-product .product-native-detail__price-label[data-pic-from="1"],
body.pic-product .product-native-detail__price-block .product-native-detail__price-label {
    color: var(--pic-ink-soft);
}
body.pic-product .product-native-detail__price,
body.pic-product .product-native-detail__price-now,
body.pic-product .product-native-detail__buybox-price,
body.pic-product [data-testid="product-price"] {
    color: var(--pic-price);
    font-weight: 800;
    font-size: 28px;
    letter-spacing: -.4px;
}
body.pic-product .product-native-detail__buybox-price {
    margin-bottom: 6px;
}
body.pic-product .product-native-detail__stock {
    font-size: 13.5px;
    font-weight: 600;
    color: #15803d;
    margin: 0 0 10px;
}
body.pic-product .product-native-detail__qty-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--pic-ink-soft);
}
body.pic-product .product-native-detail__qty-row {
    margin-bottom: 12px;
}
body.pic-product .product-native-detail__add,
body.pic-product .product-native-detail__buy-now,
body.pic-product [data-testid="product-add-to-cart"],
body.pic-product [data-testid="product-buy-now"],
body.pic-product button.product-native-detail__add {
    border-radius: 12px !important;
    font-weight: 700 !important;
    min-height: 46px;
    width: 100%;
    box-shadow: none !important;
}
body.pic-product .product-native-detail__add,
body.pic-product [data-testid="product-add-to-cart"] {
    background: var(--pic-brand) !important;
    border-color: var(--pic-brand) !important;
    color: #fff !important;
}
/* 次 CTA：ghost（金仅 eyebrow/点缀，不作第二主按钮） */
body.pic-product .product-native-detail__buy-now,
body.pic-product [data-testid="product-buy-now"] {
    background: transparent !important;
    border: 1px solid var(--pic-line-strong, #dce6f2) !important;
    color: var(--pic-brand, #0f66d8) !important;
    box-shadow: none !important;
}
body.pic-product .product-native-detail__buy-now:hover,
body.pic-product [data-testid="product-buy-now"]:hover {
    background: var(--pic-brand-soft, #edf5ff) !important;
    border-color: color-mix(in srgb, var(--pic-brand) 35%, var(--pic-line)) !important;
}
body.pic-product .product-native-detail__actions {
    display: grid;
    gap: 10px;
}
body.pic-product .product-native-detail__bullets {
    margin: 12px 0 0;
    padding-left: 18px;
    color: var(--pic-ink-soft);
}
body.pic-product .product-native-detail__bullets li::marker { color: var(--pic-brand); }
/* About 区块：只留 description 一层面板；detail-sections 禁止再套一层边框 */
html body.pic-product .product-native-detail__detail-sections {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-top: 18px;
    display: grid;
    gap: 18px;
}
body.pic-product .product-native-detail__description,
body.pic-product .product-native-detail__about {
    background: var(--pic-surface, #fff);
    border: 1px solid var(--pic-line, #e4edf7);
    border-radius: var(--pic-radius);
    padding: 22px 24px;
    margin-top: 0;
    box-shadow: var(--pic-shadow-sm);
    color: var(--pic-ink, #18304f);
}
/* 正文贴在外卡里：去边框/底色/内阴影，只保留排版节奏
 * 特异性压过 widget product-native-detail.css（后加载） */
html body.pic-product .product-native-detail__description-body,
html body.pic-product [data-testid="product-description-body"],
html body.pic-product--pack .product-native-detail__description-body {
    background: transparent !important;
    color: var(--pic-ink, #18304f) !important;
    border: 0 !important;
    border-width: 0 !important;
    border-style: none !important;
    border-color: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    font-size: 15px;
    line-height: 1.7;
}
body.pic-product .product-native-detail__description > h2,
body.pic-product [data-testid="product-description"] > h2 {
    margin: 0 0 14px;
}
body.pic-product .product-native-detail__description-body .pic-desc-lead {
    margin: 0 0 14px;
    color: var(--pic-ink-soft, #667b97);
    font-size: 15px;
}
/* 事实条：浅底 + 左边品牌线，不再套完整边框 */
body.pic-product .product-native-detail__description-body .pic-desc-facts {
    display: grid;
    gap: 8px;
    margin: 0 0 18px;
    padding: 12px 14px 12px 16px;
    border-radius: var(--pic-radius-sm, 10px);
    background: var(--pic-canvas-alt, #f3f8ff);
    border: 0;
    border-left: 3px solid var(--pic-brand, #0f66d8);
    list-style: none;
}
body.pic-product .product-native-detail__description-body .pic-desc-facts li {
    margin: 0;
    font-size: 13.5px;
    color: var(--pic-ink, #18304f);
}
body.pic-product .product-native-detail__description-body .pic-desc-facts b {
    color: var(--pic-brand, #0f66d8);
    font-weight: 700;
    margin-right: 6px;
}
body.pic-product .product-native-detail__description-body .pic-desc-itin-title {
    margin: 4px 0 10px;
    font-family: var(--pic-font-display, Georgia, serif);
    font-size: 18px;
    font-weight: 800;
    color: var(--pic-ink, #18304f);
}
body.pic-product .product-native-detail__description-body .pic-desc-days {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}
/* 行程日：分隔行而非嵌套卡片 */
body.pic-product .product-native-detail__description-body .pic-desc-day {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 12px 0;
    border-radius: 0;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--pic-line, #e4edf7);
}
body.pic-product .product-native-detail__description-body .pic-desc-day:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
body.pic-product .product-native-detail__description-body .pic-desc-day__n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 6px 8px;
    border-radius: 9px;
    background: var(--pic-brand-soft, #edf5ff);
    color: var(--pic-brand, #0f66d8);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .02em;
    text-align: center;
}
body.pic-product .product-native-detail__description-body .pic-desc-day__t {
    margin: 2px 0 0;
    font-size: 14.5px;
    line-height: 1.45;
    color: var(--pic-ink-soft, #667b97);
}
body.pic-product .product-native-detail__description h2,
body.pic-product .product-native-detail__about h2,
body.pic-product .product-detail-layout__reviews h2,
body.pic-product .product-detail-layout__personalization h2 {
    font-family: var(--pic-font-display);
    font-weight: 800;
    color: var(--pic-ink);
    letter-spacing: -.4px;
}
body.pic-product .product-detail-layout__reviews,
body.pic-product .product-detail-layout__personalization {
    margin-top: 8px;
    padding-bottom: 40px;
}
/* 弱化电商「猜你喜欢」：旅行站默认不强调购物推荐栈 */
body.pic-product .product-detail-layout__personalization {
    display: none !important;
}
body.pic-product .product-detail-layout__reviews {
    border-top: 1px solid var(--pic-line);
    padding-top: 28px;
}
body.pic-product .product-native-detail__description h2::first-line,
body.pic-product [data-testid="product-description"] h2 {
    font-family: var(--pic-font-display);
}

/* 分类 PLP：旅行发现壳（去 Amazon Department / Sort / SKU / CS） */
body.pic-category .weline-product-card,
body.pic-category .wpc-listing-card,
body.pic-category .amz-product-card {
    border-radius: var(--pic-radius) !important;
    border-color: var(--pic-line) !important;
    box-shadow: var(--pic-shadow-sm);
    overflow: hidden;
    background: var(--pic-surface);
}
body.pic-category .weline-product-card:hover,
body.pic-category .amz-product-card:hover {
    box-shadow: var(--pic-shadow);
    border-color: color-mix(in srgb, var(--pic-brand) 35%, var(--pic-line)) !important;
}
body.pic-category .amz-plp__title,
body.pic-category .amz-plp__heading,
body.pic-category [data-testid="storefront-category-intro"] h1,
body.pic-category h1 {
    font-family: var(--pic-font-display);
    font-weight: 800;
    color: var(--pic-ink);
    letter-spacing: -.5px;
}
body.pic-category .amz-plp {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 8px 0 24px;
}
body.pic-category .amz-plp__crumb,
body.pic-category .amz-plp__results-bar,
body.pic-category .amz-plp__sort,
body.pic-category [data-testid="storefront-category-toolbar"] {
    display: none !important;
}
body.pic-category .amz-plp__children {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 12px 0 20px;
}
body.pic-category .amz-plp__child {
    border-radius: 999px;
    border: 1px solid var(--pic-line);
    background: var(--pic-surface);
    padding: 8px 14px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--pic-ink);
    text-decoration: none;
}
body.pic-category .amz-plp__child:hover {
    border-color: color-mix(in srgb, var(--pic-brand) 40%, var(--pic-line));
    color: var(--pic-brand);
}
/* Department / Any Department 侧栏（Amazon 密度）→ 整栏隐藏 */
body.pic-category .category-layout__sidebar,
body.pic-category .category-layout__filter-toggle,
body.pic-category [data-testid="storefront-filters-panel"],
body.pic-category [data-testid="storefront-filters-departments"],
body.pic-category .w-filters__heading {
    display: none !important;
}
body.pic-category .category-layout__container,
body.pic-category .category-layout__container--with-filters,
body.pic-category .category-layout__container:has(> .category-layout__sidebar) {
    grid-template-columns: minmax(0, 1fr) !important;
}
/* SKU 电商味 */
body.pic-category .wpc-sku,
body.pic-category [data-testid="product-sku"],
body.pic-category .amz-product-card__sku,
body.pic-category .product-card__sku {
    display: none !important;
}
body.pic-category .amz-product-card__price,
body.pic-category [data-testid="product-card-price"],
body.pic-category .weline-product-card__price {
    color: var(--pic-price) !important;
    font-weight: 800;
}
/* PLP：景点卡只要「看详情」，藏电商加购/对比/快速查看 */
body.pic-category [data-testid="product-card-add-to-cart"],
body.pic-category [data-testid="product-card-buy-now"],
body.pic-category button[aria-label="Add to Cart"],
body.pic-category button[aria-label="Buy Now"],
body.pic-category button[aria-label="Add to Compare"],
body.pic-category button[aria-label="Quick View"],
body.pic-category button[aria-label="Add to Favorites"],
body.pic-category .amz-product-card__actions,
body.pic-category .weline-product-card__actions,
body.pic-category .wpc-listing-card__actions,
body.pic-category .product-card__compare,
body.pic-category .product-card__wishlist,
body.pic-category .product-card__quick-view,
body.pic-category .product-actions--amz,
body.pic-category .category-layout__recommendations,
body.pic-category [data-testid="recommended-products"],
body.pic-category .amz-plp__results-text {
    display: none !important;
}

/* 藏 /category/pic-tickets（500 未修前不暴露） */
a[href*="/category/pic-tickets"],
a[href*="/category/pic-tickets/"],
li:has(> a[href*="/category/pic-tickets"]),
.amz-plp__child[href*="/category/pic-tickets"],
.w-filters__dept:has(a[href*="/category/pic-tickets"]) {
    display: none !important;
}

/* PIC 站禁用古风 Store ambiance + Amazon CS 浮层 */
body.pic-body .w-store-music,
body.pic-body .w-store-music-host,
body.pic-body [data-testid="store-music-widget"],
body.pic-body .customer-service-widget--,
body.pic-body #customer-service-widget.customer-service-widget--,
body.pic-category .w-store-music,
body.pic-category .customer-service-widget--,
body.pic-product .w-store-music,
body.pic-product .customer-service-widget--,
body:has(.pic-root) .w-store-music,
body:has(.pic-root) .w-store-music-host,
body:has(.pic-root) #weline-store-music,
body:has(.pic-root) .customer-service-widget-- {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.pic-footer { background: var(--color-bg-dark, #0d2442); }
.pic-footer h2 { color: #fff; }
.pic-footer__col a:hover { color: #fff; }

@media (max-width: 1100px) {
    body.pic-product .pic-pdp__wrapper {
        grid-template-columns: 1fr;
    }
    body.pic-product .pic-pdp__rail { position: static; }
}
@media (max-width: 1080px) {
    body.pic-product .pic-header__actions,
    body.pic-category .pic-header__actions { gap: 10px; }
}

/* ==========================================================================
   Phase-2 homepage skin（对齐 full-ui-demo · 禁止整包粘贴 styles.css）
   ========================================================================== */
.pic-serif { font-family: var(--pic-font-display); }

.pic-hero--discover {
    /* 压缩首屏高度，保证 Hero Buy CTA 落在首屏下半、不被旗舰竖卡顶走 */
    --pic-fs-h1: clamp(32px, 4.2vw, 56px);
    min-height: 320px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-bottom: 28px;
    color: #fff;
}
.pic-hero--discover .pic-hero__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
.pic-hero--discover::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    /* Phase-2 full-ui-demo：冷海军蓝左 scrim（非琥珀暖罩）
       紫禁城俯瞰图天空亮、屋面暖，加强左+顶压暗，保白字/黄标 ≥4.5:1
       2026-10-29 对比度实测：hero 文案区合成底色需更暗，左侧 .94→ .96、中段 .60→ .78、顶部 .45→ .60 */
    background:
        linear-gradient(90deg, rgba(4, 24, 46, .96), rgba(4, 24, 46, .78) 55%, rgba(4, 24, 46, .18)),
        linear-gradient(180deg, rgba(4, 24, 46, .60), rgba(4, 24, 46, 0) 55%);
}
.pic-hero--discover .pic-hero__inner {
    position: relative;
    z-index: 2;
    padding: 48px 20px 16px;
    width: min(820px, 100%);
}
.pic-hero--discover .pic-hero__copy {
    max-width: 760px;
    background: transparent !important;
}
.pic-hero--discover .pic-hero__eyebrow {
    color: #ffcc49;
    letter-spacing: .18em;
    text-shadow: none;
}
.pic-hero.pic-hero--discover h1 {
    font-family: var(--pic-font-display);
    /* 直接字号，避开全局 --pic-fs-h1（72px clamp）把首屏顶高 */
    font-size: clamp(32px, 4.2vw, 56px);
    line-height: 1.02;
    letter-spacing: -.035em;
    margin: 10px 0;
    text-shadow: none;
    max-width: 760px;
}
.pic-hero--discover .pic-hero__lead {
    font-size: 16px;
    max-width: 620px;
    color: #fff;
    margin: 0 0 10px;
    text-shadow: none;
}
.pic-hero--discover .pic-trust-strip {
    margin: 0 0 4px;
}
.pic-hero--discover .pic-hero__actions {
    margin-top: 12px;
    gap: 10px 12px;
}
.pic-hero--discover .pic-btn--accent {
    box-shadow: 0 8px 22px rgba(0, 0, 0, .22);
}
/* Hero 是亮调长城照片（已去掉整幅暗 veil）：半透明白描边按钮在天空上几乎不可读，
   次要 CTA 改实白底 + 墨蓝字，保证 ≥4.5:1 对比并保住「一个主按钮」的强调预算。 */
.pic-hero--discover a.pic-btn--on-dark,
.pic-hero--discover a.pic-btn--ghost {
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(255, 255, 255, .94);
    color: var(--pic-brand, #0f66d8);
    box-shadow: 0 6px 18px rgba(9, 32, 63, .18);
}
.pic-hero--discover a.pic-btn--on-dark:hover,
.pic-hero--discover a.pic-btn--ghost:hover {
    background: #fff;
    border-color: #fff;
    color: var(--pic-brand-strong, #0b4ea8);
}

.pic-hero__search {
    position: relative;
    z-index: 3;
    margin-top: 8px;
    margin-bottom: -48px;
}
.pic-plan-panel.pic-search-card {
    border-radius: 16px;
    box-shadow: var(--pic-shadow);
    padding: 8px;
    border: 1px solid var(--pic-line);
}
.pic-plan-panel .pic-search-card__rows {
    grid-template-columns: 1.35fr 1fr 1fr auto;
    gap: 0;
    align-items: stretch;
}
.pic-plan-panel .pic-field {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 12px 14px;
    border-right: 1px solid var(--pic-line);
}
.pic-plan-panel .pic-field:last-of-type { border-right: 0; }
.pic-plan-panel .pic-field label {
    margin-bottom: 4px;
    font-size: 10px;
    letter-spacing: .1em;
}
.pic-plan-panel .pic-field select,
.pic-plan-panel .pic-field input {
    border: 0;
    background: transparent;
    padding: 0;
    border-radius: 0;
}
.pic-plan-panel .pic-btn--search {
    margin: 6px;
    border-radius: 10px;
}

.pic-section { padding: 88px 0; }
.pic-section--tight { padding-top: 64px; padding-bottom: 64px; }
.pic-sec-head--compact { margin-bottom: 12px; align-items: flex-end; }
.pic-sec-head h2.pic-serif,
.pic-panel h3.pic-serif,
.pic-panel h2.pic-serif {
    font-family: var(--pic-font-display);
    letter-spacing: -.02em;
}

.pic-chips { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 22px; }
.pic-chip {
    border: 1px solid var(--pic-line);
    background: #fff;
    color: var(--pic-ink);
    border-radius: 999px;
    padding: 9px 14px;
    font-weight: 600;
    font-size: 13px;
}
.pic-chip:hover { border-color: var(--pic-brand); color: var(--pic-brand); }
.pic-chip.is-active {
    background: var(--pic-ink);
    color: #fff;
    border-color: var(--pic-ink);
}

.pic-grid--routes {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
.pic-home .pic-card {
    border-radius: var(--pic-radius-lg);
    box-shadow: 0 6px 20px rgba(31, 58, 82, .04);
}
.pic-home .pic-card__thumb { aspect-ratio: 16 / 10; }
.pic-home .pic-card__badge {
    background: #fff;
    color: var(--pic-ink);
    font-weight: 800;
    min-width: auto;
    height: auto;
    padding: 5px 9px;
    box-shadow: 0 4px 12px rgba(24, 52, 79, .12);
}
.pic-home .pic-card__title {
    font-family: var(--pic-font-display);
    font-size: 22px;
    font-weight: 700;
}
.pic-home .pic-card__link {
    font-weight: 700;
    font-size: 13px;
    color: var(--pic-brand);
    margin-left: auto;
}
.pic-home .pic-card__price { color: var(--pic-brand); }

.pic-styles-band {
    padding: 26px 0 34px;
    border-top: 1px solid var(--pic-line);
    border-bottom: 1px solid var(--pic-line);
    background: var(--pic-surface);
}
.pic-styles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0;
}
.pic-style-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 14px 8px;
    border-right: 1px solid var(--pic-line);
    text-align: center;
}
.pic-style-tile:last-child { border-right: 0; }
.pic-style-tile__icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
}
.pic-style-tile strong { font-size: 12px; color: var(--pic-ink); }
.pic-style-tile span { font-size: 10px; color: var(--pic-ink-faint); line-height: 1.3; }
.pic-style-tile:hover { background: var(--pic-canvas); }

.pic-split {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 24px;
}
.pic-panel {
    border: 1px solid var(--pic-line);
    border-radius: 20px;
    background: #fff;
    overflow: hidden;
}
.pic-panel__pad { padding: 22px; }
.pic-panel--map .pic-map__box,
.pic-panel--map .pic-map-fallback {
    min-height: 360px;
    background: #edf5fc;
}
.pic-map-fallback { padding: 0 22px 8px; }
.pic-guide-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.pic-guide-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 15px 0;
    border-bottom: 1px solid var(--pic-line);
}
.pic-guide-item:nth-last-child(-n+2) { border-bottom: 0; }
.pic-guide-item__copy { display: flex; gap: 12px; align-items: flex-start; min-width: 0; }
.pic-guide-item__icon {
    width: 38px; height: 38px; border-radius: 12px; flex: 0 0 auto;
    display: grid; place-items: center;
    background: #edf5ff; color: var(--pic-gic, var(--pic-brand));
}
.pic-guide-item b { display: block; font-size: 14px; color: var(--pic-ink); }
.pic-guide-item small { display: block; margin-top: 3px; color: var(--pic-ink-soft); font-size: 11px; }
.pic-guide-item__arrow { color: #566d86; flex: 0 0 auto; }

.pic-cta--band {
    background: #10273d;
    color: #fff;
    border-radius: 24px;
    padding: 42px;
    display: flex;
    justify-content: space-between;
    gap: 30px;
    align-items: center;
    overflow: visible;
}
.pic-cta--band .pic-cta__body { max-width: 720px; }
.pic-cta--band .pic-cta__body h2 {
    font-family: var(--pic-font-display);
    font-size: 34px;
    margin: 0 0 8px;
    color: #fff;
}
.pic-cta--band .pic-cta__body p {
    margin: 0;
    color: rgba(255, 255, 255, .72);
}
.pic-cta--band .pic-cta__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    flex: 0 0 auto;
}
.pic-cta--band .pic-btn--ghost.pic-btn--on-dark {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .45);
    color: #fff;
}

@media (max-width: 1100px) {
    .pic-nav { display: none; }
    .pic-nav.is-open {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 100%;
        left: 0; right: 0;
        background: #fff;
        border-bottom: 1px solid var(--pic-line);
        padding: 12px 20px 18px;
        z-index: 1001;
    }
    .pic-burger { display: inline-flex; }
    a.pic-btn.pic-btn--header,
    .pic-btn.pic-btn--header { display: none; }
    .pic-grid--routes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pic-split { grid-template-columns: 1fr; }
    .pic-styles-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pic-style-tile:nth-child(4n) { border-right: 0; }
}
@media (max-width: 760px) {
    .pic-hero--discover { min-height: 400px; padding-bottom: 56px; }
    /* 窄屏文字横向占满，左向渐变到右缘已近 0：改竖向压暗 + 右缘保留 35% 底色 */
    .pic-hero--discover::before {
        background:
            linear-gradient(90deg, rgba(4, 24, 46, .90), rgba(4, 24, 46, .72) 55%, rgba(4, 24, 46, .35)),
            linear-gradient(180deg, rgba(4, 24, 46, .55), rgba(4, 24, 46, 0) 65%);
    }
    .pic-hero__search { margin-bottom: -36px; }
    .pic-plan-panel .pic-search-card__rows { grid-template-columns: 1fr; }
    .pic-plan-panel .pic-field { border-right: 0; border-bottom: 1px solid var(--pic-line); }
    .pic-plan-panel .pic-btn--search { width: calc(100% - 12px); }
    .pic-grid--routes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pic-styles-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pic-style-tile { border-right: 0; border-bottom: 1px solid var(--pic-line); }
    .pic-guide-list { grid-template-columns: 1fr; }
    .pic-guide-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--pic-line); }
    .pic-guide-item:last-child { border-bottom: 0; }
    .pic-cta--band { display: block; padding: 30px; }
    .pic-cta--band .pic-cta__actions { margin-top: 20px; }
    .pic-section { padding: 68px 0; }
    .pic-sec-head { display: block; }
}
@media (max-width: 520px) {
    .pic-grid--routes { grid-template-columns: 1fr; }
    .pic-logo__text small { display: none; }
}

/* ==========================================================================
   Phase-2 内页（对齐 full-ui-demo：page-hero / filter-layout / content-card /
   detail-hero / day-card / sidebar）— 仅 .pic-*，禁止整包粘贴 styles.css
   ========================================================================== */

.pic-section--tight { padding-top: 28px; padding-bottom: 56px; }

.pic-page-hero {
    --pic-page-hero-image: url("/static/Weline/playinginchina/frontend/assets/img/hero-great-wall-bright.webp?v=goldenHour7");
    padding: 54px 0 42px;
    color: #fff;
    /* Align full-ui-demo .page-hero: scrim + photography (not solid second gradient). */
    background:
        linear-gradient(105deg, rgba(5, 29, 58, .92), rgba(11, 66, 112, .58)),
        var(--pic-page-hero-image) center / cover;
    background-size: cover;
    background-position: center;
}
.pic-page-hero h1 {
    font-family: var(--pic-font-display);
    font-size: clamp(34px, 4.6vw, 58px);
    line-height: 1.04;
    letter-spacing: -.04em;
    margin: 8px 0 16px;
    color: #fff;
}
/* 风格稿工具页（线路 / 线路详情 / 旅行方式 / 方式详情 / 地图 / 指南列表）H1+H2 走 Inter 无衬线，
   编辑页（首页 / 目的地 / 目的地详情 / 指南详情 / 关于）仍用 Georgia 衬线；由布局加 .pic-sans-heads。 */
.pic-sans-heads .pic-page-hero h1,
.pic-sans-heads .pic-page-hero h2,
.pic-sans-heads .pic-prose h2,
.pic-sans-heads .pic-section > .pic-container > h2,
.pic-sans-heads .pic-sec-head h2 {
    font-family: var(--pic-font);
    font-weight: 700;
    letter-spacing: -.02em;
}
.pic-page-hero p {
    max-width: 760px;
    font-size: 17px;
    line-height: 1.7;
    color: #e4effc;
    margin: 0;
}
.pic-page-hero__crumb {
    font-size: 12.5px;
    opacity: .88;
    margin-bottom: 18px;
    color: #d6e4f5;
}
.pic-page-hero__crumb a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.pic-page-hero__crumb a:hover { color: #ffb51b; }
.pic-kicker--on-hero {
    color: #ffb51b;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pic-filter-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 24px;
    align-items: start;
}
.pic-filter-sidebar { position: sticky; top: 88px; align-self: start; }
.pic-filter-group {
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--pic-line);
}
.pic-filter-group:last-child { border-bottom: 0; margin-bottom: 0; }
.pic-filter-group h3 {
    font-size: 13px;
    margin: 0 0 10px;
    color: var(--pic-ink);
}
.pic-filter-group .pic-chip { display: inline-flex; margin: 0 6px 8px 0; }
/* 设计稿筛选侧栏：Travel style / Region 为圆点单选行（票价为胶囊） */
.pic-filter-rows { display: grid; gap: 2px; }
.pic-filter-row {
    display: flex; align-items: center; gap: 9px;
    padding: 5px 0;
    font-size: 13.5px; line-height: 1.45;
    color: var(--pic-ink);
    text-decoration: none;
}
.pic-filter-row:hover { color: var(--pic-brand); }
.pic-filter-dot {
    flex: 0 0 14px;
    width: 14px; height: 14px;
    border: 1.5px solid var(--pic-line-strong);
    border-radius: 50%;
    background: #fff;
}
.pic-filter-row.is-active .pic-filter-dot {
    border-color: var(--pic-brand);
    background: radial-gradient(circle, var(--pic-brand) 0 3.5px, #fff 4px);
}
.pic-filter-row.is-active span { font-weight: 700; color: var(--pic-ink); }
.pic-result-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 18px;
}
.pic-result-count { color: var(--pic-ink-soft); font-size: 13px; }
.pic-sort {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 13px; color: var(--pic-ink-soft);
}
.pic-sort > span {
    font-size: 11.5px; font-weight: 700; letter-spacing: .4px;
    text-transform: uppercase; color: var(--pic-ink-faint);
}
.pic-sort select {
    font: inherit; font-size: 13px;
    padding: 7px 10px;
    border: 1px solid var(--pic-line-strong);
    border-radius: var(--pic-radius-sm);
    background: #fdfcfa; color: var(--pic-ink);
}
.pic-sort__status { font-size: 12.5px; color: var(--pic-ink-soft); }

.pic-chip {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    font-weight: 600;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid var(--pic-line-strong);
    background: var(--pic-surface);
    color: var(--pic-ink);
}
.pic-chip:hover { border-color: var(--pic-brand); color: var(--pic-brand); }
.pic-chip.is-active {
    background: var(--pic-brand);
    border-color: var(--pic-brand);
    color: #fff;
}

.pic-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.pic-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.pic-grid-4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.pic-content-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--pic-line);
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(23, 58, 98, .05);
    color: inherit;
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease;
}
.pic-content-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(23, 58, 98, .1);
}
.pic-content-card__media { position: relative; display: block; }
.pic-content-card__media img {
    display: block;
    width: 100%;
    height: 190px;
    object-fit: cover;
}
.pic-content-card__badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 1;
    background: rgba(16, 45, 89, .88);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 9px;
    border-radius: 999px;
}
.pic-content-card__body { padding: 17px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.pic-content-card__body h3 {
    margin: 0;
    color: #102e5c;
    font-size: 19px;
    font-family: var(--pic-font);
    font-weight: 750;
    line-height: 1.25;
}
.pic-content-card__body p {
    color: #627895;
    line-height: 1.6;
    margin: 0;
    font-size: 14.5px;
}
.pic-content-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: baseline;
    font-size: 13px;
    color: var(--pic-ink-soft);
}
.pic-content-card__meta--secondary {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    font-weight: 400;
    color: #8a97a8;
}
.pic-content-card__meta--secondary .pic-price,
.pic-content-card__meta--secondary strong {
    font-weight: 500;
    color: inherit;
}
.pic-content-card--row {
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;
    padding: 18px;
}
.pic-content-card--row .pic-content-card__body { padding: 0; }
.pic-card-link {
    margin-top: auto;
    font-size: 14px;
    font-weight: 650;
    color: var(--pic-link);
}
/* 列表页卡片下方的关联目的地入口（hub → detail 内链） */
.pic-card-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
    align-self: start;
}
.pic-card-destinations {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0 2px;
}
.pic-card-destinations .pic-chip {
    padding: 6px 11px;
    font-size: 12px;
    font-weight: 600;
}
.pic-pill {
    display: inline-flex;
    align-items: center;
    width: max-content;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .02em;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--pic-brand-soft);
    color: var(--pic-brand);
}
.pic-price { color: var(--pic-price); font-weight: 750; }

/* detail-hero */
.pic-detail-hero {
    padding: 120px 0 50px;
    position: relative;
    min-height: 420px;
    color: #fff;
    background-color: #102d59;
    background-image:
        linear-gradient(rgba(10, 28, 43, .46), rgba(10, 28, 43, .46)),
        var(--pic-detail-hero-image, none);
    background-size: cover;
    background-position: center;
}
.pic-detail-hero > * { position: relative; z-index: 2; }
.pic-detail-hero .pic-page-hero__crumb,
.pic-detail-hero .pic-crumb__inner { color: rgba(255,255,255,.85); margin-bottom: 24px; }
.pic-detail-hero .pic-page-hero__crumb a { color: #fff; }
.pic-detail-hero__grid {
    display: grid;
    grid-template-columns: 1.3fr .7fr;
    gap: 28px;
    align-items: end;
}
.pic-detail-hero h1 {
    font-family: var(--pic-font-display);
    font-size: clamp(40px, 5vw, 60px);
    line-height: 1;
    margin: 0 0 12px;
    color: #fff;
}
.pic-detail-summary {
    font-size: 17px;
    max-width: 720px;
    margin: 0;
    color: #eef5ff;
    line-height: 1.55;
}
.pic-stat-card {
    background: rgba(255, 255, 255, .94);
    color: var(--pic-ink);
    border-radius: 18px;
    padding: 20px;
}
.pic-stat-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid var(--pic-line);
    font-size: 12px;
}
.pic-stat-line:last-child { border-bottom: 0; }
.pic-stat-line strong { font-size: 13px; text-align: right; }

.pic-detail-content {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 28px;
    align-items: start;
}
.pic-page-columns {
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    gap: 28px;
    align-items: start;
}
.pic-page-columns--map { grid-template-columns: 1.5fr .7fr; }

.pic-sidebar-card {
    padding: 20px;
    background: #fff;
    border: 1px solid var(--pic-line);
    border-radius: 14px;
    margin-bottom: 15px;
}
.pic-sidebar-card h3 { font-size: 17px; margin: 0 0 12px; color: var(--pic-ink); }
.pic-sidebar-card p { margin: 0 0 10px; font-size: 14.5px; color: var(--pic-ink-soft); line-height: 1.55; }
/* 正文链色；排除 .pic-btn，避免蓝底主 CTA 继承 --pic-link 导致对比度崩。 */
.pic-sidebar-card a:not(.pic-btn) { color: var(--pic-link); }

.pic-route-days { display: grid; gap: 12px; }
.pic-day-card {
    padding: 18px;
    background: #fff;
    border: 1px solid var(--pic-line);
    border-radius: 12px;
    display: grid;
    grid-template-columns: 84px 1fr;
    gap: 15px;
}
.pic-day-number {
    font-size: 13px;
    font-weight: 800;
    color: #1472e8;
    background: #edf5ff;
    border-radius: 9px;
    padding: 10px;
    text-align: center;
    height: max-content;
}
.pic-day-card h3 { margin: 0 0 5px; font-size: 17px; color: var(--pic-ink); }
.pic-day-card p { margin: 0; color: #627895; line-height: 1.6; font-size: 14.5px; }

/* Route / destination food guide — grouped cards, scannable layout */
.pic-food-guide {
    margin: 40px 0 12px;
    padding: 28px 22px 22px;
    border: 1px solid var(--pic-line);
    border-radius: 18px;
    background:
        linear-gradient(180deg, color-mix(in srgb, #c07a1e 8%, #fff) 0%, #fff 48px);
}
.pic-food-guide__head { margin-bottom: 18px; max-width: 68ch; }
.pic-food-guide__eyebrow {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #9a5b12;
}
.pic-food-guide h2 {
    margin: 0 0 8px;
    font-size: clamp(22px, 2.4vw, 28px);
    line-height: 1.2;
    color: var(--pic-ink);
}
.pic-food-guide__lead {
    margin: 0 0 8px;
    color: var(--pic-ink-soft);
    line-height: 1.55;
}
.pic-food-guide__count {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: #7a8699;
}
.pic-food-group + .pic-food-group { margin-top: 22px; }
.pic-food-group__title {
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px dashed color-mix(in srgb, var(--pic-line) 85%, #c07a1e);
    font-size: 16px;
    font-weight: 700;
    color: var(--pic-ink);
}
.pic-food-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.pic-food-card {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 0;
    min-height: 118px;
    background: #fff;
    border: 1px solid var(--pic-line);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 1px 0 color-mix(in srgb, var(--pic-ink) 4%, transparent);
}
.pic-food-card__media {
    min-height: 100%;
    aspect-ratio: auto;
    background: #eef3f8;
}
.pic-food-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pic-food-card__body {
    padding: 12px 14px 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.pic-food-card__title {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.3;
    color: var(--pic-ink);
}
.pic-food-card__zh { font-weight: 500; color: #7a8699; font-size: 0.92em; }
.pic-food-card__meta,
.pic-food-card__notes,
.pic-food-card__price,
.pic-food-card__source {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--pic-ink-soft);
}
.pic-food-card__notes {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pic-food-card__flag {
    margin: 0;
    font-size: 11.5px;
    font-weight: 700;
    color: #9a5b12;
}
.pic-food-card__source { margin-top: auto; padding-top: 4px; }
.pic-food-card__source a { color: var(--pic-link); }
.pic-content-card--food {
    outline: 1px solid color-mix(in srgb, #c07a1e 35%, transparent);
}
@media (min-width: 1100px) {
    .pic-food-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    .pic-food-card { grid-template-columns: 148px minmax(0, 1fr); }
}
@media (max-width: 720px) {
    .pic-food-guide { padding: 20px 14px 14px; }
    .pic-food-grid { grid-template-columns: 1fr; }
    .pic-food-card { grid-template-columns: 96px minmax(0, 1fr); }
}

.pic-feature-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}
.pic-feature {
    background: #fff;
    border: 1px solid var(--pic-line);
    border-radius: 14px;
    padding: 16px;
}
.pic-feature strong { display: block; font-size: 15px; margin-bottom: 6px; color: var(--pic-ink); }
.pic-feature span { display: block; font-size: 13.5px; color: var(--pic-ink-soft); line-height: 1.5; }

.pic-map-large,
.pic-map__live {
    width: 100%;
    height: 520px;
    border-radius: 16px;
    border: 1px solid var(--pic-line);
    overflow: hidden;
    background: var(--pic-canvas-alt);
}

.pic-detail-hero .pic-tags .pic-tag {
    background: rgba(255,255,255,.16);
    border-color: rgba(255,255,255,.35);
    color: #fff;
}
.pic-detail-hero .pic-tag--accent {
    background: rgba(255, 181, 27, .2);
    border-color: #ffb51b;
    color: #ffd98a;
}

@media (max-width: 1100px) {
    .pic-filter-layout { grid-template-columns: 1fr; }
    .pic-filter-sidebar {
        position: static;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }
    .pic-filter-group {
        border: 1px solid var(--pic-line);
        padding: 14px;
        border-radius: 14px;
        margin: 0;
    }
    .pic-detail-hero__grid,
    .pic-detail-content,
    .pic-page-columns,
    .pic-page-columns--map { grid-template-columns: 1fr; }
    .pic-stat-card { max-width: 480px; }
    .pic-grid-3,
    .pic-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .pic-page-hero { padding: 38px 0 30px; }
    .pic-page-hero h1 { font-size: 36px; }
    .pic-detail-hero { padding: 100px 0 36px; min-height: 360px; }
    .pic-detail-hero h1 { font-size: 40px; }
    .pic-filter-sidebar { grid-template-columns: 1fr; }
    .pic-grid-3,
    .pic-grid-2,
    .pic-grid-4,
    .pic-feature-list { grid-template-columns: 1fr; }
    .pic-day-card { grid-template-columns: 1fr; }
    .pic-map-large,
    .pic-map__live { height: 320px; }
}

/* ------------------------------------------------------------------
   无图占位（媒体层只保留可验证图片，查不到图的记录不用错图）
   ------------------------------------------------------------------ */
.pic-content-card__ph {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 190px;
    background: linear-gradient(135deg, var(--pic-sand, #f4efe6) 0%, var(--pic-sand-2, #e8e0d2) 100%);
    color: var(--pic-ink-faint, #9a938a);
}
.pic-content-card__ph b {
    font-family: var(--font-family-display, inherit);
    font-size: 46px;
    font-weight: 600;
    line-height: 1;
    opacity: .5;
}

/* ------------------------------------------------------------------
   Travel type detail — Phase-2 编辑式
   Hero → 引言卡（navy）→ Suggested routes → Planning checklist → 少量地点
   ------------------------------------------------------------------ */
.pic-travel-intro {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, .8fr);
    gap: 32px;
    background: var(--pic-navy);
    color: #fff;
    border-radius: var(--pic-radius-lg);
    padding: 38px 40px;
    box-shadow: var(--pic-shadow);
}
.pic-travel-intro__copy .pic-kicker { color: var(--pic-accent); }
.pic-travel-intro__copy h2 {
    font-family: var(--pic-font-display);
    font-size: clamp(24px, 2.2vw, 34px);
    line-height: 1.15;
    margin: 8px 0 10px;
    color: #fff;
    letter-spacing: -.02em;
}
.pic-travel-intro__copy p:not(.pic-kicker) {
    color: rgba(255, 255, 255, .78);
    font-size: 15px;
    line-height: 1.65;
    margin: 0;
    max-width: 62ch;
}
.pic-travel-intro__facts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    border-left: 1px solid rgba(255, 255, 255, .18);
    padding-left: 28px;
    align-content: center;
}
.pic-travel-intro__facts b {
    display: block;
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .55);
    font-weight: 700;
}
.pic-travel-intro__facts span {
    display: block;
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    margin-top: 2px;
}
.pic-checklist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}
.pic-checklist li {
    position: relative;
    background: #fff;
    border: 1px solid var(--pic-line);
    border-radius: 12px;
    padding: 14px 16px 14px 44px;
    color: var(--pic-ink);
    font-size: 14px;
    line-height: 1.5;
}
.pic-checklist li::before {
    content: "✓";
    position: absolute;
    left: 16px;
    top: 12px;
    color: var(--pic-brand);
    font-weight: 800;
}
.pic-text-link {
    color: var(--pic-brand);
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    white-space: nowrap;
}
.pic-text-link:hover { text-decoration: underline; }

@media (max-width: 1100px) {
    .pic-travel-intro { grid-template-columns: 1fr; padding: 28px; }
    .pic-travel-intro__facts {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, .18);
        padding-left: 0;
        padding-top: 18px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 760px) {
    .pic-travel-intro { padding: 22px; }
    .pic-travel-intro__facts { grid-template-columns: 1fr; }
}

/* Routes list — Phase-2 filter bar (client-side; query-string FPC safe) */
.pic-route-filter {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, .8fr) minmax(0, .8fr) auto;
    gap: 12px;
    align-items: center;
    background: #fff;
    border: 1px solid var(--pic-line);
    border-radius: 14px;
    padding: 12px;
    margin: 20px 0 16px;
    box-shadow: var(--pic-shadow-sm);
}
.pic-route-filter__field { position: relative; display: block; margin: 0; }
.pic-route-filter__icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--pic-ink-faint);
    font-size: 17px;
    line-height: 1;
    pointer-events: none;
}
.pic-route-filter input,
.pic-route-filter select {
    width: 100%;
    border: 1px solid var(--pic-line);
    border-radius: 10px;
    padding: 11px 12px;
    background: #fff;
    font: inherit;
    font-size: 14px;
    color: var(--pic-ink);
}
.pic-route-filter input { padding-left: 34px; }
.pic-route-filter input:focus,
.pic-route-filter select:focus { outline: 2px solid color-mix(in srgb, var(--pic-brand) 35%, #fff); outline-offset: 1px; border-color: var(--pic-brand); }
.pic-route-filter__count {
    color: var(--pic-ink-soft);
    font-size: 13px;
    white-space: nowrap;
    padding: 0 8px;
    text-align: right;
}
@media (max-width: 900px) {
    .pic-route-filter { grid-template-columns: 1fr 1fr; }
    .pic-route-filter__count { grid-column: 1 / -1; text-align: left; padding: 0 4px; }
}
@media (max-width: 560px) {
    .pic-route-filter { grid-template-columns: 1fr; }
}

/* Remote image failure → neutral branded placeholder (no broken icon / raw alt text) */
.pic-media-fallback {
    position: relative;
    background: linear-gradient(135deg, #eef4fb 0%, #dbe7f4 100%);
}
.pic-media-fallback::after {
    content: attr(data-pic-fallback-label);
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--pic-font-display);
    font-size: 44px;
    font-weight: 700;
    color: rgba(24, 48, 79, .26);
    letter-spacing: -.02em;
    pointer-events: none;
}

/* Route detail — food notes collapse below the itinerary */
.pic-food-details {
    margin-top: 30px;
    border-top: 1px solid var(--pic-line);
    padding-top: 14px;
}
.pic-food-details > summary {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 0;
    font-weight: 700;
    color: var(--pic-ink);
    list-style: none;
}
.pic-food-details > summary::-webkit-details-marker { display: none; }
.pic-food-details > summary::after {
    content: "+";
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid var(--pic-line-strong);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: var(--pic-brand);
    flex: 0 0 auto;
}
.pic-food-details[open] > summary::after { content: "−"; }
.pic-food-details > summary small {
    margin-left: auto;
    font-weight: 500;
    font-size: 12px;
    color: var(--pic-ink-soft);
}
.pic-food-details .pic-food-guide__head h2 { display: none; }
.pic-food-details .pic-food-guide { margin-top: 8px; }


/* ---------------------------------------------------------------------------
   2026-10-21 收口：详情页可折叠补充块 / 关于页双列事实卡 / 正文 h3
   --------------------------------------------------------------------------- */
.pic-prose h3 {
    font-family: var(--pic-font-display);
    font-size: 18px; font-weight: 700;
    color: var(--pic-ink);
    margin: 20px 0 8px;
}
.pic-more {
    margin: 18px 0 0;
    padding: 14px 16px;
    background: var(--pic-surface);
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius);
}
.pic-more > summary {
    cursor: pointer;
    list-style: none;
    font-family: var(--pic-font-display);
    font-size: 18px; font-weight: 700;
    color: var(--pic-ink);
}
.pic-more > summary::-webkit-details-marker { display: none; }
.pic-more > summary::after {
    content: '+';
    float: right;
    color: var(--pic-ink-soft);
    font-weight: 700;
}
.pic-more[open] > summary::after { content: '–'; }
.pic-more > summary + * { margin-top: 10px; }

.pic-about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-top: 4px;
}
.pic-about-grid__card {
    padding: 20px 22px;
    background: var(--pic-surface);
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius);
}
.pic-about-grid__card h2 { font-size: 20px; margin: 0 0 10px; }
.pic-about-grid__card ul { margin: 0; padding-left: 18px; display: grid; gap: 8px; }
.pic-about-grid__card li { font-size: 14.5px; line-height: 1.6; color: var(--pic-ink-soft); }
.pic-about-grid__card p { margin: 0 0 10px; font-size: 14.5px; line-height: 1.65; color: var(--pic-ink-soft); }
.pic-about-grid__card p:last-child { margin-bottom: 0; }
@media (max-width: 860px) {
    .pic-about-grid { grid-template-columns: 1fr; }
}

/* /map：全量点位走 markercluster，点与簇都按主题品牌色渲染 */
.pic-map-dot {
    background: var(--pic-brand);
    border: 1px solid #fff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(9, 32, 63, .35);
}
.pic-map-large .marker-cluster-small,
.pic-map-large .marker-cluster-medium,
.pic-map-large .marker-cluster-large {
    background: rgba(22, 119, 242, .18);
}
.pic-map-large .marker-cluster-small div,
.pic-map-large .marker-cluster-medium div,
.pic-map-large .marker-cluster-large div {
    background: var(--pic-brand);
    color: #fff;
    font-weight: 700;
    font-family: var(--pic-font);
    box-shadow: 0 2px 8px rgba(9, 32, 63, .28);
}

/* ---------------------------------------------------------------------------
   窄屏页头兜底（≤560）：logo 文字可截断、隐二级副标题/语言标签，汉堡固定 44px。
   320px 下曾出现 logo + 操作区挤不下、汉堡被推到视口外（x=362 @320）。
   --------------------------------------------------------------------------- */
@media (max-width: 560px) {
    .pic-header__inner { gap: 10px; }
    .pic-logo { gap: 8px; flex: 0 1 auto; min-width: 0; }
    .pic-logo__mark { width: 40px; height: 40px; }
    .pic-logo__text { min-width: 0; }
    .pic-logo__text b {
        font-size: 16px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 44vw;
    }
    .pic-logo__text small { display: none; }
    .pic-lang { display: none; }
    .pic-header__actions { gap: 8px; margin-inline-start: auto; }
    .pic-auth-link { white-space: nowrap; }
    .pic-burger {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        margin: 0;
    }
}
@media (max-width: 360px) {
    .pic-logo__text b { font-size: 15px; max-width: 40vw; }
}

/* 目的地库搜索：跨内容类型聚合入口（线路 / 指南 / 旅行方式） */
.pic-also-found {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
}
.pic-also-found__label {
    font-size: 11.5px; font-weight: 700; letter-spacing: .4px;
    text-transform: uppercase; color: var(--pic-ink-faint);
    margin-right: 2px;
}

/* 桌面顶栏宽度预算（Marker: pic-header-nav-fit-v2）
 * 版心封顶 --weline-layout-content-max-width:1260px → 内容盒恒 ≈1186px，
 * 视口再宽导航可用宽度也不增加：6 项导航 + 搜索 + EN + Log in + CTA 同排时必须压缩密度。
 * 原断点 max-width:1500 只覆盖 1440 及以下，1512 / 1536 / 1920 全部漏掉 → Travel Guide 被截成 Travel、Blog 不可见。
 * 三档：≥1241 / 1081–1240（隐藏语言指示）/ 1081–1140（更紧）；≤1080 由汉堡接管。
 */
@media (min-width: 1241px) {
    .pic-header__inner { gap: 10px; }
    .pic-nav { gap: 0; margin-inline-start: 2px; }
    .pic-nav__link { padding: 8px 6px; font-size: 11.5px; }
    .pic-header__actions { gap: 8px; }
    .pic-search { min-width: 180px; padding: 8px 10px; }
}
@media (min-width: 1081px) and (max-width: 1240px) {
    .pic-header__inner { gap: 8px; }
    .pic-nav { gap: 0; margin-inline-start: 2px; }
    .pic-nav__link { padding: 8px 4px; font-size: 11px; }
    .pic-header__actions { gap: 6px; }
    .pic-lang { display: none; }
    .pic-search { min-width: 150px; padding: 8px 10px; }
}
@media (min-width: 1081px) and (max-width: 1140px) {
    .pic-header__inner { gap: 6px; }
    .pic-nav__link { padding: 8px 3px; font-size: 10.5px; }
    .pic-header__actions { gap: 4px; }
    .pic-search { min-width: 120px; padding: 8px 8px; }
}

/* ==========================================================================
   History section (2026-10-26)
   - /guide/history hub: twelve-period spine + six editorial chapters
   - destination detail: History & background note
   - homepage: dark editorial band between Top 20 and Travel styles
   Only --pic-* tokens; no new palette.
   ========================================================================== */
.pic-history { background: var(--pic-canvas); }

.pic-history-hero {
    padding: 64px 0 0;
    background: linear-gradient(180deg, var(--pic-canvas) 0%, var(--pic-surface) 100%);
}
.pic-history-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: 56px;
    align-items: end;
}
.pic-history-hero .pic-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    color: var(--pic-ink-soft);
}
.pic-history-hero .pic-kicker::before {
    content: "";
    width: 34px;
    height: 2px;
    background: var(--pic-accent);
}
.pic-history-hero h1 {
    margin: 0 0 18px;
    font-size: clamp(40px, 5vw, 64px);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -2px;
    color: var(--pic-ink);
    max-width: 24ch;
    text-wrap: balance;
}
.pic-history-hero__lead {
    margin: 0;
    max-width: 62ch;
    font-size: 19px;
    line-height: 1.6;
    color: var(--pic-ink-soft);
}
.pic-history-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
    margin-top: 28px;
}
.pic-history-hero__aside {
    padding: 24px;
    background: var(--pic-surface);
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius-lg);
    box-shadow: var(--pic-shadow-sm);
}
.pic-history-hero__aside > p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--pic-ink-soft);
}
.pic-history-facts { margin: 18px 0 0; padding: 0; }
.pic-history-facts > div {
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 12px 0 0;
    margin-top: 12px;
    border-top: 1px solid var(--pic-line);
}
.pic-history-facts dt {
    flex: 0 0 auto;
    font-family: var(--pic-font-display);
    font-size: 22px;
    font-weight: 800;
    color: var(--pic-ink);
}
.pic-history-facts dd {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.4;
    color: var(--pic-ink-faint);
}

.pic-history-spine {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin: 44px 0 0;
    padding: 0 0 28px;
}
.pic-history-spine li {
    position: relative;
    border-top: 1px solid var(--pic-line);
}
.pic-history-spine li:nth-child(n+7) {
    border-top: 1px solid var(--pic-line);
}
.pic-history-spine a {
    display: block;
    padding: 18px 14px 12px;
    border-radius: var(--pic-radius-sm);
    transition: background .16s ease;
}
.pic-history-spine a:hover,
.pic-history-spine a:focus-visible {
    background: var(--pic-brand-soft);
}
.pic-history-spine__dot {
    position: absolute;
    top: -4px;
    left: 14px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--pic-accent);
    box-shadow: 0 0 0 4px var(--pic-canvas);
}
.pic-history-spine__name {
    display: block;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--pic-ink);
}
.pic-history-spine__years {
    display: block;
    margin-top: 4px;
    font-size: 11.5px;
    line-height: 1.35;
    color: var(--pic-ink-faint);
}

.pic-history-chapters { padding: 72px 0 80px; }
.pic-history-layout {
    display: grid;
    grid-template-columns: 236px minmax(0, 1fr);
    gap: 64px;
    align-items: start;
}
.pic-history-index {
    position: sticky;
    top: 96px;
    min-width: 0;
    max-width: 100%;
}
.pic-history-index__label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--pic-ink-faint);
    margin-bottom: 10px;
}
.pic-history-index ol {
    list-style: none;
    margin: 0;
    padding: 0;
}
.pic-history-index li { border-top: 1px solid var(--pic-line); }
.pic-history-index li:last-child { border-bottom: 1px solid var(--pic-line); }
.pic-history-index a {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 2px 8px;
    padding: 11px 8px 11px 0;
    border-radius: var(--pic-radius-sm);
}
.pic-history-index a:hover,
.pic-history-index a:focus-visible { background: var(--pic-brand-soft); }
.pic-history-index a > span {
    grid-row: span 2;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .8px;
    color: var(--pic-brand-strong);
    padding-top: 2px;
}
.pic-history-index a > b {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--pic-ink);
}
.pic-history-index a > small {
    font-size: 11px;
    color: var(--pic-ink-faint);
}
.pic-history-index__note {
    margin: 14px 0 0;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--pic-ink-faint);
}

.pic-history-chapters__main { min-width: 0; }
.pic-history-chapter {
    padding: 0 0 56px;
    margin: 0 0 56px;
    border-bottom: 1px solid var(--pic-line);
    scroll-margin-top: 96px;
}
.pic-history-chapter:last-child { border-bottom: 0; margin-bottom: 0; }
.pic-history-chapter__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--pic-ink-soft);
}
.pic-history-chapter__meta > span:first-child { color: var(--pic-brand-strong); }
.pic-history-chapter h2 {
    margin: 12px 0 16px;
    font-size: clamp(30px, 3.4vw, 42px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -1px;
    color: var(--pic-ink);
    max-width: 20ch;
}
.pic-history-chapter__standfirst {
    margin: 0 0 18px;
    max-width: 58ch;
    font-size: 19px;
    line-height: 1.55;
    color: var(--pic-ink);
}
.pic-history-chapter > p {
    margin: 0 0 16px;
    max-width: 68ch;
    font-size: 16px;
    line-height: 1.7;
    color: var(--pic-ink-soft);
}

.pic-history-chapter__eras {
    margin-top: 32px;
    border-top: 1px solid var(--pic-line);
}
.pic-era-row {
    padding: 20px 0;
    border-bottom: 1px solid var(--pic-line);
    scroll-margin-top: 96px;
}
.pic-era-row:last-child { border-bottom: 0; }
.pic-era-row__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px 18px;
}
.pic-era-row__head h3 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: var(--pic-ink);
}
.pic-era-row__head > span {
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .4px;
    color: var(--pic-ink-faint);
}
.pic-era-row__line {
    margin: 8px 0 0;
    max-width: 70ch;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--pic-ink-soft);
}
.pic-era-row__sites,
.pic-era-row__src {
    margin: 10px 0 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--pic-ink-soft);
}
.pic-era-row__src {
    font-size: 11.5px;
    color: var(--pic-ink-faint);
}
.pic-era-row__sites a,
.pic-era-row__src a {
    color: var(--pic-link);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.pic-era-row__sites a:hover,
.pic-era-row__src a:hover { color: var(--pic-brand-strong); }

.pic-history-sources {
    padding: 40px 0 56px;
    background: var(--pic-canvas-alt);
    border-top: 1px solid var(--pic-line);
}
.pic-history-sources h2 {
    margin: 0 0 12px;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -.4px;
    color: var(--pic-ink);
}
.pic-history-sources p {
    margin: 0 0 8px;
    max-width: 80ch;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--pic-ink-soft);
}
.pic-history-sources a {
    color: var(--pic-link);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Destination detail: History & background */
.pic-history-note {
    margin: 28px 0 32px;
    scroll-margin-top: 96px;
    padding: 22px 24px 20px 26px;
    background: var(--pic-canvas);
    border-left: 3px solid var(--pic-accent);
    border-radius: 0 var(--pic-radius) var(--pic-radius) 0;
}
.pic-history-note__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}
.pic-history-note__head .pic-kicker { margin: 0; }
.pic-era-chip {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border: 1px solid var(--pic-line);
    border-radius: 999px;
    background: var(--pic-surface);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--pic-ink-soft);
}
.pic-history-note p {
    margin: 0 0 10px;
    max-width: 70ch;
    font-size: 15.5px;
    line-height: 1.65;
    color: var(--pic-ink-soft);
}
.pic-history-note__lead {
    margin: 14px 0 10px;
    font-family: var(--pic-font-display);
    font-size: 20px;
    line-height: 1.4;
    color: var(--pic-ink);
}
.pic-history-note__src {
    margin-top: 14px;
    font-size: 12px;
    line-height: 1.6;
    color: var(--pic-ink-faint);
}
.pic-history-note__src a {
    color: var(--pic-link);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.pic-history-note__src .pic-history-note__more { white-space: nowrap; }

/* Homepage band */
.pic-history-band {
    padding: 56px 0;
    background: var(--pic-navy);
    color: #fff;
}
.pic-history-band__inner {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 56px;
    align-items: center;
}
.pic-history-band .pic-kicker {
    margin: 0 0 10px;
    color: var(--pic-accent);
}
.pic-history-band h2 {
    margin: 0 0 14px;
    text-wrap: balance;
    font-size: clamp(28px, 3vw, 38px);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.8px;
    color: #fff;
}
.pic-history-band__copy > p {
    margin: 0 0 18px;
    max-width: 52ch;
    font-size: 15.5px;
    line-height: 1.6;
    color: #c9d8e8;
}
.pic-history-band .pic-view-all { color: var(--pic-accent); }
.pic-history-band .pic-view-all:hover { color: #fff; }
.pic-history-band__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 28px;
}
.pic-history-band__list li { border-top: 1px solid rgba(255, 255, 255, .16); }
.pic-history-band__list a {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 2px 10px;
    padding: 12px 0;
    border-radius: var(--pic-radius-sm);
}
.pic-history-band__list a:hover .pic-history-band__title { color: var(--pic-accent); }
.pic-history-band__num {
    grid-row: span 2;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--pic-accent);
    padding-top: 2px;
}
.pic-history-band__title {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    color: #fff;
    transition: color .16s ease;
}
.pic-history-band__range {
    font-size: 11.5px;
    color: #9fb5cc;
}

.pic-history a:focus-visible,
.pic-history-note a:focus-visible,
.pic-history-band a:focus-visible {
    outline: 3px solid var(--pic-brand);
    outline-offset: 3px;
}
.pic-history-band a:focus-visible { outline-color: var(--pic-accent); }

@media (max-width: 1100px) {
    .pic-history-hero__grid { grid-template-columns: 1fr; gap: 32px; }
    .pic-history-hero__aside { max-width: 620px; }
    .pic-history-spine { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pic-history-layout { grid-template-columns: 200px minmax(0, 1fr); gap: 40px; }
    .pic-history-band__inner { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 900px) {
    .pic-history-chapters { padding: 56px 0 64px; }
    .pic-history-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .pic-history-index { position: static; width: 100%; overflow: hidden; }
    .pic-history-index ol {
        display: flex;
        gap: 8px;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        padding-bottom: 4px;
        scrollbar-width: none;
    }
    .pic-history-index ol::-webkit-scrollbar { display: none; }
    .pic-history-index li {
        flex: 0 0 auto;
        border: 1px solid var(--pic-line);
        border-radius: 999px;
        background: var(--pic-surface);
    }
    .pic-history-index li:last-child { border-bottom: 1px solid var(--pic-line); }
    .pic-history-index a {
        display: flex;
        align-items: baseline;
        gap: 8px;
        padding: 8px 14px;
        white-space: nowrap;
    }
    .pic-history-index a > span { padding-top: 0; }
    .pic-history-index a > b { font-size: 12px; }
    .pic-history-index a > small { display: none; }
    .pic-history-index__note { display: none; }
}
@media (max-width: 760px) {
    .pic-history-hero { padding-top: 44px; }
    .pic-history-hero h1 { font-size: 40px; letter-spacing: -1.2px; }
    .pic-history-hero__lead { font-size: 17px; }
    .pic-history-spine { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 32px; }
    .pic-history-chapter h2 { font-size: 30px; }
    .pic-history-chapter__standfirst { font-size: 17px; }
    .pic-history-chapter__eras { margin-top: 24px; }
    .pic-history-band { padding: 44px 0; }
    .pic-history-band__list { grid-template-columns: 1fr; }
    .pic-history-band__list li:last-child { border-bottom: 1px solid rgba(255, 255, 255, .16); }
    .pic-history-note { padding: 18px 18px 16px 20px; }
    .pic-history-note__lead { font-size: 18px; }
}
@media (max-width: 560px) {
    .pic-history-spine { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pic-history-spine a { padding: 16px 10px 10px; }
    .pic-history-spine__dot { left: 10px; }
    .pic-history-hero__actions { gap: 12px; }
    .pic-history-chapter { padding-bottom: 40px; margin-bottom: 40px; }
    .pic-history-chapter h2 { font-size: 27px; }
    .pic-history-chapter > p { font-size: 15.5px; }
}

/* ---------- Travel desk services (2026-10-29 direction shift) ---------- */
.pic-services {
    padding: 64px 0 58px;
    background: var(--pic-surface);
    border-top: 1px solid var(--pic-line);
    border-bottom: 1px solid var(--pic-line);
}
.pic-service-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.pic-service-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 22px 20px 18px;
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius-lg);
    background: #fff;
    box-shadow: 0 6px 20px rgba(31, 58, 82, .04);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.pic-service-card:hover {
    transform: translateY(-2px);
    border-color: #cfe0f5;
    box-shadow: var(--pic-shadow);
}
.pic-service-card__icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: var(--pic-brand-soft);
    color: var(--pic-brand);
}
.pic-service-card h3 {
    font-family: var(--pic-font-display);
    font-size: 19px;
    line-height: 1.25;
    color: var(--pic-ink);
    margin: 4px 0 0;
}
.pic-service-card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--pic-ink-soft);
}
.pic-service-card__proof {
    margin-top: auto;
    font-size: 12px;
    font-weight: 700;
    color: var(--pic-brand);
    letter-spacing: .02em;
}
.pic-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 30px 0 0;
}
.pic-step {
    border-top: 3px solid var(--pic-brand);
    padding-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.pic-step b {
    font-family: var(--pic-font-display);
    font-size: 13px;
    letter-spacing: .14em;
    color: var(--pic-brand);
}
.pic-step strong { font-size: 16px; color: var(--pic-ink); }
.pic-step span { font-size: 14px; color: var(--pic-ink-soft); line-height: 1.5; }
.pic-fee-note {
    margin: 26px 0 0;
    padding: 16px 18px;
    border-left: 4px solid var(--pic-accent);
    border-radius: 0 var(--pic-radius-sm) var(--pic-radius-sm) 0;
    background: var(--pic-accent-soft);
    color: var(--pic-ink-soft);
    font-size: 14px;
    line-height: 1.55;
}
.pic-fee-note b { color: var(--pic-ink); }
.pic-about-block { margin: 34px 0 0; }
.pic-faq { display: grid; gap: 14px; }
.pic-faq__item {
    padding: 16px 18px;
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius);
    background: #fff;
}
.pic-faq__item h3 { font-size: 16px; margin: 0 0 7px; color: var(--pic-ink); }
.pic-faq__item p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--pic-ink-soft); }
.pic-desk {
    display: grid;
    grid-template-columns: .92fr 1.08fr;
    gap: 34px;
    align-items: start;
}
.pic-desk__copy h2 {
    font-family: var(--pic-font-display);
    font-size: clamp(26px, 3vw, 34px);
    line-height: 1.12;
    letter-spacing: -.02em;
    margin: 8px 0 12px;
}
.pic-desk__copy p { color: var(--pic-ink-soft); font-size: 15px; line-height: 1.55; }
.pic-desk__list { list-style: none; padding: 0; margin: 16px 0; display: grid; gap: 9px; }
.pic-desk__list li { position: relative; padding-left: 24px; font-size: 14.5px; color: var(--pic-ink); }
.pic-desk__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .32em;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--pic-brand-soft);
    box-shadow: inset 0 0 0 2px var(--pic-brand);
}
.pic-desk__form {
    background: #fff;
    border: 1px solid var(--pic-line);
    border-radius: var(--pic-radius-lg);
    padding: 24px;
    box-shadow: 0 8px 24px rgba(24, 52, 79, .05);
}
.pic-desk__form h3 { font-family: var(--pic-font-display); font-size: 22px; margin: 0 0 4px; }
.pic-desk__form .weline-inquiry { max-width: none; }
.pic-desk__form .weline-inquiry__title,
.pic-desk__form .weline-inquiry__description { display: none; }
.pic-desk__form .weline-inquiry__dialog { padding: 0; background: transparent; box-shadow: none; width: auto; }
.pic-desk__form .weline-inquiry__form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 14px;
}
.pic-desk__form .weline-inquiry__field { margin: 0; }
.pic-desk__form .weline-inquiry__field--wide,
.pic-desk__form .weline-inquiry__field:has(textarea),
.pic-desk__form .weline-inquiry__captcha,
.pic-desk__form .weline-inquiry__message,
.pic-desk__form .weline-inquiry__submit { grid-column: 1 / -1; }
.pic-desk__form .weline-inquiry__field input,
.pic-desk__form .weline-inquiry__field select,
.pic-desk__form .weline-inquiry__field textarea {
    border-radius: 10px;
    border: 1px solid var(--pic-line-strong);
    font-size: 14px;
}
.pic-desk__form .weline-inquiry__submit {
    border: 0;
    border-radius: 999px;
    background: var(--pic-brand);
    color: #fff;
    font-weight: 700;
    padding: 13px 18px;
    cursor: pointer;
}
@media (max-width: 1100px) {
    .pic-service-grid { grid-template-columns: 1fr 1fr; }
    .pic-steps { grid-template-columns: 1fr 1fr; }
    .pic-desk { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .pic-service-grid { grid-template-columns: 1fr; }
    .pic-steps { grid-template-columns: 1fr; }
    .pic-desk__form .weline-inquiry__form { grid-template-columns: 1fr; }
}

/* 2026-10-30 无障碍（marker: pic-float-dismiss-tap-target-v1）
   框架把浮动层 × 的尺寸/位置烘进主题布局固化物（entity footer partial），改 PHP 不生效，
   且该处实测仍是 width:1.25rem（20×20，与边缘体 40×40 重叠）→ 触摸目标 <24px 导致 a11y 扣分。
   这里用同特异性（#id）后置规则覆盖：24×24 + 上移，使 × 与边缘体间距 ≥24px。
   仅调尺寸/偏移，不引入任何颜色或新变量。 */
body #w-storefront-float-layer .w-storefront-float-edge__dismiss {
    top: -1.75rem;
    width: 1.5rem;
    height: 1.5rem;
    min-inline-size: 1.5rem;
    min-block-size: 1.5rem;
    max-inline-size: 1.5rem;
    max-block-size: 1.5rem;
}
body #w-storefront-float-layer .w-storefront-float-layer__slot[data-float-dock="up"] .w-storefront-float-edge__dismiss {
    top: auto;
    bottom: -1.75rem;
}


