:root {
    --bs-blue: #2937f0;
    --bs-indigo: #6610f2;
    --bs-purple: #9f1ae2;
    --bs-pink: #d63384;
    --bs-red: #dc3545;
    --bs-orange: #fd7e14;
    --bs-yellow: #ffc107;
    --bs-green: #198754;
    --bs-teal: #20c997;
    --bs-cyan: #0dcaf0;
    --bs-white: #fff;
    --bs-gray: #6c757d;
    --bs-gray-dark: #343a40;
    --bs-gray-100: #f8f9fa;
    --bs-gray-200: #e9ecef;
    --bs-gray-300: #dee2e6;
    --bs-gray-400: #ced4da;
    --bs-gray-500: #adb5bd;
    --bs-gray-600: #6c757d;
    --bs-gray-700: #495057;
    --bs-gray-800: #343a40;
    --bs-gray-900: #212529;
    --bs-primary: #2937f0;
    --bs-secondary: #9f1ae2;
    --bs-success: #198754;
    --bs-info: #0dcaf0;
    --bs-warning: #ffc107;
    --bs-danger: #dc3545;
    --bs-light: #f8f9fa;
    --bs-dark: #212529;
    --bs-primary-rgb: 41, 55, 240;
    --bs-secondary-rgb: 159, 26, 226;
    --bs-success-rgb: 25, 135, 84;
    --bs-info-rgb: 13, 202, 240;
    --bs-warning-rgb: 255, 193, 7;
    --bs-danger-rgb: 220, 53, 69;
    --bs-light-rgb: 248, 249, 250;
    --bs-dark-rgb: 33, 37, 41;
    --bs-white-rgb: 255, 255, 255;
    --bs-black-rgb: 0, 0, 0;
    --bs-body-color-rgb: 33, 37, 41;
    --bs-body-bg-rgb: 255, 255, 255;
    --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
    --bs-body-font-family: Mulish, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
    --bs-body-font-size: 1rem;
    --bs-body-font-weight: 600;
    --bs-body-line-height: 1.5;
    --bs-body-color: #212529;
    --bs-body-bg: #fff;
    --green-50: #F4FAF0;
    --green-200: #B4D98E;
    --green-500: #6F9E4B;
    --green-600: #5E883F;
    --green-700: #4F7A35;
}


*,
*::before,
*::after {
    box-sizing: border-box;
}

@media (prefers-reduced-motion: no-preference) {
    :root {
        scroll-behavior: smooth;
    }
}

