﻿@import url(message.css);

/* ==========================================================================
   NEXUS Inner Pages — page.css
   内页框架：头图 / 两栏布局 / 侧栏组件 / 列表 / 分页 / 详情页 / 单页
   ========================================================================== */

/* ==========================================================================
   内页头图
   ========================================================================== */

.nx-page__banner {
  position: relative;
  min-height: clamp(220px, 26vw, 330px);
  display: flex;
  align-items: flex-end;
  padding: var(--nx-sp-8) 0 var(--nx-sp-6);
  background: var(--nx-graphite);
  overflow: hidden;
}

.nx-page__banner-img { position: absolute; inset: 0; }

.nx-page__banner-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(20, 22, 26, .9) 0%, rgba(20, 22, 26, .62) 55%, rgba(20, 22, 26, .38) 100%);
}

.nx-page__banner-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nx-page__banner-inner { position: relative; z-index: 2; }

.nx-page__title {
  font-size: var(--nx-fs-h1);
  color: #fff;
  margin-bottom: var(--nx-sp-3);
  padding-left: var(--nx-sp-4);
  border-left: 3px solid var(--nx-amber);
}

.nx-page__banner .nx-crumb { color: rgba(255, 255, 255, .6); }
.nx-page__banner .nx-crumb a:hover { color: var(--nx-amber-bright); }
.nx-page__banner .nx-crumb__current { color: #fff; }
.nx-page__banner .nx-crumb__sep { color: rgba(255, 255, 255, .45); }

/* 面包屑分隔符（{zan:position} 输出的纯文本） */
.nx-crumb { color: var(--nx-ink-45); }
.nx-crumb a { color: var(--nx-ink-45); }
.nx-crumb a:hover { color: var(--nx-amber); }

/* ==========================================================================
   两栏布局
   ========================================================================== */

.nx-layout {
  display: grid;
  grid-template-columns: 316px minmax(0, 1fr);
  gap: clamp(28px, 3.6vw, 56px);
  align-items: start;
}

.nx-aside {
  position: sticky;
  top: calc(var(--nx-header-h) + 24px);
}

.nx-main { min-width: 0; }

.nx-main__head {
  padding-bottom: var(--nx-sp-4);
  margin-bottom: var(--nx-sp-6);
  border-bottom: 1px solid var(--nx-line);
}

.nx-main__title { font-size: var(--nx-fs-h2); }

.nx-main__intro {
  font-size: 15px;
  line-height: 1.9;
  color: var(--nx-ink-70);
  margin-bottom: var(--nx-sp-6);
}

.nx-main__intro:empty,
.nx-main__intro p:empty { display: none; }

@media (max-width: 1024px) {
  .nx-layout { grid-template-columns: 1fr; }
  .nx-aside {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--nx-sp-4);
    order: 2;
  }
  .nx-main { order: 1; }
}

@media (max-width: 640px) {
  .nx-aside { grid-template-columns: 1fr; }
}

/* ==========================================================================
   侧栏组件
   ========================================================================== */

.nx-widget {
  background: var(--nx-white);
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  padding: var(--nx-sp-5);
  margin-bottom: var(--nx-sp-4);
}

.nx-widget:last-child { margin-bottom: 0; }

.nx-widget__title {
  font-family: var(--nx-font-display);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: var(--nx-ls-wide);
  text-transform: uppercase;
  margin-bottom: var(--nx-sp-4);
  padding-bottom: 12px;
  padding-left: 12px;
  border-bottom: 1px solid var(--nx-line-soft);
  position: relative;
}

.nx-widget__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  bottom: 14px;
  width: 3px;
  background: var(--nx-amber);
}

/* 搜索盒 */
.nx-searchbox {
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--nx-line);
  transition: border-color var(--nx-dur) var(--nx-ease);
}

.nx-searchbox:focus-within { border-bottom-color: var(--nx-amber); }

.nx-searchbox input {
  flex: 1;
  min-width: 0;
  padding: 11px 4px;
  border: 0;
  background: transparent;
  font-size: 14px;
}

.nx-searchbox input:focus { outline: none; }
.nx-searchbox input::placeholder { color: var(--nx-ink-45); }

