/* ===== WORKBUDDYAI_UPDATE_B [CMS] [2026-10-23 前台内容样式（主题 Default 共用）] =====
   作用域：pages_template/{Theme}/Cms/*.cshtml 引用的公共样式表。
   设计原则：
     1. 只用 CSS 变量做主题令牌，换主题改这段变量即可，不必翻模板；
     2. 不依赖 Bootstrap（前台要独立于后台主题，后台升级不能影响落地页）；
     3. 正文排版按阅读舒适度定（行高 1.85、段距 1.2em、最大行宽 760px）。
   ===== WORKBUDDYAI_UPDATE_E [CMS] ===== */

:root {
    --cf-ink: #111827;
    --cf-sub: #6b7280;
    --cf-faint: #9ca3af;
    --cf-line: #e5e7eb;
    --cf-soft: #f8fafc;
    --cf-brand: #1d4ed8;
    --cf-brand-soft: #eff6ff;
    --cf-danger: #b91c1c;
    --cf-radius: 10px;
    --cf-wrap: 1120px;
    --cf-measure: 760px;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body.cf-body {
    margin: 0;
    background: #fff;
    color: var(--cf-ink);
    font-family: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    font-size: 16px;
    line-height: 1.75;
}

.cf-body img { max-width: 100%; height: auto; }

.cf-wrap {
    margin-top:1rem!important;
    max-width: var(--cf-wrap);
    margin: 0 auto;
    padding: 0 20px;
}

.cf-link { color: var(--cf-brand); text-decoration: none; }
.cf-link:hover { text-decoration: underline; }

/* ---------------- 页头 ---------------- */

.cf-header {
    border-bottom: 1px solid var(--cf-line);
    background: rgba(255, 255, 255, .92);
    backdrop-filter: saturate(180%) blur(8px);
    position: sticky;
    top: 0;
    z-index: 20;
}

.cf-header__inner {
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: 64px;
}

.cf-logo {
    font-size: 19px;
    font-weight: 700;
    letter-spacing: .01em;
    color: var(--cf-ink);
    text-decoration: none;
    white-space: nowrap;
}

.cf-nav {
    display: flex;
    align-items: center;
    gap: 22px;
    flex: 1;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.cf-nav::-webkit-scrollbar { display: none; }

.cf-nav a {
    color: var(--cf-sub);
    text-decoration: none;
    font-size: 15px;
    white-space: nowrap;
    padding: 4px 0;
    border-bottom: 2px solid transparent;
}

.cf-nav a:hover,
.cf-nav a.is-active {
    color: var(--cf-ink);
    border-bottom-color: var(--cf-brand);
}

.cf-search {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
}

.cf-search input {
    width: 168px;
    padding: 7px 11px;
    border: 1px solid var(--cf-line);
    border-radius: 999px;
    font-size: 14px;
    outline: none;
    background: #fff;
    color: var(--cf-ink);
}

.cf-search input:focus { border-color: var(--cf-brand); }

.cf-search button {
    padding: 7px 14px;
    border: 1px solid var(--cf-line);
    background: #fff;
    border-radius: 999px;
    font-size: 14px;
    cursor: pointer;
    color: var(--cf-ink);
}

.cf-search button:hover { border-color: var(--cf-brand); color: var(--cf-brand); }

/* ---------------- 面包屑 ---------------- */

.cf-crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    font-size: 13px;
    color: var(--cf-faint);
    padding: 18px 0 0;
}

.cf-crumbs a { color: var(--cf-sub); text-decoration: none; }
.cf-crumbs a:hover { color: var(--cf-brand); }
.cf-crumbs span.sep { color: var(--cf-line); }

/* ---------------- 详情 ---------------- */

.cf-article { padding: 26px 0 64px; }

.cf-article__head { max-width: var(--cf-measure); }

.cf-article__title {
    font-size: clamp(26px, 3.4vw, 38px);
    line-height: 1.32;
    margin: 8px 0 14px;
    letter-spacing: -.01em;
}

.cf-article__sub {
    font-size: 17px;
    color: var(--cf-sub);
    margin: 0 0 16px;
    line-height: 1.7;
}

.cf-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 13.5px;
    color: var(--cf-faint);
    padding-bottom: 18px;
    border-bottom: 1px solid var(--cf-line);
}

