* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Microsoft Yahei", system-ui, sans-serif;
}
:root {
    --primary: #0F57BB;
    --primary-light: #3688F0;
    --primary-lighter: #64a8ff;
    --primary-bg: #E6F0FF;
    --primary-soft: #F0F7FF;
    --gray-100: #F8FBFF;
    --gray-200: #E2EDFC;
    --gray-300: #C9D9F2;
    --gray-500: #5A7299;
    --gray-800: #182A48;
    --dark-bg: #0C1A38;
    --white: #ffffff;
    --shadow-light: 0 2px 14px rgba(15, 87, 187, 0.06);
    --shadow-normal: 0 4px 20px rgba(15, 87, 187, 0.09);
    --shadow-hover: 0 8px 28px rgba(15, 87, 187, 0.14);
    --radius: 12px;
}
body {
    color: var(--gray-800);
    background-color: var(--gray-100);
    line-height: 1.7;
}
a {
    text-decoration: none;
    color: inherit;
}
ul {list-style: none;}
.container {
    width: 94%;
    max-width: 1260px;
    margin: 0 auto;
}
.mt20 {margin-top: 20px;}
.mt30 {margin-top: 30px;}
.mt40 {margin-top: 40px;}
.mb20 {margin-bottom: 20px;}
.mb30 {margin-bottom: 30px;}
.text-center {text-align: center;}
.white-text h2,.white-text p {color: #fff;}

/* 全局关键动画 */
@keyframes fadeLeft {from {opacity:0; transform: translateX(-50px);} to {opacity:1; transform: translateX(0);}}
@keyframes fadeRight {from {opacity:0; transform: translateX(50px);} to {opacity:1; transform: translateX(0);}}
@keyframes float {0%{transform: translateY(0);}50%{transform: translateY(-10px);}100%{transform: translateY(0);}}
@keyframes pulse {0%{transform: scale(1);opacity:0.8;}50%{transform: scale(1.06);opacity:1;}100%{transform: scale(1);opacity:0.8;}}
@keyframes sweepLight {0%{left:-100%;}100%{left:100%;}}
@keyframes pulseCircle {0%{transform: translate(-50%,-50%) scale(0.9);opacity:0.4;}50%{transform: translate(-50%,-50%) scale(1.2);opacity:0.7;}100%{transform: translate(-50%,-50%) scale(0.9);opacity:0.4;}}
@keyframes shake {0%,100%{transform: translateX(0);}25%{transform: translateX(-3px);}75%{transform: translateX(3px);}}
.float-animate {animation: float 4s ease-in-out infinite;}
.pulse-animate {animation: pulse 3s ease-in-out infinite;}
.shake-hover:hover {animation: shake 0.4s ease;}

/* 滚动入场动画 */
.scroll-fade {
    opacity: 0;
    transform: translateY(28px);
    transition: all 0.7s cubic-bezier(0.22,1,0.36,1);
}
.scroll-fade.show {opacity:1; transform: translateY(0);}
.card-animate {
    opacity: 0;
    transform: translateY(36px);
    transition: all 0.6s cubic-bezier(0.22,1,0.36,1);
}
.card-animate.show {opacity:1; transform: translateY(0);}

/* 按钮通用 */
.btn {
    padding: 9px 22px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.26s ease;
}
.btn-sm {padding: 6px 16px; font-size: 13px;}
.btn-lg {padding: 14px 36px; font-size: 16px;}
.btn-animate:hover {transform: scale(1.05); box-shadow: var(--shadow-hover);}
.btn-primary {background: linear-gradient(135deg,var(--primary),var(--primary-light)); color: white;}
.btn-primary:hover {background: linear-gradient(135deg,var(--primary-light),var(--primary-lighter));}
.btn-outline {border: 1px solid var(--primary); color: var(--primary); background: transparent;}
.btn-outline:hover {background: var(--primary-bg);}
.btn-light {background: #fff; color: var(--primary);}
.btn-white {background: #fff; color: var(--primary); font-weight: 500;}
.btn-outline-white {border: 1px solid #fff; color: #fff; background: transparent;}
.btn-outline-white:hover {background: rgba(255,255,255,0.18);}

/* 导航栏 */
.navbar {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(12px);
    z-index: 999;
    transition: all 0.3s ease;
    box-shadow: var(--shadow-light);
}
.nav-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 70px;
}
.logo {
    font-weight: bold;
    font-size: 20px;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 8px;
    transition: transform 0.2s;
}
.logo:hover {transform: scale(1.02);}
.nav-menu {
    display: flex;
    gap: 30px;
}
.nav-menu a {
    font-size: 14px;
    color: var(--gray-800);
    transition: color 0.25s;
}
.nav-menu a.active {color: var(--primary); font-weight: 500;}
.nav-menu a:hover {color: var(--primary);}
.nav-buttons {display: flex; gap: 12px;}
.menu-toggle {
    display: none;
    font-size: 24px;
    color: var(--primary);
    cursor: pointer;
}
/* 移动端导航弹窗 */
@media(max-width:1080px){
    .menu-toggle {display: block;}
    .nav-menu {
        position: fixed;
        top: 70px;
        left: 0;
        width: 100%;
        height: calc(100vh - 70px);
        background: #fff;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        padding-top: 40px;
        gap: 24px;
        transform: translateX(100%);
        transition: transform 0.3s ease;
    }
    .nav-menu.show {transform: translateX(0);}
    .nav-buttons {display: none;}
}

/* 轮播核心样式 优化流畅淡入缩放切换 */
.hero {
    margin-top: 70px;
    background: linear-gradient(180deg, var(--primary-bg) 0%, var(--gray-100) 100%);
    padding: 70px 0;
    position: relative;
    overflow: hidden;
}
.carousel-wrap {
    width: 100%;
    overflow: hidden;
    position: relative;
}
/* 轮播背景装饰光效 */
.bg-light-circle {
    position: absolute;
    width: 800px;
    height: 800px;
    background: radial-gradient(circle, rgba(54,136,240,0.08) 0, transparent 70%);
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    animation: pulseCircle 6s infinite ease-in-out;
    pointer-events: none;
    z-index: 0;
}
.bg-sweep-light {
    /*position: absolute;*/
    /*top: 0;*/
    /*left: -100%;*/
    /*width: 100%;*/
    /*height: 100%;*/
    /*background: linear-gradient(90deg, transparent, rgba(54,136,240,0.07), transparent);*/
    /*animation: sweepLight 7s infinite linear;*/
    /*pointer-events: none;*/
    /*z-index: 0;*/
}
.carousel-list {
    width: 100%;
    position: relative;
}
.carousel-item {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    transform: scale(0.94);
    transition: all 0.8s cubic-bezier(0.22,1,0.36,1);
    z-index: 1;
}
.carousel-item.active {
    position: relative;
    opacity: 1;
    transform: scale(1);
    z-index: 2;
}
/* 轮播内部文字延迟入场 */
.carousel-item h1 {
    opacity: 0;
    transform: translateX(-40px);
    transition: all 0.8s ease 0.3s;
}
.carousel-item .sub-title {
    opacity: 0;
    transform: translateX(-40px);
    transition: all 0.8s ease 0.5s;
}
.carousel-item .slogan {
    opacity: 0;
    transform: translateX(-40px);
    transition: all 0.8s ease 0.7s;
}
.carousel-item .hero-buttons {
    opacity: 0;
    transform: translateX(-40px);
    transition: all 0.8s ease 0.9s;
}
.carousel-item.active h1,
.carousel-item.active .sub-title,
.carousel-item.active .slogan,
.carousel-item.active .hero-buttons {
    opacity: 1;
    transform: translateX(0);
}
/* 轮播箭头 */
.carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: rgba(255,255,255,0.85);
    border: none;
    color: var(--primary);
    font-size: 18px;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s ease;
}
.carousel-arrow:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.12);
    box-shadow: var(--shadow-hover);
}
.left-arrow {left: 16px;}
.right-arrow {right: 16px;}
/* 圆点进度指示器 */
.carousel-dots {
    position: absolute;
    bottom: 26px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 14px;
    z-index: 10;
}
.dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--gray-300);
    cursor: pointer;
    overflow: hidden;
    position: relative;
}
.dot i {
    display: block;
    width: 0;
    height: 100%;
    background: var(--primary);
    transition: width 0.1s linear;
}
.dot.active i {animation: dotProgress 5s linear forwards;}
@keyframes dotProgress {from{width:0;}to{width:100%;}}

