:root{
    --color-primary:#6d28d9;
    --color-primary-dark:#4c1d95;
    --color-accent:#22c55e;
    --color-surface:#f6fbff;
    --color-text:#0b1220;
    --rgb-primary:109,40,217;
    --rgb-accent:34,197,94;
    --radius-sm:10px;
    --radius-md:14px;
    --radius-lg:18px;
    --radius-xl:22px;
    --shadow-sm:0 1px 0 rgba(16,24,40,.10), 0 10px 30px rgba(109,40,217,.10);
    --shadow-md:0 10px 25px rgba(11,18,32,.08), 0 2px 8px rgba(109,40,217,.10), 0 1px 0 rgba(255,255,255,.55) inset;
    --shadow-lg:0 18px 45px rgba(11,18,32,.12), 0 8px 18px rgba(109,40,217,.16), 0 1px 0 rgba(255,255,255,.60) inset;
    --space-section:5.25rem;
    --space-card:2.35rem;
    --space-gap:2rem;
    --transition:420ms cubic-bezier(.16,1,.3,1);
    --heading-weight:650;
    --body-line-height:1.7;
    --focus-ring:rgba(109,40,217,.32);
    --card-border:rgba(109,40,217,.18);
    --glass:rgba(246,251,255,.70);
}

/* 基础覆盖 */
body{
    color:var(--color-text);
    line-height:var(--body-line-height);
    background:
        radial-gradient(1200px 700px at 10% 0%, rgba(109,40,217,.10), rgba(255,255,255,0) 55%),
        radial-gradient(900px 600px at 90% 20%, rgba(34,197,94,.10), rgba(255,255,255,0) 55%),
        linear-gradient(180deg, #ffffff, #f7fbff 40%, #f3f7ff);
}
h1, h2, h3, h4{ font-weight:var(--heading-weight); }
section, .section{
    padding-top:var(--space-section);
    padding-bottom:var(--space-section);
}
.card, [class*="card"]{
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-md);
    padding:var(--space-card);
    transition:transform var(--transition), box-shadow var(--transition), background var(--transition), border-color var(--transition), filter var(--transition);
    border:1px solid var(--card-border);
    background:
        radial-gradient(900px 220px at 0% 0%, rgba(109,40,217,.12), rgba(255,255,255,0) 55%),
        radial-gradient(700px 200px at 100% 0%, rgba(34,197,94,.10), rgba(255,255,255,0) 52%),
        linear-gradient(180deg, rgba(255,255,255,.92), rgba(246,251,255,.78));
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}
.btn, button[class*="btn"], a[class*="btn"]{
    border-radius:var(--radius-md);
    transition:transform var(--transition), box-shadow var(--transition), background var(--transition), color var(--transition), border-color var(--transition);
    box-shadow:0 10px 25px rgba(109,40,217,.14), 0 2px 8px rgba(11,18,32,.08);
}
a:not([class]){
    color:var(--color-primary);
    transition:color var(--transition), text-shadow var(--transition), filter var(--transition);
    text-shadow:0 1px 0 rgba(255,255,255,.55);
}
a:not([class]):hover{
    color:var(--color-primary-dark);
    filter:saturate(1.08);
}

/* ========== Section Layout Variants ========== */

/* news: featured-left */
/* 左大右小 (1大+2小) */
                .news-grid{
                    display:grid;
                    grid-template-columns:2fr 1fr;
                    grid-template-rows:auto auto;
                    gap:var(--space-gap);
                    align-items:baseline;
                }
                .news-grid > *:first-child{ grid-row:span 2; }

/* features: grid-3 */
.feature-list{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:var(--space-gap);
    align-items:baseline;
}

/* hero: centered */
.hero-content{
    text-align:center;
    max-width:800px;
    margin:0 auto;
}

/* testimonials: stacked */
/* 垂直堆叠 */
                .testimonial-list{
                    display:flex;
                    flex-direction:column;
                    gap:var(--space-gap);
                    max-width:720px;
                    margin:0 auto;
                }

/* partners: grid-4 */
.partner-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:calc(var(--space-gap) * 1.5);
    align-items:center;
}

/* faq: single-column */
.faq-list{
    max-width:800px;
    margin:0 auto;
}

/* stats: inline */
/* 水平排列 */
                .stats-grid{
                    display:flex;
                    justify-content:center;
                    gap:3rem;
                    align-items:baseline;
                }

/* cta: full-bg */
.cta-section{
    background:
        radial-gradient(900px 500px at 20% 0%, rgba(255,255,255,.18), rgba(255,255,255,0) 58%),
        radial-gradient(700px 420px at 85% 25%, rgba(34,197,94,.35), rgba(34,197,94,0) 55%),
        linear-gradient(135deg, var(--color-primary) 0%, #7c3aed 35%, #22c55e 140%);
    color:#ffffff;
    padding:4rem 2rem;
    box-shadow:0 22px 65px rgba(76,29,149,.25);
}

/* Page Layout: wide */
/* 超宽 */
            .page-main{
                max-width:1400px;
                margin:0 auto;
            }

/* 条件性装饰 */
.card:hover, [class*="card"]:hover{
    transform:translateY(-7px);
    box-shadow:var(--shadow-lg);
    border-color:rgba(109,40,217,.34);
    filter:saturate(1.03);
}
.card{
    border-left:4px solid rgba(109,40,217,.70);
}
header, .header, .navbar{
    background:transparent;
}

:focus, :focus-visible{
    outline:2px solid rgba(109,40,217,.35);
    outline-offset:3px;
    border-radius:var(--radius-md);
}
::selection{
    background:rgba(109,40,217,.22);
    color:var(--color-text);
}
input, textarea, select{
    caret-color:var(--color-accent);
    accent-color:var(--color-primary);
}

/* Responsive */
@media (max-width: 1024px){
    .news-grid{ grid-template-columns:repeat(2, 1fr) !important; }
    .feature-list{ grid-template-columns:repeat(2, 1fr) !important; }
    .partner-grid{ grid-template-columns:repeat(3, 1fr) !important; }
    .stats-grid{ grid-template-columns:repeat(2, 1fr) !important; }
    .hero-inner{ grid-template-columns:1fr !important; }
}
@media (max-width: 640px){
    :root{
        --space-section:2.2rem;
        --space-card:1.1rem;
        --space-gap:1.1rem;
    }
    .news-grid{ grid-template-columns:1fr !important; }
    .feature-list{ grid-template-columns:1fr !important; }
    .faq-list{ grid-template-columns:1fr !important; }
    .testimonial-list{ column-count:1 !important; }
    .partner-grid{ grid-template-columns:repeat(2, 1fr) !important; }
    .stats-grid{ grid-template-columns:repeat(2, 1fr) !important; }
    .cta-inner{ grid-template-columns:1fr !important; }
}