.cf-cover {
    margin: 26px 0 0;
    border-radius: var(--cf-radius);
    overflow: hidden;
    background: var(--cf-soft);
}

.cf-cover img { display: block; width: 100%; }

.cf-prose {
    max-width: var(--cf-measure);
    margin: 30px 0 0;
    font-size: 16.5px;
    line-height: 1.85;
    color: #1f2937;
    overflow-wrap: break-word;
}

.cf-prose > *:first-child { margin-top: 0; }
.cf-prose p { margin: 0 0 1.2em; }
.cf-prose h2 { font-size: 23px; line-height: 1.4; margin: 1.9em 0 .7em; }
.cf-prose h3 { font-size: 19px; line-height: 1.45; margin: 1.6em 0 .6em; }
.cf-prose h4 { font-size: 17px; margin: 1.4em 0 .5em; }
.cf-prose ul, .cf-prose ol { margin: 0 0 1.2em; padding-left: 1.4em; }
.cf-prose li { margin: .35em 0; }
.cf-prose a { color: var(--cf-brand); text-decoration: underline; text-underline-offset: 2px; }
.cf-prose img { border-radius: 8px; margin: 1.4em 0; }
.cf-prose blockquote {
    margin: 1.4em 0;
    padding: 2px 0 2px 16px;
    border-left: 3px solid var(--cf-brand);
    color: var(--cf-sub);
    background: var(--cf-soft);
}
.cf-prose pre {
    background: #0f172a;
    color: #e2e8f0;
    padding: 16px 18px;
    border-radius: 8px;
    overflow-x: auto;
    font-size: 14px;
    line-height: 1.6;
}
.cf-prose code { font-size: .92em; }
.cf-prose table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: 15px; }
.cf-prose th, .cf-prose td { border: 1px solid var(--cf-line); padding: 9px 12px; text-align: left; }
.cf-prose th { background: var(--cf-soft); font-weight: 600; }

/* ---------------- 产品 ---------------- */

.cf-gallery { margin: 26px 0 0; }

.cf-gallery__main {
    border: 1px solid var(--cf-line);
    border-radius: var(--cf-radius);
    overflow: hidden;
    background: var(--cf-soft);
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cf-gallery__main img { width: 100%; height: 100%; object-fit: contain; }

.cf-gallery__thumbs {
    display: flex;
    gap: 10px;
    margin-top: 10px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.cf-gallery__thumb {
    flex: 0 0 auto;
    width: 84px;
    height: 64px;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    background: var(--cf-soft);
    padding: 0;
}

.cf-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cf-gallery__thumb.is-active { border-color: var(--cf-brand); }

.cf-price {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin: 18px 0 0;
}

.cf-price__now { font-size: 28px; font-weight: 700; color: var(--cf-danger); }
.cf-price__old { font-size: 15px; color: var(--cf-faint); text-decoration: line-through; }

.cf-spec {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 16px 0 0;
    font-size: 13.5px;
    color: var(--cf-sub);
}

.cf-spec span {
    background: var(--cf-soft);
    border: 1px solid var(--cf-line);
    border-radius: 999px;
    padding: 3px 11px;
}

/* ---------------- 扩展字段规格表 ---------------- */

/* 两列自适应：窄屏一列、宽屏两列。用 auto-fit 而不是固定列数，
   这样字段少的时候不会出现大片空白，字段多时也能自动铺开。 */
.cf-fields {
    margin: 28px 0 0;
    padding: 18px 20px;
    background: var(--cf-soft);
    border: 1px solid var(--cf-line);
    border-radius: 10px;
}

.cf-fields__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 10px 26px;
    margin: 0;
}

.cf-fields__row {
    display: flex;
    gap: 10px;
    font-size: 14px;
    line-height: 1.6;
    min-width: 0;
}

.cf-fields__label {
    flex: 0 0 auto;
    color: var(--cf-sub);
    white-space: nowrap;
}

.cf-fields__label::after {
    content: "：";
}

.cf-fields__value {
    margin: 0;
    color: var(--cf-ink);
    word-break: break-word;
    min-width: 0;
}

/* ---------------- 标签 / 附件 ---------------- */

.cf-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 26px 0 0; }