.nx-searchbox__btn {
  padding: 8px 4px 8px 12px;
  font-size: 16px;
  color: var(--nx-ink);
  transition: color var(--nx-dur-fast) var(--nx-ease);
}

.nx-searchbox__btn:hover { color: var(--nx-amber); }

/* 分类导航 */
.nx-cate { font-size: 14px; }

.nx-cate__item { border-bottom: 1px solid var(--nx-line-soft); }
.nx-cate__item:last-child { border-bottom: 0; }

.nx-cate__item > a {
  display: block;
  padding: 12px 14px;
  color: var(--nx-ink-70);
  transition: all var(--nx-dur-fast) var(--nx-ease);
  position: relative;
}

.nx-cate__item > a:hover,
.nx-cate__item.active > a {
  background: var(--nx-sand-deep);
  color: var(--nx-amber-deep);
  padding-left: 20px;
}

.nx-cate__item.active > a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--nx-amber);
}

.nx-cate__sub { display: none; padding-bottom: 6px; background: var(--nx-sand); }

.nx-cate__sub li a {
  display: block;
  padding: 9px 14px 9px 28px;
  font-size: 13.5px;
  color: var(--nx-ink-45);
  transition: all var(--nx-dur-fast) var(--nx-ease);
}

.nx-cate__sub li a:hover,
.nx-cate__sub li.active a {
  color: var(--nx-amber-deep);
  padding-left: 34px;
}

@media (min-width: 1025px) {
  .nx-cate__sub { display: block; }
}

/* 最新文章 */
.nx-posts li {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--nx-line-soft);
}

.nx-posts li:first-child { padding-top: 0; }
.nx-posts li:last-child { border-bottom: 0; padding-bottom: 0; }

.nx-posts__img {
  flex-shrink: 0;
  width: 84px;
  height: 64px;
  overflow: hidden;
  border-radius: var(--nx-radius);
  background: var(--nx-sand-deep);
}

.nx-posts__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--nx-dur-slow) var(--nx-ease-out);
}

.nx-posts li:hover .nx-posts__img img { transform: scale(1.08); }

.nx-posts__info { min-width: 0; }

.nx-posts__title {
  display: block;
  font-size: 14px;
  line-height: 1.55;
  font-weight: 500;
  margin-bottom: 6px;
  transition: color var(--nx-dur-fast) var(--nx-ease);
}

.nx-posts li:hover .nx-posts__title { color: var(--nx-amber-deep); }

.nx-posts__date {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--nx-ink-45);
}

.nx-posts__date .iconfont { font-size: 12px; color: var(--nx-amber); }

/* 相关产品 */
.nx-sidepro li {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--nx-line-soft);
}

.nx-sidepro li:first-child { padding-top: 0; }
.nx-sidepro li:last-child { border-bottom: 0; padding-bottom: 0; }

.nx-sidepro__img {
  flex-shrink: 0;
  width: 78px;
  height: 78px;
  overflow: hidden;
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  background: var(--nx-sand-deep);
}

.nx-sidepro__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--nx-dur-slow) var(--nx-ease-out);
}

.nx-sidepro li:hover .nx-sidepro__img img { transform: scale(1.08); }

.nx-sidepro__title {
  font-size: 14px;
  line-height: 1.6;
  transition: color var(--nx-dur-fast) var(--nx-ease);
}

.nx-sidepro li:hover .nx-sidepro__title { color: var(--nx-amber-deep); }

/* ==========================================================================
   产品网格 / 图集网格
   ========================================================================== */

.nx-grid-products,
.nx-grid-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--nx-sp-4);
}

.nx-grid-products .nx-pcard__body {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.nx-grid-products .nx-pcard { display: flex; flex-direction: column; }

.nx-grid-products .nx-pcard__text { min-height: 74px; }

@media (max-width: 1100px) {
  .nx-grid-products,
  .nx-grid-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .nx-grid-products,
  .nx-grid-gallery { grid-template-columns: 1fr; }
}

/* 图集卡片 */
.nx-gcard {
  position: relative;
  display: block;
  overflow: hidden;
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  background: var(--nx-white);
}

.nx-gcard:hover { border-color: var(--nx-amber); }

.nx-gcard__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nx-sp-3);
  padding: var(--nx-sp-4);
  border-top: 1px solid var(--nx-line);
}

