/* ============================================================
   普通话培训网 - 全局样式表 (2026-06-18 美化增强版)
   设计方向：温暖专业、高对比度、现代化视觉
   ============================================================ */

:root {
    /* 主色系 - 温暖蓝 */
    --primary: #1a56db;
    --primary-light: #3b82f6;
    --primary-dark: #1e40af;
    --primary-bg: #eff6ff;

    /* 辅助色系 - 暖金点缀 */
    --accent: #f59e0b;
    --accent-light: #fbbf24;
    --accent-dark: #d97706;
    --accent-warm: #f97316;

    /* 语义色 */
    --success: #059669;
    --success-bg: #ecfdf5;
    --danger: #dc2626;
    --danger-bg: #fef2f2;
    --warning: #d97706;
    --warning-bg: #fffbeb;

    /* 中性色 */
    --text-primary: #111827;
    --text-secondary: #374151;
    --text-muted: #6b7280;
    --text-light: #9ca3af;
    --border-color: #e5e7eb;
    --bg-light: #f9fafb;
    --bg-white: #ffffff;
    --bg-dark: #111827;
    --bg-footer: #0f172a;

    /* 阴影 */
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);
    --shadow-md: 0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.06);
    --shadow-lg: 0 10px 25px rgba(0,0,0,0.08), 0 4px 10px rgba(0,0,0,0.06);
    --shadow-xl: 0 20px 40px rgba(0,0,0,0.1);

    /* 圆角 */
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 20px;

    /* 过渡 */
    --transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===== 基础样式 ===== */
html {
    scroll-behavior: smooth;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
    color: var(--text-primary);
    background: var(--bg-white);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

a {
    color: var(--primary);
    transition: color var(--transition);
}
a:hover {
    color: var(--primary-dark);
}

/* ===== 导航栏 ===== */
.navbar {
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    transition: all var(--transition-slow);
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
/* 滚动收缩效果 */
.navbar.navbar-scrolled {
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
    background: linear-gradient(135deg, #1e40af 0%, #1a56db 50%, #2563eb 100%) !important;
}
.navbar-dark.bg-primary {
    background: linear-gradient(135deg, #1e40af 0%, #1a56db 50%, #2563eb 100%) !important;
}
.navbar-brand {
    font-size: 1.25rem;
    letter-spacing: 0.5px;
    transition: font-size var(--transition-slow);
}
.navbar-scrolled .navbar-brand {
    font-size: 1.1rem;
}
.navbar-scrolled .nav-link {
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
}
.navbar .nav-link {
    font-weight: 500;
    padding: 0.5rem 1rem;
    border-radius: var(--radius-sm);
    transition: all var(--transition);
}
.navbar .nav-link:hover {
    background: rgba(255,255,255,0.12);
}
.navbar .nav-link.active {
    background: rgba(255,255,255,0.18);
    font-weight: 600;
}
.navbar .btn-light {
    background: white;
    color: var(--primary);
    font-weight: 600;
    border: none;
    transition: all var(--transition);
}
.navbar .btn-light:hover {
    background: #f0f5ff;
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
}

/* ===== Hero区域 ===== */
.hero-section {
    position: relative;
    background: linear-gradient(135deg, #1e40af 0%, #2563eb 30%, #3b82f6 60%, #60a5fa 100%);
    color: white;
    padding: 90px 0 100px;
    overflow: hidden;
}
/* Hero 装饰浮动圆点 */
.hero-decoration {
    position: absolute;
    border-radius: 50%;
    opacity: 0.08;
    background: white;
    pointer-events: none;
}
.hero-dot-1 { width: 200px; height: 200px; top: -60px; left: -40px; animation: heroFloat 8s ease-in-out infinite; }
.hero-dot-2 { width: 120px; height: 120px; top: 30%; right: 5%; animation: heroFloat 10s ease-in-out infinite 1s; }
.hero-dot-3 { width: 80px; height: 80px; bottom: 20%; left: 10%; animation: heroFloat 7s ease-in-out infinite 2s; }
.hero-dot-4 { width: 150px; height: 150px; bottom: -30px; right: -20px; animation: heroFloat 12s ease-in-out infinite 0.5s; }

@keyframes heroFloat {
    0%, 100% { transform: translate(0, 0) scale(1); }
    25% { transform: translate(15px, -15px) scale(1.05); }
    50% { transform: translate(-10px, -25px) scale(0.95); }
    75% { transform: translate(-15px, -5px) scale(1.02); }
}

/* Hero 底部波浪分割线 */
.hero-wave {
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
    pointer-events: none;
    z-index: 2;
}
.hero-wave svg {
    display: block;
    width: 100%;
    height: 60px;
}

.hero-section h1 {
    font-size: 2.5rem;
    font-weight: 800;
    letter-spacing: -0.5px;
    position: relative;
    z-index: 1;
}
.hero-section .lead {
    font-size: 1.15rem;
    opacity: 0.9;
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}
.hero-section .opacity-75 {
    opacity: 0.75;
    position: relative;
    z-index: 1;
}
.hero-section .btn {
    position: relative;
    z-index: 1;
}

/* ===== Section标题 ===== */
.section-title {
    font-weight: 800;
    position: relative;
    display: inline-block;
    padding-bottom: 8px;
    margin-bottom: 10px;
}
.section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50px;
    height: 3px;
    background: linear-gradient(90deg, var(--primary), var(--primary-light));
    border-radius: 2px;
}
.text-center .section-title::after {
    left: 50%;
    transform: translateX(-50%);
}

/* ===== 核心服务卡片 - 增强悬停 ===== */
.feature-card {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    transition: all var(--transition-slow);
    background: var(--bg-white);
    cursor: pointer;
    position: relative;
    overflow: hidden;
}
.feature-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--primary), var(--primary-light));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-slow);
}
.feature-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(26,86,219,0.15);
    border-color: var(--primary-light);
}
.feature-card:hover::before {
    transform: scaleX(1);
}
.feature-card:hover .feature-icon-wrapper {
    transform: scale(1.15);
    background: var(--primary-bg);
}
.feature-card:hover .bi {
    color: var(--primary-dark) !important;
}