.cf-tag {
    font-size: 13px;
    color: var(--cf-sub);
    background: var(--cf-soft);
    border: 1px solid var(--cf-line);
    border-radius: 999px;
    padding: 4px 12px;
    text-decoration: none;
}

.cf-tag:hover { color: var(--cf-brand); border-color: var(--cf-brand); }

.cf-files { margin: 30px 0 0; }

.cf-files__title { font-size: 15px; font-weight: 600; margin: 0 0 10px; }

.cf-file {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    border: 1px solid var(--cf-line);
    border-radius: 8px;
    margin-bottom: 8px;
    text-decoration: none;
    color: var(--cf-ink);
    font-size: 14.5px;
}

.cf-file:hover { border-color: var(--cf-brand); background: var(--cf-brand-soft); }
.cf-file__size { margin-left: auto; color: var(--cf-faint); font-size: 13px; white-space: nowrap; }

/* ---------------- 锁定（预览壳） ---------------- */

.cf-lock {
    margin: 30px 0 0;
    border: 1px solid var(--cf-line);
    border-radius: var(--cf-radius);
    background: linear-gradient(180deg, #fff 0%, var(--cf-soft) 100%);
    padding: 34px 28px;
    text-align: center;
    max-width: var(--cf-measure);
}

.cf-lock__title { font-size: 17px; font-weight: 600; margin: 0 0 8px; }
.cf-lock__hint { color: var(--cf-sub); font-size: 14.5px; margin: 0 0 18px; }

.cf-btn {
    display: inline-block;
    padding: 9px 20px;
    border-radius: 8px;
    background: var(--cf-brand);
    color: #fff;
    text-decoration: none;
    font-size: 14.5px;
    border: 1px solid var(--cf-brand);
    cursor: pointer;
}

.cf-btn:hover { filter: brightness(1.08); }

.cf-btn--ghost {
    background: #fff;
    color: var(--cf-ink);
    border-color: var(--cf-line);
}

/* ---------------- 评论 ---------------- */

.cf-comments { margin: 46px 0 0; max-width: var(--cf-measure); }

.cf-comments__title {
    font-size: 17px;
    font-weight: 600;
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--cf-line);
}

.cf-comment {
    padding: 14px 0;
    border-bottom: 1px dashed var(--cf-line);
}

.cf-comment__head {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13.5px;
    color: var(--cf-faint);
    margin-bottom: 6px;
}

.cf-comment__name { color: var(--cf-ink); font-weight: 600; }

.cf-comment__badge {
    font-size: 11.5px;
    color: var(--cf-brand);
    background: var(--cf-brand-soft);
    border-radius: 4px;
    padding: 1px 6px;
}

.cf-comment__body { font-size: 15px; color: #1f2937; white-space: pre-wrap; overflow-wrap: break-word; }

.cf-comment__children { margin: 10px 0 0 18px; padding-left: 14px; border-left: 2px solid var(--cf-line); }

.cf-notice {
    margin: 0 0 14px;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 14px;
    background: var(--cf-brand-soft);
    color: #1e3a8a;
    border: 1px solid #bfdbfe;
}

.cf-notice--warn { background: #fffbeb; color: #92400e; border-color: #fde68a; }

.cf-form { margin: 22px 0 0; }

.cf-form__row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }

.cf-form input[type="text"],
.cf-form input[type="email"],
.cf-form textarea {
    width: 100%;
    border: 1px solid var(--cf-line);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 14.5px;
    font-family: inherit;
    outline: none;
    background: #fff;
    color: var(--cf-ink);
}

.cf-form input:focus, .cf-form textarea:focus { border-color: var(--cf-brand); }
.cf-form textarea { min-height: 108px; resize: vertical; }
.cf-form__row > * { flex: 1 1 220px; }

/* 蜜罐字段：视觉与语义上都藏起来（display:none 会被部分机器人识别，这里用绝对定位移出视口） */
.cf-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    opacity: 0;
}

