/* ===========================================================================
   页面级样式
   ---------------------------------------------------------------------------
   与 components.css 的分工：
     components.css —— 可复用组件（按钮、卡片、表格、徽章…），任何页面都能用
     pages.css      —— 特定页面的版面（产品中心、产品详情），改版时只动这里
   =========================================================================== */

/* --- 通用小元素 ---------------------------------------------------------- */
.note {
    padding: var(--s4) var(--s5);
    background: var(--c-bg-soft);
    border-left: 3px solid var(--c-line);
    border-radius: 0 var(--r-md) var(--r-md) 0;
    color: var(--c-text-2);
    font-size: var(--fs-sm);
}

.empty-state__action {
    margin-top: var(--s5);
}

/* 参数单位：比数值小一号、颜色更浅，不抢数值的注意力 */
.spec-unit {
    color: var(--c-text-3);
    font-size: var(--fs-xs);
}

/* ===========================================================================
   产品中心
   =========================================================================== */

/* --- 分类锚点条 ---------------------------------------------------------- */
.category-nav {
    position: sticky;
    top: 68px;                 /* 正好贴在吸顶导航下方 */
    z-index: 40;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid var(--c-line);
    backdrop-filter: blur(6px);
}

.category-nav__inner {
    display: flex;
    gap: var(--s5);
    overflow-x: auto;
    scrollbar-width: none;
}

.category-nav__inner::-webkit-scrollbar {
    display: none;
}

.category-nav__link {
    display: inline-flex;
    align-items: center;
    gap: var(--s2);
    flex: none;
    padding-block: var(--s4);
    color: var(--c-text-2);
    font-size: var(--fs-sm);
    white-space: nowrap;
    border-bottom: 2px solid transparent;
}

.category-nav__link:hover {
    color: var(--c-brand);
    text-decoration: none;
    border-bottom-color: var(--c-brand);
}

.category-nav__count {
    padding: 0 6px;
    background: var(--c-bg-soft);
    border-radius: var(--r-sm);
    color: var(--c-text-3);
    font-size: 11px;
}

/* ===========================================================================
   产品详情
   =========================================================================== */

/* --- 标题区 -------------------------------------------------------------- */
.product-hero {
    padding-block: var(--s7) var(--s6);
    background: var(--c-bg-soft);
    border-bottom: 1px solid var(--c-line-soft);
}

.product-hero__model {
    display: inline-block;
    margin-bottom: var(--s3);
    padding: 2px var(--s3);
    background: rgba(0, 102, 204, 0.08);
    border-radius: var(--r-sm);
    color: var(--c-brand);
    font-size: var(--fs-sm);
    font-weight: 600;
    letter-spacing: 0.02em;
}

.product-hero__title {
    max-width: 24ch;
    margin-bottom: var(--s4);
}

.product-hero__summary {
    max-width: 62ch;
    color: var(--c-text-2);
    font-size: 17px;
}

.product-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s4);
    margin-top: var(--s6);
}

/* --- 两栏版面 ------------------------------------------------------------ */
.product-layout {
    display: grid;
    gap: var(--s6);
    padding-block: var(--s6) var(--s8);
}

.product-layout__aside {
    /* 窄屏：横向滚动的吸顶锚点条 */
    position: sticky;
    top: 68px;
    z-index: 30;
    margin-inline: calc(var(--gutter) * -1);
    padding-inline: var(--gutter);
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid var(--c-line);
    backdrop-filter: blur(6px);
}

.product-layout__main {
    min-width: 0;   /* 防止内部的横向滚动表格把栅格撑破 */
}

@media (min-width: 1024px) {
    .product-layout {
        grid-template-columns: 200px minmax(0, 1fr);
        gap: var(--s8);
        align-items: start;
    }

    .product-layout__aside {
        top: 92px;
        margin-inline: 0;
        padding-inline: 0;
        background: none;
        border-bottom: 0;
        backdrop-filter: none;
    }
}

/* --- 锚点导航 ------------------------------------------------------------ */
.anchor-nav__list {
    display: flex;
    gap: var(--s4);
    overflow-x: auto;
    scrollbar-width: none;
}

.anchor-nav__list::-webkit-scrollbar {
    display: none;
}

.anchor-nav__link {
    display: inline-block;
    flex: none;
    padding-block: var(--s4);
    color: var(--c-text-2);
    font-size: var(--fs-sm);
    white-space: nowrap;
    border-bottom: 2px solid transparent;
}