/* 服务图标容器 */
.feature-icon-wrapper {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--primary-bg);
    transition: all var(--transition-slow);
    margin: 0 auto;
}
.feature-card .bi {
    transition: all var(--transition-slow);
    font-size: 2rem !important;
}

/* ===== 课程卡片 - 悬停遮罩 ===== */
.course-card {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: all var(--transition-slow);
    position: relative;
}
.course-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.12);
}

/* 课程卡片图片遮罩 */
.course-card .card-img-top,
.course-card .course-img-wrapper {
    position: relative;
    overflow: hidden;
}
.course-card .course-img-wrapper {
    position: relative;
}
.course-card .course-img-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(26,86,219,0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity var(--transition-slow);
    z-index: 1;
}
.course-card:hover .course-img-overlay {
    opacity: 1;
}
.course-card .course-img-overlay span {
    color: white;
    font-weight: 700;
    font-size: 1.1rem;
    border: 2px solid white;
    padding: 8px 24px;
    border-radius: 50px;
    transition: all var(--transition);
}
.course-card:hover .course-img-overlay span {
    background: white;
    color: var(--primary);
}

/* 课程卡片图片区域 */
.course-img-placeholder {
    height: 190px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.course-img-placeholder i {
    color: rgba(255,255,255,0.5);
    transition: transform var(--transition-slow);
}
.course-card:hover .course-img-placeholder i {
    transform: scale(1.2);
}

/* 课程价格标签 */
.price {
    color: var(--danger);
    font-weight: 700;
    font-size: 1.1rem;
}
.original-price {
    color: var(--text-light);
    text-decoration: line-through;
    font-size: 0.85rem;
}

/* ===== 资讯列表 - 增强 ===== */
.news-item {
    padding: 16px 20px;
    border-radius: var(--radius-md);
    transition: all var(--transition-slow);
    border-left: 4px solid transparent;
    margin-bottom: 8px;
    background: var(--bg-white);
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.news-item:hover {
    background: var(--primary-bg);
    border-left-color: var(--primary);
    transform: translateX(5px);
    box-shadow: var(--shadow-sm);
}
.news-item .news-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--primary-bg), #dbeafe);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: var(--primary);
}
.news-item .news-content {
    flex: 1;
}
.news-item h6 {
    margin-bottom: 6px;
    font-weight: 600;
    line-height: 1.4;
}
.news-meta {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}
.badge-province {
    background: linear-gradient(135deg, var(--accent), var(--accent-dark));
    color: white;
    font-weight: 500;
    padding: 4px 10px;
    border-radius: 50px;
}
.date {
    color: var(--text-muted);
    font-size: 0.85rem;
}