/* ===== WORKBUDDYAI_UPDATE_B [CMS] [2026-10-24 视频 facade 与图集网格样式（此前只有 HTML 没有样式）] =====
   背景：/Pages/Cms/Article.cshtml 与各栏目详情模板输出的 .cf-video 是「封面 + 播放按钮」的门面，
   点一下才由 site.js 换成真正的 video/iframe（一个页面嵌多个第三方播放器会拖死首屏）。
   但 .cf-video 系列类一直没写样式 —— 结果是一张原尺寸大图加一个飘走的 SVG，看不出能点。
   放进 cms-front.css 而不是某个主题里：这两块属于「CMS 内容区」的通用语义，换主题也要有。 */

.cf-video { margin: 26px 0 0; }

.cf-video__frame {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: var(--cf-radius);
    overflow: hidden;
    background: #0b1220;
    cursor: pointer;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.16);
}

.cf-video__frame img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.88;
    transition: opacity 0.25s ease, transform 0.4s ease;
}

.cf-video__frame:hover img { opacity: 1; transform: scale(1.02); }

.cf-video__play {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 62px;
    height: 62px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.94);
    color: var(--cf-brand);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.3);
    transition: transform 0.2s ease, background 0.2s ease;
    pointer-events: none;
}

.cf-video__play svg { margin-left: 3px; }
.cf-video__frame:hover .cf-video__play { transform: translate(-50%, -50%) scale(1.08); background: #fff; }

.cf-video__hint { margin: 8px 0 0; font-size: 13.5px; color: var(--cf-sub); }

/* 播放器已经挂上（site.js 把 facade 换成 video/iframe）后，「点击封面播放」就没有意义了，收起来 */
.cf-video:has(.site-video__player) .cf-video__hint { display: none; }

/* site.js 把 facade 替换成播放器后，播放器直接挂在 .cf-video 里，这里兜住尺寸 */
.cf-video .site-video__player {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: var(--cf-radius);
    background: #000;
}

/* ---------------- 图集网格（BaseKind = Gallery 的主图组） ---------------- */

.cf-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 24px 0 0;
}

.cf-gallery-grid__item {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    overflow: hidden;
    background: var(--cf-soft);
}

.cf-gallery-grid__item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.cf-gallery-grid__item:hover img { transform: scale(1.04); }

@media (max-width: 720px) {
    .cf-gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .cf-video__play { width: 52px; height: 52px; }
}
/* ===== WORKBUDDYAI_UPDATE_E [CMS] ===== */

/* ---------------- 列表 ---------------- */

.cf-list { padding: 24px 0 64px; }

.cf-list__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--cf-line);
}

.cf-list__title { font-size: clamp(22px, 2.6vw, 30px); margin: 0; line-height: 1.35; }
.cf-list__count { font-size: 13.5px; color: var(--cf-faint); }

.cf-sorts { display: flex; gap: 8px; }

.cf-sorts a {
    font-size: 13.5px;
    color: var(--cf-sub);
    text-decoration: none;
    border: 1px solid var(--cf-line);
    border-radius: 999px;
    padding: 4px 12px;
}

.cf-sorts a.is-active { color: var(--cf-brand); border-color: var(--cf-brand); background: var(--cf-brand-soft); }

/* ---------------- 文字列表（通用列表页 Text 布局） ---------------- */

.cf-text-list {
    list-style: none;
    margin: 26px 0 0;
    padding: 0;
}

.cf-text-list__item {
    border-bottom: 1px solid var(--cf-line);
}

.cf-text-list__item:first-child {
    border-top: 1px solid var(--cf-line);
}

.cf-text-list__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 4px;
    text-decoration: none;
    color: inherit;
    transition: color .15s ease;
}

.cf-text-list__link:hover .cf-text-list__title {
    color: var(--cf-brand);
}

.cf-text-list__main {
    flex: 1;
    min-width: 0;
}

.cf-text-list__title {
    font-size: 16.5px;
    font-weight: 600;
    line-height: 1.5;
    margin: 0;
    color: var(--cf-ink);
    transition: color .15s ease;
}

.cf-text-list__summary {
    font-size: 14px;
    color: var(--cf-sub);
    line-height: 1.6;
    margin: 6px 0 0;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cf-text-list__meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    font-size: 13px;
    color: var(--cf-faint);
}

.cf-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
    gap: 24px;
    margin: 26px 0 0;
}

