/* ===== CSS Variables ===== */
:root {
    --green: #1A9B0D;
    --dark-green: #053800;
    --main-width: 1200px;
    --btn-height: 48px;
    --btn-size: 18px;
}

/* ===== Reset ===== */
* {
    margin: 0;
    padding: 0;
    border: 0;
    box-sizing: border-box;
    min-width: 0;
    word-break: break-word;
    word-wrap: break-word;
}

body {
    width: 100%;
    overflow-x: hidden;
    font-family: "Microsoft YaHei", "PingFang SC", -apple-system, BlinkMacSystemFont, sans-serif;
    color: #000;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

ul, li { list-style: none; }
a { color: inherit; text-decoration: none; }
img { border: none; max-width: 100%; }
input { border: 0; outline: none; }
section { width: 100%; }
main { flex: 1; width: 100%; }

::-webkit-scrollbar { width: 5px; height: 10px; }
::-webkit-scrollbar-track-piece { background-color: transparent; border-radius: 5px; }
::-webkit-scrollbar-thumb { cursor: pointer; background-color: #ccc; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background-color: #999; }

/* ===== Container ===== */
.container {
    max-width: 90%;
    width: var(--main-width);
    margin: 0 auto;
}

/* ===== Header ===== */
.header {
    background: #F1F1F1;
    position: sticky;
    top: 0;
    z-index: 999;
    width: 100%;
    transition: all 0.5s;
}

.header .container {
    padding: 20px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.logo img {
    max-height: 60px;
}

.nav {
    display: flex;
    align-items: center;
    padding: 0;
}

.nav-item {
    margin-left: 40px;
    line-height: 2em;
    position: relative;
}

.nav-item a {
    padding: 0;
    color: #000;
    font-size: 14px;
    cursor: pointer;
    transition: color 0.3s;
}

.nav-item a:hover,
.nav-item.active a {
    color: var(--green) !important;
}

.nav-item::after {
    transition: all 0.3s;
    margin: 10px auto;
    display: block;
    content: '';
    background: var(--green);
    width: 0;
    height: 3px;
    border-radius: 4px;
}

.nav-item.active::after {
    width: 24px;
}

.menu-button {
    display: none;
    cursor: pointer;
    width: 30px;
    height: 30px;
}

.menu-button .line {
    fill: none;
    stroke: #000;
    stroke-width: 6;
    stroke-linecap: round;
    transition: stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1),
                stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
}

.menu-button .line1 { stroke-dasharray: 60 207; }
.menu-button .line2 { stroke-dasharray: 45 60; }
.menu-button .line3 { stroke-dasharray: 30 207; }

.menu-button.opened .line1 { stroke-dasharray: 90 207; stroke-dashoffset: -134; }
.menu-button.opened .line2 { stroke-dasharray: 1 60; stroke-dashoffset: -30; }
.menu-button.opened .line3 { stroke-dasharray: 90 207; stroke-dashoffset: -134; }

.nav-mobile {
    display: none;
    background: var(--dark-green);
    color: #fff;
    text-align: center;
}

.nav-mobile li {
    padding: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.nav-mobile li a {
    display: block;
    color: #fff;
}

/* ===== Section Common ===== */
section {
    padding: 80px 0;
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

.section-title {
    letter-spacing: 4px;
    text-align: center;
    font-size: 40px;
    color: var(--dark-green);
    font-weight: bold;
}

.section-title::after {
    display: block;
    content: '';
    width: 34px;
    margin: 5px auto 8px;
    height: 6px;
    background: var(--green);
    border-radius: 11px;
}

.section-subtitle {
    font-size: 24px;
    letter-spacing: 3px;
    color: var(--dark-green);
    opacity: 0.5;
    text-align: center;
}

/* ===== Banner ===== */
.banner {
    padding: 100px 0;
    color: #fff;
    background-size: cover;
    background-attachment: fixed;
    background-position: center;
}

.banner-block {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    align-items: center;
}

.banner-title h1 {
    font-size: 64px;
}

.banner-title h5 {
    margin-top: 25px;
    font-size: 32px;
}

.btn-buy {
    display: inline-block;
    margin-top: 90px;
    background: #fff;
    color: var(--green);
    border-radius: 16px;
    height: 56px;
    line-height: 56px;
    font-size: 20px;
    letter-spacing: 5px;
    padding: 0 30px;
    transition: all 0.3s;
}

.btn-buy:hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
}

/* 主副标题隐藏时（banner-title--textless），去掉为标题预留的上间距，让按钮垂直居中 */
.banner-title--textless .btn-buy {
    margin-top: 0;
}

.video-tabs {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
}

.video-tabs li {
    margin-right: 30px;
    cursor: pointer;
    position: relative;
    color: #fff;
    transition: color 0.3s;
}

.video-tabs li::after {
    transition: all 0.3s;
    margin: 10px auto;
    display: block;
    content: '';
    background: #fff;
    width: 0;
    height: 3px;
}

.video-tabs li.active::after {
    width: 24px;
}

.video-item {
    display: none;
}

.video-item.active {
    display: block;
}

.banner-video video {
    background: rgba(20, 0, 0, 0.5);
    max-width: 100%;
    border-radius: 20px;
    aspect-ratio: 650/380;
}

/* ===== Advantages ===== */
.advantage-list {
    margin-top: 60px;
    display: flex;
    justify-content: space-evenly;
    text-align: center;
    color: var(--dark-green);
    flex-wrap: wrap;
    gap: 30px;
}

.advantage-list li {
    flex: 1;
    min-width: 250px;
}

.advantage-list .img-box {
    max-width: 100%;
    max-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.advantage-list .img-box img {
    max-width: 100%;
    max-height: 100%;
}

.advantage-list h5 {
    font-weight: normal;
    margin-top: 20px;
    font-size: 24px;
}

.advantage-list p {
    margin-top: 10px;
    opacity: 0.5;
    line-height: 1.6;
}

/* ===== Products ===== */
.product-list {
    margin-top: 50px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px;
}

.product-list li {
    width: 280px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
    background: #fff;
    cursor: pointer;
    transition: all 0.3s;
}

.product-list li:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}

.product-list .img {
    aspect-ratio: 1/1;
    overflow: hidden;
}

.product-list .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s;
}

.product-list li:hover .img img {
    transform: scale(1.1);
}

.product-list .block {
    padding: 18px 20px 22px;
    text-align: center;
}

.product-list .block h5 {
    font-size: 20px;
    color: var(--dark-green);
    margin-bottom: 8px;
}

.product-list .block p {
    font-size: 13px;
    color: #888;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ===== Product Detail Modal ===== */
.product-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.product-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
}

.product-modal-box {
    position: relative;
    background: #fff;
    border-radius: 16px;
    width: 860px;
    max-width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    z-index: 1;
    animation: fadeIn 0.3s;
}

.product-modal-close {
    position: absolute;
    top: 12px;
    right: 16px;
    font-size: 30px;
    line-height: 1;
    background: none;
    border: none;
    color: #666;
    cursor: pointer;
    z-index: 2;
    transition: color 0.3s;
}

.product-modal-close:hover {
    color: var(--green);
}

.product-modal-content {
    padding: 30px;
}

.product-detail-head {
    text-align: center;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #eee;
}

.product-detail-head h3 {
    font-size: 26px;
    color: var(--dark-green);
}

.product-detail-desc {
    margin-top: 8px;
    color: #888;
    font-size: 15px;
}

.product-detail-video {
    margin-bottom: 16px;
    text-align: center;
}

.product-detail-video video {
    width: 60%;
    max-width: 520px;
    border-radius: 10px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.product-detail-cover {
    margin-bottom: 16px;
    border-radius: 10px;
    overflow: hidden;
}

.product-detail-cover img {
    width: 100%;
    display: block;
}

.product-detail-images {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 16px;
}

.product-detail-images .product-detail-img {
    aspect-ratio: 4/3;
    border-radius: 10px;
    overflow: hidden;
}

.product-detail-images .product-detail-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-detail-text {
    line-height: 1.9;
    color: #333;
    font-size: 15px;
}

.product-detail-buy {
    margin-top: 24px;
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.product-buy-btn {
    display: inline-block;
    padding: 12px 48px;
    background: var(--green);
    color: #fff;
    font-size: 16px;
    border-radius: 50px;
    text-decoration: none;
    transition: background 0.3s, transform 0.2s;
    box-shadow: 0 4px 12px rgba(0, 150, 80, 0.3);
}

.product-buy-btn:hover {
    background: var(--dark-green);
    transform: translateY(-2px);
    color: #fff;
}

/* ===== Business ===== */
.business {
    background-size: cover;
    background-attachment: fixed;
    background-position: center;
}

.business-block {
    margin-top: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 90px;
}

.business-left,
.business-right {
    flex-shrink: 0;
    display: grid;
    gap: 80px;
    color: var(--dark-green);
    font-weight: bold;
}

.business-left li,
.business-right li {
    display: flex;
    align-items: center;
    gap: 10px;
}

.business-left .img,
.business-right .img {
    width: 48px;
    flex-shrink: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.business-left .img img,
.business-right .img img {
    max-width: 100%;
    max-height: 100%;
}

.business-center {
    max-width: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.business-center img {
    max-width: 100%;
    max-height: 100%;
}

/* ===== APP Section ===== */
.app-block {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 170px;
    position: relative;
}

.app-phone {
    left: -40px;
    position: absolute;
    width: 340px;
    max-width: 100%;
    aspect-ratio: 340/718;
    border-radius: 60px;
    border: 12px solid #000;
    overflow: hidden;
    z-index: 2;
}

.app-phone img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.app-bg {
    overflow: hidden;
}

.app-bg img {
    max-width: 100%;
}

.app-features {
    flex-shrink: 0;
    color: var(--dark-green);
    display: grid;
    font-size: 24px;
    gap: 90px;
}

.app-features li:nth-child(2),
.app-features li:nth-child(3) {
    margin-left: 30px;
}

/* ===== Scenarios ===== */
.scenarios {
    margin-top: 80px;
}

.scenario-list {
    margin-top: 50px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 50px;
}

.scenario-list li {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    cursor: pointer;
}

.scenario-list .img {
    overflow: hidden;
    aspect-ratio: 1/1;
}

.scenario-list .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s;
}

.scenario-list li:hover .img img {
    transform: scale(1.2);
}

.scenario-list .block {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    color: #fff;
    background: rgba(0, 0, 0, 0.4);
    padding: 20px;
    text-align: center;
    font-size: 24px;
    letter-spacing: 4px;
    transition: all 0.5s;
}

.scenario-list li:hover .block {
    bottom: -100%;
}

/* ===== About ===== */
.about {
    color: #fff;
    padding-bottom: 0;
    background-size: cover;
    background-attachment: fixed;
    background-position: center;
}

.about .section-title,
.about .section-subtitle {
    color: #fff;
}

.about-card {
    margin-top: 50px;
    min-height: 656px;
    background: rgba(0, 0, 0, 0.4);
    display: grid;
    grid-template-columns: 20vw 1fr;
}

.about-left-menu {
    background: rgba(0, 0, 0, 0.2);
}

.about-left-menu .menu-item {
    padding: 30px 20px;
    text-align: center;
    background: #000;
    cursor: pointer;
    color: #fff;
    transition: background 0.3s;
}

.about-left-menu .menu-item.active {
    background: var(--green);
}

.about-right-content {
    padding: 40px 90px;
    font-size: 20px;
    line-height: 1.8;
    overflow-y: auto;
}

.about-right-content .content-item {
    display: none;
}

.about-right-content .content-item.active {
    display: block;
    animation: fadeIn 0.3s;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.about-right-content ul {
    margin-top: 30px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.about-right-content .img {
    aspect-ratio: 1/1;
    overflow: hidden;
}

.about-right-content .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ===== Gallery ===== */
.gallery-swiper {
    margin-top: 50px;
}

/* 保底：Swiper 脚本没跑起来（初始化失败/被拦）时，图片横向排列、可手动滑动，
   不会竖着摞；初始化成功后会给容器加 swiper-ready，此规则随即失效 */
.gallery-swiper:not(.swiper-ready) .swiper-wrapper {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

.gallery-swiper:not(.swiper-ready) .swiper-slide {
    flex-shrink: 0;
    scroll-snap-align: center;
}

.gallery-swiper .swiper-slide {
    width: 50%;
    aspect-ratio: 577/436;
    scale: 0.8;
    transition: all 0.3s;
    overflow: hidden;
    border-radius: 30px;
    box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.2);
}

.gallery-swiper .swiper-slide-active {
    scale: 1;
}

.gallery-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ===== Contact ===== */
.contact {
    color: #fff;
    background: var(--dark-green);
}

.contact .container {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 120px;
}

.contact-title {
    font-size: 24px;
    text-align: left;
    margin-bottom: 25px;
    font-weight: normal;
    color: #fff;
}

.contact-title::after {
    display: block;
    content: '';
    width: 34px;
    margin: 5px 0 8px;
    height: 6px;
    background: var(--green);
    border-radius: 11px;
}

.contact-content {
    display: grid;
    gap: 30px;
}

.qrcode-list {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.qrcode-list li {
    position: relative;
}

.qrcode-img {
    border: 1px solid #fff;
    border-radius: 10px;
    padding: 10px;
    width: 120px;
    aspect-ratio: 1/1;
    overflow: hidden;
}

.qrcode-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.qrcode-title {
    font-size: 14px;
    background: var(--green);
    display: inline-block;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 21px;
    padding: 0 10px;
    bottom: -6px;
    white-space: nowrap;
}

/* ===== Footer ===== */
.footer {
    background: var(--dark-green);
    color: rgba(255, 255, 255, 0.6);
    padding: 20px 0;
    text-align: center;
    font-size: 14px;
}

.footer p {
    margin: 5px 0;
}

.footer a {
    color: rgba(255, 255, 255, 0.6);
}

.footer a:hover {
    color: #fff;
}

/* ===== Back to Top ===== */
.back-top {
    position: fixed;
    right: 30px;
    bottom: 30px;
    width: 50px;
    height: 50px;
    background: var(--green);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s;
    z-index: 998;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.back-top.show {
    opacity: 1;
    visibility: visible;
}

.back-top:hover {
    transform: translateY(-5px);
}

/* ===== WOW Animation Fallback ===== */
.wow {
    visibility: hidden;
}

/* ===== Responsive ===== */
@media screen and (max-width: 990px) {
    section {
        padding: 50px 0;
    }

    .nav {
        display: none;
    }

    .nav-mobile,
    .menu-button {
        display: block;
    }

    .banner-block {
        grid-template-columns: 1fr;
    }

    .banner-title h1 {
        font-size: 36px;
    }

    .banner-title h5 {
        font-size: 20px;
    }

    .btn-buy {
        margin-top: 30px;
        height: 40px;
        line-height: 40px;
        font-size: 16px;
    }

    .advantage-list {
        grid-template-columns: 1fr;
    }

    .business-block {
        flex-direction: column;
        gap: 30px;
    }

    .business-left,
    .business-right {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .business-center img {
        max-width: 50vw;
    }

    .app-block {
        margin-top: 50px;
        flex-direction: column;
        gap: 30px;
    }

    .app-phone {
        position: relative;
        width: 130px;
        border-radius: 20px;
        left: 0;
        border-width: 5px;
    }

    .app-features {
        gap: 30px;
        font-size: 16px;
    }

    .scenario-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .product-list {
        gap: 20px;
    }

    .product-list li {
        width: 45%;
        min-width: 140px;
    }

    .product-list .block h5 {
        font-size: 16px;
    }

    .product-detail-images {
        grid-template-columns: 1fr;
    }

    .about-card {
        display: flex;
        flex-direction: column;
    }

    .about-left-menu {
        display: flex;
    }

    .about-left-menu .menu-item {
        flex: 1;
    }

    .about-right-content {
        padding: 20px;
    }

    .about-right-content ul {
        grid-template-columns: 1fr;
    }

    .contact .container {
        flex-wrap: wrap;
        gap: 30px;
    }

    .qrcode-img {
        width: 90px;
    }

    .gallery-swiper .swiper-slide {
        width: 80%;
    }

    .section-title {
        font-size: 24px;
    }

    .section-subtitle {
        font-size: 14px;
    }
}
