/**
 * 平潭旅游路线页（/luxian/）样式
 *
 * 由 haitan-pages 插件提供，仅在 page-luxian.php 模板下加载（句柄 haitan-pages-luxian）。
 * 约定（与 pingtan.css、travel.css、lanyanlei.css 保持一致）：
 *   - 所有选择器都挂在 .pt-luxian-page 下（<main> 上的根命名空间），不覆盖 JustNews 全局样式
 *   - 不复用主题的 .container / .row / .card 等通用类
 *   - 不引入任何第三方 CSS 框架，字体不写死、继承站点 body
 *   - 页面本身零 JS
 *
 * 设计目标：干净、好筛、移动端优先的「路线发现」气质——筛选区紧凑，卡片信息密度高，
 * 避免十几个大按钮纵向堆叠，也避免满屏 Banner。
 *
 * 目录：
 *   1. 变量与基础
 *   2. 容器与分区
 *   3. Hero
 *   4. 通用元件（按钮 / 标签 / 标题 / 提示）
 *   5. 你准备玩几天（时间按钮）
 *   6. 北线 / 南线（区域卡）
 *   7. 筛选状态条
 *   8. 路线卡片栅格
 *   9. 分页
 *  10. 空态
 *  11. 今天适合怎么玩
 *  12. 出发前看一眼
 *  13. 引导条 / 下一步 / 问问海坛AI
 *  14. 响应式
 */

/* ------------------------------------------------------------------ 1. 变量 */

.pt-luxian-page {
    --ptx-blue: #1684d8;
    --ptx-blue-deep: #0d6aa8;
    --ptx-ink: #16324a;
    --ptx-text: #46647a;
    --ptx-muted: #7d97a9;
    --ptx-line: #e4eef6;
    --ptx-line-soft: #eef5fa;
    --ptx-surface: #ffffff;
    --ptx-surface-soft: #f5faff;
    --ptx-tag-bg: #edf6fd;
    --ptx-tag-ink: #2c6a94;
    --ptx-active-bg: #e8f3fc;
    --ptx-good: #1f9d63;
    --ptx-ok: #3f9bd8;
    --ptx-fair: #c98a1c;
    --ptx-bad: #c9603f;
    --ptx-radius-l: 14px;
    --ptx-radius-m: 10px;
    --ptx-radius-s: 8px;
    --ptx-gap: 12px;

    display: block;
    width: 100%;
    max-width: 100%;
    /* 防止任何子元素把页面撑出横向滚动条 */
    overflow-x: clip;
    padding-bottom: 24px;
    color: var(--ptx-text);
    background: var(--ptx-surface-soft);
}

/*
 * 作用域内的 box-sizing 复位。选择器限定在 .pt-luxian-page 内，
 * 根命名空间在 <main> 上（不是 body），不会外溢到主题头尾。
 */
.pt-luxian-page,
.pt-luxian-page *,
.pt-luxian-page *::before,
.pt-luxian-page *::after {
    box-sizing: border-box;
}

.pt-luxian-page img {
    max-width: 100%;
}

/* 长标题、长描述允许在必要时断行，避免撑破栅格 */
.pt-luxian-page .luxian-hero-title,
.pt-luxian-page .luxian-hero-sub,
.pt-luxian-page .luxian-hero-lead,
.pt-luxian-page .luxian-title,
.pt-luxian-page .luxian-desc,
.pt-luxian-page .luxian-region-desc,
.pt-luxian-page .luxian-route-title,
.pt-luxian-page .luxian-route-excerpt,
.pt-luxian-page .luxian-today-cond,
.pt-luxian-page .luxian-metric-value,
.pt-luxian-page .luxian-today-scene-reason,
.pt-luxian-page .luxian-today-summary,
.pt-luxian-page .luxian-next-desc,
.pt-luxian-page .luxian-callout-desc {
    overflow-wrap: anywhere;
}

/* ---------------------------------------------------------- 2. 容器与分区 */

.pt-luxian-page .luxian-container {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 15px;
}

/*
 * 面包屑并入 Hero 内容容器：与标题左对齐、上下留白收紧，不再生成主题 .wrap 的独立全宽色带。
 * 主题关了面包屑时不加 .luxian-hero-with-breadcrumb，Hero 恢复自身默认内边距。
 */
.pt-luxian-page .luxian-hero.luxian-hero-with-breadcrumb {
    padding-top: 20px;
}

.pt-luxian-page .luxian-breadcrumb {
    margin: 0 0 16px;
    text-align: left;
}