.cf-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--cf-line);
    border-radius: var(--cf-radius);
    overflow: hidden;
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: border-color .15s ease, transform .15s ease;
}

.cf-card:hover { border-color: #c7d2fe; transform: translateY(-2px); }

.cf-card__cover {
    aspect-ratio: 16 / 9;
    background: var(--cf-soft);
    overflow: hidden;
}

.cf-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }

.cf-card__cover--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cf-faint);
    font-size: 13px;
}

.cf-card__body { padding: 14px 16px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }

.cf-card__title {
    font-size: 16.5px;
    font-weight: 600;
    line-height: 1.45;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cf-card__summary {
    font-size: 14px;
    color: var(--cf-sub);
    line-height: 1.6;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cf-card__foot {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding-top: 6px;
    font-size: 12.5px;
    color: var(--cf-faint);
}

.cf-card__price { color: var(--cf-danger); font-weight: 600; font-size: 15px; }

.cf-badge {
    font-size: 11.5px;
    padding: 1px 7px;
    border-radius: 4px;
    background: var(--cf-brand-soft);
    color: var(--cf-brand);
}

.cf-badge--lock { background: #fef3c7; color: #92400e; }
.cf-badge--top { background: #fee2e2; color: var(--cf-danger); }

/* ---------------- 分页 ---------------- */

.cf-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 40px 0 0;
    flex-wrap: wrap;
}

.cf-pager a, .cf-pager span {
    min-width: 38px;
    height: 38px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cf-line);
    border-radius: 8px;
    font-size: 14px;
    color: var(--cf-sub);
    text-decoration: none;
}

.cf-pager a:hover { border-color: var(--cf-brand); color: var(--cf-brand); }
.cf-pager .is-active { background: var(--cf-brand); border-color: var(--cf-brand); color: #fff; }
.cf-pager .is-disabled { color: var(--cf-line); pointer-events: none; }

/* ---------------- 空态 / 404 ---------------- */

.cf-empty {
    text-align: center;
    padding: 72px 20px;
    color: var(--cf-faint);
}

.cf-empty__title { font-size: 20px; color: var(--cf-ink); margin: 0 0 10px; }
.cf-empty__hint { margin: 0 0 22px; }

/* ---------------- 页脚 ---------------- */

.cf-footer {
    border-top: 1px solid var(--cf-line);
    margin-top: 40px;
    padding: 28px 0 40px;
    font-size: 13px;
    color: var(--cf-faint);
}

.cf-footer__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    align-items: center;
    justify-content: space-between;
}

.cf-footer a { color: var(--cf-sub); text-decoration: none; }
.cf-footer a:hover { color: var(--cf-brand); }

/* ---------------- 响应式 ---------------- */

@media (max-width: 720px) {
    .cf-header__inner { gap: 12px; min-height: 56px; }
    .cf-nav { gap: 16px; }
    .cf-search input { width: 120px; }
    .cf-grid { grid-template-columns: 1fr; gap: 18px; }
    .cf-text-list__link { flex-direction: column; align-items: flex-start; gap: 8px; }
    .cf-text-list__meta { width: 100%; }
    .cf-prose { font-size: 16px; }
    .cf-lock { padding: 26px 18px; }
    .cf-article { padding-bottom: 44px; }
}

@media print {
    .cf-header, .cf-footer, .cf-comments, .cf-pager, .cf-sorts { display: none !important; }
}

/* ===== WORKBUDDYAI_UPDATE_B [CMS] [2026-10-24 留言 / 询价表单样式] =====
   背景：产品详情模板早就渲染了 Shared/Cms/_InquiryForm.cshtml，但 .nlsh-inquiry 系列类一直没样式，
   结果是标签、输入框、按钮全挤成一列裸元素。放 cms-front.css 而不是主题里：
   询价是 CMS 内容区的通用语义，换主题也该有样式。变量沿用上面的 --cf-* 那套。 */

.nlsh-inquiry {
    margin: 46px 0 0;
    padding: 26px 24px;
    max-width: var(--cf-measure);
    background: var(--cf-soft);
    border: 1px solid var(--cf-line);
    border-radius: var(--cf-radius);
}

.nlsh-inquiry__title { margin: 0 0 8px; font-size: 19px; color: var(--cf-ink); }

.nlsh-inquiry__sub { margin: 0 0 18px; font-size: 13.5px; color: var(--cf-sub); }

/* 必填星号：用 <i class="req"> 而非 <span>，避免被全局 span 规则额外加样式 */
.req { color: var(--cf-danger); font-style: normal; }

.nlsh-inquiry__notice {
    margin: 0 0 16px;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 14px;
}

.nlsh-inquiry__notice--ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.nlsh-inquiry__notice--fail { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

.nlsh-inquiry__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 18px;
}

.nlsh-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13.5px;
    color: var(--cf-sub);
}

.nlsh-field--full { grid-column: 1 / -1; }

.nlsh-field input,
.nlsh-field select,
.nlsh-field textarea {
    width: 100%;
    border: 1px solid var(--cf-line);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 14.5px;
    font-family: inherit;
    background: #fff;
    color: var(--cf-ink);
    outline: none;
}

.nlsh-field input:focus,
.nlsh-field select:focus,
.nlsh-field textarea:focus {
    border-color: var(--cf-brand);
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.12);
}