.nx-gcard__title {
  font-size: 15px;
  margin: 0;
  transition: color var(--nx-dur-fast) var(--nx-ease);
}

.nx-gcard:hover .nx-gcard__title { color: var(--nx-amber-deep); }

.nx-gcard__bar .iconfont {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--nx-line);
  border-radius: 50%;
  font-size: 13px;
  color: var(--nx-ink-70);
  transition: all var(--nx-dur) var(--nx-ease);
}

.nx-gcard:hover .nx-gcard__bar .iconfont {
  background: var(--nx-amber);
  border-color: var(--nx-amber);
  color: #fff;
  transform: rotate(90deg);
}

/* ==========================================================================
   新闻行式列表
   ========================================================================== */

.nx-newsrows {
  display: grid;
  gap: var(--nx-sp-4);
}

.nx-nrow {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: var(--nx-sp-5);
  padding: var(--nx-sp-4);
  background: var(--nx-white);
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  transition: transform var(--nx-dur) var(--nx-ease),
              box-shadow var(--nx-dur) var(--nx-ease),
              border-color var(--nx-dur) var(--nx-ease);
}

.nx-nrow:hover {
  transform: translateY(-3px);
  box-shadow: var(--nx-shadow-md);
  border-color: var(--nx-amber);
}

.nx-nrow__media {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--nx-radius);
  background: var(--nx-sand-deep);
  aspect-ratio: 4 / 3;
}

.nx-nrow__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--nx-dur-slow) var(--nx-ease-out);
}

.nx-nrow:hover .nx-nrow__media img { transform: scale(1.06); }

.nx-nrow__date {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  width: 62px;
  padding: 10px 0;
  background: var(--nx-graphite);
  color: #fff;
  font-family: var(--nx-font-display);
  line-height: 1.15;
}

.nx-nrow__date strong {
  font-size: 26px;
  font-weight: 600;
}

.nx-nrow__date span {
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--nx-amber-bright);
  text-transform: uppercase;
}

.nx-nrow__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--nx-sp-2) 0;
}

.nx-nrow__title {
  font-size: 20px;
  line-height: 1.45;
  margin-bottom: 10px;
}

.nx-nrow__title a { transition: color var(--nx-dur-fast) var(--nx-ease); }
.nx-nrow:hover .nx-nrow__title a { color: var(--nx-amber-deep); }

.nx-nrow__text {
  font-size: 14px;
  line-height: 1.8;
  color: var(--nx-ink-70);
  margin-bottom: var(--nx-sp-4);
  flex: 1;
}

@media (max-width: 760px) {
  .nx-nrow { grid-template-columns: 1fr; gap: var(--nx-sp-4); }
  .nx-nrow__media { aspect-ratio: 16 / 9; }
}

/* ==========================================================================
   证书墙
   ========================================================================== */

.nx-certs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--nx-sp-4);
}

.nx-cert {
  margin: 0;
  background: var(--nx-white);
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  padding: var(--nx-sp-4);
  transition: transform var(--nx-dur) var(--nx-ease),
              box-shadow var(--nx-dur) var(--nx-ease),
              border-color var(--nx-dur) var(--nx-ease);
}

.nx-cert:hover {
  transform: translateY(-4px);
  box-shadow: var(--nx-shadow-md);
  border-color: var(--nx-amber);
}

.nx-cert__img {
  aspect-ratio: 3 / 4;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--nx-sand);
  margin-bottom: var(--nx-sp-3);
  overflow: hidden;
}

.nx-cert__img img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: transform var(--nx-dur-slow) var(--nx-ease-out);
}

.nx-cert:hover .nx-cert__img img { transform: scale(1.05); }

.nx-cert__title {
  font-family: var(--nx-font-display);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: var(--nx-ls-wide);
  text-transform: uppercase;
  text-align: center;
  line-height: 1.5;
  color: var(--nx-ink-70);
}

@media (max-width: 1024px) {
  .nx-certs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .nx-certs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==========================================================================
   产品详情
   ========================================================================== */

.nx-detail {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
}

.nx-detail__gallery { position: relative; }

.nx-detail__gallery .preview-box {
  position: relative;
  background: var(--nx-white);
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  padding: var(--nx-sp-3);
}

.nx-detail__gallery #gallery {
  overflow: hidden;
  /* 宽高比放在容器上定义，避免 slide 上 aspect-ratio 与 wrapper height:100% 形成循环尺寸计算
     （移动端会导致宽度被解析成天文数字，内容撑出视口外） */
  aspect-ratio: 4 / 3;
}

