/* roulang page: index */
:root {
            --color-primary: #0F52BA;
            --color-electric: #2563EB;
            --color-emerald: #059669;
            --color-amber: #D97706;
            --bg-canvas: #F8FAFC;
            --bg-dark: #0B1120;
            --bg-dark-card: #1E293B;
            --text-main: #0F172A;
            --text-body: #334155;
            --text-muted: #64748B;
            --border-light: #E2E8F0;
            --radius-md: 8px;
            --radius-lg: 12px;
            --shadow-normal: 0 1px 3px 0 rgba(0, 0, 0, 0.05), 0 1px 2px -1px rgba(0, 0, 0, 0.05);
            --shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.04);
        }

        *, *::before, *::after {
            box-sizing: border-box;
        }

        html, body {
            margin: 0;
            padding: 0;
            background-color: var(--bg-canvas);
            color: var(--text-body);
            font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
            font-size: 16px;
            line-height: 1.75;
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
        }

        .container-custom {
            max-width: 1200px;
            margin-left: auto;
            margin-right: auto;
            padding-left: 24px;
            padding-right: 24px;
        }

        .section-padding {
            padding-top: 88px;
            padding-bottom: 88px;
        }

        @media (max-width: 768px) {
            .section-padding {
                padding-top: 56px;
                padding-bottom: 56px;
            }
        }

        .card-surface {
            background: #FFFFFF;
            border: 1px solid var(--border-light);
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-normal);
            transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease;
        }

        .card-surface:hover {
            transform: translateY(-2px);
            box-shadow: var(--shadow-hover);
            border-color: #CBD5E1;
        }

        .hero-angled {
            position: relative;
            clip-path: polygon(0 0, 100% 0, 100% 94%, 0 100%);
        }

        @media (max-width: 768px) {
            .hero-angled {
                clip-path: polygon(0 0, 100% 0, 100% 97%, 0 100%);
            }
        }

        .btn-primary-action {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-electric) 100%);
            color: #FFFFFF;
            font-weight: 600;
            padding: 12px 26px;
            border-radius: var(--radius-md);
            transition: all 0.2s ease;
            box-shadow: 0 4px 12px rgba(37, 99, 235, 0.28);
            text-decoration: none;
        }

        .btn-primary-action:hover {
            transform: translateY(-1px);
            box-shadow: 0 6px 18px rgba(37, 99, 235, 0.38);
            filter: brightness(1.05);
        }

        .btn-primary-action:focus-visible,
        .btn-secondary-action:focus-visible {
            outline: 2px solid var(--color-electric);
            outline-offset: 2px;
        }

        .btn-secondary-action {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: rgba(255, 255, 255, 0.92);
            color: var(--text-main);
            border: 1px solid #CBD5E1;
            font-weight: 600;
            padding: 12px 26px;
            border-radius: var(--radius-md);
            transition: all 0.2s ease;
            text-decoration: none;
        }

        .btn-secondary-action:hover {
            background: #FFFFFF;
            border-color: var(--color-electric);
            color: var(--color-electric);
            transform: translateY(-1px);
        }

        .nav-link-item {
            position: relative;
            color: var(--text-body);
            font-weight: 500;
            font-size: 15px;
            padding: 8px 12px;
            border-radius: 6px;
            transition: color 0.2s ease, background-color 0.2s ease;
        }

        .nav-link-item:hover,
        .nav-link-item.active {
            color: var(--color-electric);
            background-color: rgba(37, 99, 235, 0.06);
        }

        .num-font {
            font-family: "DIN Alternate", "Inter", system-ui, -apple-system, sans-serif;
            letter-spacing: -0.02em;
        }

        .pulse-ring {
            animation: pulseRing 2.4s cubic-bezier(0.4, 0, 0.6, 1) infinite;
        }

        @keyframes pulseRing {
            0%, 100% { transform: scale(1); opacity: 0.85; }
            50% { transform: scale(1.14); opacity: 0.35; }
        }

        .faq-answer {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease, padding 0.3s ease;
        }

        .faq-item.open .faq-answer {
            max-height: 360px;
        }

        .faq-item.open .faq-icon {
            transform: rotate(180deg);
        }

        /* 自定义表格滚动条 */
        .table-scroll::-webkit-scrollbar {
            height: 6px;
        }
        .table-scroll::-webkit-scrollbar-track {
            background: #F1F5F9;
        }
        .table-scroll::-webkit-scrollbar-thumb {
            background: #CBD5E1;
            border-radius: 3px;
        }