.pt-luxian-page .luxian-breadcrumb .breadcrumb {
    margin: 0;
}

@media (min-width: 768px) {
    .pt-luxian-page .luxian-hero.luxian-hero-with-breadcrumb {
        padding-top: 22px;
    }
}

.pt-luxian-page .luxian-section {
    padding: 30px 0 0;
}

/*
 * 页内锚点偏移。主题 JS 会把 a[href^="#"] 劫持并减错偏移量，
 * 本页筛选链接是「带参数的完整 URL + #luxian-list」，不以 # 开头，主题不会劫持；
 * 这里用 scroll-margin-top 精确对齐吸顶栈（≥768px 为 124px，以下为 110px）。
 */
.pt-luxian-page .luxian-section[id] {
    scroll-margin-top: 124px;
}

.pt-luxian-page .luxian-head {
    margin: 0 0 14px;
}

/* 蓝色竖条标题，与站点 JustNews 的小节标题风格保持一致 */
.pt-luxian-page .luxian-title {
    margin: 0 0 6px;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-title::before {
    content: "";
    display: inline-block;
    width: 4px;
    height: 17px;
    margin-right: 9px;
    vertical-align: -2px;
    background: var(--ptx-blue);
    border-radius: 2px;
}

.pt-luxian-page .luxian-desc {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--ptx-muted);
}

.pt-luxian-page .luxian-desc b {
    color: var(--ptx-blue-deep);
    font-weight: 600;
}

/* -------------------------------------------------------------- 3. Hero */