/* 首屏内容布局 */
.hero-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 50px;
    position: relative;
    z-index: 2;
}
.hero-text h1 {
    font-size: 34px;
    margin-bottom: 18px;
    line-height: 1.4;
    color: var(--gray-800);
}
.sub-title {
    font-size: 17px;
    color: var(--gray-500);
    margin-bottom: 12px;
}
.slogan {
    font-size: 18px;
    color: var(--primary);
    font-weight: 500;
    margin-bottom: 32px;
}
.hero-buttons {display: flex; gap: 16px; flex-wrap: wrap;}
.system-preview-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow-normal);
    overflow: hidden;
}
.preview-top {
    background: linear-gradient(135deg,var(--primary),var(--primary-light));
    color: #fff;
    padding: 12px;
    text-align: center;
}
.preview-content {
    padding: 24px;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 14px;
}
.preview-item {
    background: var(--primary-bg);
    color: var(--primary);
    text-align: center;
    padding: 14px 6px;
    border-radius: 8px;
    font-size: 14px;
    transition: transform 0.3s ease;
}
.scale-hover:hover {transform: scale(1.06);}

/* 右侧悬浮栏 */
.float-sidebar {
    position: fixed;
    right: 14px;
    top: 140px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 99;
}
.float-item {
    width: 74px;
    background: #fff;
    border-radius: 10px;
    box-shadow: var(--shadow-normal);
    padding: 12px 8px;
    text-align: center;
    font-size: 12px;
    color: var(--gray-800);
}
.avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--primary-bg);
    margin: 0 auto 8px;
}
.qr-box {
    width: 100px;
    height: auto;
    /*background: var(--primary-soft);*/
    /*margin: 0 auto;*/
}