.nx-detail__gallery .swiper-slide {
  width: 100%;
  height: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--nx-sand);
}

.nx-detail__gallery .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.nx-detail__gallery .prodetails-button-next,
.nx-detail__gallery .prodetails-button-prev {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, .94);
  border: 1px solid var(--nx-line);
  border-radius: 50%;
  color: var(--nx-ink);
  font-size: 16px;
  cursor: pointer;
  box-shadow: var(--nx-shadow-sm);
  transition: all var(--nx-dur) var(--nx-ease);
}

.nx-detail__gallery .prodetails-button-next { right: -14px; }
.nx-detail__gallery .prodetails-button-prev { left: -14px; }

.nx-detail__gallery .prodetails-button-next:hover,
.nx-detail__gallery .prodetails-button-prev:hover {
  background: var(--nx-graphite);
  border-color: var(--nx-graphite);
  color: #fff;
}

.nx-detail__gallery .prodetails-pagination {
  position: static;
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: var(--nx-sp-3);
}

.nx-detail__gallery .prodetails-pagination .swiper-pagination-bullet {
  width: 24px;
  height: 2px;
  margin: 0 !important;
  border-radius: 0;
  background: var(--nx-line);
  opacity: 1;
  transition: background-color var(--nx-dur) var(--nx-ease);
}

.nx-detail__gallery .prodetails-pagination .swiper-pagination-bullet-active {
  background: var(--nx-amber);
}

.nx-detail__title {
  font-size: clamp(26px, 2.4vw, 36px);
  margin-bottom: var(--nx-sp-4);
  padding-bottom: var(--nx-sp-4);
  border-bottom: 1px solid var(--nx-line);
}

.nx-detail__desc {
  font-size: 15.5px;
  line-height: 1.85;
  color: var(--nx-ink-70);
  margin-bottom: var(--nx-sp-5);
}

.nx-detail__desc:empty { display: none; }

.prodetails-btnlist {
  display: flex;
  flex-wrap: wrap;
  gap: var(--nx-sp-3);
  margin-bottom: var(--nx-sp-5);
}

.nx-detail__label {
  display: inline-block;
  margin-bottom: var(--nx-sp-4);
  padding-bottom: 8px;
  border-bottom: 2px solid var(--nx-amber);
}

.nx-detail__label span {
  font-family: var(--nx-font-display);
  font-size: 18px;
  letter-spacing: var(--nx-ls-wide);
  text-transform: uppercase;
}

.nx-detail__content {
  margin-top: var(--nx-sp-7);
  padding-top: var(--nx-sp-6);
  border-top: 1px solid var(--nx-line);
}

@media (max-width: 900px) {
  .nx-detail { grid-template-columns: minmax(0, 1fr); }
  .nx-detail__gallery .prodetails-button-next { right: 8px; }
  .nx-detail__gallery .prodetails-button-prev { left: 8px; }
}

/* ==========================================================================
   上下篇
   ========================================================================== */

.nx-prenext {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--nx-sp-3);
  margin-top: var(--nx-sp-6);
  padding-top: var(--nx-sp-5);
  border-top: 1px solid var(--nx-line);
}

.nx-prenext__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: var(--nx-sp-3) var(--nx-sp-4);
  background: var(--nx-white);
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  font-size: 14px;
  color: var(--nx-ink-70);
  transition: all var(--nx-dur) var(--nx-ease);
}

a.nx-prenext__item:hover {
  border-color: var(--nx-amber);
  color: var(--nx-amber-deep);
  transform: translateY(-2px);
}

.nx-prenext__item--next { justify-content: flex-end; text-align: right; }

.nx-prenext__item--none { opacity: .5; }

.nx-prenext__text {
  flex: 1;
  min-width: 0;
}

.nx-prenext__icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--nx-line);
  border-radius: 50%;
  font-size: 13px;
  transition: all var(--nx-dur) var(--nx-ease);
}