.pt-luxian-page .luxian-hero {
    padding: 34px 0 30px;
    background:
        radial-gradient(120% 140% at 12% 0%, #e3f2fd 0%, rgba(227, 242, 253, 0) 58%),
        linear-gradient(180deg, #f0f8ff 0%, var(--ptx-surface-soft) 100%);
    border-bottom: 1px solid var(--ptx-line-soft);
}

.pt-luxian-page .luxian-hero-kicker {
    margin: 0 0 8px;
    font-size: 13px;
    letter-spacing: .04em;
    color: var(--ptx-blue-deep);
}

.pt-luxian-page .luxian-hero-title {
    margin: 0 0 10px;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-hero-sub {
    margin: 0 0 8px;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--ptx-blue-deep);
}

.pt-luxian-page .luxian-hero-lead {
    margin: 0;
    max-width: 640px;
    font-size: 14px;
    line-height: 1.75;
    color: var(--ptx-text);
}

.pt-luxian-page .luxian-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 18px 0 0;
}

/* -------------------------------------------------------- 4. 通用元件 */

.pt-luxian-page .luxian-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    /* 按钮文案都很短；不换行保证同一行按钮等高、不出参差 */
    white-space: nowrap;
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: 999px;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.pt-luxian-page .luxian-btn-sm {
    padding: 8px 15px;
    font-size: 13px;
}

.pt-luxian-page .luxian-btn-primary {
    color: #fff;
    background: var(--ptx-blue);
}

.pt-luxian-page .luxian-btn-primary:hover {
    color: #fff;
    background: var(--ptx-blue-deep);
}

.pt-luxian-page .luxian-btn-ghost {
    color: var(--ptx-blue-deep);
    background: #fff;
    border-color: var(--ptx-line);
}

.pt-luxian-page .luxian-btn-ghost:hover {
    color: var(--ptx-blue-deep);
    border-color: #b9dcf5;
    background: #f4fbff;
}

.pt-luxian-page .luxian-btn-outline {
    color: var(--ptx-blue-deep);
    background: transparent;
    border-color: #b9dcf5;
}

.pt-luxian-page .luxian-btn-outline:hover {
    color: #fff;
    background: var(--ptx-blue);
    border-color: var(--ptx-blue);
}

.pt-luxian-page .luxian-note {
    margin: 14px 0 0;
    padding: 10px 12px;
    font-size: 12.5px;
    line-height: 1.7;
    color: var(--ptx-muted);
    background: #f7fbfe;
    border: 1px dashed var(--ptx-line);
    border-radius: var(--ptx-radius-s);
}

/* ------------------------------------------------- 5. 你准备玩几天 */

.pt-luxian-page .luxian-time-btns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.pt-luxian-page .luxian-time-btn {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 14px 16px;
    text-decoration: none;
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: var(--ptx-radius-m);
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.pt-luxian-page .luxian-time-btn:hover {
    border-color: #b9dcf5;
    box-shadow: 0 6px 16px -10px rgba(13, 106, 168, .5);
}

.pt-luxian-page .luxian-time-btn.is-active {
    background: var(--ptx-active-bg);
    border-color: var(--ptx-blue);
}

.pt-luxian-page .luxian-time-name {
    font-size: 16px;
    font-weight: 600;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-time-count {
    font-size: 12px;
    color: var(--ptx-muted);
}

.pt-luxian-page .luxian-time-btn.is-active .luxian-time-name {
    color: var(--ptx-blue-deep);
}

/* -------------------------------------------- 5b. 筛选标签（交通 / 玩法） */

.pt-luxian-page .luxian-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pt-luxian-page .luxian-chip {
    display: inline-flex;
    align-items: center;
    padding: 7px 14px;
    font-size: 13px;
    line-height: 1.4;
    color: var(--ptx-tag-ink);
    text-decoration: none;
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: 999px;
    /* 标签内部不换行：同一行标签等高，不出现参差（"City Walk" 带空格最容易断） */
    white-space: nowrap;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}

.pt-luxian-page .luxian-chip:hover {
    color: var(--ptx-blue-deep);
    border-color: #b9dcf5;
    background: #f4fbff;
}

.pt-luxian-page .luxian-chip.is-active {
    color: #fff;
    background: var(--ptx-blue);
    border-color: var(--ptx-blue);
}

/* -------------------------------------------------- 6. 北线 / 南线 */

.pt-luxian-page .luxian-regions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.pt-luxian-page .luxian-region {
    padding: 18px;
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: var(--ptx-radius-l);
}

.pt-luxian-page .luxian-region-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.pt-luxian-page .luxian-region-emoji {
    font-size: 20px;
    line-height: 1;
}

.pt-luxian-page .luxian-region-title {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-region-desc {
    margin: 0 0 12px;
    font-size: 13.5px;
    line-height: 1.75;
    color: var(--ptx-text);
}

.pt-luxian-page .luxian-region-items {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
    padding: 0;
    list-style: none;
}

.pt-luxian-page .luxian-region-items li {
    padding: 5px 11px;
    font-size: 12.5px;
    color: var(--ptx-tag-ink);
    background: var(--ptx-tag-bg);
    border-radius: 999px;
    white-space: nowrap;
}

.pt-luxian-page .luxian-region-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.pt-luxian-page .luxian-region-pending {
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--ptx-muted);
}

/* ------------------------------------------------------ 7. 筛选状态条 */

.pt-luxian-page .luxian-active {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin: 0 0 16px;
    padding: 11px 13px;
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: var(--ptx-radius-m);
}

.pt-luxian-page .luxian-active-label {
    font-size: 12.5px;
    color: var(--ptx-muted);
}

.pt-luxian-page .luxian-active-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pt-luxian-page .luxian-active-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 8px 5px 11px;
    font-size: 12.5px;
    color: #fff;
    text-decoration: none;
    background: var(--ptx-blue);
    border-radius: 999px;
    /* 这里显示的是 URL 里带来的筛选名，长度不可控：允许换行、限宽，绝不许撑破页面 */
    max-width: 100%;
    overflow-wrap: anywhere;
}

.pt-luxian-page .luxian-active-tag:hover {
    color: #fff;
    background: var(--ptx-blue-deep);
}

.pt-luxian-page .luxian-active-x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    font-size: 13px;
    line-height: 1;
    background: rgba(255, 255, 255, .28);
    border-radius: 50%;
}

.pt-luxian-page .luxian-active-clear {
    margin-left: auto;
    font-size: 12.5px;
    color: var(--ptx-muted);
    text-decoration: underline;
}

.pt-luxian-page .luxian-active-clear:hover {
    color: var(--ptx-blue-deep);
}

/* ------------------------------------------------- 8. 路线卡片栅格 */

.pt-luxian-page .luxian-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.pt-luxian-page .luxian-route-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    text-decoration: none;
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: var(--ptx-radius-l);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.pt-luxian-page .luxian-route-card:hover {
    border-color: #b9dcf5;
    box-shadow: 0 12px 26px -18px rgba(13, 106, 168, .55);
    transform: translateY(-2px);
}

.pt-luxian-page .luxian-route-media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 26 / 17;
    background: var(--ptx-line-soft);
}

.pt-luxian-page .luxian-route-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pt-luxian-page .luxian-route-img-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    color: var(--ptx-muted);
    background: linear-gradient(135deg, #eef7fd, #e2f0fa);
}