/* ===== 统计数字 - 滚动动画 ===== */
.stat-number {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--primary);
    letter-spacing: -1px;
    margin-bottom: 4px;
    transition: color var(--transition);
    position: relative;
    display: inline-block;
}
.stat-number.counting {
    color: var(--primary-light);
}
.stat-item {
    transition: transform var(--transition-slow);
}
.stat-item:hover {
    transform: translateY(-4px);
}
.stat-item:hover .stat-number {
    color: var(--primary-dark);
}
.bg-light .text-muted.stat-label {
    color: var(--text-secondary) !important;
    font-weight: 500;
}

/* ===== 按钮样式 ===== */
.btn-primary {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border: none;
    font-weight: 600;
    border-radius: 50px;
    padding: 10px 28px;
    transition: all var(--transition);
    box-shadow: 0 4px 14px rgba(26,86,219,0.3);
}
.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(26,86,219,0.4);
    background: linear-gradient(135deg, var(--primary-dark), #1e3a8a);
}
.btn-outline-primary {
    border-radius: 50px;
    font-weight: 600;
    transition: all var(--transition);
}

/* ===== 回到顶部按钮 ===== */
.back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: white;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all var(--transition-slow);
    box-shadow: 0 4px 15px rgba(26,86,219,0.35);
    z-index: 1050;
}
.back-to-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.back-to-top:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(26,86,219,0.5);
    background: linear-gradient(135deg, var(--primary-dark), #1e3a8a);
}

/* ===== CTA区域 - 装饰增强 ===== */
.cta-section {
    position: relative;
    overflow: hidden;
}
.cta-decoration {
    position: absolute;
    border-radius: 50%;
    opacity: 0.1;
    background: white;
    pointer-events: none;
}
.cta-dot-1 { width: 250px; height: 250px; top: -80px; left: -60px; }
.cta-dot-2 { width: 150px; height: 150px; bottom: -40px; right: 10%; }
.cta-dot-3 { width: 80px; height: 80px; top: 20%; right: 5%; }
.cta-ring {
    position: absolute;
    border: 2px solid rgba(255,255,255,0.15);
    border-radius: 50%;
    pointer-events: none;
}
.cta-ring-1 { width: 300px; height: 300px; top: -100px; right: -80px; }
.cta-ring-2 { width: 200px; height: 200px; bottom: -60px; left: -40px; }