a.nx-prenext__item:hover .nx-prenext__icon {
  background: var(--nx-amber);
  border-color: var(--nx-amber);
  color: #fff;
}

@media (max-width: 640px) {
  .nx-prenext { grid-template-columns: 1fr; }
  .nx-prenext__item--next { justify-content: flex-start; text-align: left; }
}

/* ==========================================================================
   文章正文排版
   ========================================================================== */

.nx-article__title {
  font-size: clamp(26px, 2.6vw, 40px);
  line-height: 1.25;
  margin-bottom: var(--nx-sp-4);
}

.nx-article__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--nx-sp-5);
  padding-bottom: var(--nx-sp-4);
  margin-bottom: var(--nx-sp-6);
  border-bottom: 1px solid var(--nx-line);
  font-size: 13px;
  letter-spacing: var(--nx-ls-wide);
  text-transform: uppercase;
  color: var(--nx-ink-45);
}

.nx-article__meta span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.nx-article__meta .iconfont { color: var(--nx-amber); font-size: 14px; }

/* 文章分享 */
.nx-share {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: var(--nx-sp-6);
  padding-top: var(--nx-sp-5);
  border-top: 1px solid var(--nx-line);
}

.nx-share__label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: var(--nx-ls-wide);
  text-transform: uppercase;
  color: var(--nx-ink-45);
}

.nx-share__links { display: flex; align-items: center; gap: 10px; }

.nx-share__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  color: var(--nx-ink-70);
  font-size: 16px;
  transition: all var(--nx-dur-fast) var(--nx-ease);
}

.nx-share__link:hover {
  color: #fff;
  transform: translateY(-2px);
}

.nx-share__link--fb:hover { background: #1877F2; border-color: #1877F2; }
.nx-share__link--tw:hover { background: #1DA1F2; border-color: #1DA1F2; }
.nx-share__link--in:hover { background: #0A66C2; border-color: #0A66C2; }
.nx-share__link--wa:hover { background: #25D366; border-color: #25D366; }

.nx-prose {
  font-size: 16px;
  line-height: 1.95;
  color: #3A3F45;
}

.nx-prose > *:first-child { margin-top: 0; }

.nx-prose h2,
.nx-prose h3,
.nx-prose h4 {
  margin: var(--nx-sp-6) 0 var(--nx-sp-4);
  color: var(--nx-ink);
}

.nx-prose h2 { font-size: 24px; }
.nx-prose h3 { font-size: 20px; }
.nx-prose h4 { font-size: 17px; }

.nx-prose p { margin-bottom: var(--nx-sp-4); }

.nx-prose a {
  color: var(--nx-amber-deep);
  border-bottom: 1px solid rgba(200, 120, 30, .4);
}

.nx-prose a:hover { color: var(--nx-amber); border-bottom-color: var(--nx-amber); }

.nx-prose img,
.nx-prose video {
  max-width: 100%;
  height: auto;
  margin: var(--nx-sp-5) 0;
  border-radius: var(--nx-radius);
}

.nx-prose blockquote {
  margin: var(--nx-sp-5) 0;
  padding: var(--nx-sp-3) var(--nx-sp-5);
  background: var(--nx-sand);
  border-left: 3px solid var(--nx-amber);
  color: var(--nx-ink-70);
  font-style: italic;
}

.nx-prose ul,
.nx-prose ol {
  margin: 0 0 var(--nx-sp-4);
  padding-left: 0;
  list-style: none;
}

.nx-prose ul li,
.nx-prose ol li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 10px;
}

.nx-prose ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  width: 8px;
  height: 1px;
  background: var(--nx-amber);
}

.nx-prose ol { counter-reset: nxprose; }

.nx-prose ol li::before {
  counter-increment: nxprose;
  content: counter(nxprose) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--nx-font-display);
  color: var(--nx-amber);
}

.nx-prose strong { color: var(--nx-ink); font-weight: 600; }

.nx-prose hr {
  margin: var(--nx-sp-6) 0;
  border: 0;
  border-top: 1px solid var(--nx-line);
}

/* ==========================================================================
   证书墙（lists_article_img）
   ========================================================================== */

.nx-certs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--nx-sp-4);
}