.pt-luxian-page .luxian-route-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 8px;
    padding: 14px 15px 15px;
}

.pt-luxian-page .luxian-route-title {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-route-excerpt {
    margin: 0;
    font-size: 13px;
    line-height: 1.7;
    color: var(--ptx-text);
}

.pt-luxian-page .luxian-route-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.pt-luxian-page .luxian-route-tag {
    padding: 3px 9px;
    font-size: 12px;
    color: var(--ptx-tag-ink);
    background: var(--ptx-tag-bg);
    border-radius: 999px;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pt-luxian-page .luxian-route-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid var(--ptx-line-soft);
}

.pt-luxian-page .luxian-route-date {
    font-size: 12px;
    color: var(--ptx-muted);
}

.pt-luxian-page .luxian-route-more {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ptx-blue);
}

/* ------------------------------------------------------------- 9. 分页 */

.pt-luxian-page .luxian-pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 22px 0 0;
}

.pt-luxian-page .luxian-pager-prev,
.pt-luxian-page .luxian-pager-next,
.pt-luxian-page .luxian-pager-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    font-size: 13px;
    color: var(--ptx-text);
    text-decoration: none;
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: var(--ptx-radius-s);
}

.pt-luxian-page .luxian-pager-prev:hover,
.pt-luxian-page .luxian-pager-next:hover,
.pt-luxian-page .luxian-pager-num:hover {
    color: var(--ptx-blue-deep);
    border-color: #b9dcf5;
}

.pt-luxian-page .luxian-pager-num.is-current {
    color: #fff;
    background: var(--ptx-blue);
    border-color: var(--ptx-blue);
}

.pt-luxian-page .luxian-pager-gap {
    padding: 0 2px;
    font-size: 13px;
    color: var(--ptx-muted);
}

/* ------------------------------------------------------------ 10. 空态 */

.pt-luxian-page .luxian-empty {
    padding: 30px 20px;
    text-align: center;
    background: var(--ptx-surface);
    border: 1px dashed var(--ptx-line);
    border-radius: var(--ptx-radius-l);
}

.pt-luxian-page .luxian-empty-title {
    margin: 0 0 8px;
    font-size: 17px;
    font-weight: 600;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-empty-text {
    margin: 0 0 16px;
    font-size: 13.5px;
    line-height: 1.75;
    color: var(--ptx-muted);
}

.pt-luxian-page .luxian-empty-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 0;
}

/* ------------------------------------------------ 11. 今天适合怎么玩 */

.pt-luxian-page .luxian-today {
    padding: 18px;
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: var(--ptx-radius-l);
}

.pt-luxian-page .luxian-today-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.pt-luxian-page .luxian-today-icon {
    font-size: 30px;
    line-height: 1;
}

.pt-luxian-page .luxian-today-main {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pt-luxian-page .luxian-today-date {
    font-size: 12px;
    color: var(--ptx-muted);
}

.pt-luxian-page .luxian-today-cond {
    font-size: 17px;
    font-weight: 600;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-today-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 14px;
    padding: 0;
    list-style: none;
}

.pt-luxian-page .luxian-metric {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 12px;
    background: var(--ptx-surface-soft);
    border-radius: var(--ptx-radius-s);
}

.pt-luxian-page .luxian-metric-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: var(--ptx-muted);
}