.nlsh-field textarea { min-height: 110px; resize: vertical; }

.nlsh-inquiry__actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.nlsh-inquiry__submit {
    background: var(--cf-brand);
    border-color: transparent;
    color: #fff;
    cursor: pointer;
    font-family: inherit;
}

.nlsh-inquiry__tip { margin: 0; font-size: 12.5px; color: var(--cf-faint); }

@media (max-width: 720px) {
    .nlsh-inquiry { padding: 20px 16px; }
    .nlsh-inquiry__grid { grid-template-columns: 1fr; }
}
/* ===== WORKBUDDYAI_UPDATE_E [CMS] ===== */

/* ===== WORKBUDDYAI_UPDATE_B [CMS] [2026-10-24 询价弹窗（Bootstrap modal）] =====
   前台已引 bootstrap.bundle.min.js，弹窗直接用官方组件：
   遮罩、焦点陷阱、ESC 关闭、滚动锁全由 Bootstrap 负责，这里只做品牌化的外观覆盖。 */

.nlsh-inquiry-modal .modal-content {
    border: 0;
    border-radius: 14px;
    box-shadow: 0 24px 64px rgba(16, 24, 40, 0.28);
}

.nlsh-inquiry-modal .modal-header { align-items: flex-start; border-bottom: 1px solid var(--cf-line); }

.nlsh-inquiry-modal .modal-title { font-size: 19px; color: var(--cf-ink); }

/* 弹窗内不再需要「卡片外壳」：底色与内边距由 modal-content / modal-body 提供 */
.nlsh-inquiry-modal .nlsh-inquiry {
    margin: 0;
    padding: 0;
    max-width: none;
    border: 0;
    border-radius: 0;
    background: transparent;
}

/* 主题的弹窗内边距规则会压到 .25em，这里显式加厚一点，表单才不贴边 */
.nlsh-inquiry-modal .modal-body { padding: 18px 20px 20px !important; }
.nlsh-inquiry-modal .modal-header { padding: 16px 20px 12px; }

.nlsh-inquiry__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }

@media (max-width: 720px) {
    .nlsh-inquiry-modal .modal-body { padding: 14px 14px 16px !important; }
    .nlsh-inquiry__grid { grid-template-columns: 1fr; }
}

/* 产品正文里的视频块：.cf-video 自带 26px 上边距，套在 .nlsh-block 里会与标题间距叠加 */
.nlsh-block--video .cf-video { margin-top: 0; }
/* ===== WORKBUDDYAI_UPDATE_E [CMS] ===== */

/* ===== WORKBUDDYAI_UPDATE_B [CMS] [2026-10-24 通用栏目首页的分类简介] =====
   /page/index 在标题下渲染后台分类的 Description，列表页（/page/list）不渲染。
   限宽是为了长简介在大屏上不会一行跨到 1400px 以上，读起来太累。 */
.cf-column__intro {
    margin: 6px 0 0;
    max-width: 880px;
    font-size: 14px;
    line-height: 1.8;
    color: var(--cf-sub);
}
/* ===== WORKBUDDYAI_UPDATE_E [CMS] ===== */