.nx-cert {
  margin: 0;
  padding: var(--nx-sp-4);
  background: var(--nx-white);
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  text-align: center;
  transition: transform var(--nx-dur) var(--nx-ease),
              box-shadow var(--nx-dur) var(--nx-ease),
              border-color var(--nx-dur) var(--nx-ease);
}

.nx-cert:hover {
  transform: translateY(-4px);
  box-shadow: var(--nx-shadow-sm);
  border-color: var(--nx-amber);
}

.nx-cert__img {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--nx-sand);
  border-radius: var(--nx-radius);
  overflow: hidden;
}

.nx-cert__img img {
  max-width: 92%;
  max-height: 92%;
  object-fit: contain;
}

.nx-cert__title {
  margin-top: var(--nx-sp-3);
  font-size: 13px;
  line-height: 1.6;
  color: var(--nx-ink-70);
  transition: color var(--nx-dur-fast) var(--nx-ease);
}

.nx-cert:hover .nx-cert__title { color: var(--nx-amber-deep); }

@media (max-width: 900px) {
  .nx-certs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .nx-certs { grid-template-columns: 1fr; }
}

/* ==========================================================================
   分页
   ========================================================================== */

.nx-pager ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nx-pager li { list-style: none; }

/* zan:pagelist 输出结构兼容 */
.nx-pager li.current span,
.nx-pager li.on span,
.nx-pager li.active span {
  background: var(--nx-graphite);
  border-color: var(--nx-graphite);
  color: #fff;
}

/* ==========================================================================
   通用单页
   ========================================================================== */

.nx-single__title {
  font-size: var(--nx-fs-h2);
  padding-bottom: var(--nx-sp-4);
  margin-bottom: var(--nx-sp-6);
  border-bottom: 1px solid var(--nx-line);
  position: relative;
}

.nx-single__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 64px;
  height: 2px;
  background: var(--nx-amber);
}

/* ==========================================================================
   联系我们
   ========================================================================== */

.nx-contact {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--nx-sp-4);
  margin-bottom: var(--nx-sp-6);
}

.nx-contact__card {
  background: var(--nx-white);
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  padding: var(--nx-sp-6) var(--nx-sp-5);
  text-align: center;
  transition: transform var(--nx-dur) var(--nx-ease),
              box-shadow var(--nx-dur) var(--nx-ease),
              border-color var(--nx-dur) var(--nx-ease);
}

.nx-contact__card:hover {
  transform: translateY(-4px);
  box-shadow: var(--nx-shadow-md);
  border-color: var(--nx-amber);
}

.nx-contact__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto var(--nx-sp-4);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--nx-sand);
}

.nx-contact__icon img {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

.nx-contact__label {
  font-size: 12px;
  letter-spacing: var(--nx-ls-caps);
  text-transform: uppercase;
  color: var(--nx-ink-45);
  margin-bottom: 8px;
}

.nx-contact__value {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--nx-ink);
  word-break: break-all;
}

.nx-contact__value a { transition: color var(--nx-dur-fast) var(--nx-ease); }
.nx-contact__card:hover .nx-contact__value a { color: var(--nx-amber-deep); }

.nx-contact__sub {
  margin-top: 6px;
  font-size: 14px;
  color: var(--nx-ink-70);
}

.nx-contact__sub a { color: inherit; }
.nx-contact__sub a:hover { color: var(--nx-amber-deep); }

.nx-contact__form {
  padding: var(--nx-sp-7) var(--nx-sp-5);
  border-radius: var(--nx-radius);
  background: var(--nx-graphite);
}

.nx-contact__formtitle {
  font-size: var(--nx-fs-h2);
  color: #fff;
  text-align: center;
  margin-bottom: var(--nx-sp-2);
}

.nx-contact__formdesc {
  text-align: center;
  color: rgba(255, 255, 255, .6);
  margin-bottom: var(--nx-sp-5);
}

.nx-contact__form .inquiry-pc { max-width: 760px; margin: 0 auto; }

@media (max-width: 900px) {
  .nx-contact { grid-template-columns: 1fr; }
}

/* ==========================================================================
   FAQ 手风琴
   ========================================================================== */

.nx-faq {
  display: grid;
  gap: 12px;
}