/* 通用区块 */
.section {padding: 80px 0;}
.bg-light {background: var(--primary-soft);}
.bg-blue {background: linear-gradient(135deg,var(--primary),var(--primary-light));}
.dark-section {background: var(--dark-bg);}
.section-title {
    text-align: center;
    margin-bottom: 52px;
}
.section-title h2 {
    font-size: 28px;
    margin-bottom: 12px;
    color: var(--gray-800);
}
.section-title p {
    color: var(--gray-500);
    font-size: 15px;
}

/* 网格布局 */
.grid-5 {display: grid; grid-template-columns: repeat(5,1fr); gap: 22px;}
.grid-4 {display: grid; grid-template-columns: repeat(4,1fr); gap: 22px;}
.grid-3 {display: grid; grid-template-columns: repeat(3,1fr); gap: 26px;}
.grid-2 {display: grid; grid-template-columns: repeat(2,1fr); gap: 26px;}

/* 卡片样式 */
.card {
    background: #fff;
    border-radius: var(--radius);
    padding: 34px 26px;
    box-shadow: var(--shadow-light);
    transition: all 0.28s ease;
}
.card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-hover);
}
.card-blue {background: linear-gradient(135deg,var(--primary),var(--primary-light)); color: #fff;}
.card-blue p {color: rgba(255,255,255,0.88);}
.card-icon {
    width: 60px;
    height: 60px;
    border-radius: 10px;
    background: var(--primary-bg);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    margin-bottom: 18px;
}
.rotate-hover i {transition: transform 0.4s ease;}
.card:hover .rotate-hover i {transform: rotate(360deg);}
.card h3 {font-size: 19px; margin-bottom: 14px;}
.card p {font-size: 14px; color: var(--gray-500); line-height: 1.75;}

/* 套餐卡片 */
.package-card {padding: 0; overflow: hidden;}
.package-top {
    background: var(--primary-bg);
    color: var(--primary);
    font-weight: bold;
    padding: 14px;
    text-align: center;
    font-size: 18px;
}
.package-card.recommend .package-top {
    background: linear-gradient(135deg,var(--primary),var(--primary-light));
    color: #fff;
}
.package-desc {
    padding: 12px 16px;
    text-align: center;
    font-size: 14px;
    color: var(--gray-500);
    border-bottom: 1px solid var(--gray-200);
}
.package-list {padding: 20px;}
.package-list li {
    margin-bottom: 10px;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.package-list li i {color: #00A86B;}

/* 品牌文字块 */
.brand-content {
    max-width: 960px;
    margin: 0 auto;
    font-size: 16px;
    color: var(--gray-800);
}
.brand-content p {margin-bottom: 16px; line-height: 1.8;}

/* CTA按钮区 */
.cta-buttons {display: flex; gap: 20px; justify-content: center; flex-wrap: wrap;}

/* 页脚 */
.footer {
    background: var(--dark-bg);
    color: #c5d0e6;
    padding: 65px 0 0;
}
.footer-wrap {
    display: grid;
    grid-template-columns: 1.2fr 2fr 1fr;
    gap: 45px;
}
.footer-title {
    font-size: 17px;
    color: #fff;
    margin-bottom: 18px;
}
.footer-links {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 24px;
}
.footer-links p {
    color: #fff;
    margin-bottom: 12px;
    font-size: 15px;
}
.footer-links a {
    display: block;
    font-size: 14px;
    margin-bottom: 8px;
    color: #a1b3d6;
    transition: color 0.2s;
}
.footer-links a:hover {color: #fff;}
.qr-group {display: flex; gap: 14px;}
.copyright {
    margin-top: 55px;
    padding: 24px 0;
    border-top: 1px solid #1E2B4D;
    font-size: 13px;
    color: #8899bb;
    text-align: center;
    line-height: 1.8;
}

/* 深度移动端适配 */
@media(max-width:1080px) {
    .grid-5,.grid-4,.grid-3,.grid-2 {grid-template-columns: repeat(2,1fr);}
    .hero-inner {grid-template-columns: 1fr; gap: 40px;}
    .footer-wrap {grid-template-columns: 1fr; gap: 30px;}
    .carousel-arrow {width: 38px; height: 38px; font-size: 14px;}
    .float-sidebar {display: none;}
}
@media(max-width:640px) {
    .grid-5,.grid-4,.grid-3,.grid-2 {grid-template-columns: 1fr;}
    .hero-text h1 {font-size: 26px;}
    .hero-buttons {justify-content: center;}
    .section {padding: 50px 0;}
    .carousel-dots {bottom: 16px; gap: 8px;}
    .dot {width: 10px; height: 10px;}
    .nav-wrap {height: 64px;}
}