/* ============================================================================
 * RG Blocks — 全站自定义样式唯一落点
 * File: public/static/css/rg-blocks.css
 * ============================================================================
 * 定位：
 *   路线 B 改造后，RG 站点的样式分两层：
 *     1) 布局骨架 + 交互组件 + 栅格 → 由 Bootstrap 4 提供
 *        （public/static/vendor/demo/bootstrap.min.css）
 *     2) 纯视觉样式（Bootstrap 表达不了的） → 全部收在本文件
 *
 * 加载顺序（必须）：
 *   bootstrap.min.css  →  rg-blocks.css
 *   本文件必须在 Bootstrap 之后引入，才能覆盖其默认值。
 *
 * 变更历史：
 *   阶段 0~4  逐 brick 改造，把被替换下来的「纯视觉」规则搬进本文件
 *   阶段 5    收尾：删除下列 8 个旧文件，其有效规则全部并入本文件
 *             rg-home.css / rg-list.css / rg-detail.css / rg-dealer.css
 *             rg-demo.css / rg-header.css / rg-footer.css / rg-demo-bridge.css
 *             （原件已归档到 .workbuddy/css-archive-stage5/，仅作回溯用）
 *             同时清除所有 `:not(.rg-*)` 作用域隔离，全站类名统一 `rg-` 前缀。
 *
 * 章节索引：
 *   0  设计变量 (:root)
 *   1  阶段 0：撞名类改名后的补位说明
 *   2  rg-list-pagination / rg-breadcrumb 主题类
 *   3~9 brick 改造后迁入的规则（home / list / detail / dealer）
 *   10 站头 / 站脚 / 浮动件 / hero / 通用工具轮播
 *   11 列表页侧栏 / 内容列 / 筛选条
 *   12 详情页相关产品
 *   12.5 RG 小工具类（rg-gap-* / rg-ps-* / rg-fw-bold / rg-lh-base）
 *   13 RG demo 页（.rg-demo-header / .rg-demo-footer）
 *   14 统一响应式（原 7 个文件的 @media 汇总）
 *
 * 命名约定：
 *   - 所有自定义类统一 `rg-` 前缀，避免与 Bootstrap / demo global.css 撞名
 *   - 已改名规避撞名的类：
 *       .carousel-item  → .rg-carousel-item
 *       .dropdown       → .rg-mega-dropdown
 *       .site-header    → .rg-site-header
 *       .section-title  → .rg-section-title（含 --orange 修饰）
 *       .lang-switch*   → .rg-lang-switch*
 *       .gallery        → .rg-gallery    .thumb → .rg-thumb
 *       .breadcrumb     → .rg-breadcrumb（Bootstrap 骨架 + 主题类）
 *       .pagination     → .rg-pagination / .rg-dealer-pagination
 *       gap-2/gap-3/ps-3/fw-bold/lh-base → .rg-gap-2/.rg-gap-3/.rg-ps-3/
 *         .rg-fw-bold/.rg-lh-base（这些是 Bootstrap 5 工具类，本站 B4 无定义）
 *   - 有意保留的非 `rg-` 类（已确认不冲突，勿"顺手清理"）：
 *       .rg-site-header 作用域内的 .has-drop（下拉箭头修饰）
 *       .site-footer 作用域内的 .footer-* / .contact-* / .btn-join
 *       .rg-list-main / .rg-list-catalog 作用域内的 .sidebar / .side-* /
 *         .cate-* / .list-filter / .filter-*
 *       .related / .rel-card（详情页相关产品）
 *
 *   ⚠️ 站头历史遗留已清理（2026-09-29）：
 *       模板早已改用 rg- 前缀（.rg-header-top / .rg-logo / .rg-main-nav /
 *       .rg-mobile-nav / .rg-nav-toggle），但本文件第 10.1 节 + 两处 @media
 *       里仍留着旧类（.header-top / .logo / .main-nav / .mobile-nav /
 *       .nav-toggle …）的整套规则 —— 它们是死规则，且 @media(max-width:1024px)
 *       里的 `.mobile-nav{display:block}` 会与 `.rg-mobile-nav` 的
 *       max-height 过渡**互相打架**。现已全部删除/改写为 rg- 前缀。
 *       （另注：第 3 节里还曾有一份完全重复的 .rg-site-header 定义，已删。）
 *
 * 撞名自查命令（改完随时跑，输出为空即无冲突）：
 *   comm -12 \
 *     <(grep -ohE '^\.[a-zA-Z][a-zA-Z0-9_-]*' \
 *         public/static/vendor/demo/global.css \
 *         public/static/vendor/demo/bootstrap.min.css | sort -u) \
 *     <(grep -ohE '^\.[a-zA-Z][a-zA-Z0-9_-]*' \
 *         public/static/css/rg-blocks.css | sort -u)
 * ============================================================================ */

/* ---------------------------------------------------------------------------
 * 0. 设计变量（从原 rg-home.css 提取，保持视觉一致）
 * --------------------------------------------------------------------------- */
:root {
    --orange: #ff6a00;
    --orange-dark: #e05a00;
    --dark: #1a1a1a;
    --text: #333;
    --text-light: #777;
    --border: #e5e5e5;
    --gray-bg: #f7f7f7;
}

/* ---------------------------------------------------------------------------
 * 1. 阶段 0：撞名类改名记录（规则已全部就位，见第 10 节）
 * ---------------------------------------------------------------------------
 *   .carousel-item → .rg-carousel-item   （rg-home-general-tools 自研轮播）
 *   .dropdown      → .rg-mega-dropdown   （navbar 巨型菜单）
 *   .site-header   → .rg-site-header     （站头）
 *   三条规则现均在第 10 节，历史来源见各小节注释。
 * --------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
 * 2. 阶段 1 起：brick 改造后迁入的规则
 * --------------------------------------------------------------------------- */

/* --- rg-list-pagination（原 rg-list.css:129-134 迁入）---------------------
   Bootstrap .pagination 提供结构，这里只覆盖视觉（38px 方块 + 橙色高亮）。 */
.rg-pagination .page-link {
    display: inline-block;
    min-width: 38px;
    height: 38px;
    line-height: 38px;
    padding: 0 8px;
    text-align: center;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 14px;
    color: #555;
    background: #fff;
    transition: all .2s;
}
.rg-pagination .page-link:hover {
    border-color: var(--orange);
    color: var(--orange);
    background: #fff;
}
.rg-pagination .page-item.active .page-link {
    background: var(--orange);
    border-color: var(--orange);
    color: #fff;
    font-weight: 700;
}
.rg-pagination .page-item + .page-item {
    margin-left: 6px;
}
/* 首/尾页箭头与省略号（rg-list-catalog / rg-list-sidebar 动态分页使用） */
.rg-pagination .page-link.rg-page-prev,
.rg-pagination .page-link.rg-page-next {
    font-size: 18px;
    font-weight: 700;
    color: var(--orange);
}
.rg-pagination .page-item.disabled .page-link.rg-page-gap {
    border: none;
    background: transparent;
    color: #999;
    min-width: 24px;
    cursor: default;
    user-select: none;
}

@media (max-width: 767px) {
    .rg-pagination { flex-wrap: wrap; gap: 5px; margin-top: 28px !important; }
    .rg-pagination .page-item + .page-item { margin-left: 0; }
    .rg-pagination .page-link { min-width: 34px; height: 34px; line-height: 34px; font-size: 13px; }
}

/* --- rg-detail-keyword（原 rg-detail.css:102-106 迁入）--------------------
   Bootstrap .badge 提供胶囊底色，这里补边框与橙色 hover。 */
.rg-keyword-chip {
    display: inline-block;
    padding: 6px 14px;
    border: 1px solid var(--border);
    border-radius: 16px;
    font-size: 13px;
    font-weight: 400;
    color: #777;
    background: #fff;
    text-decoration: none;
    transition: all .2s;
}
.rg-keyword-chip:hover {
    border-color: var(--orange);
    color: var(--orange);
    background: #fff;
    text-decoration: none;
}

/* --- rg-header-language（原 rg-home.css:45-51 / rg-header.css:43-49 迁入）---
   布局交给 Bootstrap（d-flex / align-items-center / gap-3），此处只管视觉。 */
.rg-lang-switch {
    display: flex;
    align-items: center;
    gap: 12px;
}
.rg-lang-switch-title {
    font-size: 11px;
    color: #aaa;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    white-space: nowrap;
}
.rg-lang-switch-select {
    /* 与参考基准站 .lang-switch-select 逐项一致：保留原生下拉箭头，
       不做 appearance/背景图定制（round13 的自定义 chevron 已回退） */
    padding: 7px 12px;
    font-size: 13px;
    color: #222;
    background-color: #fff;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 4px;
    cursor: pointer;
    outline: none;
    min-width: 130px;
    height: auto;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.rg-lang-switch-select:hover,
.rg-lang-switch-select:focus {
    border-color: var(--orange);
    box-shadow: 0 0 0 3px rgba(235, 97, 0, .15);
}
.rg-lang-switch-select option {
    font-size: 13px;
    color: #333;
    background: #fff;
}
.rg-lang-switch-edit {
    margin-left: 0;
}

@media (max-width: 768px) {
    .rg-lang-switch-title { display: none; }
}

/* --- rg-detail-gallery（原 rg-detail.css:61-67 迁入）----------------------
   布局由 Bootstrap 提供（d-flex / align-items-center / gap-*），此处管视觉。 */
.rg-gallery-main {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
    cursor: zoom-in;
    height: 480px;
}
.rg-gallery-main img {
    object-fit: contain;
}
.rg-gallery {
    flex: 0 0 46%;
}
.rg-gallery-thumb {
    width: 76px;
    height: 76px;
    border: 2px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    background: #fff;
    transition: border-color .2s;
    padding: 0;
}
.rg-gallery-thumb img {
    object-fit: cover;
}
.rg-gallery-thumb.active,
.rg-gallery-thumb:hover {
    border-color: var(--orange);
}

@media (max-width: 1024px) {
    .rg-gallery { flex: none; width: 100%; }
}
@media (max-width: 600px) {
    .rg-gallery-main { height: 300px; cursor: default; }
    .rg-gallery-thumbs { gap: 8px; margin-top: 10px !important; }
    .rg-gallery-thumb { width: 60px; height: 60px; }
}

/* --- 3 个 breadcrumb brick（rg-dealer/detail/list-breadcrumb）-------------
   原定义重复出现在 rg-list.css:55-60 / rg-detail.css:52-57 / rg-dealer.css:7-12。
   Bootstrap .breadcrumb / .breadcrumb-item 提供结构与分隔符，这里覆盖视觉。 */
.rg-breadcrumb {
    background: var(--gray-bg);
    border-bottom: 1px solid var(--border);
    padding: 12px 0;
}
/* 与站头对齐：站头内容区 .rg-header-navbar-inner 是 max-width:1280px +
   padding 0 24px 的自研体系；导航链接 .rg-main-nav > ul > li > a 自带
   padding 10px 16px，故导航文字左缘 = 容器左缘 + 24 + 16 = 40px。
   面包屑 padding-left 取 40px 使文字与导航首项对齐（特异 0,2,0 压过
   Bootstrap media query 的 max-width，窄视口下不再缩到 960/720 居中）。 */
.rg-breadcrumb .container {
    max-width: 1280px;
    padding-left: 40px;
    padding-right: 24px;
}
@media (max-width: 640px) {
    /* header 在 ≤640px 时 padding 收窄到 12px（+16px 链接内边距 = 28px） */
    .rg-breadcrumb .container { padding-left: 28px; }
}
.rg-breadcrumb .breadcrumb {
    font-size: 13px;
    color: #888;
    background: transparent;
    padding: 0;
}
.rg-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    content: "\00bb";     /* » 分隔符，原模板里的 &raquo; */
    margin: 0 8px;
    color: #bbb;
    padding-right: 0;
}
.rg-breadcrumb a {
    color: var(--orange);
}
.rg-breadcrumb a:hover {
    text-decoration: underline;
}
.rg-breadcrumb .breadcrumb-item.active {
    color: #444;
    font-weight: 600;
}

/* rg-list-breadcrumb 的额外规则（原内联 <style> 迁入）：
   普通项黑色，首项（Home）橙色 */