.anchor-nav__link:hover {
    color: var(--c-brand);
    text-decoration: none;
}

.anchor-nav__link.is-active {
    color: var(--c-ink);
    font-weight: 600;
    border-bottom-color: var(--c-brand);
}

@media (min-width: 1024px) {
    .anchor-nav__list {
        flex-direction: column;
        gap: 0;
        overflow: visible;
        border-left: 2px solid var(--c-line);
    }

    .anchor-nav__link {
        padding: var(--s2) var(--s4);
        border-bottom: 0;
        border-left: 2px solid transparent;
        margin-left: -2px;
    }

    .anchor-nav__link.is-active {
        border-bottom: 0;
        border-left-color: var(--c-brand);
    }
}

/* --- 内容区块 ------------------------------------------------------------ */
.product-section {
    padding-block: var(--s6);
    border-bottom: 1px solid var(--c-line-soft);
    /* 锚点跳转时不希望标题被吸顶导航遮住（与 base.css 的 scroll-padding-top 呼应） */
    scroll-margin-top: 132px;
}

.product-section:last-child {
    border-bottom: 0;
}

.product-section__title {
    margin-bottom: var(--s5);
    font-size: var(--fs-h3);
}

.product-section__action {
    margin-top: var(--s4);
}

@media (min-width: 1024px) {
    .product-section {
        scroll-margin-top: 100px;
    }
}

/* --- 概述：图 + 信息 ------------------------------------------------------ */
.product-overview {
    display: grid;
    gap: var(--s6);
}

@media (min-width: 768px) {
    .product-overview {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: var(--s7);
    }
}

.product-overview__info {
    min-width: 0;
    display: grid;
    gap: var(--s6);
    align-content: start;
}

/* --- 关键参数速览 -------------------------------------------------------- */
.key-specs {
    padding: var(--s5);
    background: var(--c-bg-soft);
    border-radius: var(--r-lg);
}

.key-specs__title {
    margin-bottom: var(--s4);
    color: var(--c-text-3);
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.08em;
}

.key-specs__list {
    display: grid;
    gap: var(--s3);
    margin: 0;
}

.key-specs__item {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--s4);
    padding-bottom: var(--s3);
    border-bottom: 1px solid var(--c-line-soft);
}

.key-specs__item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.key-specs__label {
    color: var(--c-text-2);
    font-size: var(--fs-sm);
}

.key-specs__value {
    margin: 0;
    color: var(--c-ink);
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-size: 15px;
    font-weight: 600;
    text-align: right;
}

/* --- 特性列表（带勾选图标） --------------------------------------------- */
.check-list {
    display: grid;
    gap: var(--s4);
}

@media (min-width: 768px) {
    .check-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--s4) var(--s6);
    }
}

.check-list__item {
    display: flex;
    align-items: flex-start;
    gap: var(--s3);
    color: var(--c-text);
}

.check-list__item .icon {
    margin-top: 3px;
    color: var(--c-ok);
}

/* --- 参数表分组间距 ------------------------------------------------------ */
.spec-group + .spec-group {
    margin-top: var(--s6);
}

/* ===========================================================================
   图片画廊
   =========================================================================== */
.gallery {
    display: grid;
    gap: var(--s4);
}

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

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

.gallery--empty {
    aspect-ratio: 4 / 3;
    border: 1px dashed var(--c-line);
    border-radius: var(--r-lg);
    overflow: hidden;
}

.gallery__thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s3);
}

.gallery__thumb {
    display: block;
    width: 80px;
    height: 60px;
    padding: 3px;
    background: var(--c-bg);
    border: 1px solid var(--c-line);
    border-radius: var(--r-sm);
    cursor: pointer;
    transition: border-color var(--dur) var(--ease);
}

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

.gallery__thumb:hover {
    border-color: var(--c-brand);
}

.gallery__thumb.is-active {
    border-color: var(--c-brand);
    box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.18);
}

.gallery__count {
    color: var(--c-text-3);
    font-size: var(--fs-xs);
}

/* ===========================================================================
   资料下载
   =========================================================================== */

/* --- 文件类型徽章（纯 CSS，不引图标库） --------------------------------- */
.file-badge {
    display: inline-block;
    min-width: 42px;
    padding: 3px var(--s2);
    border-radius: var(--r-sm);
    background: var(--c-bg-soft);
    color: var(--c-text-2);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-align: center;
}