.pt-luxian-page .luxian-metric-value {
    font-size: 14px;
    font-weight: 600;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-today-scenes {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pt-luxian-page .luxian-today-scene {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 11px 12px;
    border-left: 3px solid var(--ptx-line);
    background: var(--ptx-surface-soft);
    border-radius: 0 var(--ptx-radius-s) var(--ptx-radius-s) 0;
}

.pt-luxian-page .luxian-today-scene.luxian-lv-good { border-left-color: var(--ptx-good); }
.pt-luxian-page .luxian-today-scene.luxian-lv-ok { border-left-color: var(--ptx-ok); }
.pt-luxian-page .luxian-today-scene.luxian-lv-fair { border-left-color: var(--ptx-fair); }
.pt-luxian-page .luxian-today-scene.luxian-lv-bad { border-left-color: var(--ptx-bad); }

.pt-luxian-page .luxian-today-scene-head {
    display: flex;
    align-items: center;
    gap: 7px;
}

.pt-luxian-page .luxian-today-scene-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-today-scene-label {
    padding: 2px 8px;
    font-size: 12px;
    color: var(--ptx-blue-deep);
    background: var(--ptx-tag-bg);
    border-radius: 999px;
}

.pt-luxian-page .luxian-today-scene-reason {
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--ptx-text);
}

.pt-luxian-page .luxian-today-summary {
    margin: 12px 0 0;
    font-size: 13px;
    line-height: 1.75;
    color: var(--ptx-text);
}

.pt-luxian-page .luxian-today-empty {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.75;
    color: var(--ptx-muted);
}

.pt-luxian-page .luxian-today-actions {
    margin: 14px 0 0;
}

/* ------------------------------------------------ 12. 出发前看一眼 */

.pt-luxian-page .luxian-prep {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.pt-luxian-page .luxian-prep-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    text-decoration: none;
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: var(--ptx-radius-m);
    transition: border-color .18s ease, box-shadow .18s ease;
}

.pt-luxian-page .luxian-prep-card:hover {
    border-color: #b9dcf5;
    box-shadow: 0 8px 20px -14px rgba(13, 106, 168, .55);
}

.pt-luxian-page .luxian-prep-emoji {
    font-size: 22px;
    line-height: 1;
}

.pt-luxian-page .luxian-prep-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pt-luxian-page .luxian-prep-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-prep-desc {
    font-size: 12.5px;
    color: var(--ptx-muted);
}

/* ------------------------------------- 13. 引导条 / 下一步 / 海坛AI */

.pt-luxian-page .luxian-callout {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 20px;
    background: linear-gradient(120deg, #e8f4fd 0%, #f4faff 100%);
    border: 1px solid #d6e9f8;
    border-radius: var(--ptx-radius-l);
}

.pt-luxian-page .luxian-callout-title {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 600;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-callout-desc {
    margin: 0;
    max-width: 640px;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--ptx-text);
}

.pt-luxian-page .luxian-callout-actions {
    margin: 0;
}

.pt-luxian-page .luxian-next {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.pt-luxian-page .luxian-next-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    text-decoration: none;
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: var(--ptx-radius-m);
    transition: border-color .18s ease, box-shadow .18s ease;
}

.pt-luxian-page .luxian-next-card:hover {
    border-color: #b9dcf5;
    box-shadow: 0 8px 20px -14px rgba(13, 106, 168, .55);
}

.pt-luxian-page .luxian-next-emoji {
    font-size: 22px;
    line-height: 1;
}

.pt-luxian-page .luxian-next-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
}

.pt-luxian-page .luxian-next-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-next-desc {
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--ptx-muted);
}

.pt-luxian-page .luxian-next-arrow {
    font-size: 16px;
    color: var(--ptx-blue);
}

.pt-luxian-page .luxian-ask {
    padding: 30px 0 0;
}

.pt-luxian-page .luxian-ask-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 22px;
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: var(--ptx-radius-l);
}

.pt-luxian-page .luxian-ask-kicker {
    margin: 0 0 5px;
    font-size: 12.5px;
    color: var(--ptx-muted);
}

.pt-luxian-page .luxian-ask-title {
    margin: 0 0 5px;
    font-size: 19px;
    font-weight: 600;
    color: var(--ptx-ink);
}

.pt-luxian-page .luxian-ask-desc {
    margin: 0;
    max-width: 620px;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--ptx-text);
}

.pt-luxian-page .luxian-ask-actions {
    margin: 0;
}

/* 后台正文区（运营写了正常文字时才出现） */
.pt-luxian-page .luxian-content {
    padding: 20px;
    font-size: 14px;
    line-height: 1.8;
    color: var(--ptx-text);
    background: var(--ptx-surface);
    border: 1px solid var(--ptx-line);
    border-radius: var(--ptx-radius-l);
}

/* ---------------------------------------------------------- 14. 响应式 */

@media (min-width: 560px) {
    .pt-luxian-page .luxian-time-btns {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .pt-luxian-page .luxian-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pt-luxian-page .luxian-prep,
    .pt-luxian-page .luxian-next {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pt-luxian-page .luxian-today-metrics {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .pt-luxian-page .luxian-hero {
        padding: 46px 0 40px;
    }

    .pt-luxian-page .luxian-hero-title {
        font-size: 34px;
    }

    .pt-luxian-page .luxian-section {
        padding: 38px 0 0;
    }

    .pt-luxian-page .luxian-title {
        font-size: 23px;
    }

    .pt-luxian-page .luxian-regions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pt-luxian-page .luxian-today {
        padding: 22px;
    }

    .pt-luxian-page .luxian-today-scenes {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 960px) {
    .pt-luxian-page .luxian-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
    }

    .pt-luxian-page .luxian-prep {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
