* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
}
/* --- 1. Display & Layout (显示与布局) --- */
.d-none { display: none; }
.d-block { display: block; }
.d-inline-block { display: inline-block; }
.d-flex { display: flex; }
.d-inline-flex { display: inline-flex; }
.overflow-hidden { overflow: hidden; }

/* --- 2. Flexbox (弹性盒子) --- */
/* Flex Direction */
.flex-row { flex-direction: row; }
.flex-column { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-nowrap { flex-wrap: nowrap; }

/* Justify Content (主轴对齐) */
.justify-start { justify-content: flex-start; }
.justify-center { justify-content: center; }
.justify-end { justify-content: flex-end; }
.justify-between { justify-content: space-between; }
.justify-around { justify-content: space-around; }

/* Align Items (交叉轴对齐) */
.align-start { align-items: flex-start; }
.align-center { align-items: center; }
.align-end { align-items: flex-end; }
.align-stretch { align-items: stretch; }

/* Flex Properties */
.flex-1 { flex: 1; }
.flex-shrink-0 { flex-shrink: 0; }
.flex-grow-1 { flex-grow: 1; }

/* Gap */
.gap-8 { gap: 8px; }
.gap-12 { gap: 12px; }
.gap-16 { gap: 16px; }
.gap-20 { gap: 20px; }
.gap-24 { gap: 24px; }
.gap-30 { gap: 30px; }
.gap-32 { gap: 32px; }
.gap-40 { gap: 40px; }
.gap-60 { gap: 60px; }

/* --- 3. Positioning (定位) --- */
.position-static { position: static; }
.position-relative { position: relative; }
.position-absolute { position: absolute; }
.position-fixed { position: fixed; }
.position-sticky { position: sticky; }


.z-10 { z-index: 10; }
.z-20 { z-index: 20; }

.inset-0 { top: 0; left: 0; right: 0; bottom: 0; }
.bottom-0 { bottom: 0; }
.left-0 { left: 0; }
.right-0 { right: 0; }

.w-100 { width: 100%; }
.w-auto { width: auto; }
.vw-100 { width: 100vw; }

.h-100 { height: 100%; }
.h-auto { height: auto; }
.vh-100 { height: 100vh; }

/* --- 5. Spacing (间距: Margin & Padding) --- */
/* Margin */
.m-0 { margin: 0; }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }
.ml-0 { margin-left: 0; }
.mr-0 { margin-right: 0; }

.m-4 { margin: 4px; }
.mt-4 { margin-top: 4px; }
.mb-4 { margin-bottom: 4px; }
.ml-4 { margin-left: 4px; }
.mr-4 { margin-right: 4px; }

.m-8 { margin: 8px; }
.mt-8 { margin-top: 8px; }
.mb-8 { margin-bottom: 8px; }
.ml-8 { margin-left: 8px; }
.mr-8 { margin-right: 8px; }

.m-12 { margin: 12px; }
.mt-12 { margin-top: 12px; }
.mb-12 { margin-bottom: 12px; }
.ml-12 { margin-left: 12px; }
.mr-12 { margin-right: 12px; }

.m-16 { margin: 16px; }
.mt-16 { margin-top: 16px; }
.mb-16 { margin-bottom: 16px; }
.ml-16 { margin-left: 16px; }
.mr-16 { margin-right: 16px; }

.m-20 { margin: 20px; }
.mt-20 { margin-top: 20px; }
.mb-20 { margin-bottom: 20px; }
.ml-20 { margin-left: 20px; }
.mr-20 { margin-right: 20px; }

.m-24 { margin: 24px; }
.mt-24 { margin-top: 24px; }
.mb-24 { margin-bottom: 24px; }
.ml-24 { margin-left: 24px; }
.mr-24 { margin-right: 24px; }

.m-32 { margin: 32px; }
.mt-32 { margin-top: 32px; }
.mb-32 { margin-bottom: 32px; }
.ml-32 { margin-left: 32px; }
.mr-32 { margin-right: 32px; }