/* PDF 用红、Office 用绿、压缩包用灰蓝 —— 一眼分清是什么文件 */
.file-badge--pdf  { background: #fdecea; color: #b3261e; }
.file-badge--zip,
.file-badge--rar,
.file-badge--7z   { background: #eef1f5; color: #4a5a6a; }
.file-badge--docx { background: #e8f1fd; color: #1a5fb4; }
.file-badge--xlsx { background: #e9f6ec; color: #1e7a3c; }
.file-badge--pptx { background: #fdeee2; color: #a3500a; }

/* --- 资料表格 ------------------------------------------------------------ */
.doc-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--c-bg);
    border: 1px solid var(--c-line);
    border-radius: var(--r-md);
    font-size: var(--fs-sm);
    overflow: hidden;
}

.doc-table th,
.doc-table td {
    padding: 11px var(--s3);
    border-bottom: 1px solid var(--c-line-soft);
    text-align: left;
    vertical-align: middle;
}

.doc-table thead th {
    background: var(--c-bg-table);
    border-bottom: 1px solid var(--c-line);
    color: var(--c-text-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    white-space: nowrap;
}

.doc-table tbody tr:last-child th,
.doc-table tbody tr:last-child td {
    border-bottom: 0;
}

.doc-table tbody tr:hover {
    background: #fafcfd;
}

.doc-table__col-type    { width: 74px; }
.doc-table__col-product { width: 130px; }
.doc-table__col-lang    { width: 76px; }
.doc-table__col-version { width: 84px; }
.doc-table__col-size    { width: 92px; }
.doc-table__col-date    { width: 116px; }
.doc-table__col-action  { width: 68px; }

.doc-table__title {
    display: block;
    color: var(--c-ink);
    font-weight: 500;
}

.doc-table__file {
    display: block;
    margin-top: 2px;
    color: var(--c-text-3);
    font-size: 11px;
    word-break: break-all;
}

.doc-table__product a {
    font-family: var(--font-mono);
}

.doc-table__muted,
.admin-table__muted {
    color: var(--c-text-3);
    font-size: var(--fs-xs);
}

.doc-table__version,
.doc-table__size {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.doc-table__date {
    color: var(--c-text-3);
    font-size: var(--fs-xs);
    white-space: nowrap;
}

.badge--lang {
    background: rgba(0, 102, 204, 0.08);
    border-color: transparent;
    color: var(--c-brand);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
}

/* --- 资料分组标题 -------------------------------------------------------- */
.doc-group__title {
    display: flex;
    align-items: center;
    gap: var(--s3);
    margin-bottom: var(--s4);
    font-size: var(--fs-h3);
}

.doc-group__title--sub {
    margin-top: var(--s5);
    color: var(--c-text-2);
    font-size: var(--fs-sm);
    font-weight: 600;
}

.doc-group__count {
    padding: 1px var(--s2);
    background: var(--c-bg-soft);
    border-radius: var(--r-sm);
    color: var(--c-text-3);
    font-size: 11px;
    font-weight: 400;
}

/* --- 筛选条 -------------------------------------------------------------- */
.filter-bar {
    padding-block: var(--s5);
    background: var(--c-bg-soft);
    border-bottom: 1px solid var(--c-line-soft);
}

.filter-bar__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--s3);
}

.filter-bar__row + .filter-bar__row {
    margin-top: var(--s3);
}

.filter-bar__label {
    flex: none;
    min-width: 68px;
    color: var(--c-text-3);
    font-size: var(--fs-xs);
}

.filter-bar__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s2);
}

.filter-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--s2);
    padding: 5px var(--s3);
    background: var(--c-bg);
    border: 1px solid var(--c-line);
    border-radius: 999px;
    color: var(--c-text-2);
    font-size: var(--fs-sm);
    line-height: 1.5;
}

.filter-chip:hover {
    border-color: var(--c-brand);
    color: var(--c-brand);
    text-decoration: none;
}

.filter-chip.is-active {
    background: var(--c-brand);
    border-color: var(--c-brand);
    color: #fff;
}

.filter-chip__count {
    padding: 0 5px;
    border-radius: 999px;
    background: var(--c-bg-soft);
    color: var(--c-text-3);
    font-size: 11px;
}