.nx-faq__item {
  background: var(--nx-white);
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  overflow: hidden;
  transition: border-color var(--nx-dur) var(--nx-ease),
              box-shadow var(--nx-dur) var(--nx-ease);
}

.nx-faq__item.is-open {
  border-color: var(--nx-amber);
  box-shadow: var(--nx-shadow-sm);
}

.nx-faq__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nx-sp-4);
  padding: 18px var(--nx-sp-5);
  text-align: left;
  font-family: var(--nx-font-display);
  font-size: 16px;
  font-weight: 600;
  color: var(--nx-ink);
  transition: color var(--nx-dur-fast) var(--nx-ease);
}

.nx-faq__q:hover { color: var(--nx-amber-deep); }

.nx-faq__q .iconfont {
  flex-shrink: 0;
  font-size: 13px;
  color: var(--nx-amber);
  transition: transform var(--nx-dur) var(--nx-ease);
}

.nx-faq__item.is-open .nx-faq__q .iconfont { transform: rotate(45deg); }

.nx-faq__a {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--nx-dur-slow) var(--nx-ease);
}

.nx-faq__item.is-open .nx-faq__a { max-height: 640px; }

.nx-faq__a > div {
  padding: 0 var(--nx-sp-5) var(--nx-sp-4);
  color: var(--nx-ink-70);
}

/* ==========================================================================
   产品评论
   ========================================================================== */

.icon-star { font-style: normal; }
.icon-star::before { content: "\2605"; }

.nx-stars {
  display: inline-flex;
  gap: 3px;
}

.nx-stars li { display: inline-flex; }

.nx-stars .icon-star {
  font-size: 15px;
  line-height: 1;
  color: var(--nx-line);
}

.nx-stars .icon-star.active { color: var(--nx-amber); }

.nx-stars.star1 li:nth-child(-n+1) .icon-star,
.nx-stars.star2 li:nth-child(-n+2) .icon-star,
.nx-stars.star3 li:nth-child(-n+3) .icon-star,
.nx-stars.star4 li:nth-child(-n+4) .icon-star,
.nx-stars.star5 li:nth-child(-n+5) .icon-star {
  color: var(--nx-amber);
}

.nx-reviews {
  display: grid;
  gap: var(--nx-sp-5);
}

.nx-reviews__count {
  font-size: var(--nx-fs-h3);
  padding-bottom: var(--nx-sp-3);
  border-bottom: 1px solid var(--nx-line);
}

.nx-review {
  display: flex;
  gap: var(--nx-sp-4);
  padding: var(--nx-sp-4) 0;
  border-bottom: 1px dashed var(--nx-line-soft);
}

.nx-review:first-of-type { padding-top: 0; }
.nx-review:last-of-type { border-bottom: 0; }

.nx-review__avatar {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--nx-sand-deep);
  border: 1px solid var(--nx-line);
}

.nx-review__avatar img { width: 100%; height: 100%; object-fit: cover; }

.nx-review__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 6px 0 8px;
}

.nx-review__meta strong { font-size: 14.5px; color: var(--nx-ink); }

.nx-review__meta span { font-size: 12.5px; color: var(--nx-ink-45); }

.nx-review__text {
  font-size: 14.5px;
  line-height: 1.85;
  color: var(--nx-ink-70);
}

.nx-reviews__page { justify-content: flex-start; margin-top: 0; }

.nx-reviews__post {
  background: var(--nx-white);
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  padding: var(--nx-sp-6) var(--nx-sp-5);
}

.nx-reviews__title { font-size: 18px; margin-bottom: 6px; }

.nx-reviews__desc {
  font-size: 13.5px;
  color: var(--nx-ink-45);
  margin-bottom: var(--nx-sp-4);
}

.nx-reviews__rate {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: var(--nx-sp-5);
}

.nx-reviews__ratelabel {
  font-size: 12px;
  letter-spacing: var(--nx-ls-caps);
  text-transform: uppercase;
  color: var(--nx-ink-45);
}

.nx-reviews__form {
  display: grid;
  gap: var(--nx-sp-4);
}

.nx-reviews__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--nx-sp-4);
}

.nx-reviews__form .nx-btn { justify-self: start; }

@media (max-width: 640px) {
  .nx-reviews__row { grid-template-columns: 1fr; }
}