.m-40 { margin: 40px; }
.mt-40 { margin-top: 40px; }
.mb-40 { margin-bottom: 40px; }
.ml-40 { margin-left: 40px; }
.mr-40 { margin-right: 40px; }

.m-48 { margin: 48px; }
.mt-48 { margin-top: 48px; }
.mb-48 { margin-bottom: 48px; }
.ml-48 { margin-left: 48px; }
.mr-48 { margin-right: 48px; }

.m-60 { margin: 60px; }
.mt-60 { margin-top: 60px; }
.mb-60 { margin-bottom: 60px; }
.ml-60 { margin-left: 60px; }
.mr-60 { margin-right: 60px; }

.m-64 { margin: 64px; }
.mt-64 { margin-top: 64px; }
.mb-64 { margin-bottom: 64px; }
.ml-64 { margin-left: 64px; }
.mr-64 { margin-right: 64px; }

.m-80 { margin: 80px; }
.mt-80 { margin-top: 80px; }
.mb-80 { margin-bottom: 80px; }
.ml-80 { margin-left: 80px; }
.mr-80 { margin-right: 80px; }

.mt-n84 { margin-top: -84px; }


/* Padding */
.p-0 { padding: 0; }
.pt-0 { padding-top: 0; }
.pb-0 { padding-bottom: 0; }
.pl-0 { padding-left: 0; }
.pr-0 { padding-right: 0; }
.px-0 { padding-left: 0; padding-right: 0; }
.py-0 { padding-top: 0; padding-bottom: 0; }

.p-4 { padding: 4px; }
.pt-4 { padding-top: 4px; }
.pb-4 { padding-bottom: 4px; }
.pl-4 { padding-left: 4px; }
.pr-4 { padding-right: 4px; }

.p-8 { padding: 8px; }
.pt-8 { padding-top: 8px; }
.pb-8 { padding-bottom: 8px; }
.pl-8 { padding-left: 8px; }
.pr-8 { padding-right: 8px; }

.p-12 { padding: 12px; }
.pt-12 { padding-top: 12px; }
.pb-12 { padding-bottom: 12px; }
.pl-12 { padding-left: 12px; }
.pr-12 { padding-right: 12px; }

.p-16 { padding: 16px; }
.pt-16 { padding-top: 16px; }
.pb-16 { padding-bottom: 16px; }
.pl-16 { padding-left: 16px; }
.pr-16 { padding-right: 16px; }

.p-20 { padding: 20px; }
.pt-20 { padding-top: 20px; }
.pb-20 { padding-bottom: 20px; }
.pl-20 { padding-left: 20px; }
.pr-20 { padding-right: 20px; }
.px-20 { padding-left: 20px; padding-right: 20px; }
.py-20 { padding-top: 20px; padding-bottom: 20px; }

.p-24 { padding: 24px; }
.pt-24 { padding-top: 24px; }
.pb-24 { padding-bottom: 24px; }
.pl-24 { padding-left: 24px; }
.pr-24 { padding-right: 24px; }

.p-30 { padding: 30px; }
.pt-30 { padding-top: 30px; }
.pb-30 { padding-bottom: 30px; }
.pl-30 { padding-left: 30px; }
.pr-30 { padding-right: 30px; }

.p-32 { padding: 32px; }
.pt-32 { padding-top: 32px; }
.pb-32 { padding-bottom: 32px; }
.pl-32 { padding-left: 32px; }
.pr-32 { padding-right: 32px; }

.p-40 { padding: 40px; }
.pt-40 { padding-top: 40px; }
.pb-40 { padding-bottom: 40px; }
.pl-40 { padding-left: 40px; }
.pr-40 { padding-right: 40px; }

.p-48 { padding: 48px; }
.pt-48 { padding-top: 48px; }
.pb-48 { padding-bottom: 48px; }
.pl-48 { padding-left: 48px; }
.pr-48 { padding-right: 48px; }