/* ===== 背景区域 ===== */
.bg-light {
    background: linear-gradient(180deg, #f9fafb 0%, #f3f4f6 100%) !important;
}
/* 交替背景增强 */
.section-alt {
    background: linear-gradient(135deg, #f0f4ff 0%, #f9fafb 50%, #eff6ff 100%) !important;
}

/* ===== 页脚增强 ===== */
footer.bg-dark {
    background: linear-gradient(180deg, #0f172a 0%, #020617 100%) !important;
}
footer h5, footer h6 {
    font-weight: 700;
    color: #ffffff;
}
footer .text-muted {
    color: #cbd5e1 !important;
}
footer a.text-muted:hover {
    color: #ffffff !important;
}
footer hr {
    border-color: rgba(255,255,255,0.1);
}
/* 页脚社交图标 */
.footer-social {
    display: flex;
    gap: 12px;
    margin-top: 8px;
}
.footer-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    color: #cbd5e1;
    font-size: 1.1rem;
    transition: all var(--transition);
    text-decoration: none;
}
.footer-social a:hover {
    background: var(--primary);
    color: white;
    transform: translateY(-3px);
}

/* ===== 通用工具类增强 ===== */
.text-decoration-none:hover {
    text-decoration: underline !important;
}

/* ===== 滚动驱动动画 ===== */
.fade-in-section {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.fade-in-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ===== 骨架屏（懒加载占位）===== */
.skeleton {
    background: linear-gradient(90deg, #e5e7eb 25%, #f3f4f6 50%, #e5e7eb 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: var(--radius-sm);
}
.skeleton-text {
    height: 16px;
    margin-bottom: 8px;
    width: 80%;
}
.skeleton-text.short { width: 50%; }
.skeleton-img {
    height: 190px;
    width: 100%;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
}

@keyframes skeleton-loading {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ===== 图片懒加载 blur-up ===== */
img[loading="lazy"] {
    transition: filter 0.5s ease-out;
}
img.lazy-blur {
    filter: blur(10px);
    transform: scale(1.05);
}
img.lazy-loaded {
    filter: blur(0);
    transform: scale(1);
}

/* ===== 暖色点缀 ===== */
.warm-accent {
    color: var(--accent-warm);
}
.btn-warm {
    background: linear-gradient(135deg, var(--accent-warm), var(--accent));
    border: none;
    color: white;
    font-weight: 600;
    border-radius: 50px;
    padding: 10px 28px;
    transition: all var(--transition);
    box-shadow: 0 4px 14px rgba(245,158,11,0.3);
}
.btn-warm:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(245,158,11,0.4);
    color: white;
}

/* 暖色调高亮文字 */
.highlight-warm {
    background: linear-gradient(135deg, var(--accent-light), var(--accent-warm));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 700;
}

/* ===== 查看更多链接 ===== */
.d-flex .text-decoration-none {
    color: var(--primary);
    font-weight: 600;
    transition: all var(--transition);
}
.d-flex .text-decoration-none:hover {
    color: var(--primary-dark);
    text-decoration: none !important;
    transform: translateX(4px);
    display: inline-block;
}

/* ===== Dropdown增强 ===== */
.dropdown-menu {
    border: none;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    padding: 8px;
    animation: dropdownFade 0.2s ease-out;
}
.dropdown-item {
    border-radius: var(--radius-sm);
    padding: 8px 16px;
    transition: all var(--transition);
}
.dropdown-item:hover {
    background: var(--primary-bg);
    color: var(--primary);
}

@keyframes dropdownFade {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ===== 响应式 ===== */
@media (max-width: 768px) {
    .hero-section {
        padding: 60px 0 50px;
    }
    .hero-section h1 {
        font-size: 1.8rem;
    }
    .hero-section .lead {
        font-size: 1.05rem;
    }
    .section-title {
        font-size: 1.3rem;
    }
    .stat-number {
        font-size: 1.8rem;
    }
    .back-to-top {
        bottom: 20px;
        right: 15px;
        width: 42px;
        height: 42px;
        font-size: 1.1rem;
    }
    .news-item {
        padding: 12px 14px;
    }
    .news-item .news-icon {
        width: 36px;
        height: 36px;
        font-size: 1rem;
    }
    .hero-wave svg {
        height: 40px;
    }
    .course-card:hover {
        transform: translateY(-3px);
    }
    .feature-card:hover {
        transform: translateY(-3px);
    }
}

/* ===== 动画 ===== */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.hero-section .container {
    animation: fadeInUp 0.6s ease-out;
}
.feature-card, .course-card {
    animation: fadeInUp 0.5s ease-out both;
}
.feature-card:nth-child(1) { animation-delay: 0.05s; }
.feature-card:nth-child(2) { animation-delay: 0.1s; }
.feature-card:nth-child(3) { animation-delay: 0.15s; }
.feature-card:nth-child(4) { animation-delay: 0.2s; }

/* 脉冲动画（CTA按钮等） */
@keyframes pulse-ring {
    0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(26,86,219,0.4); }
    70% { transform: scale(1.05); box-shadow: 0 0 0 15px rgba(26,86,219,0); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(26,86,219,0); }
}
.btn-pulse {
    animation: pulse-ring 2s infinite;
}

/* ===== 低优锦上添花效果 ===== */

/* 视差效果（Hero 背景固定） */
@media (min-width: 769px) {
    .hero-section {
        background-attachment: fixed;
    }
}

/* 页面加载骨架屏增强 */
.skeleton-card {
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--bg-white);
}
.skeleton-card .skeleton-img {
    height: 190px;
    width: 100%;
}
.skeleton-card .skeleton-body {
    padding: 16px;
}
.skeleton-card .skeleton-body .skeleton-text { margin-bottom: 10px; }

/* 卡片微交互反馈 */
.card {
    transition: transform var(--transition-slow), box-shadow var(--transition-slow);
}
.card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* 分页器美颜 */
.pagination .page-link {
    border: none;
    margin: 0 3px;
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    transition: all var(--transition);
}
.pagination .page-link:hover {
    background: var(--primary-bg);
    color: var(--primary);
}
.pagination .active .page-link {
    background: var(--primary);
    color: white;
    border-radius: var(--radius-sm);
}

/* 表单控件增强 */
.form-control:focus, .form-select:focus {
    border-color: var(--primary-light);
    box-shadow: 0 0 0 3px rgba(59,130,246,0.15);
}

/* Badge 增强 */
.badge {
    font-weight: 500;
    letter-spacing: 0.3px;
}

/* 表格增强 */
.table-hover tbody tr:hover {
    background-color: var(--primary-bg);
}

/* 无障碍 - 减少动画偏好 */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* 打印样式 */
@media print {
    .navbar, .back-to-top, .hero-wave, .hero-decoration,
    footer, .cta-section, .btn { display: none !important; }
    body { font-size: 12pt; }
    .container { max-width: 100%; width: 100%; }
}

/* ===== Mini Banner (详情页轻量横幅) ===== */
.mini-banner {
    position: relative;
    padding: 50px 0 40px;
    color: #fff;
    overflow: hidden;
}
.mini-banner .container {
    position: relative;
    z-index: 2;
}
.mini-banner-title {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 6px;
    line-height: 1.3;
}
.mini-banner-sub {
    font-size: .95rem;
    opacity: .85;
    margin-bottom: 0;
}
.mini-banner-meta {
    font-size: .88rem;
    opacity: .8;
    margin-top: 6px;
}
.mini-banner-meta span {
    display: inline-block;
}

/* 面包屑浅色模式 */
.breadcrumb-light .breadcrumb-item,
.breadcrumb-light .breadcrumb-item a {
    color: rgba(255,255,255,.7);
    font-size: .85rem;
}
.breadcrumb-light .breadcrumb-item a:hover {
    color: #fff;
}
.breadcrumb-light .breadcrumb-item.active {
    color: rgba(255,255,255,.95);
}
.breadcrumb-light .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255,255,255,.5);
}

/* 课程封面底图（可选） */
.mini-banner-cover {
    height: 200px;
    background-size: cover;
    background-position: center;
    filter: brightness(.3);
    margin-top: -40px;
    position: relative;
    z-index: 1;
}

/* 移动端适配 */
@media (max-width: 768px) {
    .mini-banner {
        padding: 35px 0 28px;
    }
    .mini-banner-title {
        font-size: 1.3rem;
    }
    .mini-banner-sub {
        font-size: .85rem;
    }
}



/* ===== 资讯详情页质感升级 ===== */

/* 文章元信息条 */
.article-meta-bar {
    background: #f8fafc;
    border: 1px solid #e8ecf2;
    border-radius: 10px;
    padding: 14px 18px;
    margin-bottom: 20px;
}
.article-meta-bar .badge {
    font-weight: 500;
    font-size: .82rem;
}

/* 分享按钮 */
.share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px; height: 32px;
    border-radius: 50%;
    font-size: 1rem;
    text-decoration: none;
    transition: all .2s;
    margin-right: 4px;
}
.share-weibo { background: #fde8e8; color: #e6162d; }
.share-weibo:hover { background: #e6162d; color: #fff; }
.share-wechat { background: #e8f5e9; color: #07c160; cursor: pointer; }
.share-wechat:hover { background: #07c160; color: #fff; }

/* 上一篇/下一篇导航 */
.article-pager {
    display: flex;
    gap: 16px;
    margin-top: 32px;
    padding-top: 20px;
    border-top: 2px solid #f0f0f0;
}
.pager-item {
    flex: 1;
    padding: 16px 18px;
    border-radius: 10px;
    border: 1px solid #e8ecf2;
    text-decoration: none;
    transition: all .2s;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.pager-item:hover {
    border-color: #1a73e8;
    background: #f0f6ff;
    box-shadow: 0 2px 8px rgba(26,115,232,.1);
}
.pager-item.disabled {
    opacity: .4;
    cursor: default;
    pointer-events: none;
}
.pager-next { text-align: right; align-items: flex-end; }
.pager-prev { align-items: flex-start; }
.pager-label {
    font-size: .78rem;
    color: #888;
}
.pager-title {
    font-size: .92rem;
    font-weight: 600;
    color: #1a1a2e;
    line-height: 1.4;
}

/* 侧边栏链接 */
.sidebar-link {
    font-size: .9rem;
    color: #444;
    text-decoration: none;
    transition: color .15s;
    line-height: 1.5;
}
.sidebar-link:hover { color: #1a73e8; }

/* 热门排名 */
.hot-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px; height: 20px;
    border-radius: 4px;
    background: #e8ecf2;
    color: #888;
    font-size: .72rem;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 1px;
}
.hot-rank-top { background: linear-gradient(135deg, #ff6b6b, #ee5a24); color: #fff; }

/* 标签云 */
.tag-pill {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    background: #f0f4f8;
    color: #5a6c7d;
    font-size: .78rem;
    text-decoration: none;
    transition: all .2s;
}
.tag-pill:hover {
    background: #1a73e8;
    color: #fff;
}

/* 移动端适配 */
@media (max-width: 768px) {
    .article-pager {
        flex-direction: column;
        gap: 10px;
    }
    .pager-next { align-items: flex-start; text-align: left; }
    .article-meta-bar .d-flex { gap: 6px !important; }
}

/* ========================================== */
/* ==  Mini Banner 完整样式（整合版） == */
/* ========================================== */

.mini-banner {
    position: relative;
    padding: 54px 0 42px;
    color: #fff;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.06);
    z-index: 2;
}
.mini-banner .container {
    position: relative;
    z-index: 4;
}
.mini-banner-title {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 4px;
    line-height: 1.35;
    text-shadow: 0 1px 4px rgba(0,0,0,.12);
    letter-spacing: .01em;
}
.mini-banner-sub {
    font-size: .95rem;
    opacity: .88;
    margin-bottom: 0;
}
.mini-banner-meta {
    font-size: .88rem;
    opacity: .9;
    margin-top: 8px;
    letter-spacing: .3px;
}
.mini-banner-meta span {
    display: inline-block;
    text-shadow: 0 1px 2px rgba(0,0,0,.1);
}

/* ---- 纹理叠加层（菱形网格） ---- */
.mini-banner-texture {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    opacity: .06;
    background-image:
        linear-gradient(45deg, #fff 1px, transparent 1px),
        linear-gradient(-45deg, #fff 1px, transparent 1px);
    background-size: 24px 24px;
    mask-image: linear-gradient(
        to bottom,
        rgba(0,0,0,.6) 0%,
        rgba(0,0,0,.4) 40%,
        rgba(0,0,0,.1) 80%,
        rgba(0,0,0,0)  100%
    );
    -webkit-mask-image: linear-gradient(
        to bottom,
        rgba(0,0,0,.6) 0%,
        rgba(0,0,0,.4) 40%,
        rgba(0,0,0,.1) 80%,
        rgba(0,0,0,0)  100%
    );
}

/* ---- 装饰光斑 ---- */
.mini-banner-glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    filter: blur(60px);
}
.mini-banner-glow-1 {
    width: 280px;
    height: 280px;
    top: -100px;
    right: -60px;
    background: radial-gradient(circle, rgba(100,180,255,.35) 0%, transparent 70%);
}
.mini-banner-glow-2 {
    width: 200px;
    height: 200px;
    bottom: -70px;
    left: -50px;
    background: radial-gradient(circle, rgba(60,160,240,.25) 0%, transparent 70%);
}

/* ---- 面包屑浅色模式 ---- */
.breadcrumb-light .breadcrumb-item,
.breadcrumb-light .breadcrumb-item a {
    color: rgba(255,255,255,.82);
    font-size: .85rem;
    transition: color .15s;
}
.breadcrumb-light .breadcrumb-item a:hover {
    color: #fff;
    text-decoration: underline;
}
.breadcrumb-light .breadcrumb-item.active {
    color: #fff;
    font-weight: 500;
}
.breadcrumb-light .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255,255,255,.5);
}

/* ---- 课程封面底图 ---- */
.mini-banner-cover {
    height: 200px;
    background-size: cover;
    background-position: center;
    filter: brightness(.3);
    margin-top: -40px;
    position: relative;
    z-index: 1;
}

/* ---- 移动端适配 ---- */
@media (max-width: 768px) {
    .mini-banner {
        padding: 38px 0 30px;
    }
    .mini-banner-title {
        font-size: 1.3rem;
    }
    .mini-banner-sub {
        font-size: .85rem;
    }
    .mini-banner-glow-1 {
        width: 180px; height: 180px;
        top: -60px; right: -40px;
    }
    .mini-banner-glow-2 {
        width: 120px; height: 120px;
        bottom: -40px; left: -30px;
    }
    .mini-banner-texture {
        background-size: 16px 16px;
    }
}


/* ========================================== */
/* ==  资讯/课程详情页 对比度与字号优化  == */
/* ========================================== */

/* ---- 正文卡片容器 ---- */
.article-content {
    background: #fff;
    border-radius: 12px;
    padding: 36px 32px;
    box-shadow: 0 1px 3px rgba(0,0,0,.05), 0 3px 12px rgba(0,0,0,.04);
    border: 1px solid #e8ecf2;
    line-height: 1.8;
    color: #1a1a2e;
    font-size: 1rem;
    word-break: break-word;
}
/* 正文内的标题 */
.article-content h2 {
    font-size: 1.4rem;
    color: #0f3460;
    margin: 1.6em 0 .7em;
    padding-bottom: .4em;
    border-bottom: 2px solid #eef2f7;
    font-weight: 700;
    letter-spacing: .01em;
}
.article-content h3 {
    font-size: 1.2rem;
    color: #1a5276;
    margin: 1.3em 0 .55em;
    font-weight: 700;
}
.article-content h4 {
    font-size: 1.05rem;
    color: #2c3e50;
    margin: 1.1em 0 .45em;
    font-weight: 600;
}
.article-content p {
    margin-bottom: 1.1em;
    font-size: 1rem;
}
.article-content strong { color: #0f0f1a; font-weight: 700; }
.article-content a {
    color: #1a73e8;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.article-content a:hover { color: #1557b0; }

/* 引用块 */
.article-content blockquote {
    border-left: 4px solid #1a73e8;
    background: #f5f8fc;
    padding: 14px 20px;
    margin: 1.4em 0;
    border-radius: 0 8px 8px 0;
    color: #3a4a5c;
    font-size: 0.95rem;
}
.article-content ul, .article-content ol {
    padding-left: 1.55em;
    margin-bottom: 1.1em;
}
.article-content li {
    margin-bottom: .45em;
    line-height: 1.7;
}
.article-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 1.2em 0;
}

/* ---- 元信息条 ---- */
.article-meta-bar {
    background: #f7f9fb;
    border: 1px solid #dfe4ea;
    border-radius: 10px;
    padding: 16px 20px;
    margin-bottom: 22px;
}
.article-meta-bar .badge {
    font-weight: 500;
    font-size: .85rem;
    letter-spacing: .2px;
}

/* ---- 分享按钮 ---- */
.share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px; height: 34px;
    border-radius: 50%;
    font-size: 1.05rem;
    text-decoration: none;
    transition: all .2s;
    margin-right: 6px;
}
.share-weibo { background: #fde8e8; color: #e6162d; }
.share-weibo:hover { background: #e6162d; color: #fff; }
.share-wechat { background: #e8f5e9; color: #07c160; cursor: pointer; }
.share-wechat:hover { background: #07c160; color: #fff; }

/* ---- 上/下篇分页器 ---- */
.article-pager {
    display: flex;
    gap: 18px;
    margin-top: 36px;
    padding-top: 22px;
    border-top: 2px solid #eef0f4;
}
.pager-item {
    flex: 1;
    padding: 18px 20px;
    border-radius: 10px;
    border: 1px solid #dfe4ea;
    text-decoration: none;
    transition: all .2s;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.pager-item:hover {
    border-color: #1a73e8;
    background: #f0f6ff;
    box-shadow: 0 2px 10px rgba(26,115,232,.1);
}
.pager-item.disabled {
    opacity: .35;
    cursor: default;
    pointer-events: none;
}
.pager-next { text-align: right; align-items: flex-end; }
.pager-prev { align-items: flex-start; }
.pager-label {
    font-size: .82rem;
    color: #6b7b8d;
}
.pager-title {
    font-size: .96rem;
    font-weight: 600;
    color: #1a1a2e;
    line-height: 1.45;
}

/* ---- 侧边栏链接 ---- */
.sidebar-link {
    font-size: .93rem;
    color: #333;
    text-decoration: none;
    transition: color .15s;
    line-height: 1.55;
}
.sidebar-link:hover { color: #1a73e8; }

/* ---- 侧边栏卡片 ---- */
.col-md-4 .card {
    border: 1px solid #e4e9f0;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(0,0,0,.03);
}
.col-md-4 .card h6 {
    font-weight: 700;
    font-size: .95rem;
    color: #1a5276;
    margin-bottom: 1rem;
    padding-bottom: .55rem;
    border-bottom: 2px solid #e8edf3;
}

/* ---- 热门排名 ---- */
.hot-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px; height: 22px;
    border-radius: 5px;
    background: #dfe4ea;
    color: #6b7b8d;
    font-size: .74rem;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 1px;
}
.hot-rank-top { background: linear-gradient(135deg, #ff6b6b, #ee5a24); color: #fff; }

/* ---- 标签云 ---- */
.tag-pill {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 20px;
    background: #eef1f6;
    color: #4a5c6e;
    font-size: .82rem;
    text-decoration: none;
    transition: all .2s;
}
.tag-pill:hover {
    background: #1a73e8;
    color: #fff;
}

/* ---- 面包屑浅色增强 ---- */
.breadcrumb-light .breadcrumb-item,
.breadcrumb-light .breadcrumb-item a {
    color: rgba(255,255,255,.85);
    font-size: .88rem;
}
.breadcrumb-light .breadcrumb-item a:hover {
    color: #fff;
    text-decoration: underline;
}
.breadcrumb-light .breadcrumb-item.active {
    color: #fff;
    font-weight: 600;
}
.breadcrumb-light .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255,255,255,.55);
}

/* ---- Mini Banner 增强 ---- */
.mini-banner-meta {
    font-size: .9rem;
    opacity: .95;
    margin-top: 10px;
    letter-spacing: .3px;
}

/* ---- 移动端适配 ---- */
@media (max-width: 768px) {
    .article-content {
        padding: 20px 16px;
        font-size: 1rem;
        border-radius: 8px;
    }
    .article-content h2 { font-size: 1.25rem; }
    .article-content h3 { font-size: 1.1rem; }
    .article-content h4 { font-size: 1rem; }
    .article-content p { font-size: 0.95rem; }
    .article-pager {
        flex-direction: column;
        gap: 10px;
    }
    .pager-next { align-items: flex-start; text-align: left; }
    .article-meta-bar { padding: 12px 14px; }
    .article-meta-bar .d-flex { gap: 6px !important; }
    .sidebar-link { font-size: .9rem; }
}