body {
    margin: 0;
    font-family: var(--bs-body-font-family);
    font-size: var(--bs-body-font-size);
    font-weight: var(--bs-body-font-weight);
    line-height: var(--bs-body-line-height);
    color: var(--bs-body-color);
    text-align: var(--bs-body-text-align);
    background-color: var(--bs-body-bg);
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/* Mashead header */
.masthead {
    background-color: #f8f9fa;
    padding-top: 9.5rem;
    padding-bottom: 5rem;
}

.masthead .masthead-device-mockup {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.text-green {
    color: var(--green-500) !important;
}

.btn-green {
    color: #fff !important;
    background-color: var(--green-500) !important;
    border-color: var(--green-500) !important;
}

.btn-green:hover,
.btn-green:focus,
.btn-green:active {
    color: #fff !important;
    background-color: var(--green-600) !important;
    border-color: var(--green-600) !important;
    box-shadow: 0 0 0 0.25rem rgba(111, 158, 75, 0.25) !important;
}

.btn-outline-green {
    color: var(--green-500) !important;
    border-color: var(--green-500) !important;
    background-color: transparent !important;
}

.btn-outline-green:hover,
.btn-outline-green:focus,
.btn-outline-green:active {
    color: #fff !important;
    background-color: var(--green-500) !important;
    border-color: var(--green-500) !important;
    box-shadow: 0 0 0 0.25rem rgba(111, 158, 75, 0.25) !important;
}

.masthead .masthead-device-mockup .circle {
    position: absolute;
    fill: url(#circleGradient);
    width: 70%;
}

.masthead .masthead-device-mockup .circle .gradient-start-color {
    stop-color: #F4FAF0;
}

.masthead .masthead-device-mockup .circle .gradient-end-color {
    stop-color: #B4D98E;
}

.masthead .masthead-device-mockup .shape-1 {
    position: absolute;
    height: 1rem;
    width: 1rem;
    transform: rotate(-10deg);
    fill: #2937f0;
    bottom: 95%;
    left: 10%;
}

.masthead .masthead-device-mockup .shape-2 {
    position: absolute;
    height: 0.75rem;
    width: 0.75rem;
    fill: #2937f0;
    top: 95%;
    right: 10%;
}



@media (min-width: 576px) {
    .masthead .masthead-device-mockup .circle {
        width: 70%;
        display: block;
    }

}

@media (min-width: 768px) {
    .masthead .masthead-device-mockup .circle {
        width: 60%;
    }

}

@media (min-width: 992px) {
    .masthead .masthead-device-mockup .circle {
        width: 90%;
    }

}

@media (min-width: 1200px) {
    .masthead .masthead-device-mockup .circle {
        width: 75%;
    }

}

@media (min-width: 1400px) {
    .masthead .masthead-device-mockup .circle {
        width: 70%;
    }

}


.bg-gradient-primary-to-secondary {
    background: linear-gradient(45deg, #F4FAF0, #D8EDCA, #B4D98E) !important;
}

.text-gradient {
    background: -webkit-linear-gradient(#6F9E4B, #B4D98E);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.testimonial-title {
    color: #4F7A35;
}

.testimonial-text {
    color: #5F6F52;
}

.testimonial-icon {
    color: #6F9E4B;
}

/* features */
.icon-feature {
    font-size: 3rem;
    /* transition: all .5s linear !important; */
}

.icon-box {
    width: 4.5rem;
    height: 4.5rem;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
    transition: all .3s ease-in;
    background-color: #fff !important;
    border: 1px solid #dfead3;
}

.icon-box:hover {
    background: linear-gradient(135deg, #F4FAF0 0%, #DDEECC 50%, #B4D98E 100%) !important;
    box-shadow: 0 8px 18px rgba(111, 158, 75, 0.18);
    border-color: #B4D98E;
    transform: translateY(-2px);
}

.icon-box:hover .icon-feature {
    color: var(--green-700) !important;
    -webkit-text-fill-color: initial;
    background: none !important;
}

@media (min-width: 992px) {
    .icon-box {
        width: 5.5rem;
        height: 5.5rem;
    }
}

.features-device-mockup {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.features-device-mockup .circle {
    position: absolute;
    left: 0;
    fill: url(#circleGradient);
    width: 70%;
    display: none;
}

.features-device-mockup .circle .gradient-start-color {
    stop-color: #2937f0;
}

.features-device-mockup .circle .gradient-end-color {
    stop-color: #9f1ae2;
}

.features-device-mockup .shape-1 {
    position: absolute;
    height: 1rem;
    width: 1rem;
    transform: rotate(10deg);
    fill: #2937f0;
    top: 15%;
    right: 10%;
}

.features-device-mockup .shape-2 {
    position: absolute;
    height: 0.75rem;
    width: 0.75rem;
    fill: #2937f0;
    bottom: 15%;
    left: -10%;
}

.features-device-mockup .device-wrapper {
    max-width: 10rem;
}

@media (min-width: 576px) {
    .features-device-mockup .circle {
        width: 70%;
        display: block;
        left: auto;
    }

    .features-device-mockup .device-wrapper {
        max-width: 12.5rem;
    }
}

@media (min-width: 768px) {
    .features-device-mockup .circle {
        width: 60%;
        left: auto;
    }

    .features-device-mockup .device-wrapper {
        max-width: 15rem;
    }
}

@media (min-width: 992px) {
    .features-device-mockup .circle {
        width: 90%;
        left: -25%;
    }

    .features-device-mockup .shape-1 {
        top: 5%;
        right: -15%;
    }

    .features-device-mockup .shape-2 {
        bottom: 10%;
        left: -10%;
    }

    .features-device-mockup .device-wrapper {
        max-width: 15rem;
        margin-left: auto;
    }
}

@media (min-width: 1200px) {
    .features-device-mockup .circle {
        width: 75%;
        left: 0;
    }

    .features-device-mockup .shape-2 {
        bottom: 15%;
        left: -10%;
    }

    .features-device-mockup .device-wrapper {
        max-width: 15rem;
    }
}

@media (min-width: 1400px) {
    .features-device-mockup .circle {
        width: 80%;
        left: 0;
    }

    .features-device-mockup .device-wrapper {
        max-width: 17rem;
    }
}

/* Plans */

.plan-switch-wrap {
    display: flex;
    justify-content: center;
}

.plan-switch {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, #eef7e6 0%, #d9ebc4 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.plan-switch-btn {
    min-width: 220px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #6e7d60;
    font-weight: 700;
    font-size: 1.05rem;
    padding: 12px 28px;
    transition: all .25s ease;
}

.plan-switch-btn.active {
    background: #fff;
    color: #4f7a35;
    box-shadow: 0 8px 18px rgba(111, 158, 75, 0.18);
}

.plan-panel {
    display: none;
}

.plan-panel.active {
    display: block;
}

.pricing-style-fourteen {
    border: 1px solid #dfead3;
    border-radius: 22px;
    margin-top: 10px;
    background: #fff;
    transition: all .3s ease;
    padding: 42px 28px;
    text-align: center;
    z-index: 0;
    height: 100%;
    container-type: inline-size;
    /* 新增 */
    min-width: 0;
}

.pricing-style-fourteen.middle,
.pricing-style-fourteen:hover {
    border-color: #b4d98e;
    box-shadow: 0 14px 32px rgba(111, 158, 75, 0.14);
    transform: translateY(-4px);
}

.pricing-style-fourteen.middle {
    background: linear-gradient(180deg, #ffffff 0%, #f9fcf6 100%);
}

.pricing-style-custom {
    background: linear-gradient(180deg, #ffffff 0%, #f4faf0 100%);
}

.pricing-style-fourteen .price h2 {
    color: #4f7a35;
}

.pricing-style-fourteen .plan-price {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
}

.pricing-style-fourteen .original-price,
.pricing-style-fourteen .sale-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 4px;
    white-space: nowrap;
    max-width: 100%;
}

.pricing-style-fourteen .original-price {
    color: #9aa0a6;
    font-size: 1.05rem;
}

.pricing-style-fourteen .original-price-value {
    text-decoration: line-through;
    text-decoration-thickness: 2px;
}

.pricing-style-fourteen .sale-price-value {
    color: #4f7a35;
    font-size: clamp(2rem, 14cqi, 3rem);
    font-weight: 700;
    line-height: 1;
}

.pricing-style-fourteen .price-label,
.pricing-style-fourteen .price-unit,
.pricing-style-fourteen .price-period {
    font-size: 1rem;
    font-weight: 400;
}

.pricing-style-fourteen .price-label {
    margin-right: 4px;
}

.pricing-style-fourteen .price-unit {
    margin-left: 1px;
}

.pricing-style-fourteen .price-period {
    margin-left: 4px;
}

@container (max-width: 260px) {
    .pricing-style-fourteen {
        padding-left: 18px;
        padding-right: 18px;
    }

    .pricing-style-fourteen .original-price,
    .pricing-style-fourteen .sale-price {
        gap: 3px;
    }

    .pricing-style-fourteen .sale-price-value {
        font-size: 1.8rem;
    }

    .pricing-style-fourteen .price-label,
    .pricing-style-fourteen .price-unit,
    .pricing-style-fourteen .price-period {
        font-size: 0.85rem;
    }

    .pricing-style-fourteen .price-label,
    .pricing-style-fourteen .price-period {
        margin-left: 0;
        margin-right: 0;
    }
}

.pricing-style-fourteen .table-list li {
    position: relative;
    margin-bottom: 12px;
    color: #64715a;
    text-align: left;
    font-weight: 500;
    line-height: 1.65;
}

.pricing-style-fourteen .table-list li:before {
    box-sizing: border-box;
    font-family: "Font Awesome 5 Free";
    content: '\f058';
    margin: 0 8px 0 -15px;
    color: #6f9e4b;
}

@media (max-width: 991.98px) {
    .plan-switch {
        width: 100%;
        flex-direction: column;
        border-radius: 24px;
    }

    .plan-switch-btn {
        width: 100%;
        min-width: 0;
    }
}

.table-content ul.table-list {
    margin: 0;
    list-style-type: none;
}

.pricing-style-fourteen .table-list li {
    position: relative;
    margin-bottom: 12px;
    padding-left: 22px;
    color: #64715a;
    text-align: left;
    font-weight: 500;
    line-height: 1.65;
    list-style: none;
}

.pricing-style-fourteen .table-list li::before {
    position: absolute;
    left: 0;
    top: 2px;
    box-sizing: border-box;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: '\f058';
    color: #6f9e4b;
    margin: 0;
}

.serve-process-section {
    background:
        radial-gradient(circle at top left, rgba(180, 217, 142, 0.06), transparent 24%),
        linear-gradient(180deg, #ffffff 0%, #fcfefb 100%);
    border-bottom: 1px solid #e4eed8;
}

.serve-eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    background: #edf6e5;
    color: #5e883f;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.serve-steps-wrap {
    position: relative;
}

.process-step-card {
    position: relative;
    padding: 30px 22px 26px;
    border: 1px solid #dceacb;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 12px 30px rgba(111, 158, 75, 0.08);
    text-align: center;
    transition: all .25s ease;
}

.process-step-card:hover {
    transform: translateY(-4px);
    border-color: #b4d98e;
    box-shadow: 0 16px 32px rgba(111, 158, 75, 0.14);
}

.process-step-icon {
    width: 78px;
    height: 78px;
    margin: 0 auto 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 24px;
    background: linear-gradient(135deg, #f4faf0 0%, #dfeecf 100%);
    color: #5e883f;
    font-size: 2rem;
}

.process-step-no {
    margin-bottom: 10px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #7b8b70;
}

.process-step-title {
    margin-bottom: 10px;
    color: #4f7a35;
    font-size: 1.4rem;
    font-weight: 800;
}

.process-step-text {
    color: #64715a;
    line-height: 1.7;
}

.serve-form-card {
    padding: 34px;
    border: 1px solid #dceacb;
    border-radius: 30px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(245, 250, 239, 0.96) 100%);
    box-shadow: 0 18px 40px rgba(111, 158, 75, 0.1);
}

.serve-form-side {
    height: 100%;
    padding: 10px 8px 10px 0;
}

.serve-form-badge {
    display: inline-block;
    margin-bottom: 14px;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid #dceacb;
    color: #6f9e4b;
    font-size: 0.88rem;
    font-weight: 700;
}

.serve-form-title {
    margin-bottom: 14px;
    color: #4f7a35;
    font-size: 2rem;
    font-weight: 800;
}

.serve-form-desc {
    margin-bottom: 20px;
    color: #64715a;
    line-height: 1.8;
}

.serve-form-points {
    margin: 0;
    padding-left: 1.2rem;
    color: #64715a;
    line-height: 1.9;
}

.serve-form-points li+li {
    margin-top: 6px;
}

.serve-label {
    margin-bottom: 10px;
    color: #4f7a35;
    font-weight: 700;
}

.serve-control {
    min-height: 56px;
    border: 1px solid #d7e7c5;
    border-radius: 16px;
    background-color: #ffffff;
    color: #4f5d44;
    box-shadow: none !important;
}

.serve-control:focus {
    border-color: #94be6b;
    box-shadow: 0 0 0 0.2rem rgba(111, 158, 75, 0.16) !important;
}

.serve-option-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 22px;
    padding: 16px 18px;
    border: 1px solid #d7e7c5;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.72);
}

.serve-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #64715a;
    font-weight: 500;
}

.serve-check input {
    accent-color: #6f9e4b;
}

.serve-form-note {
    padding: 16px 18px;
    border-radius: 16px;
    background: #edf6e5;
    color: #5d6d50;
    line-height: 1.8;
}

.serve-submit-btn {
    min-width: 220px;
}

@media (max-width: 991.98px) {
    .serve-form-card {
        padding: 24px;
    }

    .serve-form-title {
        font-size: 1.7rem;
    }
}

@media (max-width: 767.98px) {
    .process-step-card {
        padding: 24px 18px 22px;
    }

    .process-step-title {
        font-size: 1.15rem;
    }

    .serve-check-grid {
        grid-template-columns: 1fr;
    }

    .serve-submit-btn {
        width: 100%;
    }
}

.contact-section {
    position: relative;
    z-index: 2;
    padding: 80px 0;
    /* margin-top: 10rem; */
    background: linear-gradient(135deg, #f7fcf4 0%, #e7f2db 52%, #cfe3b3 100%);
    overflow: hidden;
}

.contact-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(../../../images/onepage/bg01.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    opacity: 0.08;
    z-index: -1;
}

.contact-title {
    color: #4f7a35;
}

.contact-text {
    color: #5f6f52;
}

.contact-icon-box {
    width: 5rem;
    height: 5rem;
    margin: 0 auto 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff !important;
    border: 1px solid #d7e7c5;
    box-shadow: 0 10px 24px rgba(111, 158, 75, 0.14);
}

.contact-icon {
    color: #6f9e4b !important;
    font-size: 2.2rem;
    background: none !important;
    -webkit-text-fill-color: initial !important;
}

.contact-item-title {
    color: #4f7a35;
    font-weight: 700;
}

.contact-item-text {
    color: #5f6f52;
}

#contact a.text-decoration-none {
    color: inherit;
}

#contact a.text-decoration-none:hover .contact-icon-box {
    background: linear-gradient(135deg, #f4faf0 0%, #dcecc8 100%) !important;
    border-color: #b4d98e;
    transform: translateY(-2px);
    transition: all .25s ease;
}

footer.bg-black {
    background-color: #3F403B !important;
}

footer.bg-black .text-white-50,
footer.bg-black .small {
    color: #D6DCCF !important;
}

@media (max-width: 576px) {
    .navbar-brand img {
        width: 180px;
        height: auto;
    }
}