.p-60 { padding: 60px; }
.pt-60 { padding-top: 60px; }
.pb-60 { padding-bottom: 60px; }
.pl-60 { padding-left: 60px; }
.pr-60 { padding-right: 60px; }

.p-64 { padding: 64px; }
.pt-64 { padding-top: 64px; }
.pb-64 { padding-bottom: 64px; }
.pl-64 { padding-left: 64px; }
.pr-64 { padding-right: 64px; }

.p-68 { padding: 68px; }
.pt-68 { padding-top: 68px; }
.pb-68 { padding-bottom: 68px; }
.pl-68 { padding-left: 68px; }
.pr-68 { padding-right: 68px; }

.p-80 { padding: 80px; }
.pt-80 { padding-top: 80px; }
.pb-80 { padding-bottom: 80px; }
.pl-80 { padding-left: 80px; }
.pr-80 { padding-right: 80px; }
.px-80 { padding-left: 80px; padding-right: 80px; }
.py-80 { padding-top: 80px; padding-bottom: 80px; }

.pb-96 { padding-bottom: 96px; }
.pt-124 { padding-top: 124px; }
.pb-132 { padding-bottom: 132px; }

/* --- 6. Typography (排版与字体) --- */
/* Text Align */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }

/* Font Weight */
.font-normal { font-weight: normal; }
.font-400 { font-weight: 400; }
.font-500 { font-weight: 500; }
.font-600 { font-weight: 600; }
.font-700 { font-weight: 700; }
.font-800 { font-weight: 800; }
.font-bold { font-weight: bold; }

/* Font Size */
.font-12 { font-size: 12px; }
.font-14 { font-size: 14px; }
.font-16 { font-size: 16px; }
.font-18 { font-size: 18px; }
.font-20 { font-size: 20px; }
.font-24 { font-size: 24px; }
.font-28 { font-size: 28px; }
.font-32 { font-size: 32px; }
.font-36 { font-size: 36px; }
.font-40 { font-size: 40px; }
.font-48 { font-size: 48px; }
.font-56 { font-size: 56px; }
.font-60 { font-size: 60px; }

/* Line Height */
.line-height-1 { line-height: 1; }
.line-height-12 { line-height: 1.2; }
.line-height-14 { line-height: 1.4; }
.line-height-15 { line-height: 1.5; }
.line-height-16 { line-height: 1.6; }
.line-height-18 { line-height: 1.8; }
.line-height-2 { line-height: 2; }
.line-height-24 { line-height: 24px; }
.line-height-28 { line-height: 28px; }
.line-height-32 { line-height: 32px; }
.line-height-40 { line-height: 40px; }
.line-height-48 { line-height: 48px; }

/* --- 7. Colors (颜色 & 背景) --- */
/* Text Colors */
.color-white { color: #FFFFFF; }
.color-black { color: #000000; }
.color-ffffff { color: #ffffff; }
.color-000000 { color: #000000; }
.color-0032D6 { color: #0032D6; }
.color-051243 { color: #051243; }
.color-0A6CCB { color: #0A6CCB; }
.color-666666 { color: #666666; }

.color-gradient-blue {
    background: linear-gradient(265deg, #1892EE 5.11%, #0032D6 93.64%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Background Colors */
.bg-white { background-color: #FFFFFF; }
.bg-ffffff { background-color: #ffffff; }
.bg-f2f7fb { background-color: #f2f7fb; }
.bg-dddddd { background-color: #dddddd; }
.bg-transparent { background-color: transparent; }

/* --- 8. Others (其他工具) --- */
.cursor-pointer { cursor: pointer; }
.object-fit-cover { object-fit: cover; }
.object-fit-contain { object-fit: contain; }

/* =========================================
   Project Specific Utilities (项目专用)
   ========================================= */
.section-max {
    max-width: 1040px;
    margin: 0 auto;
    width: 100%;
}