.filter-chip.is-active .filter-chip__count {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}

.filter-bar__result {
    margin-top: var(--s4);
    color: var(--c-text-2);
    font-size: var(--fs-sm);
}

.filter-bar__reset {
    margin-left: var(--s3);
    font-size: var(--fs-xs);
}

/* ===========================================================================
   关于我们
   =========================================================================== */
.about-intro {
    max-width: 68ch;
}

.about-intro p {
    font-size: 17px;
    line-height: 1.9;
}

/* --- 资质证书 ------------------------------------------------------------ */
.cert-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--s5);
}

.cert-grid__item {
    padding: var(--s3);
    background: var(--c-bg);
    border: 1px solid var(--c-line);
    border-radius: var(--r-md);
}

.cert-grid__item img {
    width: 100%;
    height: auto;
    border-radius: var(--r-sm);
}

/* --- 通用 CTA 条（关于我们底部） ----------------------------------------- */
.cta-band {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--s6);
}

.cta-band__body {
    max-width: 56ch;
}

.cta-band__body h2 {
    margin-bottom: var(--s2);
}

.cta-band__body p {
    color: var(--c-text-2);
}

.cta-band__action {
    flex: none;
}

/* ===========================================================================
   联系我们
   =========================================================================== */
.contact-layout {
    display: grid;
    gap: var(--s6);
    align-items: start;
}

@media (min-width: 1024px) {
    .contact-layout {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
        gap: var(--s8);
    }
}

/* --- 公司信息卡 ---------------------------------------------------------- */
.contact-card {
    padding: var(--s6);
    background: var(--c-bg);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
}

.contact-card__title {
    padding-bottom: var(--s4);
    margin-bottom: var(--s5);
    border-bottom: 1px solid var(--c-line-soft);
    font-size: var(--fs-h3);
}

.contact-card__note {
    margin-top: var(--s5);
    padding-top: var(--s5);
    border-top: 1px solid var(--c-line-soft);
    color: var(--c-text-2);
    font-size: var(--fs-sm);
}

.info-list {
    display: grid;
    gap: var(--s5);
    margin: 0;
}

.info-list__row {
    display: grid;
    gap: var(--s1);
}

.info-list__label {
    display: flex;
    align-items: center;
    gap: var(--s2);
    color: var(--c-text-3);
    font-size: var(--fs-xs);
}

.info-list__label .icon {
    color: var(--c-accent);
}

.info-list__value {
    margin: 0;
    padding-left: 26px;   /* 与上面的图标对齐 */
    color: var(--c-ink);
    font-size: 15px;
    line-height: 1.7;
    word-break: break-word;
}

/* --- 右侧面板（地图 / 二维码） ------------------------------------------ */
.contact-side {
    display: grid;
    gap: var(--s5);
}

.side-panel {
    padding: var(--s5);
    background: var(--c-bg-soft);
    border: 1px solid var(--c-line-soft);
    border-radius: var(--r-lg);
}

.side-panel__title {
    margin-bottom: var(--s4);
    font-size: var(--fs-sm);
    font-weight: 600;
    letter-spacing: 0.04em;
}

.side-panel__image {
    width: 100%;
    height: auto;
    border: 1px solid var(--c-line);
    border-radius: var(--r-md);
}

.side-panel__placeholder,
.side-panel__hint {
    color: var(--c-text-2);
    font-size: var(--fs-sm);
    line-height: 1.7;
}

.side-panel__placeholder {
    display: flex;
    align-items: center;
    min-height: 120px;
    padding: var(--s5);
    border: 1px dashed var(--c-line);
    border-radius: var(--r-md);
    text-align: center;
}

.side-panel__action {
    margin-top: var(--s4);
}

.wechat-qr {
    display: block;
    width: 180px;
    height: 180px;
    padding: var(--s2);
    background: #fff;
    border: 1px solid var(--c-line);
    border-radius: var(--r-md);
}

.side-panel__hint {
    margin-top: var(--s3);
    color: var(--c-text-3);
    font-size: var(--fs-xs);
}

/* ===========================================================================
   详情页底部 CTA 里的型号徽章
   =========================================================================== */
.product-model-badge {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.product-model-badge__label {
    color: var(--c-text-3);
    font-size: var(--fs-xs);
}

.product-model-badge__value {
    color: var(--c-ink);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.02em;
}
