@import '../header/sub.css';

:root {
    /* 颜色系统 */
    /* --color-primary: #ff6b35; */
    /* 主题色（橙色，用于激活态/强调） */
    --color-text: #000;
    /* 主要文字颜色 */
    --color-text-muted: #878787;
    /* 次要文字颜色 */
    --color-text-light: #b5b5b5;
    /* 浅色文字 */
    --color-bg: #ffffff;
    /* 主背景色 */
    --color-bg-soft: #f5f6f8;
    /* 软背景色（卡片底/分割区） */
    --color-border: #e5e7eb;
    /* 通用边框色 */

    /* 间距系统 */
    --space-sm: 8px;
    --space-md: 16px;
    --space-lg: 24px;

    /* 圆角与阴影 */
    --radius-md: 8px;
    --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.06);
    --shadow-card-hover: 0 6px 18px rgba(0, 0, 0, 0.1);

    /* 字体 */
    --font-size-sm: 12px;
    --font-size-md: 14px;
    --font-size-lg: 16px;
}



.news__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
}


/* ============================================================
 * 模块：card（资讯卡片）
 * 用途：单条资讯的展示单元，包含封面、标题、摘要与元信息
 * ============================================================ */
.card {
    background-color: var(--color-bg);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    cursor: pointer;
    display: flex;
    flex-direction: column;
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-card-hover);
}

/* 卡片链接：让 <a> 撑满整张卡片并保持块级布局 */
.card__link {
    display: flex;
    flex-direction: column;
    flex: 1;
    color: inherit;
}

/* 卡片封面：统一高度，配合 object-fit 保证图片不变形 */
.card__cover {
    width: 100%;
    height: 300px;
    overflow: hidden;
    background-color: var(--color-bg-soft);
}

.card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.card:hover .card__img {
    transform: scale(1.05);
}

/* 卡片主体 */
.card__body {
    padding: var(--space-md) var(--space-lg);
    display: flex;
    flex-direction: column;
    flex: 1;
}

.card__title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text);
    margin-bottom: var(--space-sm);
    line-height: 1.4;
    /* 单行省略 */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.card__desc {
    font-size: var(--font-size-md);
    color: var(--color-text-muted);
    line-height: 1.7;
    margin-bottom: var(--space-md);
    /* 两行省略 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 卡片元信息：浏览量、发布时间 */
.card__meta {
    margin-top: auto;
    padding-top: var(--space-md);
    border-top: 1px solid var(--color-border);
    display: flex;
    gap: var(--space-lg);
    font-size: var(--font-size-sm);
    color: var(--color-text-light);
}

.card__meta-item {
    display: inline-flex;
    align-items: center;
}

.card__meta-item::before {
    content: "";
    display: inline-block;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: var(--color-text-light);
    margin-right: var(--space-sm);
}


/* ============================================================
 * 模块：news__grid 响应式
 * 用途：断点下调整网格列数、卡片封面高度、内边距，保证移动端可读
 * ============================================================ */

/* 平板：≤ 992px 改为 2 列 */
@media (max-width: 992px) {
    .news__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-md);
    }

    .card__cover {
        height: 180px;
    }

    .card__body {
        padding: var(--space-md);
    }
}

/* 手机：≤ 576px 改为 1 列，封面增高，文字放大 */
@media (max-width: 576px) {
    .news__grid {
        grid-template-columns: 1fr;
        gap: var(--space-md);
    }

    .card__cover {
        height: 220px;
    }

    .card__body {
        padding: var(--space-md) var(--space-md);
    }

    .card__title {
        font-size: var(--font-size-md);
    }

    .card__desc {
        -webkit-line-clamp: 2;
    }

    .card__meta {
        gap: var(--space-md);
    }
}