.rg-breadcrumb-list .breadcrumb-item a { color: #222; }
.rg-breadcrumb-list .breadcrumb-item:first-child a { color: #eb6100; }

/* --- 3 个 demo banner brick（center / left / right）-----------------------
   原定义在 rg-demo.css:318-385。Bootstrap 提供 position-/w-100/h-100 等
   工具类，这里只留叠加式 banner 的独有视觉。 */
.rg-banner {
    max-width: 1400px;
    margin: 4px auto;
    min-height: 400px;
}
.rg-banner-bg {
    object-fit: cover;
    top: 0;
    left: 0;
}
.rg-banner-content {
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    max-width: 500px;
}
.rg-banner-left .rg-banner-content {
    left: 10%;
}
.rg-banner-right .rg-banner-content {
    right: 10%;
}
.rg-banner-center .rg-banner-content {
    left: 50%;
    transform: translate(-50%, -50%);
    margin-left: auto;
    margin-right: auto;
}
.rg-banner-title {
    font-size: 42px;
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    margin-bottom: 24px;
}
.rg-banner-desc {
    font-size: 18px;
    color: rgba(255, 255, 255, .9);
    margin-bottom: 40px;
    letter-spacing: 2px;
}
.rg-banner-btn {
    display: inline-block;
    background: #f26522;
    color: #fff;
    padding: 16px 48px;
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    text-decoration: none;
    transition: background .2s;
}
.rg-banner-btn:hover {
    background: #d9541a;
    color: #fff;
    text-decoration: none;
}

@media (max-width: 767px) {
    .rg-banner { min-height: 260px; }
    .rg-banner-content { max-width: 86%; }
    .rg-banner-left .rg-banner-content { left: 7%; }
    .rg-banner-right .rg-banner-content { right: 7%; }
    .rg-banner-title { font-size: 26px; margin-bottom: 14px; }
    .rg-banner-desc { font-size: 14px; margin-bottom: 22px; letter-spacing: 1px; }
    .rg-banner-btn { padding: 12px 30px; font-size: 13px; }
}

/* --- rg-home-distribution（原 rg-home.css:206-209 迁入）--------------------
   布局交给 Bootstrap（container / py-5 / mx-auto / text-center）。 */
.rg-distribution {
    padding: 60px 0 70px;
}
.rg-distribution .rg-section-title {
    color: var(--orange);
}
.rg-world-map {
    max-width: 1060px;
    margin: 40px auto 0;
    border-radius: 10px;
}
.rg-world-map img {
    width: 100%;
    height: auto;
    border-radius: 10px;
}

/* --- 通用 section 标题（rg-home 系列 8 个 brick 共用）----------------------
   原 rg-home.css:128-132。⚠️ 居中是参考站设计基准（原 .section-title 自带
   text-align:center），直接内置在类里，不依赖模板各处补 text-center。 */
.rg-section-title {
    text-align: center;
    font-size: 34px;
    font-weight: 800;
    letter-spacing: 2px;
    color: var(--text);
}
.rg-section-title--orange {
    color: var(--orange);
}
.rg-section-sub {
    text-align: center;
    color: var(--text-gray, #777);
    max-width: 900px;
    margin: 14px auto 0;
    font-size: 15px;
}

@media (max-width: 767px) {
    .rg-section-title { font-size: 26px; }
}

/* --- rg-demo-nav（2026-09-29 阶段1）---------------------------------------
   纯 Bootstrap 工具类实现（bg-light / border-bottom / py-3 / d-flex），
   此处仅登记 hook，方便后续微调。 */
.rg-demo-nav {
    font-size: 14px;
}
.rg-demo-nav a {
    color: #333;
    text-decoration: none;
}
.rg-demo-nav a:hover {
    color: var(--orange);
}

/* ===========================================================================
 * 阶段 2：A 级 brick（11 个）迁入的规则
 * =========================================================================== */

/* --- rg-detail-info（原 rg-detail.css:73-87 迁入）------------------------- */
.rg-info { min-width: 0; }
.rg-info-title {
    font-size: 26px;
    font-weight: 800;
    color: var(--text);
    line-height: 1.35;
    margin-bottom: 18px;
}
.rg-info-row {
    padding: 9px 0;
    border-bottom: 1px dashed #eee;
    font-size: 14.5px;
}
.rg-info-label {
    width: 110px;
    color: #888;
    font-weight: 600;
    margin-bottom: 0;
}
.rg-info-row p { color: var(--text); font-weight: 600; }

.rg-btn-inquiry {
    display: inline-block;
    padding: 13px 44px;
    border-radius: 4px;
    background: var(--orange);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 1px;
    text-decoration: none;
    transition: background .2s;
}
.rg-btn-inquiry:hover { background: var(--orange-dark); color: #fff; text-decoration: none; }

.rg-btn-wish {
    display: inline-block;
    padding: 13px 40px;
    border-radius: 4px;
    background: #fff;
    border: 2px solid var(--orange);
    color: var(--orange);
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 1px;
    text-decoration: none;
    transition: all .2s;
}
.rg-btn-wish:hover { background: #fff3ea; color: var(--orange); text-decoration: none; }

.rg-info-share { font-size: 13px; color: #888; }
.rg-share-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--gray-bg);
    border: 1px solid var(--border);
    color: #666;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    cursor: pointer;
    transition: all .2s;
}
.rg-share-icon:hover {
    background: var(--orange);
    color: #fff;
    border-color: var(--orange);
}

/* --- rg-home-provider（原 rg-home.css:215-232 迁入）---------------------- */
.rg-provider { padding: 64px 0; }
.rg-provider-inner { max-width: 880px; margin: 0 auto; text-align: center; }
.rg-provider .rg-section-title { color: var(--orange); }
.rg-provider .rg-section-sub { color: #555; font-size: 16px; line-height: 1.9; }

.rg-btn-more {
    display: inline-block;
    margin-top: 26px;
    padding: 13px 42px;
    border-radius: 4px;
    border: 2px solid var(--orange);
    color: var(--orange);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 1px;
    text-decoration: none;
    transition: all .2s;
}
.rg-btn-more:hover { background: var(--orange); color: #fff; text-decoration: none; }

.rg-provider-video {
    position: relative;
    max-width: 980px;
    margin: 40px auto 0;
    border-radius: 10px;
    overflow: hidden;
}
.rg-provider-video img { width: 100%; height: auto; display: block; }
.rg-provider-video video { width: 100%; height: auto; display: block; }

/* 播放按钮遮罩（原 provider + showroom 共用封面图方案）。
   2026-09-30 两个 brick 均改为 pimcore_video + 原生 controls，
   暂未使用；如恢复「封面图 + 播放按钮」视觉可复用。 */
.rg-play-cover {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .28);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.rg-play-cover span {
    width: 74px;
    height: 74px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    position: relative;
}
.rg-play-cover span::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-40%, -50%);
    border-style: solid;
    border-width: 12px 0 12px 20px;
    border-color: transparent transparent transparent var(--orange);
}

/* --- rg-home-showroom（原 rg-home.css:235-245 迁入）---------------------- */
.rg-showroom { padding: 64px 0; }
.rg-showroom .rg-section-title { color: var(--orange); }
.rg-showroom-visual {
    position: relative;
    max-width: 1080px;
    margin: 36px auto 0;
    border-radius: 10px;
    overflow: hidden;
}
.rg-showroom-visual img { width: 100%; height: auto; display: block; }
.rg-showroom-visual video { width: 100%; height: auto; display: block; }

/* --- rg-detail-related（原 rg-detail.css:108-120 + 模板内联 style 迁入）--- */
.rg-related { max-width: 1280px; margin: 0 auto; padding: 44px 24px 60px; }
.rg-related h2 {
    text-align: center;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: 1.5px;
    color: var(--text);
    margin-bottom: 30px;
    text-transform: uppercase;
}
.rg-related-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 16px;
}
.rg-rel-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow .2s, transform .2s;
}
.rg-rel-card:hover { box-shadow: 0 8px 22px rgba(0, 0, 0, .1); transform: translateY(-2px); }
.rg-rel-img {
    display: flex;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #f5f5f5;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.rg-rel-img img { width: 100%; height: 100%; object-fit: cover; }
.rg-rel-no-image { color: #999; font-size: 14px; }
.rg-rel-name {
    display: block;
    padding: 10px 12px 14px;
    font-size: 13.5px;
    color: var(--text);
    line-height: 1.4;
    text-decoration: none;
}
.rg-rel-name:hover { color: var(--orange); text-decoration: none; }

@media (max-width: 1024px) {
    .rg-related-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
}
@media (max-width: 600px) {
    .rg-related { padding: 30px 16px 44px; }
    .rg-related-grid { grid-template-columns: repeat(2, 1fr); }
}

/* --- rg-home-by-application（原 rg-home.css:185-204 迁入）---------------- */
.rg-by-applications { background: var(--dark); padding: 64px 0; }
.rg-by-applications .rg-section-title { color: #fff; }
.rg-by-applications .rg-section-sub { color: #c9c9cd; }

.rg-app-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: 38px;
}
.rg-app-card {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    background: #262626;
    cursor: pointer;
}
.rg-app-img { aspect-ratio: 4 / 3; overflow: hidden; }
.rg-app-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.rg-app-card:hover .rg-app-img img { transform: scale(1.06); }
.rg-app-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    color: #fff;
    font-size: 14.5px;
    font-weight: 700;
}
.rg-app-label .rg-arr { color: var(--orange); font-size: 18px; }

@media (max-width: 1024px) { .rg-app-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .rg-app-grid { grid-template-columns: 1fr; } }

/* --- rg-list-filter（改造后新增）----------------------------------------- */
.rg-list-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin: 18px 0 24px;
}
.rg-filter-item { flex: 1 1 220px; min-width: 0; }
.rg-filter-label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: #888;
    margin-bottom: 6px;
}
.rg-filter-select {
    height: auto;
    padding: 9px 12px;
    font-size: 14px;
    color: #333;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
}
.rg-filter-select:focus {
    border-color: var(--orange);
    box-shadow: 0 0 0 3px rgba(235, 97, 0, .15);
}

/* --- rg-list-products（改造后新增）--------------------------------------- */
.rg-list-content { flex: 1; min-width: 0; }
.rg-page-title {
    font-size: 26px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 6px;
}
.rg-page-count {
    font-size: 13px;
    color: #999;
    margin-bottom: 22px;
}
.rg-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.rg-product-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow .25s, transform .25s;
}
.rg-product-card:hover {
    box-shadow: 0 10px 26px rgba(0, 0, 0, .12);
    transform: translateY(-4px);
}
.rg-product-card .rg-p-img {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 200px;
    margin: 0 auto;
    background: var(--gray-bg);
    overflow: hidden;
    border-bottom: 1px solid #f0f0f0;
}
.rg-product-card .rg-p-img img {
    width: 280px;
    height: 200px;
    object-fit: cover;
    display: block;
    transition: transform .4s;
}
.rg-product-card:hover .rg-p-img img { transform: scale(1.04); }
.rg-product-card .rg-p-info { padding: 14px 16px 18px; text-align: center; }
.rg-product-card .rg-p-name {
    font-size: 14.5px;
    font-weight: 700;
    color: var(--text);
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.5;
}
.rg-p-link-hint {
    font-size: 11px;
    color: #999;
    text-align: center;
    padding-bottom: 6px;
}
@media (max-width: 1024px) { .rg-product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .rg-product-grid { grid-template-columns: 1fr; } }

/* --- rg-hero-slider 编辑态辅助条（改造后新增）---------------------------- */
.rg-edit-bar {
    position: relative;
    z-index: 30;
    background: rgba(0, 0, 0, .6);
    color: #fff;
    padding: 8px 16px;
    font-size: 12px;
    display: flex;
    gap: 10px;
    align-items: center;
}
.rg-edit-bar .rg-edit-hint { color: #bbb; }
.rg-edit-hint-bar {
    position: relative;
    z-index: 31;
    background: rgba(0, 0, 0, .6);
    color: #fff;
    padding: 4px 10px;
    font-size: 11px;
    margin-bottom: 2px;
}
.rg-hero-slide-link {
    display: block;
    width: 100%;
    height: 100%;
}

/* --- rg-detail-description（改造后新增）---------------------------------- */
.rg-desc-wrap {
    max-width: 1280px;
    margin: 0 auto;
    padding: 40px 24px 10px;
}
.rg-desc-tabs {
    display: flex;
    border-bottom: 2px solid var(--border);
    margin-bottom: 24px;
}
.rg-desc-tab {
    padding: 12px 26px;
    font-size: 15px;
    font-weight: 700;
    color: #888;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    cursor: pointer;
    transition: color .2s;
}
.rg-desc-tab.on {
    color: var(--orange);
    border-bottom-color: var(--orange);
}
.rg-desc-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}
.rg-desc-table th,
.rg-desc-table td {
    border: 1px solid #ddd;
    padding: 12px 16px;
    font-size: 14px;
    vertical-align: middle;
    text-align: left;
}
.rg-desc-table th { background: var(--gray-bg); font-weight: 700; width: 200px; }
.rg-desc-table .rg-desc-label { background: #fafafa; font-weight: 700; width: 200px; }
.rg-desc-table ul { list-style: none; }
.rg-desc-table ul li { padding: 2px 0; font-size: 14px; }
.rg-desc-table ul li::before { content: "\2022 "; color: var(--orange); font-weight: 800; }
.rg-desc-table .rg-dtable {
    width: 100%;
    border-collapse: collapse;
    margin-top: 4px;
}
.rg-desc-table .rg-dtable th,
.rg-desc-table .rg-dtable td {
    border: 1px solid #ddd;
    padding: 9px 14px;
    text-align: center;
    font-size: 14px;
    background: #fff;
}
.rg-desc-table .rg-dtable th { background: #fafafa; }

/* --- rg-home-latest-product（改造后新增）--------------------------------- */
.rg-latest-product { background: #fff; padding: 60px 0 70px; }
.rg-latest-product .rg-product-grid { margin-top: 40px; }
.rg-latest-product .rg-product-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow .25s, transform .25s;
}
.rg-latest-product .rg-product-card:hover {
    box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
    transform: translateY(-4px);
}
.rg-latest-product .rg-product-img {
    position: relative;
    background: var(--gray-bg);
    overflow: hidden;
}
.rg-latest-product .rg-product-img img {
    width: 100%;
    height: auto;
    transition: transform .4s;
}
.rg-latest-product .rg-product-card:hover .rg-product-img img { transform: scale(1.04); }
.rg-latest-product .rg-product-info { padding: 18px 20px 22px; text-align: center; }
.rg-latest-product .rg-product-name {
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 编辑态：block entries 横向流动，与前台网格一致 */
.rg-editmode-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-start;
    padding: 8px 4px;
}
.rg-editmode-grid > .pimcore_editable_block {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-start;
    width: 100%;
}
.rg-editmode-grid > .pimcore_editable_block > .pimcore_block_entry { flex: 0 0 300px; min-width: 0; }
.rg-editmode-grid > .pimcore_editable_block > .pimcore-editable-dropzone-container {
    flex: 0 0 6px;
    height: 6px;
    min-width: 6px;
    overflow: hidden;
}
.rg-editmode-grid .rg-product-card { width: 100%; height: 100%; margin: 0; }
.rg-editmode-grid .rg-product-card .rg-product-img {
    width: calc(100% - 16px);
    height: 160px;
    margin: 6px 8px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 6px;
    overflow: hidden;
}
.rg-editmode-grid .rg-product-card .rg-product-img img {
    width: 100%;
    height: 160px;
    object-fit: contain;
    background: #fff;
}
.rg-editmode-grid .rg-product-card .rg-product-info { padding: 10px 8px 12px; }
.rg-editmode-grid .rg-edit-link { font-size: 11px; color: #999; line-height: 1.4; padding: 4px 8px 0; }

/* ==========================================================================
   阶段 3：B 级 brick（9 个）迁入的规则
   ========================================================================== */

/* --- rg-home/detail/list/demo-footer（4 个 footer 结构完全一致）----------- */
.rg-site-footer {
    background: var(--dark);
    color: #c9c9cd;
    padding: 56px 0 0;
}
.rg-site-footer *, .rg-site-footer *::before, .rg-site-footer *::after { box-sizing: border-box; }
.rg-site-footer a { text-decoration: none; color: inherit; }
.rg-site-footer ul { list-style: none; margin: 0; padding: 0; }

.rg-footer-top {
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 24px;
    text-align: center;
}
.rg-footer-logo { max-width: 340px; margin: 0 auto 34px; }
.rg-footer-logo img { width: 100%; height: auto; }
.rg-footer-logo-text { font-size: 26px; font-weight: 800; letter-spacing: 3px; color: #fff; }

.rg-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px 28px;
    max-width: 860px;
    margin: 0 auto;
    text-align: left;
}
.rg-contact-card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border: 1px solid #3c3c40;
    border-radius: 8px;
    background: #242427;
}
.rg-contact-card .rg-c-icon {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: 50%;
    background: var(--orange);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
}
.rg-contact-card .rg-c-icon .bi { font-size: 19px; line-height: 1; }
.rg-contact-card .rg-c-icon-edit { flex: 0 0 auto; min-width: 220px; padding: 2px 0; }
.rg-contact-card .rg-c-label {
    font-size: 12px;
    color: #8f8f95;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.rg-contact-card .rg-c-value {
    font-size: 15px;
    color: #f2f2f4;
    font-weight: 600;
    margin-top: 2px;
}

.rg-footer-bottom {
    margin-top: 48px;
    border-top: 1px solid #35353a;
    background: #161618;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}
.rg-footer-bottom .rg-keep {
    font-size: 14px;
    letter-spacing: 2px;
    color: #e8e8e8;
    font-weight: 700;
}
.rg-btn-join {
    display: inline-block;
    padding: 10px 34px;
    border-radius: 4px;
    background: var(--orange);
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 2px;
    transition: background .2s;
}
.rg-btn-join:hover { background: var(--orange-dark); color: #fff; text-decoration: none; }
.rg-footer-copy {
    max-width: 1080px;
    margin: 0 auto;
    padding: 18px 24px 26px;
    font-size: 12px;
    color: #7c7c82;
    text-align: center;
}
@media (max-width: 768px) { .rg-contact-grid { grid-template-columns: 1fr; } }

/* --- rg-home-events -------------------------------------------------------- */
.rg-events { background: #fff; padding: 64px 0 72px; }
.rg-events .rg-section-title { color: var(--orange); }
.rg-events-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-top: 44px;
}
.rg-event-card {
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    transition: box-shadow .25s, transform .25s;
}
.rg-event-card:hover {
    box-shadow: 0 12px 28px rgba(0, 0, 0, .12);
    transform: translateY(-4px);
}
.rg-event-card .rg-e-img { height: 210px; overflow: hidden; background: var(--gray-bg); }
.rg-event-card .rg-e-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s;
}
.rg-event-card:hover .rg-e-img img { transform: scale(1.05); }
.rg-event-card .rg-e-body { padding: 20px 22px 24px; }
.rg-event-card h3 {
    font-size: 19px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 10px;
    line-height: 1.4;
}
.rg-event-card p { font-size: 13.5px; color: var(--text-light); line-height: 1.85; }
.rg-event-card .rg-e-link {
    display: inline-block;
    margin-top: 14px;
    color: var(--orange);
    font-weight: 700;
    font-size: 14px;
}
.rg-event-card .rg-e-link:hover { text-decoration: underline; color: var(--orange); }
.rg-event-card ul.rg-e-list { margin-top: 8px; }
.rg-event-card ul.rg-e-list li {
    font-size: 13.5px;
    color: var(--text-light);
    line-height: 1.8;
    position: relative;
    padding-left: 14px;
}
.rg-event-card ul.rg-e-list li::before {
    content: "\2014";
    position: absolute;
    left: 0;
    color: var(--orange);
}
.rg-event-card ul.rg-e-list li.has-icon { padding-left: 0; }
.rg-event-card ul.rg-e-list li.has-icon::before { content: none; }
.rg-event-card ul.rg-e-list li .rg-e-li-icon {
    display: inline-block;
    width: 24px;
    height: 24px;
    vertical-align: -5px;
    margin-right: 6px;
    overflow: hidden;
    border-radius: 3px;
    background: var(--gray-bg);
}
.rg-event-card ul.rg-e-list li .rg-e-li-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.rg-e-hint { font-size: 11px; color: #999; padding: 2px 0; }
.rg-e-text2 { margin-top: 8px; }
@media (max-width: 1024px) { .rg-events-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .rg-events-grid { grid-template-columns: 1fr; } }

/* --- rg-home/detail/list-navbar（3 个 navbar 结构完全一致）----------------- */
.rg-site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--dark);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
}
.rg-site-header *, .rg-site-header *::before, .rg-site-header *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
.rg-site-header a { text-decoration: none; color: inherit; }
.rg-site-header ul { list-style: none; }
.rg-site-header img { max-width: 100%; display: block; }

.rg-header-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 18px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.rg-logo { display: flex; flex-direction: column; line-height: 1.1; }
.rg-logo .rg-logo-name {
    font-size: 28px;
    font-weight: 800;
    color: #fff;
    letter-spacing: 1px;
}
.rg-logo .rg-logo-name sup {
    font-size: 11px;
    font-weight: 400;
    color: #bbb;
    top: -.8em;
}
.rg-logo .rg-logo-sub {
    font-size: 11px;
    color: #ff9a4d;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}
.rg-logo .rg-logo-img {
    display: block;
    height: 44px;
    width: auto;
    max-width: 280px;
    object-fit: contain;
    margin-left: 18px;
}

/* 桌面主导航 */
.rg-main-nav ul { display: flex; align-items: center; gap: 6px; }
.rg-main-nav > ul > li { position: relative; }
.rg-main-nav > ul > li > a {
    display: block;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 600;
    color: #d8d8dc;
    border-radius: 4px;
    transition: color .2s, background .2s;
}
.rg-main-nav > ul > li > a:hover { color: #fff; background: #2e2e33; }
.rg-main-nav > ul > li.has-drop > a::after {
    content: "\25BE";
    font-size: 10px;
    margin-left: 6px;
    color: #ff9a4d;
}

/* 下拉面板（原 .rg-mega-dropdown） */
.rg-mega-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 420px;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .22);
    padding: 14px 0 8px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .2s, transform .2s, visibility .2s;
    z-index: 1001;
}
.rg-main-nav > ul > li:hover .rg-mega-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.rg-mega-dropdown .rg-group { padding: 0 16px 10px; }
.rg-mega-dropdown .rg-group-title {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #999;
    padding: 8px 10px 6px;
}
.rg-mega-dropdown .rg-group ul { display: flex; flex-wrap: wrap; gap: 2px; }
.rg-mega-dropdown .rg-group ul li { flex: 1 1 45%; }
.rg-mega-dropdown .rg-group ul li a {
    display: block;
    padding: 7px 10px;
    font-size: 13.5px;
    color: #444;
    border-radius: 4px;
    transition: background .18s, color .18s;
}
.rg-mega-dropdown .rg-group ul li a:hover { background: #fff3ea; color: var(--orange); }
.rg-mega-detail-hint {
    font-size: 11px;
    color: #999;
    line-height: 1.5;
    padding: 2px 0;
}

/* 汉堡按钮 & 移动菜单 */
.rg-nav-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    flex-direction: column;
    gap: 5px;
    padding: 6px;
}
.rg-nav-toggle span {
    width: 24px;
    height: 3px;
    background: #fff;
    border-radius: 2px;
}
.rg-mobile-nav {
    max-height: 0;
    overflow: hidden;
    background: #202024;
    transition: max-height .3s ease;
}
.rg-mobile-nav.open { max-height: 560px; overflow-y: auto; }
.rg-mobile-nav a {
    display: block;
    padding: 12px 24px;
    font-size: 14px;
    color: #ccc;
    border-bottom: 1px solid #2e2e33;
}
.rg-mobile-nav a:hover { color: #fff; background: #2a2a2f; }
.rg-mobile-nav .rg-m-group { padding: 10px 24px; background: #26262b; }
.rg-mobile-nav .rg-m-group-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--orange);
    margin-bottom: 4px;
}
.rg-mobile-nav .rg-m-group a {
    display: inline-block;
    padding: 6px 10px;
    font-size: 13.5px;
    color: #ccc;
    border: none;
}
.rg-mobile-hint { padding: 12px 24px; color: #999; font-size: 12px; }
.rg-edit-logo-hint { font-size: 11px; color: #999; line-height: 1.4; }

@media (max-width: 1024px) {
    .rg-main-nav { display: none; }
    .rg-nav-toggle { display: flex; }
}

/* 编辑态：mega dropdown 常展开（原来是内联 style，现改为类） */
.rg-mega-dropdown.rg-dd-edit-open {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    padding: 10px;
}

/* --- header snippet（两行式：上排 logo+语言，下排导航）--------------------- */
.rg-header-top { background: var(--dark); }
.rg-header-top-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 24px 24px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.rg-header-top-right { flex: none; display: flex; align-items: center; }
.rg-header-navbar {
    background: #232327;
    border-top: 1px solid #3a3a3e;
}
.rg-header-navbar-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 52px;
}
.rg-logo-edit-hint {
    border: 1px dashed #bbb;
    background: #fafafa;
    padding: 8px 14px;
    font-size: 12px;
    color: #666;
    max-width: 300px;
}
.rg-mobile-nav .rg-m-group a { border-bottom: none; }

/* 编辑态：footer "Join us" 链接提示（原内联 style） */
.rg-join-hint { font-size: 11px; color: #999; }

/* ==========================================================================
   阶段 4：C + D 级 brick（8 个）迁入的规则
   ========================================================================== */

/* --- rg-list-catalog / rg-list-sidebar 共用：容器 + 侧栏 + 产品列表 -------- */
.rg-list-catalog {
    display: flex;
    gap: 36px;
    align-items: flex-start;
    max-width: 1280px;
    margin: 0 auto;
    padding: 36px 24px 60px;
}
.rg-content { flex: 1; min-width: 0; }

/* 侧栏列（aside）—— rg-list-catalog 的直接子列；rg-list-sidebar 里的左列。
   ⚠️ rg-list-sidebar 的行容器也叫 .rg-sidebar（div.rg-sidebar，同名不同角色，
   历史遗留），所以列样式必须限定 aside 元素，容器样式见下一规则。 */
.rg-list-catalog aside.rg-sidebar,
aside.rg-sidebar { flex: 0 0 255px; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: #fff; }

/* rg-list-sidebar brick 的行容器（div.rg-sidebar）：左列 + 右内容一行排布。
   参考站原本是 brick 内联 <style>，2026-09-29 并入本文件。 */
div.rg-sidebar {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}
.rg-side-title {
    background: var(--dark);
    color: #fff;
    font-size: 16px;
    font-weight: 800;
    padding: 14px 18px;
    letter-spacing: .5px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.rg-side-title .rg-clear-filters {
    font-size: 12px;
    font-weight: 600;
    color: #ff9a4d;
    text-decoration: none;
    white-space: nowrap;
}
.rg-side-title .rg-clear-filters:hover { color: #fff; }

/* 分类树（cat-tree / ks-tree 通用） */
.rg-cat-tree, .rg-ks-tree { list-style: none; margin: 0; padding: 0; max-height: 640px; overflow: auto; }
.rg-cat-node, .rg-ks-node { position: relative; border-bottom: 1px solid #f7f7f7; }
.rg-cat-node:last-child, .rg-ks-node:last-child { border-bottom: none; }
.rg-cat-toggle, .rg-ks-toggle {
    position: absolute;
    left: 8px;
    top: 7px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 17px;
    color: #999;
    user-select: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, .05);
    transition: transform .2s, color .15s, background .15s;
    border: none;
    padding: 0;
}
.rg-cat-toggle:hover, .rg-ks-toggle:hover { color: #fff; background: var(--orange); }
.rg-cat-toggle.open, .rg-ks-toggle.open { transform: rotate(90deg); color: #fff; background: var(--orange); }
.rg-cat-toggle-empty, .rg-ks-toggle-empty { cursor: default; visibility: hidden; }
.rg-cat-link, .rg-ks-link {
    display: block;
    padding: 8px 10px 8px 28px;
    font-size: 13.5px;
    color: #555;
    white-space: nowrap;
    transition: color .15s, background .15s;
    text-decoration: none;
}
.rg-cat-node.has-children > .rg-cat-link,
.rg-ks-node.has-children > .rg-ks-link { font-weight: 700; color: var(--text); }
.rg-cat-link:hover, .rg-ks-link:hover { color: var(--orange); background: #fff7f0; }
.rg-cat-link.active, .rg-ks-link.active {
    color: var(--orange);
    font-weight: 700;
    background: #fff5ef;
    border-radius: 0 6px 6px 0;
    box-shadow: inset 3px 0 0 var(--orange);
}
.rg-cat-children, .rg-ks-children {
    display: none;
    list-style: none;
    margin: 0 0 0 12px;
    padding: 0 0 0 16px;
    border-left: 1px dashed #eee;
}
.rg-cat-children.open, .rg-ks-children.open { display: block; }
.rg-cat-children .rg-cat-link, .rg-ks-children .rg-ks-link {
    padding-left: 28px;
    font-weight: 400;
    color: #666;
}
.rg-cat-empty, .rg-ks-empty { padding: 14px 18px; color: #999; font-size: 13px; }

/* --- 编辑态提示面板通用类（rg-dealer / rg-list-filter / rg-list-pagination）---
   Pimcore 后台编辑模式下的说明面板：虚线框 + 小字说明。
   原为模板内联 style=，2026-09-29 阶段 5 抽成类。 */
.rg-edit-panel-box {
    border: 1px dashed #bbb;
    padding: 14px;
    margin: 8px 0;
    background: #fafafa;
    border-radius: 6px;
}
.rg-edit-panel-box > .rg-edit-panel-title,
.rg-edit-panel-title {
    font-weight: 700;
    margin-bottom: 6px;
    color: #333;
}
.rg-edit-panel-text {
    font-size: 12px;
    color: #666;
    line-height: 1.7;
}
.rg-edit-panel-text + .rg-edit-panel-text { margin-top: 8px; }
.rg-edit-panel-text--mb { margin-bottom: 10px; }
.rg-edit-panel-label-sm {
    font-size: 12px;
    color: #666;
    margin-bottom: 4px;
}
.rg-edit-panel-label-sm + .rg-edit-panel-label-sm,
pimcore-input + .rg-edit-panel-label-sm { margin-top: 8px; }
.rg-edit-panel-note {
    font-size: 12px;
    color: #999;
    margin: 6px 0 0;
}
.rg-edit-panel-hint {
    font-size: 12px;
    color: #666;
    margin-top: 8px;
}

/* 分页项里的 editable 调试文本（原 page-link 内联 font-size:11px） */
.rg-pagination .page-link.rg-page-link-hint { font-size: 11px; }

/* rg-header-language 编辑态说明文字宽度上限（原内联 max-width:640px） */
.rg-lang-switch-hint { max-width: 640px; }

/* 编辑态下 hero 幻灯片改为静态堆叠，方便编辑器拖放
   （原 rg-home-hero-slider 内联 style，2026-09-29 阶段 5 抽成类） */
.rg-hero-slide.rg-hero-slide-edit {
    position: relative;
    opacity: 1;
    pointer-events: auto;
    height: auto;
}

/* --- rg-list-main（列表页主容器，原 rg-list.css:66-68）------------------- */
.rg-list-main {
    max-width: 1280px;
    margin: 0 auto;
    padding: 36px 24px 60px;
    display: flex;
    flex-wrap: wrap;
    gap: 36px;
    align-items: flex-start;
}
/* 直接放在主容器里的 areablock 包装 div 都是 flex item；
   筛选条占满整行，其余砖块换行到其下方 */
.rg-list-main .pimcore_area_rg-list-filter {
    flex: 0 0 100%;
    max-width: 100%;
}

/* 折叠筛选组（rg-list-sidebar） */
.rg-filter-group { border-bottom: 1px solid #f0f0f0; }
.rg-filter-group:last-child { border-bottom: none; }
.rg-filter-group-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 12px 16px;
    font-size: 13px;
    font-weight: 800;
    color: #222;
    background: #fafafa;
    border: none;
    cursor: pointer;
    letter-spacing: .2px;
    white-space: nowrap;
}
.rg-filter-group-title:hover { background: #fff3ea; }
/* 去掉浏览器默认 focus 黑框（键盘可达性由 hover 背景兜底） */
.rg-filter-group-title:focus,
.rg-filter-group-title:focus-visible { outline: none; box-shadow: none; }
.rg-fg-arrow {
    font-size: 16px;
    color: #999;
    transition: transform .2s;
    flex: none;
    margin-left: 8px;
    display: inline-block;
    line-height: 1;
}
.rg-filter-group.open .rg-fg-arrow { transform: rotate(180deg); color: var(--orange); }
.rg-filter-group-body { display: none; padding: 4px 0 10px; }
.rg-filter-group.open .rg-filter-group-body { display: block; }
.rg-filter-options { list-style: none; margin: 0; padding: 0; max-height: 300px; overflow: auto; }
.rg-filter-options li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 7px 16px 7px 20px;
    font-size: 13px;
    color: #555;
    text-decoration: none;
    transition: color .15s, background .15s;
}
.rg-filter-options li a:hover { color: var(--orange); background: #fff7f0; }
.rg-filter-options li a.active {
    color: var(--orange);
    font-weight: 700;
    background: #fff5ef;
    box-shadow: inset 3px 0 0 var(--orange);
}
.rg-fg-count {
    font-size: 11px;
    color: #999;
    background: #f0f0f0;
    border-radius: 10px;
    padding: 1px 8px;
    flex: none;
}
.rg-filter-options li a.active .rg-fg-count { background: #ffe9db; color: var(--orange); }

/* catalog / sidebar 产品网格与分页（复用 rg-product-* / rg-pagination）
   （.rg-product-grid 基础 3 列栅格见第 6 节 rg-list-products；此处仅 catalog 微调） */
.rg-list-catalog .rg-product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.rg-list-catalog .rg-product-card .rg-p-img,
.rg-p-img-box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 200px;
    margin: 0 auto;
    background: var(--gray-bg);
    overflow: hidden;
    border-bottom: 1px solid #f0f0f0;
}
.rg-p-img-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 200px;
    color: #bbb;
    font-size: 13px;
    background: var(--gray-bg);
}
.rg-p-code { font-size: 12px; color: #999; margin-top: 4px; }
.rg-grid-empty { grid-column: 1 / -1; color: #999; text-align: center; padding: 40px 0; }

/* 编辑态提示块（原内联 style） */
.rg-edit-panel {
    border: 1px dashed #bbb;
    padding: 14px;
    margin: 8px 0;
    background: #fafafa;
    border-radius: 6px;
}
.rg-edit-panel-title { font-weight: 700; margin-bottom: 6px; color: #333; }
.rg-edit-panel-desc { font-size: 12px; color: #666; line-height: 1.7; margin-bottom: 10px; }
.rg-edit-panel-label { font-size: 12px; color: #666; margin: 10px 0 4px; }
.rg-edit-panel-label-bold { font-size: 12px; color: #666; margin: 14px 0 4px; font-weight: 600; }

/* --- rg-demo-content（原 rg-demo.css 第 190 行起因，改名迁入）--- */
/* ============================================
   Product Showcase (图2布局)
   ============================================ */

.rg-demo-content {
    padding: 0;
    max-width: 100%;
}

/* Top Row: Big Image + Right Column */
.rg-showcase-top {
    display: flex;
    gap: 4px;
    padding: 20px;
    max-width: 1400px;
    margin: 0 auto;
}

.rg-showcase-main {
    flex: 2;
    position: relative;
    border-radius: 4px;
    overflow: hidden;
    min-height: 400px;
}

.rg-showcase-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rg-showcase-overlay {
    position: absolute;
    top: 50%;
    left: 60px;
    transform: translateY(-50%);
    color: #fff;
}

.rg-showcase-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 2px;
    opacity: 0.9;
}

.rg-showcase-title {
    font-size: 32px;
    font-weight: 700;
    margin: 12px 0 24px;
    line-height: 1.2;
}

.rg-showcase-btn {
    display: inline-block;
    background: #f26522;
    color: #fff;
    padding: 12px 32px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
    border-radius: 2px;
    transition: background 0.2s;
}

.rg-showcase-btn:hover {
    background: #d95a1e;
}

.rg-showcase-side {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rg-showcase-side-card {
    flex: 1;
    position: relative;
    border-radius: 4px;
    overflow: hidden;
    min-height: 198px;
}

.rg-showcase-side-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rg-side-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px;
    color: #fff;
    background: linear-gradient(transparent, rgba(0,0,0,0.6));
}

.rg-side-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.9;
}

/* ⚠️ 限定在 rg-showcase（demo brick）侧栏卡片内：裸类选择器曾泄漏到
   rg-list-sidebar / rg-list-catalog 的 FILTERS 黑条上，给它加了
   margin: 6px 0 10px，导致黑条被推离 aside 圆角裁剪区、方角外露。 */
.rg-showcase-side .rg-side-title {
    font-size: 18px;
    font-weight: 600;
    margin: 6px 0 10px;
}

.rg-side-cat {
    display: inline-block;
    background: #f26522;
    color: #fff;
    padding: 4px 12px;
    font-size: 11px;
    text-transform: uppercase;
}

/* ============================================
   Banner Rows (第二、三、四块)
   ============================================ */

.rg-showcase-banner {
    position: relative;
    width: 100%;
    max-width: 1400px;
    margin: 4px auto;
    min-height: 400px;
    overflow: hidden;
}

.rg-banner-bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}

.rg-banner-content {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    max-width: 500px;
}

/* Alignment variants */
.rg-showcase-banner.left .rg-banner-content {
    left: 10%;
}

.rg-showcase-banner.right .rg-banner-content {
    right: 10%;
    text-align: right;
}

.rg-showcase-banner.center .rg-banner-content {
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.rg-banner-title {
    font-size: 42px;
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    margin-bottom: 24px;
}

.rg-banner-desc {
    font-size: 18px;
    color: rgba(255,255,255,0.9);
    margin-bottom: 40px;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.rg-banner-btn {
    display: inline-block;
    background: #f26522;
    color: #fff;
    padding: 16px 48px;
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    text-decoration: none;
    transition: background 0.2s;
}

.rg-banner-btn:hover {
    background: #d95a1e;
}

/* Responsive */
@media (max-width: 768px) {
    .rg-demo-header h2 {
        font-size: 1.8rem;
    }
    
    .rg-demo-nav ul {
        flex-direction: column;
        text-align: center;
        gap: 10px;
    }
    
    .rg-demo-content {
        padding: 40px 20px;
    }
}

/* rg-demo-content：对齐变体与行变体（原 demo global.css 语义，改名后由本文件承担） */
.rg-showcase-banner.rg-banner-left .rg-banner-content { left: 10%; }
.rg-showcase-banner.rg-banner-right .rg-banner-content { right: 10%; text-align: right; }
.rg-showcase-banner.rg-banner-center .rg-banner-content {
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}
.rg-content-left { left: 10%; }
.rg-content-right { right: 10%; text-align: right; }
.rg-showcase-card-img { width: 100%; height: 100%; object-fit: cover; }
.rg-demo-showcase { display: block; }
.rg-banner-content.rg-align-center { text-align: center; }

/* --- rg-home-general-tools（自研轮播，原 rg-home.css:155-182 迁入并改名）--- */
.rg-general-tools { background: var(--gray-bg); padding: 60px 0 70px; }
.rg-general-tools .container { max-width: 1360px; }
.rg-tools-row { display: flex; gap: 24px; margin-top: 36px; align-items: stretch; }
.rg-tools-row + .rg-tools-row { margin-top: 34px; }
.rg-lineart {
    flex: 0 0 16%;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    min-height: 320px;
}
.rg-lineart img { width: 100%; height: auto; filter: brightness(.2); opacity: .85; }
.rg-carousel {
    flex: 1;
    position: relative;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 22px 12px 52px;
}
.rg-carousel-track { display: flex; transition: transform .5s ease; }
.rg-carousel-item { flex: 0 0 33.3333%; padding: 0 10px; }
.rg-carousel-item a {
    display: block;
    background: var(--gray-bg);
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #f0f0f0;
    transition: box-shadow .25s;
}
.rg-carousel-item a:hover { box-shadow: 0 8px 20px rgba(0, 0, 0, .12); }
.rg-carousel-item img { width: 100%; height: auto; }
.rg-carousel-item .rg-c-name {
    text-align: center;
    padding: 12px 8px;
    font-size: 14.5px;
    font-weight: 700;
    color: var(--text);
}
.rg-carousel-nav {
    position: absolute;
    bottom: 10px;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
}
.rg-carousel-dots { display: flex; gap: 7px; }
.rg-carousel-dots span {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #d0d0d0;
    cursor: pointer;
    transition: background .2s;
}
.rg-carousel-dots span.active { background: var(--orange); }
.rg-carousel-btn {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--border);
    color: var(--orange);
    font-size: 18px;
    line-height: 30px;
    text-align: center;
    cursor: pointer;
    transition: all .2s;
}
.rg-carousel-btn:hover { background: var(--orange); color: #fff; border-color: var(--orange); }
/* 编辑态：轮播常展开 */
.rg-carousel.rg-carousel-edit-open { overflow: visible; }
.rg-carousel-track.rg-carousel-edit-open { flex-wrap: wrap; transform: none !important; }
.rg-carousel-hint { font-size: 11px; color: #999; padding: 2px 0; }

/* --- rg-dealer / rg-dealer-locate / rg-dealer-results（原 rg-dealer.css 迁入并改名）--- */
.rg-dealer-main{max-width:1280px;margin:0 auto;padding:36px 24px 64px;}
.rg-dealer-wrap{display:flex;gap:28px;align-items:flex-start;}

/* ---- Left: search + service filter + map ---- */
.rg-dealer-left{flex:0 0 472px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:24px;}
.rg-locate-title{font-size:24px;font-weight:800;color:var(--text);margin-bottom:18px;}
.rg-search-box{display:flex;align-items:center;border:1px solid var(--border);border-radius:6px;padding:4px;background:#fafafa;transition:border .2s;}
.rg-search-box:focus-within{border-color:var(--orange);}
.rg-search-box input{flex:1;min-width:0;border:none;outline:none;background:transparent;padding:8px 10px;font-size:14px;font-family:inherit;color:var(--text);}
.rg-search-box input::placeholder{color:#aaa;}
.rg-icon-btn{width:38px;height:38px;flex:0 0 38px;border:none;border-radius:5px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.rg-search-btn{background:var(--orange);color:#fff;margin-left:4px;}
.rg-search-btn:hover{background:var(--orange-dark);}
.rg-locate-btn{background:#fff;border:1px solid var(--border);color:#888;margin-right:4px;}
.rg-locate-btn:hover{color:var(--orange);border-color:var(--orange);}
.rg-search-hint{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:12px;color:#999;}
.rg-reset-link{color:var(--orange);cursor:pointer;font-weight:600;}
.rg-reset-link:hover{text-decoration:underline;}

.rg-service-block{margin-top:22px;}
.rg-service-label{font-size:13px;font-weight:800;color:var(--text);margin-bottom:10px;}
.rg-chips{display:flex;flex-wrap:wrap;gap:8px;}
.rg-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:20px;background:#f2f2f2;border:1px solid var(--border);font-size:13px;color:#444;cursor:pointer;transition:all .2s;user-select:none;}
.rg-chip:hover{border-color:var(--orange);color:var(--orange);}
.rg-chip .rg-x{font-size:14px;line-height:1;color:#999;transition:color .2s;}
.rg-chip:hover .rg-x{color:var(--orange);}

.rg-map-box{margin-top:22px;border:1px solid var(--border);border-radius:8px;overflow:hidden;position:relative;background:#e7f1f8;}
/* Legacy rule from the old static-map image, removed: `.rg-map-box svg` also hit
   Leaflet's attribution flag (the small blue/yellow CARTO flag inside the
   bottom-right attribution bar) and stretched it to 100% width — it rendered
   as the big blue/yellow block over the map's bottom-right corner.
   Tile <img>s are sized by leaflet.css; card images have their own rules. */
.rg-map-box .leaflet-control-attribution svg{width:1em;height:auto;display:inline;}
/* Edit mode: the real Leaflet map renders above; underneath it the static
   China map (with pins) shows through ONLY where basemap tiles fail to load,
   so the admin edit view never sees a bare grey box. International dealers
   appear on the real tiles (the under-layer only carries China-extent pins). */
.rg-map-edit{position:relative;}
.rg-map-static-under{position:absolute;inset:0;}
.rg-map-static-under img{width:100%;height:100%;object-fit:fill;display:block;}
.rg-map-static-under .rg-map-pin{position:absolute;width:12px;height:12px;margin:-14px 0 0 -6px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--orange);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3);}
.rg-map-edit .leaflet-container{background:transparent;}
/* 静态 pin（编辑态 China map 上的位置标记；.rg-map-static-under 的后代） */
.rg-loc-pin{position:absolute;display:flex;align-items:center;gap:4px;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;}
/* Real map container (Leaflet + Tianditu tiles): needs an explicit height */
.rg-map-canvas{position:relative;width:100%;height:420px;background:#e7f1f8;}
.leaflet-container{background:#e7f1f8;font-family:inherit;font-size:12px;}
.leaflet-container a{color:var(--orange);}
.leaflet-popup-content{margin:10px 12px;line-height:1.6;}
.leaflet-popup-content-wrapper{border-radius:8px;}
.rg-map-fallback{padding:28px 18px;text-align:center;font-size:13px;color:#888;line-height:1.7;}
/* Info window content */
.rg-tmap-info{min-width:160px;max-width:230px;line-height:1.6;}
.rg-tmap-info .rg-tmap-name{font-size:13px;font-weight:700;color:var(--text);margin-bottom:2px;}
.rg-tmap-info .rg-tmap-line{font-size:12px;color:#666;word-break:break-all;}
/* Hint layer that used to sit on top of the map — removed from the map on
   request. Kept here as `display:none` so a stale cached page (or a template
   that still renders .rg-map-note) shows no overlay either. */
.rg-map-note{display:none !important;}
/* z-index must clear the Leaflet panes (tiles 200 / markers 600 / popup 700) */
.rg-map-note{position:absolute;left:10px;bottom:8px;background:rgba(255,255,255,.94);font-size:11px;color:#888;padding:4px 10px;border-radius:12px;border:1px solid var(--border);z-index:900;}
.rg-map-controls{position:absolute;top:10px;right:10px;z-index:800;display:flex;flex-direction:column;gap:6px;opacity:0;transition:opacity .2s;}
.rg-map-box:hover .rg-map-controls{opacity:1;}
.rg-map-controls button{width:30px;height:30px;border:1px solid var(--border);border-radius:6px;background:rgba(255,255,255,.95);color:var(--text);font-size:15px;line-height:1;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:all .15s;font-family:inherit;}
.rg-map-controls button:hover{color:#fff;background:var(--orange);border-color:var(--orange);}
.rg-map-controls button:active{transform:scale(.94);}
@media (hover:none){.rg-map-controls{opacity:1;}}

/* ---- Right: result list ---- */
.rg-dealer-right{flex:1;min-width:0;}
.rg-result-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;}
.rg-result-title{font-size:20px;font-weight:800;color:var(--text);}
.rg-result-count{font-size:13px;color:#999;}
.rg-dealer-card{display:flex;gap:18px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px;margin-bottom:16px;cursor:pointer;transition:all .25s;}
.rg-dealer-card:hover{border-color:#d6d6d6;box-shadow:0 8px 20px rgba(0,0,0,.07);}
.rg-dealer-card.active{border:2px solid var(--orange);box-shadow:0 10px 26px rgba(235,97,0,.14);background:#fffaf6;}
.rg-card-map{flex:0 0 168px;border:1px solid #f0f0f0;border-radius:8px;overflow:hidden;background:#f2f7fa;}
.rg-card-map img{width:100%;height:100%;display:block;object-fit:cover;}
.rg-card-info{flex:1;min-width:0;}
.rg-card-name{font-size:17px;font-weight:800;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.rg-card-name .badge{font-size:11px;font-weight:700;color:var(--orange);background:#fff0e5;border:1px solid #ffd9bf;padding:2px 8px;border-radius:10px;}
.rg-card-line{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-gray);margin-top:6px;}
.rg-card-line svg{flex:0 0 15px;color:var(--orange);}
.rg-card-line b{color:var(--text);font-weight:600;}
.rg-card-addr{font-size:12.5px;color:#777;margin-top:4px;line-height:1.7;}
.rg-no-result{display:none;text-align:center;padding:60px 20px;border:1px dashed var(--border);border-radius:10px;color:#999;font-size:14px;}
/* JS sets .style.display directly, so `display:none` above must win over it;
   rg-dealer.js assigns 'block' to reveal, which the rule above already allows. */
.rg-no-result[hidden]{display:none;}

/* ---- Pagination (dealer, server-rendered links) ---- */
.rg-dealer-pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:36px;}
.rg-dealer-pagination a,.rg-dealer-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 6px;border:1px solid var(--border);border-radius:4px;font-size:14px;color:#555;background:#fff;cursor:pointer;transition:all .2s;font-family:inherit;text-decoration:none;box-sizing:border-box;}
.rg-dealer-pagination a:hover:not(.active){border-color:var(--orange);color:var(--orange);}
.rg-dealer-pagination .active{background:var(--orange);border-color:var(--orange);color:#fff;font-weight:700;cursor:default;}
.rg-dealer-pagination .page-gap{border:none;color:#bbb;cursor:default;min-width:24px;}
.rg-dealer-pagination .page-prev,.rg-dealer-pagination .page-next{font-size:17px;line-height:1;}

/* ============ Responsive ============ */
@media (max-width:1024px){
  .rg-dealer-wrap{flex-direction:column;}
  .rg-dealer-left{flex:none;width:100%;}
  .rg-dealer-main{padding:28px 16px 48px;}
}
@media (max-width:640px){
  /* page paddings */
  .rg-dealer-main{padding:18px 12px 40px;}
  .rg-dealer-wrap{gap:16px;}
  /* left panel: search + chips + map */
  .rg-dealer-left{padding:14px;}
  .rg-locate-title{font-size:20px;margin-bottom:14px;}
  .rg-search-hint{flex-wrap:wrap;gap:6px;}
  .rg-service-block{margin-top:16px;}
  .rg-chip{padding:6px 10px;font-size:12.5px;}
  .rg-map-box{margin-top:16px;}
  .rg-map-canvas{height:320px;}
  .rg-map-note{left:8px;bottom:6px;font-size:10px;padding:3px 8px;max-width:62%;}
  .rg-map-controls{top:8px;right:8px;}
  .rg-map-controls button{width:32px;height:32px;}
  /* result cards stack vertically */
  .rg-result-head{margin-bottom:12px;}
  .rg-result-title{font-size:18px;}
  .rg-dealer-card{flex-direction:column;gap:12px;padding:14px;}
  .rg-card-map{flex:none;height:150px;}
  .rg-card-name{font-size:16px;}
  .rg-card-line{font-size:13px;}
  /* pagination: wrap instead of overflowing */
  .rg-dealer-pagination{flex-wrap:wrap;gap:5px;margin-top:24px;}
  .rg-dealer-pagination a,.rg-dealer-pagination span{min-width:34px;height:34px;font-size:13px;}
  .rg-dealer-pagination .page-gap{min-width:20px;}
}

/* --- rg-detail-main（原 rg-detail.css:63-109 迁入并改名）--- */
.rg-detail{max-width:1280px;margin:0 auto;padding:40px 24px 20px;display:flex;gap:48px;align-items:flex-start;}
.rg-gallery{flex:0 0 46%;}
.rg-gallery .rg-main-img{border:1px solid var(--border);border-radius:8px;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:zoom-in;height:480px;}
.rg-gallery .rg-main-img img{width:100%;height:100%;object-fit:contain;}
.rg-thumb-list{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}
.rg-thumb-list .rg-thumb{width:76px;height:76px;border:2px solid var(--border);border-radius:6px;overflow:hidden;cursor:pointer;background:#fff;transition:border-color .2s;padding:0;}
.rg-thumb-list .rg-thumb img{width:100%;height:100%;object-fit:cover;}
.rg-thumb-list .rg-thumb.active{border-color:var(--orange);}
.rg-thumb-list .rg-thumb:hover{border-color:var(--orange);}

.rg-detail-info{flex:1;min-width:0;}
.rg-info .rg-p-title{font-size:26px;font-weight:800;color:var(--text);line-height:1.35;margin-bottom:18px;}
.rg-info .rg-info-list{list-style:none;}
.rg-info .rg-info-list li{display:flex;align-items:baseline;padding:9px 0;border-bottom:1px dashed #eee;font-size:14.5px;}
.rg-info .rg-info-list li label{width:110px;color:#888;font-weight:600;}
.rg-info .rg-info-list li p{color:var(--text);font-weight:600;}
.rg-info .rg-btn-row{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap;}
.rg-btn-inquiry{display:inline-block;padding:13px 44px;border-radius:4px;background:var(--orange);color:#fff;font-size:15px;font-weight:800;letter-spacing:1px;transition:background .2s;}
.rg-btn-inquiry:hover{background:var(--orange-dark);}
.rg-btn-wish{display:inline-block;padding:13px 40px;border-radius:4px;background:#fff;border:2px solid var(--orange);color:var(--orange);font-size:15px;font-weight:800;letter-spacing:1px;transition:all .2s;}
.rg-btn-wish:hover{background:#fff3ea;}
.rg-info .rg-share{display:flex;align-items:center;gap:12px;margin-top:26px;font-size:13px;color:#888;}
.rg-info .rg-share .s-icons{display:flex;gap:8px;}
.rg-info .rg-share .s-icons span{width:32px;height:32px;border-radius:50%;background:var(--gray-bg);border:1px solid var(--border);color:#666;display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;transition:all .2s;}
.rg-info .rg-share .s-icons span:hover{background:var(--orange);color:#fff;border-color:var(--orange);}

/* ============ Description ============ */
.rg-desc-wrap{max-width:1280px;margin:0 auto;padding:40px 24px 10px;}
.rg-desc-tabs{display:flex;border-bottom:2px solid var(--border);margin-bottom:24px;}
.rg-desc-tabs .tab{padding:12px 26px;font-size:15px;font-weight:700;color:#888;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color .2s;}
.rg-desc-tabs .tab.on{color:var(--orange);border-bottom-color:var(--orange);}
.rg-desc-table{width:100%;border-collapse:collapse;background:#fff;}
.rg-desc-table th,.rg-desc-table td{border:1px solid #ddd;padding:12px 16px;font-size:14px;vertical-align:middle;text-align:left;}
.rg-desc-table th{background:var(--gray-bg);font-weight:700;width:200px;}
.rg-desc-table .label{background:#fafafa;font-weight:700;width:200px;}
.rg-desc-table ul{list-style:none;}
.rg-desc-table ul li{padding:2px 0;font-size:14px;}
.rg-desc-table ul li::before{content:"• ";color:var(--orange);font-weight:800;}
.rg-desc-table .icon-row img{max-height:40px;width:auto;margin:0 4px;display:inline-block;}
.rg-desc-table .dtable{width:100%;border-collapse:collapse;margin-top:4px;}
.rg-desc-table .dtable th,.rg-desc-table .dtable td{border:1px solid #ddd;padding:9px 14px;text-align:center;font-size:14px;background:#fff;}
.rg-desc-table .dtable th{background:#fafafa;}
.rg-keyword{max-width:1280px;margin:0 auto;padding:26px 24px 0;}
.rg-keyword .rg-k-label{font-size:13px;color:#999;margin-bottom:8px;}
.rg-keyword .rg-k-list{display:flex;gap:8px;flex-wrap:wrap;}
.rg-keyword .rg-k-list a{display:inline-block;padding:6px 14px;border:1px solid var(--border);border-radius:16px;font-size:13px;color:#777;transition:all .2s;}
.rg-keyword .rg-k-list a:hover{border-color:var(--orange);color:var(--orange);}

/* ===== 以下为旧 rg-detail.css 尚未改造的片段（阶段 5 处理）===== */
/* ============ Related 产品中心 ============ */
.related{max-width:1280px;margin:0 auto;padding:50px 24px 70px;}
.related h2{font-size:24px;font-weight:800;color:var(--text);border-left:4px solid var(--orange);padding-left:14px;margin-bottom:28px;}
.related-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;}
.rel-card{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:box-shadow .25s,transform .25s;text-align:center;}
.rel-card:hover{box-shadow:0 10px 24px rgba(0,0,0,.12);transform:translateY(-4px);}
.rel-card .r-img{background:var(--gray-bg);overflow:hidden;}
.rel-card .r-img img{width:100%;height:auto;transition:transform .4s;}
.rel-card:hover .r-img img{transform:scale(1.05);}
.rel-card .r-name{font-size:13.5px;font-weight:700;color:var(--text);padding:12px 10px 14px;line-height:1.5;}

/* ============ Footer ============ */
.site-footer{background:var(--dark);color:#c9c9cd;padding:56px 0 0;}
.footer-top{max-width:1080px;margin:0 auto;padding:0 24px;text-align:center;}
.footer-logo{max-width:340px;margin:0 auto 34px;}
.footer-logo img{width:100%;height:auto;}
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 28px;max-width:860px;margin:0 auto;text-align:left;}
.contact-card{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;border:1px solid #3c3c40;border-radius:8px;background:#242427;}
.contact-card .c-icon{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;}
.contact-card .c-label{font-size:12px;color:#8f8f95;text-transform:uppercase;letter-spacing:1px;}
.contact-card .c-value{font-size:15px;color:#f2f2f4;font-weight:600;margin-top:2px;}
.footer-bottom{margin-top:48px;border-top:1px solid #35353a;background:#161618;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;}
.footer-bottom .keep{font-size:14px;letter-spacing:2px;color:#e8e8e8;font-weight:700;}
.btn-join{display:inline-block;padding:10px 34px;border-radius:4px;background:var(--orange);color:#fff;font-size:14px;font-weight:800;letter-spacing:2px;transition:background .2s;}
.btn-join:hover{background:var(--orange-dark);}
.footer-copy{max-width:1080px;margin:0 auto;padding:18px 24px 26px;font-size:12px;color:#7c7c82;text-align:center;}

/* Floating */
.float-join{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:900;writing-mode:vertical-rl;background:var(--orange);color:#fff;padding:16px 8px;font-size:14px;font-weight:800;letter-spacing:3px;cursor:pointer;border-radius:8px 0 0 8px;box-shadow:-4px 0 14px rgba(0,0,0,.2);}
.float-badge{position:fixed;right:22px;bottom:96px;z-index:900;width:64px;height:64px;border-radius:50%;background:var(--dark);border:3px solid var(--orange);color:var(--orange);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:9px;font-weight:800;line-height:1.2;letter-spacing:.5px;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.35);}
.float-chat{position:fixed;right:26px;bottom:26px;z-index:900;width:56px;height:56px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 22px rgba(235,97,0,.45);font-size:24px;}
.float-chat .dot{position:absolute;top:-2px;right:-2px;width:18px;height:18px;border-radius:50%;background:#e53935;color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:800;}

/* Responsive */
@media (max-width:1024px){.rg-main-nav{display:none;}.rg-nav-toggle{display:flex;}.rg-detail{flex-direction:column;gap:24px;padding:28px 16px 20px;}.rg-gallery{flex:none;width:100%;}.related-grid{grid-template-columns:repeat(3,1fr);gap:12px;}.contact-grid{grid-template-columns:1fr;}.rg-desc-wrap{padding:28px 16px 10px;}.rg-keyword{padding:20px 16px 0;}.related{padding:36px 16px 56px;}}
@media (max-width:640px){
  /* page paddings */
  .rg-detail{padding:18px 12px 10px;gap:18px;}
  .rg-desc-wrap{padding:20px 12px 10px;}
  .rg-keyword{padding:16px 12px 0;}
  .related{padding:28px 12px 46px;}
  /* gallery */
  .rg-gallery .rg-main-img{height:300px;cursor:default;}
  .rg-thumb-list{gap:8px;margin-top:10px;}
  .rg-thumb-list .rg-thumb{width:60px;height:60px;}
  /* info column */
  .rg-info .rg-p-title{font-size:20px;margin-bottom:12px;}
  .rg-info .rg-info-list li{font-size:13.5px;}
  .rg-info .rg-info-list li label{flex:0 0 96px;width:96px;}
  .rg-info .rg-btn-row{gap:10px;margin-top:20px;}
  .btn-row .rg-btn-inquiry,.btn-row .rg-btn-wish{flex:1 1 auto;text-align:center;padding-left:12px;padding-right:12px;}
  .rg-info .rg-share{flex-wrap:wrap;gap:8px;margin-top:18px;}
  /* description tabs: horizontal scroll instead of wrapping/overflow */
  .rg-desc-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:16px;}
  .rg-desc-tabs .tab{flex:0 0 auto;white-space:nowrap;padding:10px 16px;font-size:14px;}
  /* spec tables wider than the screen become horizontally scrollable */
  .rg-desc-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .rg-desc-table th,.rg-desc-table .label{width:110px;}
  .rg-desc-table th,.rg-desc-table td{padding:10px 12px;font-size:13.5px;}
  /* related products */
  .related h2{font-size:20px;margin-bottom:18px;}
  .related-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  /* header (embedded in this file) */
  .rg-header-top-inner{padding:14px 12px 10px;}
  .rg-header-navbar-inner{padding:0 12px;min-height:46px;}
  .rg-logo .rg-logo-img{height:38px;max-width:210px;margin-left:0;}
  .rg-lang-switch-select{min-width:104px;padding:6px 10px;}
  .rg-mobile-nav a{padding:11px 16px;}
  .rg-mobile-nav .rg-m-group{padding:10px 16px;}
  /* footer (embedded in this file) */
  .site-footer{padding:40px 0 0;}
  .footer-top{padding:0 14px;}
  .footer-logo{max-width:260px;margin-bottom:24px;}
  .footer-bottom{padding:16px 14px;justify-content:center;text-align:center;}
  .footer-copy{padding:14px 14px 22px;}
  /* floating widgets: keep clear of the right edge on small screens */
  .float-badge{right:14px;bottom:88px;width:56px;height:56px;}
  .float-chat{right:16px;bottom:22px;width:50px;height:50px;font-size:21px;}
}

/* Bootstrap Icons in footer contact cards */
.contact-card .c-icon .bi{font-size:19px;line-height:1;}.contact-card .c-icon-edit{flex:0 0 auto;min-width:220px;padding:2px 0;}

/* --- rg-detail-main 补充：编辑态提示条 / SKU 下拉 / 空态 ------------------- */
.rg-detail-empty {
    max-width: 1280px;
    margin: 0 auto;
    padding: 120px 24px;
    text-align: center;
    color: #666;
    font-size: 16px;
}
.rg-detail-empty strong { color: #333; }
.rg-missing-bar {
    max-width: 1280px;
    margin: 0 auto;
    padding: 14px 24px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.rg-missing-bar-label { font-size: 12px; color: #999; white-space: nowrap; }
.rg-sku-selector { margin: 16px 0; }
.rg-sku-select {
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    min-width: 180px;
}
.rg-sku-placeholder { display: inline-block; margin-left: 12px; font-size: 14px; color: #999; }
.rg-sku-clear {
    margin-left: 12px;
    color: var(--orange);
    text-decoration: underline;
    font-size: 14px;
}

/* --- 补充：demo-content 行变体 / dealer 地图 pin 变体 / detail 分享图标 ----- */
/* rg-demo-content 第 2~4 行 banner（只有布局钩子，无独立视觉） */
.rg-showcase-banner.rg-banner-drill,
.rg-showcase-banner.rg-banner-pliers-1,
.rg-showcase-banner.rg-banner-pliers-2 { min-height: 400px; }

/* dealer 地图静态 pin（编辑态占位标记） */
.rg-dealer-pin { display: inline-flex; align-items: center; gap: 6px; }
.rg-ring {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--orange);
    box-shadow: 0 0 0 3px rgba(235, 97, 0, .25);
    display: inline-block;
}
.rg-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
    display: inline-block;
    margin-left: -8px;
}
.rg-name { font-size: 12px; color: var(--text); font-weight: 600; }

/* detail 分享图标行（原 .rg-share .rg-s-icons） */
.rg-share .rg-s-icons { display: flex; gap: 8px; }

/* ============================================================================
 * 10. 站脚 / 浮动件（阶段 5 从 rg-footer.css 迁入）
 * ============================================================================
 * 命名约定：
 *   站头（header）规则在**第 3 节**（.rg-site-header 及其 .rg-* 后代类），
 *   见上方「rg-home/detail/list-navbar」小节。本节只放站脚与浮动件。
 *   非 rg- 前缀的 .footer-* / .contact-* / .btn-join 都已被 .site-footer
 *   作用域包裹，不会泄漏到页面内容区。
 * ============================================================================ */

/* ---------------------------------------------------------------------------
 * 10.2 Site footer（原 rg-footer.css:19-52 迁入）
 * --------------------------------------------------------------------------- */
.site-footer *,
.site-footer *::before,
.site-footer *::after { box-sizing: border-box; }
.site-footer a { text-decoration: none; color: inherit; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }

.site-footer { background: var(--dark); color: #c9c9cd; padding: 56px 0 0; }
.footer-top { max-width: 1080px; margin: 0 auto; padding: 0 24px; text-align: center; }
.footer-logo { max-width: 340px; margin: 0 auto 34px; }
.footer-logo img { width: 100%; height: auto; }
.contact-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px 28px;
    max-width: 860px;
    margin: 0 auto;
    text-align: left;
}
.contact-card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border: 1px solid #3c3c40;
    border-radius: 8px;
    background: #242427;
}
.contact-card .c-icon {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: 50%;
    background: var(--orange);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    overflow: hidden;
}
.contact-card .c-icon img,
.contact-card .c-icon picture { width: 24px; height: 24px; object-fit: contain; display: block; }
.contact-card .c-label {
    font-size: 12px;
    color: #8f8f95;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.contact-card .c-value { font-size: 15px; color: #f2f2f4; font-weight: 600; margin-top: 2px; }
.footer-bottom {
    margin-top: 48px;
    border-top: 1px solid #35353a;
    background: #161618;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}
.footer-bottom .keep { font-size: 14px; letter-spacing: 2px; color: #e8e8e8; font-weight: 700; }
.btn-join {
    display: inline-block;
    padding: 10px 34px;
    border-radius: 4px;
    background: var(--orange);
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 2px;
    transition: background .2s;
}
.btn-join:hover { background: var(--orange-dark); }
.footer-copy {
    max-width: 1080px;
    margin: 0 auto;
    padding: 18px 24px 26px;
    font-size: 12px;
    color: #7c7c82;
    text-align: center;
}

/* ---------------------------------------------------------------------------
 * 10.3 Floating widgets（原 rg-home.css:310-330 迁入）
 * --------------------------------------------------------------------------- */
.float-join {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 900;
    writing-mode: vertical-rl;
    background: var(--orange);
    color: #fff;
    padding: 16px 8px;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 3px;
    cursor: pointer;
    border-radius: 8px 0 0 8px;
    box-shadow: -4px 0 14px rgba(0, 0, 0, .2);
    transition: background .2s;
}
.float-join:hover { background: var(--orange-dark); }
.float-badge {
    position: fixed;
    right: 22px;
    bottom: 96px;
    z-index: 900;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--dark);
    border: 3px solid var(--orange);
    color: var(--orange);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 9px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .5px;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .35);
}
.float-chat {
    position: fixed;
    right: 26px;
    bottom: 26px;
    z-index: 900;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--orange);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(235, 97, 0, .45);
    font-size: 24px;
}
.float-chat .dot {
    position: absolute;
    top: -2px;
    right: -2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #e53935;
    color: #fff;
    font-size: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
}

/* ---------------------------------------------------------------------------
 * 10.4 Hero slider（原 rg-home.css:107-124 迁入）
 * --------------------------------------------------------------------------- */
.rg-hero { position: relative; width: 100%; background: var(--dark); overflow: hidden; }
.rg-hero-slider { position: relative; width: 100%; aspect-ratio: 1920 / 780; }
.rg-hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .8s ease;
    pointer-events: none;
}
.rg-hero-slide.active { opacity: 1; pointer-events: auto; }
.rg-hero-slide img { width: 100%; height: 100%; object-fit: cover; }
.rg-hero-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .7);
    background: rgba(0, 0, 0, .25);
    color: #fff;
    font-size: 26px;
    line-height: 46px;
    text-align: center;
    cursor: pointer;
    transition: background .2s;
    user-select: none;
}
.rg-hero-arrow:hover { background: var(--orange); border-color: var(--orange); }
.rg-hero-arrow.prev { left: 24px; }
.rg-hero-arrow.next { right: 24px; }
.rg-hero-dots {
    position: absolute;
    bottom: 18px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 8px;
    z-index: 10;
}
.rg-hero-dots span {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .45);
    cursor: pointer;
    transition: background .2s, transform .2s;
}
.rg-hero-dots span.active { background: var(--orange); transform: scale(1.2); }

/* ---------------------------------------------------------------------------
 * 10.5 通用工具 wheel 轮播（原 rg-home.css:154-181 迁入）
 * --------------------------------------------------------------------------- */
.rg-general-tools .container { max-width: 1360px; }
.rg-tools-row { display: flex; gap: 24px; margin-top: 36px; align-items: stretch; }
.rg-tools-row + .rg-tools-row { margin-top: 34px; }
.rg-lineart {
    flex: 0 0 16%;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    min-height: 320px;
}
.rg-lineart img { width: 100%; height: auto; filter: brightness(.2); opacity: .85; }
.rg-carousel {
    flex: 1;
    position: relative;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 22px 12px 52px;
}
.rg-carousel-track { display: flex; transition: transform .5s ease; }
.rg-carousel-item { flex: 0 0 33.3333%; padding: 0 10px; }
.rg-carousel-item a {
    display: block;
    background: var(--gray-bg);
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #f0f0f0;
    transition: box-shadow .25s;
}
.rg-carousel-item a:hover { box-shadow: 0 8px 20px rgba(0, 0, 0, .12); }
.rg-carousel-item img { width: 100%; height: auto; }
.rg-carousel-item .rg-c-name {
    text-align: center;
    padding: 12px 8px;
    font-size: 14.5px;
    font-weight: 700;
    color: var(--text);
}
.rg-carousel-nav {
    position: absolute;
    bottom: 10px;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
}
.rg-carousel-dots { display: flex; gap: 7px; }
.rg-carousel-dots span {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #d0d0d0;
    cursor: pointer;
    transition: background .2s;
}
.rg-carousel-dots span.active { background: var(--orange); }
.rg-carousel-btn {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--border);
    color: var(--orange);
    font-size: 18px;
    line-height: 30px;
    text-align: center;
    cursor: pointer;
    transition: all .2s;
}
.rg-carousel-btn:hover { background: var(--orange); color: #fff; border-color: var(--orange); }

/* ---------------------------------------------------------------------------
 * 11. 列表页剩余块（阶段 5 从 rg-list.css 迁入）
 * --------------------------------------------------------------------------- */

/* --- 11.1 侧栏（rg-list-sidebar）-----------------------------------------
   注意：demo 的 global.css 里也有 `.sidebar`（Bootstrap 后台布局残留），
   顶层写裸 `.sidebar` 会污染 demo 页，故这里一律用
   `.rg-list-main .sidebar` / `.rg-list-catalog .sidebar` 双作用域隔离。
   每个选择器都必须把两个作用域各写一遍（不能用逗号简写后代）。 */
.rg-list-main .sidebar,
.rg-list-catalog .sidebar {
    flex: 0 0 255px;
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
.rg-list-main .sidebar .side-title,
.rg-list-catalog .sidebar .side-title {
    background: var(--dark);
    color: #fff;
    font-size: 16px;
    font-weight: 800;
    padding: 14px 18px;
    letter-spacing: .5px;
}
.rg-list-main .sidebar .cate-group,
.rg-list-catalog .sidebar .cate-group { border-bottom: 1px solid #f0f0f0; }
.rg-list-main .sidebar .cate-group > a,
.rg-list-catalog .sidebar .cate-group > a {
    display: block;
    padding: 11px 18px;
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
    background: #fafafa;
    border-left: 3px solid transparent;
}
.rg-list-main .sidebar .cate-group > a:hover,
.rg-list-catalog .sidebar .cate-group > a:hover { color: var(--orange); border-left-color: var(--orange); }
.rg-list-main .sidebar .cate-group ul li a,
.rg-list-catalog .sidebar .cate-group ul li a {
    display: block;
    padding: 8px 18px 8px 34px;
    font-size: 13.5px;
    color: #555;
    transition: color .15s, background .15s;
}
.rg-list-main .sidebar .cate-group ul li a:hover,
.rg-list-catalog .sidebar .cate-group ul li a:hover { color: var(--orange); background: #fff7f0; }
.rg-list-main .sidebar .cate-group ul li a.active,
.rg-list-catalog .sidebar .cate-group ul li a.active {
    color: var(--orange);
    font-weight: 700;
    background: #fff0e5;
    border-right: 3px solid var(--orange);
}
.rg-list-main .sidebar .side-app,
.rg-list-catalog .sidebar .side-app { background: #fff; }
.rg-list-main .sidebar .side-app .app-title,
.rg-list-catalog .sidebar .side-app .app-title {
    padding: 12px 18px;
    font-size: 13px;
    font-weight: 800;
    color: var(--orange);
    border-bottom: 1px solid #f0f0f0;
}
.rg-list-main .sidebar .side-app ul li a,
.rg-list-catalog .sidebar .side-app ul li a {
    display: block;
    padding: 8px 18px;
    font-size: 13.5px;
    color: #555;
    transition: color .15s, background .15s;
}
.rg-list-main .sidebar .side-app ul li a:hover,
.rg-list-catalog .sidebar .side-app ul li a:hover { color: var(--orange); background: #fff7f0; }

/* --- 11.2 内容列（.rg-content 已在第 8 节；此处补页标题/计数与卡片细节） --- */
.rg-content .rg-page-title { font-size: 26px; font-weight: 800; color: var(--text); margin-bottom: 6px; }
.rg-content .rg-page-count { font-size: 13px; color: #999; margin-bottom: 22px; }
.rg-product-card .rg-p-img {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 200px;
    margin: 0 auto;
    background: var(--gray-bg);
    overflow: hidden;
    border-bottom: 1px solid #f0f0f0;
}
.rg-product-card .rg-p-img img {
    width: 280px;
    height: 200px;
    object-fit: cover;
    display: block;
    transition: transform .4s;
}
.rg-product-card .rg-p-img .rg-p-img-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 280px;
    height: 200px;
    color: #bbb;
    font-size: 13px;
    background: var(--gray-bg);
}
.rg-product-card:hover .rg-p-img img { transform: scale(1.04); }
.rg-product-card .rg-p-info { padding: 14px 16px 18px; text-align: center; }
.rg-product-card .rg-p-name {
    font-size: 14.5px;
    font-weight: 700;
    color: var(--text);
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.5;
}

/* --- 11.3 横向筛选条（rg-list-filter；.list-filter / .filter-* 为 RG 自造名） --- */
.list-filter {
    display: flex;
    align-items: center;
    gap: 28px;
    width: 100%;
    padding: 16px 24px;
    margin-bottom: 26px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .04);
}
.filter-item { flex: 1 1 0; display: flex; align-items: center; gap: 12px; min-width: 0; }
.filter-label {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    white-space: nowrap;
    letter-spacing: .3px;
}
.filter-select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 100%;
    min-width: 0;
    padding: 10px 40px 10px 14px;
    font-size: 13.5px;
    color: var(--text);
    background-color: #fff;
    border: 1px solid var(--border);
    border-radius: 6px;
    cursor: pointer;
    transition: border-color .2s, box-shadow .2s, background-color .2s;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8"><path d="M1 1l5 5 5-5" stroke="%23666" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>');
    background-repeat: no-repeat;
    background-position: right 14px center;
}
.filter-select:hover { border-color: var(--orange); }
.filter-select:focus {
    outline: none;
    border-color: var(--orange);
    box-shadow: 0 0 0 3px rgba(235, 97, 0, .14);
    background-color: #fff;
}
.filter-select option { font-size: 13.5px; color: var(--text); }

/* --- 11.4 面包屑（rg-breadcrumb 主题类已在第 2 节，此处补列表页首项配色） --- */
/* （已迁移：.rg-breadcrumb-list .breadcrumb-item:first-child a） */

/* ---------------------------------------------------------------------------
 * 12. 详情页相关产品（rg-detail-related；阶段 5 从 rg-detail.css:102-111 迁入）
 * --------------------------------------------------------------------------- */
.related { max-width: 1280px; margin: 0 auto; padding: 50px 24px 70px; }
.related h2 {
    font-size: 24px;
    font-weight: 800;
    color: var(--text);
    border-left: 4px solid var(--orange);
    padding-left: 14px;
    margin-bottom: 28px;
}
.related-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.rel-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow .25s, transform .25s;
    text-align: center;
}
.rel-card:hover { box-shadow: 0 10px 24px rgba(0, 0, 0, .12); transform: translateY(-4px); }
.rel-card .r-img { background: var(--gray-bg); overflow: hidden; }
.rel-card .r-img img { width: 100%; height: auto; transition: transform .4s; }
.rel-card:hover .r-img img { transform: scale(1.05); }
.rel-card .r-name { font-size: 13.5px; font-weight: 700; color: var(--text); padding: 12px 10px 14px; line-height: 1.5; }

/* ---------------------------------------------------------------------------
 * 12.5 RG 小工具类（rg-gap-* / rg-ps-* / rg-fw-bold / rg-lh-base）
 *
 * 背景：RG 模板里曾用 Bootstrap **5** 的间距/字重工具类（gap-2 / gap-3 /
 * ps-3 / fw-bold / lh-base），但本站 Bootstrap 是 **4.3.1**，这些类根本不存在
 * → 全部是死类。这里统一换成 rg- 前缀自实现，保持视觉原意。
 *   - flex gap：Bootstrap 4 无 gap-* 工具，用 flex 容器 + gap 补齐
 *   - ps-3    ：Bootstrap 4 无逻辑方向工具，等价 padding-left:1rem
 *   - fw-bold ：等价 font-weight:700（B4 里是 .font-weight-bold）
 *   - lh-base ：等价 line-height:1.5
 * --------------------------------------------------------------------------- */
.rg-gap-2 { gap: .5rem; }
.rg-gap-3 { gap: 1rem; }
.rg-ps-3 { padding-left: 1rem; }
.rg-fw-bold { font-weight: 700 !important; }
.rg-lh-base { line-height: 1.5; }

/* ---------------------------------------------------------------------------
 * 13. RG demo 页（templates/web/rg_demo 的 .rg-demo-* brick）
 *     阶段 5 从 rg-demo.css 迁入。这些类只被 demo 页使用，
 *     与 site-header/site-footer 无关。
 * --------------------------------------------------------------------------- */
.rg-demo-header { background: #fff; }
.rg-demo-header .header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 40px;
    max-width: 1400px;
    margin: 0 auto;
}
.rg-demo-header .header-logo { display: flex; flex-direction: column; }
.rg-demo-header .logo-text {
    font-size: 28px;
    font-weight: 800;
    color: #1a1b1c;
    letter-spacing: -1px;
}
.rg-demo-header .logo-tagline {
    font-size: 11px;
    color: #f26522;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 2px;
}
.rg-demo-header .header-lang { display: flex; align-items: center; gap: 12px; }
.rg-demo-header .lang-label {
    font-size: 12px;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.rg-demo-header .header-nav { background: #1a1b1c; padding: 16px 0; }
.rg-demo-header .header-nav ul { list-style: none; display: flex; justify-content: center; gap: 40px; }
.rg-demo-header .header-nav a {
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: color .2s;
}
.rg-demo-header .header-nav a:hover { color: #f26522; }

.rg-demo-footer { background: #1a1b1c; color: #fff; padding: 60px 40px 30px; margin-top: 60px; }
.rg-demo-footer .footer-container { max-width: 1200px; margin: 0 auto; }
.rg-demo-footer .footer-logo { text-align: center; margin-bottom: 40px; }
.rg-demo-footer .footer-logo-text {
    display: block;
    font-size: 48px;
    font-weight: 800;
    color: #f26522;
    letter-spacing: -2px;
}
.rg-demo-footer .footer-logo-tag {
    display: block;
    font-size: 18px;
    color: #f26522;
    opacity: .9;
    margin-top: 4px;
}
.rg-demo-footer .footer-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}
.rg-demo-footer .contact-item {
    background: rgba(255, 255, 255, .08);
    border-radius: 8px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.rg-demo-footer .contact-icon {
    width: 48px;
    height: 48px;
    background: #f26522;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}
.rg-demo-footer .contact-info { display: flex; flex-direction: column; gap: 4px; }
.rg-demo-footer .contact-label {
    font-size: 11px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.rg-demo-footer .contact-value { font-size: 15px; color: #fff; font-weight: 500; }
.rg-demo-footer .footer-bottom { text-align: center; padding-top: 30px; border-top: 1px solid rgba(255, 255, 255, .1); }
.rg-demo-footer .copyright { font-size: 13px; color: #999; }

/* ============================================================================
 * 14. 阶段 5 统一响应式（旧 7 个文件里的 @media 汇总，去重后）
 * ============================================================================ */
@media (max-width: 1247px) {
    /* demo global.css 的 .container 是响应式的；RG 侧固定 1200px 会互相打架，
       这里恢复收缩，避免窄屏横向溢出（原 rg-demo-bridge.css） */
    .container { max-width: 100%; }
}

@media (max-width: 1024px) {
    .rg-main-nav { display: none; }
    .rg-nav-toggle { display: flex; }
    /* 移动菜单开关由 .rg-mobile-nav 的 max-height 过渡控制（见第 10 节），
       这里不能再设 display:block，否则会覆盖 max-height:0 造成菜单常显。 */

    /* rg-list-main 切列：子项撑满，否则收缩后偏左、与页面边距不齐 */
    .rg-list-main { flex-direction: column; align-items: stretch; padding: 28px 16px 48px; gap: 24px; }
    .rg-list-main > * { width: 100%; max-width: 100%; }
    .rg-list-main .container { padding: 0; }

    /* rg-list-sidebar 行容器切竖排：侧栏在上、产品栅格在下（窄屏收全宽） */
    div.rg-sidebar { flex-direction: column; align-items: stretch; }
    div.rg-sidebar aside.rg-sidebar { flex: 1 1 auto; width: 100%; }

    .rg-list-main .sidebar,
    .rg-list-catalog .sidebar { flex: none; width: 100%; }
    .rg-product-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .contact-grid { grid-template-columns: 1fr; }
    .list-filter { flex-direction: column; align-items: stretch; gap: 14px; padding: 14px 16px; }
    .filter-item { flex: none; width: 100%; }
    .rg-list-catalog { padding: 28px 16px 48px; gap: 24px; }

    .dealer-wrap { flex-direction: column; }
    .dealer-left { flex: none; width: 100%; }
    .rg-dealer-main { padding: 28px 16px 48px; }

    .related-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
}

@media (max-width: 900px) {
    .rg-list-catalog { flex-direction: column; }
    .rg-list-main .sidebar,
    .rg-list-catalog .sidebar { flex: 1 1 auto; width: 100%; }
}

@media (max-width: 768px) {
    .rg-lang-switch-title { display: none; }
    .rg-demo-header h2 { font-size: 1.8rem; }
    .rg-demo-nav ul { flex-direction: column; text-align: center; gap: 10px; }
    .rg-demo-content { padding: 40px 20px; }
}

@media (max-width: 640px) {
    /* 页面容器 padding */
    .rg-detail, .rg-list-main, .rg-list-catalog { padding: 18px 12px 40px; }
    .rg-detail { gap: 18px; }
    .rg-desc-wrap { padding: 20px 12px 10px; }
    .rg-keyword { padding: 16px 12px 0; }
    .related { padding: 28px 12px 46px; }
    .rg-dealer-main { padding: 18px 12px 40px; }
    .dealer-wrap { gap: 16px; }

    /* 面包屑 */
    .rg-breadcrumb { padding: 10px 0; }

    /* 画廊 */
    .rg-gallery .rg-main-img { height: 300px; cursor: default; }
    .rg-thumb-list { gap: 8px; margin-top: 10px; }
    .rg-thumb-list .rg-thumb { width: 60px; height: 60px; }

    /* 信息列 */
    .rg-info .rg-p-title { font-size: 20px; margin-bottom: 12px; }
    .rg-info .rg-info-list li { font-size: 13.5px; }
    .rg-info .rg-info-list li label { flex: 0 0 96px; width: 96px; }
    .rg-info .rg-btn-row { gap: 10px; margin-top: 20px; }
    .rg-btn-row .rg-btn-inquiry, .rg-btn-row .rg-btn-wish {
        flex: 1 1 auto; text-align: center; padding-left: 12px; padding-right: 12px;
    }
    .rg-info .rg-share { flex-wrap: wrap; gap: 8px; margin-top: 18px; }

    /* 描述页签横向滚动，避免换行/溢出 */
    .rg-desc-tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 16px; }
    .rg-desc-tabs .rg-desc-tab { flex: 0 0 auto; white-space: nowrap; padding: 10px 16px; font-size: 14px; }
    /* 超出屏幕的规格表改为可横向滚动 */
    .rg-desc-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .rg-desc-table th, .rg-desc-table .rg-desc-label { width: 110px; }
    .rg-desc-table th, .rg-desc-table td { padding: 10px 12px; font-size: 13.5px; }

    /* 相关产品 */
    .related h2 { font-size: 20px; margin-bottom: 18px; }
    .related-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }

    /* 列表页 */
    .rg-content .rg-page-title { font-size: 22px; }
    .rg-section-title { font-size: 26px; }
    .rg-product-grid { grid-template-columns: 1fr; gap: 14px; }
    .rg-product-card .rg-p-img,
    .rg-product-card .rg-p-img img,
    .rg-product-card .rg-p-img .rg-p-img-placeholder { width: 100%; height: 190px; }
    .rg-product-card .rg-p-name { font-size: 14px; }
    .rg-list-main .sidebar .rg-cat-tree .rg-cat-link,
    .rg-list-catalog .sidebar .rg-cat-tree .rg-cat-link { white-space: normal; word-break: break-word; }
    .rg-list-main .sidebar .side-title,
    .rg-list-catalog .sidebar .side-title { font-size: 15px; padding: 12px 14px; }
    .rg-list-main .sidebar .cate-group > a,
    .rg-list-catalog .sidebar .cate-group > a { padding: 10px 14px; }
    .rg-list-main .sidebar .cate-group ul li a,
    .rg-list-catalog .sidebar .cate-group ul li a { padding: 8px 14px 8px 30px; }
    .rg-list-main .sidebar .side-app ul li a,
    .rg-list-catalog .sidebar .side-app ul li a { padding: 8px 14px; }
    .list-filter { padding: 12px; margin-bottom: 18px; }
    .filter-select { padding: 10px 34px 10px 12px; font-size: 14px; }

    /* 站头 */
    .rg-header-top-inner { padding: 14px 12px 10px; }
    .rg-header-navbar-inner { padding: 0 12px; min-height: 46px; }
    .rg-logo .rg-logo-img { height: 38px; max-width: 210px; margin-left: 0; }
    .rg-lang-switch-select { min-width: 104px; padding: 6px 10px; }
    .rg-mobile-nav a { padding: 11px 16px; }
    .rg-mobile-nav .rg-m-group { padding: 10px 16px; }

    /* 站脚 */
    .site-footer { padding: 40px 0 0; }
    .footer-top { padding: 0 14px; }
    .footer-logo { max-width: 260px; margin-bottom: 24px; }
    .footer-bottom { padding: 16px 14px; justify-content: center; text-align: center; }
    .footer-copy { padding: 14px 14px 22px; }

    /* dealer 左栏 */
    .dealer-left { padding: 14px; }
    .rg-locate-title { font-size: 20px; margin-bottom: 14px; }
    .rg-search-hint { flex-wrap: wrap; gap: 6px; }
    .rg-service-block { margin-top: 16px; }
    .rg-chip { padding: 6px 10px; font-size: 12.5px; }
    .rg-map-box { margin-top: 16px; }
    .rg-map-canvas { height: 320px; }
    .rg-map-controls { top: 8px; right: 8px; }
    .rg-map-controls button { width: 32px; height: 32px; }
    .rg-result-head { margin-bottom: 12px; }
    .rg-result-title { font-size: 18px; }
    .rg-dealer-card { flex-direction: column; gap: 12px; padding: 14px; }
    .rg-card-map { flex: none; height: 150px; }
    .rg-card-name { font-size: 16px; }
    .rg-card-line { font-size: 13px; }

    /* 通用工具 */
    .rg-tools-row { flex-direction: column; }
    .rg-lineart { flex: auto; min-height: 0; }
    .rg-carousel-item { flex: 0 0 50%; }

    /* hero */
    .rg-hero-arrow { width: 40px; height: 40px; line-height: 36px; font-size: 20px; }

    /* 浮动件 */
    .float-badge { right: 14px; bottom: 88px; width: 56px; height: 56px; }
    .float-chat { right: 16px; bottom: 22px; width: 50px; height: 50px; font-size: 21px; }
}
