a, a:visited, a:link, a:active {
    text-decoration: none;
    outline: 0;
}

a:hover {
    outline: 0;
    text-decoration: none;
}

img, embed, object, video {
    max-width: 100%;
}

html {
    font-size: 16px;
    line-height: 24px;
}

body {
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 1em;
    line-height: 1.5em;
    background-color: #fff;
    margin: 0;
    overflow-x: hidden;
}

@media (max-width: 640px) {
    h1, h2, h3 {
        font-family: 'Montserrat' , Verdana, Helvetica Neue, Helvetica, Arial, sans-serif !important;
    }
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
}

/* layout */

.layout {
    width: 100%;
    margin: 0 auto;
    float: left;
    display: inline;
}

.layout__container {
    width: 100%;
    max-width: 1440px;
    margin: 0 0 0 auto;
}

.layout__wide {
    width: 90%;
    margin: 0 0 0 10%;
}

.layout__wide-correction {
    width: 95%;
    margin: 0 0 0 5%;
}

@media (min-width: 1440px) {
    .layout__wide {
        margin: 0 0 0 auto;
    }
    .layout__container {
        margin: 0 auto;
    }
}
  /* 移动端添加内边距 */
  @media (max-width: 768px) {
    .mobile-padding {
        padding: 0 15px;
        box-sizing: border-box;
    }
}

.layout__small {
    width: 50%;
    max-width: 1024px;
    margin: 0 auto;
}

.layout--center {
    text-align: center;
}

.layout--center-correction {
    padding-right: 10%;
}

.layout__visually-hidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

.layout__fixed {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 99;
}

.layout__height {
    height: 96px;
}

/* aside */

aside {
    padding: 0 48px 96px 48px;
    float: left;
    display: inline;
}

aside.copy h3 {
    margin-top: 4.8em;
}

.copy aside p {
    color: #666;
}

aside .pb {
    margin-bottom: 3em;
}

@media (max-width: 640px) {
    .home-aside {
        display: none;
    }
}

.sidebar {
    margin-left: calc(10%*10/9);
}

@media (max-width: 899px) {
    .sidebar {
        display: none;
    }
}

/* padding */

.padding__large {
    padding: 6em 0;
}

.padding__medium {
    padding: 3em 0;
}

.padding__small {
    padding: 1.5em 0;
}

/* colours */

.black {
    background-color: #000;
}

.dark-dark-grey {
    background-color: #1a1a1a;
}

.dark-grey {
    background-color: #333;
}

.light-green {
    background-color: #669932;
}

.light__blue {
    background-color: #BEBEFB;
}

.blue {
    background-color: #669933;
}

.white {
    background-color: #fff;
}

.grey {
    background-color: #f2f2f2;
}

/* text */

.copy--block {
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    float: left;
    display: inline;
    margin: 0 0 0.75em 0;
    padding: 0;
}

h1 {
    color: #669933;
    line-height: 1.25em;
    margin: 0 0 0.5625em 0;
}

.copy h1 {
    font-size: 3em;
    line-height: 1.2;
    margin: 0 0 0.75em 0;
    color: #669933;
    font-weight: 700;
}

.copy h2, h2 {
    font-size: 2em;
    line-height: 1.6;
    margin: 1em 0 0.5em 0;
    color: #4d4d4d;
    font-weight: 700;
}

.copy h3 {
    font-size: 1.5em;
    /*line-height: 1.6;*/
    margin: 0 0 0.75em 0;
    color: #4d4d4d;
    font-weight: 700;
}

.copy--block h3 {
    margin: 1em 0 0.5em 0;
}

.copy p {
    font-size: 1em;
    line-height: 1.75;
    margin: 0 0 1em 0;
    font-weight: 400;
    color: #333;
}

.copy p:last-child {
    margin: 0;
}

.copy p a, .copy p a:visited, .copy p a:link, .copy p a:active {
    color: #669933;
    text-decoration: none;
}

.copy p a:hover {
    color: #446622;
    font-weight: bold;
}

.copy p strong {
    color: #000;
}

/* unordered lists */

.copy ul, .drawers__text ul {
    margin: 0.75em 0;
    padding: 0;
    display: block;
}

.copy ul li, .drawers__text ul li {
    padding: 0 0 1em 24px;
    color: #333;
    list-style: none;
    background: url('../img/bullet-icon-green.svg') 0 7px / 10px no-repeat;
}

.copy ul li {
    font-size: 1em;
}

@media (max-width: 468px) {
    .copy ul li, .drawers__text ul li {
        font-size: 1em;
    }
}

.copy ul li strong {
    color: #000;
}

.copy ul li a, .copy ul li a:visited, .copy ul li a:link, .copy ul li a:active {
    color: #669933;
    text-decoration: none;
}

.copy ul li a:hover {
    color: #446622;
    font-weight: bold;
}

.copy ol {
    margin: 1.5em 0;
    padding: 0 0 0 1.5em;
    counter-reset: li;
}

.copy ol li {
    color: #333;
    padding: 0 0 1em 0;
    list-style: none;
    font-size: 1em;
    line-height: 1.75;
    position: relative;
}

.copy ol li:before {
    content: counter(li);
    counter-increment: li;
    position: absolute;
    font-weight: bold;
    left: -1.75em;
}

.copy ol li:last-child {
    padding: 0;
}

@media (max-width: 468px) {
    .copy ol li {
        font-size: 1em;
    }
}

.copy li a, .drawers__text a, .pagination a {
    color: #669922;
    text-decoration: none;
}

.copy li a:hover, .drawers__text a:hover {
    color: #446622;
    font-weight: bold;
}

.copy__img {
    width: 100%;
    margin: 2.25em 0 3em 0;
    text-align: center;
    display: block;
    /*padding: 0.75em 0 3em 0;*/
    float: left;
}

.right {
    text-align: right;
}

.special-list-ticks ul, .special-list-arrows ul, .special-list-crosses ul, .special-list-flags ul {
    padding: 0;
}

.special-list-ticks ul li, .special-list-arrows ul li, .special-list-crosses ul li, .special-list-flags ul li {
    padding: 0 0 1em 2.5714em;
    list-style: none;
    color: #333;
    font-size: 1em;
    background-size: 24px;
}

.special-list-ticks ul li, .special-list-crosses ul li, .special-list-flags ul li {
    padding: 0 0 1em 2.5714em;
}

.special-list-arrows ul li {
    padding: 0 0 1em 24px;
}

.special-list-ticks ul li {
    background: url(../img/tick-icon.svg) 0 3px / 18px no-repeat;
}

.special-list-arrows ul li {
    background: url(../img/arrow-icon-blue.svg) 0px 4px / 10px no-repeat;
}

.special-list-crosses ul li {
    background: url(../img/cross-icon-red.svg)  0 4px / 16px no-repeat;
}

.special-list-flags ul li {
    background: url(../img/flag-icon-yellow.svg)  0 4px / 14px no-repeat;
}

/* grid */

.flex {
    display: flex;
}

/*
@media (max-width: 568px) {
    .flex {
        display: block;
    }
}
*/

.flex--nav {
    display: flex;
}

.flex__space-between {
    justify-content: space-between;
}

.flex__space-around {
    justify-content: space-around;
}

.flex__wrap {
    flex-wrap: wrap;
}

.flex__align-items {
    align-items: center;
}

.col__25 {
    width: 25%;
}

.col__30 {
    width: 30%;
}

.col__35 {
    width: 35%;
}

.col__40 {
    width: 40%;
}

.col__45 {
    width: 45%;
}

.col__47_5 {
    width: 47.5%;
}

.col__50 {
    width: calc(50%*10/9);
}

.col__60 {
    width: 60%;
}

.col__40-right-column-correction {
    margin: 0 10% 0 0;
}

@media (max-width: 640px) {
    .col__40-right-column-correction {
        width: 90%;
        text-align: left;
    }
    .col__40-flex .col__40-right-column-correction:first-child {
        margin: 0 10% 96px 0;
    }
    .col__40-flex {
        display: block;
    }
}

.col__50-right-column-correction {
    margin: 0 10% 0 0;
    width: 45%;
    text-align: right;
}

@media (max-width: 640px) {
    .col__50-right-column-correction {
        margin: 48px 0 0 0;
        width: 50%;
        text-align: left;
    }
    .col__50-flex {
        display: block;
    }
}

@media (max-width: 899px) {
    .content-column {
        width: 70%;
    }
}

@media (max-width: 767px) {
    .content-column {
        width: 90%;
    }
}

/* topbar */

.topbar .layout--center-correction {
    white-space: nowrap;
    width: unset;
}

@media (max-width: 480px) {
    .topbar .right {
        display: none;
    }
    .topbar .layout--center-correction {
        /*min-width: 50%;
        width: 50%;*/
        padding: 0;
    }
    /*.topbar .col__30 {
        padding-right: 10%;
    }*/
    .topbar a.button--phone, .topbar a.button--phone:link {
        color: #fff;
        line-height: 3em;
        background-color: #FFA500;
        padding: 0 10%;
        /*display: inline-block;*/
    }
}

/*@media (max-width: 375px) {
    .topbar a.button--phone, .topbar a.button--phone:link {
        font-size: 0.875em;
        letter-spacing: unset;
    }
}*/

/* primary navigation */

.nav {
    /*margin: 0.75em auto 0.45em auto;
    padding: 0;*/
    line-height: 0;
    /*width: calc(90% - 1em);*/
}

@media (min-width: 1440px) {
    .nav {
        width: 100%;
    }
}

@media (max-width: 640px) {
    .nav, .nav ul {
        width: 100%;
    }
}

.nav ul {
    margin: 0 auto;
    padding: 0;
    list-style: none;
    display: inline-block;
}

.nav ul li {
    display: inline-block;
    margin: 0;
    padding: 0;
    float: left;
}

/*.nav ul li:hover a {
    color: #666;
    text-decoration: none;
}*/

.nav ul li a {
    font-size: 1em;
    font-weight: bold;
    line-height: 48px;
    padding: 0 1.25em;
    margin: 0;
    display: block;
    color: #fff;
    text-decoration: none;
    outline: 0;
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    letter-spacing: 0.5px;
}

.nav ul li a:hover {
    text-decoration: none;
    outline: 0;
    background-color: #536F37;
}

.nav ul li.active {
    color: #BEBEFB;
}

.sfHover a {
    background-color: #666;
}

/* Child */

.nav ul li ul {
    background-color: #536F37;
    margin: 0;
    width: 13em;
    opacity: 0.95;
    /* box-shadow: 0 15px 30px 0 rgba(0,0,0,0.22), 0 5px 15px 0 rgba(0,0,0,0.16); */
}

.nav ul li:last-child ul {
    left: unset;
    right: 0;
}

.nav ul li ul li {
    margin: 0;
    /*padding: 0;*/
    text-align: left;
    display: block;
    width: 100%;
}

.nav ul li:hover ul li a {
    font-size: 1em;
    font-weight: 400;
    /*padding: 0.475em 1em 0.375em 1em;*/
    margin: 0;
    display: block;
    text-decoration: none;
    outline: 0;
    line-height: 1.4;
}

.nav ul li ul li a {
    line-height: 1.4;
    padding: 1em 1em;
}

.nav ul li:hover ul li a:hover {
    text-decoration: none;
    background-color: #39442D;
    font-weight: bold;
}

.sf-menu, .sf-menu * {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sf-menu li {
    position: relative;
}

.sf-menu ul {
    position: absolute;
    display: none;
    top: 100%;
    left: 0;
    z-index: 9999;
}

.sf-menu > li {
    display: inline-block;
}

.sf-menu li:hover > ul {
    display: block;
}

.sf-menu a {
    display: block;
    position: relative;
}

.sf-menu ul ul {
    top: 0;
    left: 100%;
}

.sf-with-ul-child a:hover {
    background-color: #4d4d4d;
    line-height: 1.75em;
}

/* Mobile Navigation */

.nav-desktop {
    margin-top: 48px;
    position: fixed;
    z-index: 99;
}

/*
.nav-mobile {
    display: none;
}
*/

.nav-desktop .nav ul li {
    display: inline-block;
}

.nav-mobile-top {
    margin-top: 48px;
}

.nav-mobile-bottom {
    padding: 4.9375em 0;
}

.nav-mobile-bottom ul li a {
    color: #333;
}

.nav-mobile-bottom ul li {
    background-color: #f2f2f2;
}

.nav-mobile-bottom .nav ul li:hover, .nav-mobile-bottom .nav ul li a:hover, .nav-mobile-bottom .nav ul li ul a:hover, .nav-mobile-bottom .nav ul li ul li a:hover, .nav-mobile-bottom .nav ul li ul li a:hover {
    background-color: #bfbfbf;
}

/*.nav-mobile-bottom ul li ul {
    background-color: #bfbfbf;
}*/

/*.nav-mobile-bottom ul li a:hover {
    background-color: #d9d9d9;
}*/

.nav-mobile-bottom .sfHover, .nav-mobile-bottom .sfHover:hover, .nav-mobile-bottom .sfHover a, .nav-mobile-bottom .nav ul li ul {
    background-color: #d9d9d9;
}

.nav-mobile-correction {
    margin: 0;
    width: 100%;
}
.nav ul li {
    display: block;
    float: unset;
}

@media (max-width: 640px) {
    /*
    .nav-desktop {
        display: none;
    }
    .nav-mobile {
        display: unset;
    }
    */
    .nav-mobile-bottom .nav ul li ul, .nav-mobile-top .nav ul li ul {
        width: 100%;
    }
    .nav-mobile-bottom .nav ul li ul a, .nav-mobile-top .nav ul li ul a {
        text-align: center;
    }
}

/* new mobile rules */

.nav__mobile--children {
    display: none;
}

.off {
    display: none;
}

.mobile_on {
    display: none;
}

@media (max-width: 640px) {
    .mobile_on {
        display: inline;
    }
}

.mobile_off {
    display: inline;
}

@media (max-width: 640px) {
    .mobile_off {
        display: none;
    }
}

.nav__mobile-arrow {
    float: right;
}
.nav__mobile--js{
    display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 10px;
        color: #fff;
}

.nav__mobile ul {
    padding: 0;
    margin: 0;
    background-color: #536F37;
    width: 100%;
    opacity: 0.95;
}

.nav__mobile ul li {
    list-style: none;
    margin: 0;
    padding: 0;
    /*border-top: 1px solid #4d4d4d;*/
    opacity: 0.95;
}

.nav__mobile ul li a {
    font-size: 1em;
    font-weight: 400;
    line-height: 48px;
    padding: 0 1.25em;
    margin: 0;
    display: block;
    color: #fff;
    text-decoration: none;
    outline: 0;
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    letter-spacing: 0.5px;
}

.nav__mobile ul li ul {
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: #536F37;
    opacity: 0.95;
}

.nav__mobile ul li ul li {
    list-style: none;
    margin: 0;
    padding: 0 1.5em;
    /*border-top: 1px solid #666;*/
    opacity: 0.95;
}

/* buttons */

.button {
    display: inline-block;
    text-align: center;
    padding: 0.75em 1.5em;
    /*margin: 1.5em 0 0.75em 0;*/
}

.button--no-margin {
    display: inline-block;
    text-align: center;
    padding: 1em 1.5em;
    margin: 0;
}

.button--outline {
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 1em;
    font-weight: 700;
    color: #fff;
    background-color: #669933;
    border: 0;
    outline: 0;
    transition: 0.2s ease;
    cursor: pointer;
}

.button--outline:hover {
    color: #fff;
    background-color: #446622;
}

.button-ghost {
    position: relative;
    overflow: hidden;
    color: #446622;
    border: 3px solid #669933; /* 初始边框颜色 */
    padding: 0.5625em 1.3125em;
    background: transparent;
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    border-radius: 4px;
    /* 延长过渡时间，使变化更自然 */
    transition: border-color 1.2s, color 1s;
    transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}

/* 悬停时边框变为浅橙色 */
.button-ghost:hover {
    border-color: #FFA500; /* 浅橙色 */
}

.button-ghost::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    z-index: -1;
    background: #FFA500; /* 初始填充为浅橙色 */
    transform: skewX(-25deg);
    transform-origin: top left;
    /* 延长动画时间，使过渡更平缓 */
    transition: width 1.5s, background 1.2s;
    transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}

.button-ghost:hover::before {
    width: 140%;
    background: #ffffff; /* 最终背景为白色 */
}

/* 文字颜色变化动画，确保最终为黑色 */
@keyframes textColorChange {
    0% { color: white; }
    40% { color: #666; }
    100% { color: #000; } /* 最终字体为黑色 */
}

.button-ghost:hover span {
    animation: textColorChange 1.5s forwards;
}

.button-ghost span {
    position: relative;
    z-index: 2;
}

.entry-end-contact {
    margin: 2.25em 0;
    display: flex;
    align-items: center;
}

.entry-end-contact p {
    display: inline;
    font-weight: 700;
    margin: 0 18px;
    color: #333;
}

@media (max-width: 640px) {
    .entry-end-contact a, .entry-end-contact p {
        display: flex;
        justify-content: center;
    }
    .entry-end-contact p {
        margin: 1em 1.125em;
        text-align: center;
    }
}

.button--pdf {
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 1em;
    font-weight: 700;
    color: #fff;
    background-color: #669933;
    border: 0;
    outline: 0;
    transition: 0.2s ease;
    cursor: pointer;
}

.aside-section .button--pdf {
    color: #fff;
}

.button--pdf:hover {
    color: #fff;
    background-color: #446622;
}

.button--get-started {
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 1em;
    font-weight: 700;
    color: #fff;
    background-color: #669933;
    outline: 0;
    transition: 0.2s ease;
    cursor: pointer;
    width: 100%;
    margin: 0;
    padding: 1.25em 1.5em;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    letter-spacing: 0.5px;
}

.button--get-started:hover {
    background-color: #446622;
}

.border-radius {
    border-radius: 8px;
}

.border-bottom-radius {
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
}

.border-top-radius {
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

/* phone */

a.button--phone, a.button--phone:visited, a.button--phone:link, a.button--phone:active {
    /*width: 30%;
    padding-right: 10%;*/
    text-decoration: none;
    font-size: 1em;
    line-height: 1.6;
    /*margin: 0;*/
    font-weight: 700;
    color: #333;
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    letter-spacing: 0.5px;
}

@media (min-width: 481px) {
    a.button--phone {
        margin-right: calc(10%);
    }
}

/*a.button--phone:hover {
    color: #446622;
    text-decoration: none;
}*/

/* contact */

.button--contact {
    display: inline-block;
    text-align: center;
    padding: 0.75em 25%;
    margin: 0;
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 1.275em;
    font-weight: 700;
    color: #fff;
    background-color:  #FFA500;
    border: 0;
    outline: 0;
    transition: 0.2s ease;
    cursor: pointer;
    letter-spacing: 0.5px;
}

.button--contact:hover {
    color: #fff;
    background-color: #536F37;
}

/* breadcrumb_navigation */

.nav-breadcrumb {
    margin: 24px 0 48px 0;
    padding: 0;
    color: #669933;
}

.nav-breadcrumb:hover {
    font-weight: bold;
}

.nav-breadcrumb-correction {
    margin: 0;
}

.nav-breadcrumb--colour {
    background-color: #eee;
}

.nav-breadcrumb__list-item {
    display: inline-block;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-breadcrumb__list-link {
    font-size: 1em;
    /*padding: 0.75em 0;*/
    margin: 0;
    font-weight: 400;
    color: #669933;
    display: block;
    text-decoration: none;
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    outline: 0;
}

.nav-breadcrumb__list-link:hover {
    color: #446622;
}

.nav-breadcrumb__list-link--active {
    font-size: 1em;
    /*padding: 0.75em 0;*/
    margin: 0;
    font-weight: 700;
    color: #333;
    display: block;
    text-decoration: none;
    outline: 0;
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
}

/* header */

.header-entry {
    padding: 96px 0;
}

.header-entry__background {
    background: no-repeat;
    background-size: cover;
    background-position: center;
}

.header-entry--gradient {
    background-image: linear-gradient(90deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.65) 25%, rgba(0,0,0,0) 75%, rgba(0,0,0,0) 100%);
}

@media (max-width: 640px) {
    .header-entry--gradient {
        background-image: linear-gradient(90deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.65) 40%, rgba(0,0,0,0.4) 75%, rgba(0,0,0,0) 100%)
    }
    .header-entry .col__50 {
        width: 75%;
    }
    .header-entry p, .header-entry h2 {
        text-shadow: 0 0 48px rgba(0,0,0,0.5);
    }
}

.header-entry__background-not-fixed {
    background-attachment: unset;
    background-size: cover;
    background-position: center;
}

.header-entry__heading {
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    /* font-size: 1.75em; */
    font-weight: 700;
    padding: 0;
    margin: 0 0 0.375em 0;
    color: #fff;
    line-height: 1.5em;
}

.header-entry p {
    /*font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;*/
    font-size: 1em;
    font-weight: 400;
    color: #eee;
    line-height: 1.75;
    margin: 0;
    padding: 0;
    letter-spacing: 0.5px;
}

/* footer */

.footer h1 {
    font-size: 3em;
    line-height: 1.2;
    margin: 0 0 0.75em 0;
    color: #fff;
    font-weight: 700;
}

.footer h2 {
    font-size: 2.25em;
    line-height: 1.3;
    margin: 0 0 1.5em 0;
    color: #fff;
    font-weight: 700;
}

.footer h3 {
    font-size: 1.5em;
    line-height: 1.4;
    margin: 0 0 1.5em 0;
    color: #fff;
    font-weight: 700;
}

.footer h4 {
    font-size: 1.125em;
    line-height: 1.6;
    margin: 0;
    color: #808080;
    font-weight: 700;
}

.footer p {
    font-size: 1em;
    line-height: 1.6;
    margin: 0 0 1.5em 0;
    font-weight: 400;
    color: #fff;
}

.footer p:last-child {
    margin: 1.5em 0 0 0;
}

.footer p a, .footer p a:visited, .footer p a:link, .footer p a:active {
    color: #fff;
    text-decoration: none;
}

.footer p a:hover {
    color: #fff;
    font-weight: bold;
}

.footer p strong {
    color: #fff;
}

/* unordered lists */

.footer ul {
    margin: 0.75em 0 1.5em 0;
    padding: 0;
    display: block;
}

.footer ul li {
    padding: 0 0 0.75em 0;
    list-style: none;
    color: #fff;
    font-size: 1em;
    line-height: 1.6;
}

@media (max-width: 468px) {
    .footer ul li {
        font-size: 1em;
    }
}

.footer ul li strong {
    color: #fff;
}

.footer ul li a, .footer ul li a:visited, .footer ul li a:link, .footer ul li a:active {
    color: #fff;
    text-decoration: none;
}

.footer ul li a:hover {
    color: #fff;
    /* font-weight: bold; */
    font-weight: bold;
}

.footer ol {
    margin: 0.75em 0 1.5em 3em;
    padding: 0;
}

.footer textarea, .footer input {
    background-color: #333;
}

/* copyright */

.copyright {
    padding: 0 0 6em 0;
}

.copyright p {
    font-size: 1em;
    line-height: 1.6;
    margin: 0 0 1.5em 0;
    font-weight: 400;
    color: #999;
}

.copyright p:last-child {
    margin: 0;
}

.copyright p a, .copyright p a:visited, .copyright p a:link, .copyright p a:active {
    color: #999;
    text-decoration: none;
}

.copyright p a:hover {
    color: #fff;
    /* font-weight: bold; */
    font-weight: bold;
}

.copyright p strong {
    color: #fff;
}

/* fields */

::placeholder {
    color: #999;
    opacity: 1;
}

.field--question {
    border: 3px solid #808080;
    padding: 0.375em 0.75em;
    color: #fff;
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 1em;
    line-height: 1.6;
    background-color: #000;
    margin: 0 0 1.5em 0;
    display: inline-block;
    box-sizing: border-box;
}

.field--question-textarea {
    height: 10em;
}

.field__right {
    float: right;
    display: inline;
}

.field__100 {
    width: 100%;
}

/* images */

.caption {
    text-align: left;
    padding: 3em;
}

.caption p {
    color: #666;
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 1em;
    line-height: 1.6;
    margin: 0;
    padding: 0 0 0.85715em 0;
}

.caption p:last-child {
    padding: 0;
}

.caption p a, .caption p a:visited, .caption p a:link, .caption p a:active {
    color: #669933;
    text-decoration: none;
}

.caption p a:hover {
    color: #446622;
    font-weight: bold;
}
/* 页面文字淡入动画 */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* 应用淡入效果到主要内容区域 */
.content-column, .header-entry, .footer, .section {
    animation: fadeIn 0.8s ease-out forwards;
    opacity: 0;
}

/* 为不同部分设置错开的动画延迟，创造层次感 */
.header-entry { animation-delay: 0.1s; }
.content-column { animation-delay: 0.3s; }
.section { animation-delay: 0.5s; }
.footer { animation-delay: 0.7s; }
.copy__img img {
    display: block;
    margin: 0;
    width: 100%;
}
.copy__img:hover {
    transform: scale(1.1);
    transition-duration: .3s;
    transition-property: transform;
}
.copy__img--inset {
    border: 12px solid #fff;
    margin: 2em 0 2em 3em;
    /* box-shadow: 0px 0px 18px 0px rgba(0,0,0,0.1), 0 0 6px 0 rgba(0,0,0,0.1); */
    /* -webkit-box-shadow: 0px 0px 18px 0px rgba(0,0,0,0.1), 0 0 6px 0 rgba(0,0,0,0.1); */
    float: right;
    display: inline;
    width: calc(50% - 100px);
}

.copy__img--inset:hover {
    transform: scale(1.1);
    transition-duration: .3s;
    transition-property: transform;
}
.copy__img--inset img {
    display: block;
    margin: 0;
}

@media (max-width: 640px) {
    .copy__img--inset {
        margin: 2.25em 0 3em 0;
        display: unset;
        width: calc(100% - 24px);
    }
}

.logo {
    height: 24px;
    padding: 6px 0 0 0;
}

/* drawers */

.drawers__item {
    width: 100%;
    /*padding: 0em 0 1.5em 0;*/
    float: left;
    display: block;
    /* background-color: #f2f2f2; */
    /* border-top-left-radius: 8px;
    border-top-right-radius: 8px; */
    border-color: #EAEAEA;
    /* margin: 2em 0; */
    border-style: solid;
    border-width: 1px 0px 1px 0px;
}

.drawers__item + .drawers__item {
    margin-top: 0;
}

/* .drawers__item:hover {
    background-color: #e5e5e5;
} */

.drawers__item h1, .drawers__item h2, .drawers__item h3 {
    color: #333;
}

.drawers__item img {
    border: 12px white solid;
    box-shadow: 0 0 24px 0 rgba(0,0,0,0.2);
    margin: 1em 0;
}

.drawers__item figure {
    padding: 0 24px 0 0;
}

.drawers__border {
    /* border-bottom: 3px solid #e5e5e5; */
    padding: 1.5em 3em 0 3em;
    width: 100%;
    box-sizing: border-box;
    float: left;
    /* border-radius:8px; */
}

/*.drawers__border:hover {
    border: 3px solid #446622;
}*/

.drawers__block {
    width: 100%;
    float: left;
    display: inline;
}

.drawers__block--left {
    float: left;
    width: 90%;
    display: inline;
}

.drawers__block--right {
    float: right;
    width: 10%;
    display: inline;
    text-align: right;
}

.drawers__block--right .drawers__heading {
    font-size: 1.6875em;
    line-height: 1;
}

.drawers__block--hidden {
    display: none;
}

.drawers__heading {
    font-size: 1.125em;
    line-height: 1.5;
    margin: 0 0 1.16666em 0;
    padding: 0;
    font-weight: 700;
    color: #333;
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
}

/* 添加悬停效果，将颜色改为浅橙色 */
.drawers__heading:hover {
    color: #FFA500;
}

.drawers__text {
    margin-bottom: 1.5em;
}

.drawers__text p {
    font-size: 1em;
    line-height: 1.75;
    margin-top: 0;
    margin-bottom: 1.5em;
    font-weight: 400;
    color: #333;
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
}

.drawers__text p:last-child {
    margin-bottom: 0;
}

.drawers__text p a, .drawers__text p a:visited, .drawers__text p a:link, .drawers__text p a:active {
    color: #669933;
    text-decoration: none;
}

.drawers__text p a:hover {
    color: #446622;
    font-weight: bold;
}

.drawers__text ul, .drawers__text ol {
    font-size: 1em;
    line-height: 1.75;
    color: #333;
}

/*.drawers__item + .drawers__item {
    border-top-left-radius: unset;
    border-top-right-radius: unset;
}*/

/* slider globals */

.slider {
    width: 100%;
    margin: 0 auto;
}

.slider .flickity-viewport {
    position: absolute;
    width: 100%;
    z-index: 5;
}

.slider .flickity-button {
    background-color: rgba(0,0,0,0.05);
}

/* slider block */

.slider__block-slider {
    padding-bottom: 56.25%; /* 9:16 aspect ratio */
}

.slider__block-slider-cell {
    width: 100%;
    /*height: 100%;*/
    margin-right: 0;
}

/* pricing */

.pricing h1 {
    font-family: 'Montserrat', Verdana, Georgia, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 3em;
    font-weight: 700;
    padding: 0;
    margin: 0;
    color: #000;
    line-height: 1.75;
}

.pricing h2 span {
    font-size: 1em;
    vertical-align: bottom;
}

.pricing h2 {
    font-family: 'Montserrat', Verdana, Georgia, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 1.375em;
    font-weight: 700;
    padding: 0;
    margin: 0 0 1em 0;
    color: #333;
}

.pricing h6 {
    font-family: 'Montserrat', Verdana, Georgia, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 0.75em;
    font-weight: 700;
    padding: 0;
    margin: 2em 0 0 0;
    color: #669933;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: inline-block;
    /*float: center;*/
    width: 100%;
    text-align: center;
}

.pricing p {
    font-family: 'Montserrat', Verdana, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 1em;
    font-weight: 400;
    color: #333;
    line-height: 1.75;
    margin: 0;
    padding: 0;
}

.pricing__sub {
    margin: 1.5em 0 0 0;
    padding: 1.5em 0;
    background-color: #eee;
}

.pricing__bg {
    margin: 1.125em 1.5em 15em 1.5em;
    color: #333;
}

.pricing__popular h1, .pricing__popular h2, .pricing__popular p, .pricing-text.pricing__popular h1, .pricing-text.pricing__popular h2, .pricing-text.pricing__popular p {
    color: #000;
}

.pricing ul {
    margin: 1.5em 0 0 0;
    padding: 0;
    display: block;
}

.pricing ul li {
    padding: 0 0 0.75em 2em;
    list-style: none;
    color: #000;
    font-size: 1.125em;
    background: url('../img/check-box.svg') no-repeat 0 0;
    line-height: 1.5;
}

.pricing ul li:last-child {
    padding: 0 0 0 2em;
}

.pricing__block {
    float: left;
    display: inline;
    margin: 1.5em 0 4.5em 0;
}

.pricing-position {
    position: relative;
}

.pricing-text {
    width: 100%;
    padding: 1.5em;
}

.pricing-text h1, .pricing-text p {
    color: #333;
}

.pricing-cta {
    position: absolute;
    bottom: 0;
    margin: 0;
    width: calc(100% - 3em);
}

.pricing-mobile-flex {
    display: flex;
    justify-content: space-between;
}

@media (max-width: 640px) {
    .pricing__block {
        width: 100%;
    }
    .pricing-mobile-flex {
        justify-content: unset;
        display: block;
    }
    .pricing-position {
        width: 100%;
        margin: 4.5em 0;
    }
    .pricing__bg, pricing-cta {
        text-align: left;
        margin: 0;
        width: calc(50% - 3em);
        display: inline-block;
        bottom: unset;
    }
    .pricing__bg {
        padding: 1.5em 1.5em 4.5em 1.5em;
        min-height: 6em;
        width: calc(60% - 3em);
    }
    .pricing-cta {
        width: calc(40% - 3em);
        min-height: unset;
    }
    .button--get-started {
        width: calc(250% + 4.5em);
        right: calc(150% + 6em);
        position: relative;
    }
    .pricing-text {
        width: unset;
        padding: unset;
        text-align: right;
    }
    .pricing__sub {
        margin: 0;
        padding: 0;
    }
    .pricing__sub .button--get-started, .button--get-started {
        top: 1.75em;
    }
    .pricing-text h1 {
        line-height: 1em;
    }
}

@media (max-width: 480px) {
    .pricing__sub .button--get-started, .button--get-started {
        top: 3.75em;
    }
    .pricing__bg {
        min-height: 10.5em;
    }
    .pricing-position {
        margin: 3em 0;
    }
    .pricing__block {
        margin: 0 0 0.75em 0;
    }
}

@media (max-width: 375px) {
    .pricing-position {
        margin: 4.5em 0;
    }
}

/* Blog */

.section-bg {
    width: 100%;
}

.blog {
    padding: 0 0 6em 10%;
}

.blog ul {
    width: calc(90% - 6em);
    margin: 0;
    padding: 0 0 0.5em 0;
    list-style: none;
    /*counter-reset: li;*/
}

.blog ul li {
    margin: 0 0 0.5em 0;
}

.blog ul span {
    position: absolute;
    font-weight: 700;
    color: #333;
}

/*.blog ul a {
    position: relative;
    left: 6em;
    color: #669933;
}*/

.blog ul a:hover {
    border-bottom: 2px solid #92c83e;
}

/*.blog ul li {
    position: relative;
}

.blog ul li:before {
    content: (span);
    counter-increment: span;
    position: absolute;
    font-weight: bold;
    left: -1.75em;
}*/

.blog h1 {
    font-size: 3em;
    line-height: 1.2;
    margin: 0 0 0.75em 0;
    font-weight: 700;
}

.blog h2 {
    font-size: 2em;
    line-height: 1.6;
    margin: 1em 0 0.5em 0;
    color: #4d4d4d;
    font-weight: 700;
}

.blog h3 {
    font-size: 1.5em;
    line-height: 1.6;
    margin: 1em 0 0.5em 0;
    color: #4d4d4d;
    font-weight: 700;
}

@media (max-width: 480px) {
    .blog ul li span {
        display: block;
        position: unset;
        padding: 0 0 0.375em 0;
    }
    .blog ul a {
        left: unset;
    }
}

section .blog-header-background {
    background-color: #f2f2f2;
}

section .blog-header-background ul a {
    left: 0;
}

section .blog-header-background p {
    margin: 0;
    width: calc(50%*10/9);
}

section .blog-header-background .blog-articles-inline {
    display: inline-block;
    width: 45%;
    vertical-align: top;
}

section .blog-header-background .blog-articles-inline ul {
    width: 80%;
}

@media (max-width: 640px) {
    section .blog-header-background .blog-articles-inline {
        display: block;
        width: 100%;
    }
    section .blog-header-background p {
        width: 90%;
    }
}

/* Blog article */

.blog-article {
    display: inline-flex;
}

.blog-article .blog {
    padding-left: 0;
}

.blog-article .text {
    margin-right: 10%;
}

.aside-section h3 {
    margin-top: 4.8em;
}

.aside-section .reviews a {
    display: inline;
}

.aside-section a {
    display: block;
    color: #669933;
    margin-bottom: 0.75em;
}

.aside-section > a, .aside-section > div > a, aside > a, aside > div > a {
    font-size: 1em;
}

.blog figure {
    margin: 1.125em 0 1.5em 0;
}

.blog img {
    display: block;
    max-height: 480px;
    margin: 0 auto;
}

/*.blog-article aside {
    background-color: #f2f2f2;
}

.blog-article .aside-content {
    padding: 0 16.666%;
}*/

.pb {
    margin-bottom: 1.875em;
}

.pb p, .pb a {
    margin: 0;
}

/* Contact Enquiry */

.enquiry {
    margin: 6em 0;
}

.enquiry h1 {
    margin-bottom: 0.75em;
}

.enquiry p {
    margin-bottom: 1.5em;
}

.enquiry .col__50 {
    display: inline-block;
}

@media (max-width: 640px) {
    .col__50 {
        width: calc(80%*10/9);
    }
}

.enquiry label {
    font-weight: 700;
    color: #999;
    display: block;
}

.enquiry label span, .enquiry p span {
    color: #669933;
}

.enquiry input, .enquiry textarea {
    padding: 12px;
    margin-bottom: 1em;
    border: 3px solid #ccc;
    width: calc(100% - 30px);
    max-width: 480px;
}

.enquiry textarea {
    min-height: 6em;
    width: calc(100% - 30px);
    max-width: 480px;
}

.enquiry form button {
    margin-top: 2.25em;
}

.enquiry button {
    padding: 0.75em 16.667%;
}

/* Reviews Slice */

.reviews-slice .layout__container {
    background-color: #fff;
    max-width: 1440px;
}

.reviews-slice p, .reviews-slice a, .reviews-slice h2 {
    color: #333;
}

.reviews-slice h2 {
    margin: 0;
    text-align: center;
}

.reviews-slice li:first-child {
    display: block;
}

.reviews-slice .reviews {
    list-style: none;
    margin: 0;
    padding: 0;
    min-height: 22.5em;
}

@media (max-width: 768px) {
    .reviews-slice .reviews {
        min-height: 27em;
    }
}
  
.container {
    width: 100%;
    max-width: 1200px;
    /* aspect-ratio: 2.35 / 1; */
    display: grid;
    grid-template-columns:repeat(4, 1fr);
    gap: 1rem;
    padding: 2rem;
    box-sizing: border-box;
    align-items: flex-start;
    justify-content: center;
}

.metric-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    line-height: 3rem;
}


@media (max-width: 768px) {
    .content-column.mobile-padding {
        width: 100% !important;
        margin: 0 !important;
    }
}
.main-value {
    font-weight: 700;
    color: #E9AE10;
    font-size: 3.5rem;
    margin-bottom: 0.5rem;
    white-space: nowrap; /* 防止文本换行 */
}

.sub-text {
    font-weight: 400;
    color: #000;
    font-size: 1.2rem;
    white-space: normal; /* 允许说明文本正常换行 */
}

@media (max-width: 768px) {
    .container {
        grid-template-columns: repeat(2, 1fr);
        aspect-ratio: auto;
        height: auto;

    }
    
    .main-value {
        font-size: 2.2rem; /* 适当减小移动端字体大小 */
    }
    
    .sub-text {
        font-size: 0.9rem;
    }
}

.reviews-slice-mobile {
    display: none;
}

@media (max-width: 640px) {
    .reviews-slice-mobile {
        display: unset;
    }
}

.reviews-slice .reviews-wrap {
    padding: 3em;
    margin: 1.5em;
    background-color: #f2f2f2;
    border-radius: 2em 2em 2em 0;
}

@media (min-width: 641px) {
    .reviews-slice .reviews li {
        display: unset;
    }
}

.reviews-slice li:first-child, .reviews-slice li:last-child {
    float: left;
}

.reviews-slice li {
    display: none;
    float: right;
    width: 70%;
    margin: 1.875em 0;
}

.reviews-slice .slider .flickity-prev-next-button {
    top: -48px;
    height: 72px;
    width: 72px;
    transform: unset;
    background-color: rgba(102,153,51,0.25);
}

.reviews-slice .slider .previous:hover, .reviews-slice .slider .next:hover {
    background-color: rgba(102,153,51,0.5);
}

.reviews-slice .flickity-prev-next-button .flickity-button-icon {
    position: unset;
}

.reviews-slice .flickity-prev-next-button.previous {
    left: 10%;
}

.reviews-slice .flickity-prev-next-button.next {
    right: 10%;
}

.reviews-slice-mobile {
    background-color: #f2f2f2;
}

.reviews-slice-mobile p:first-child {
    display: unset;
}

.reviews-slice-mobile p {
    display: none;
    color: #333;
    text-shadow: none;
}

.reviews-slice-mobile h2 {
    color: #333;
    text-shadow: none;
    margin: 0 0 0.75em 0;
}

.reviews-slice-mobile a {
    color: #333;
}

.reviews-slice-mobile .reviews {
    width: calc(80%*10/9);
}

/* Table */

table {
    width: 100%;
    background-color: #f2f2f2;
    border-radius: 8px;
    padding: 1.5em 0;
    margin: 0.75em 0;
    border-spacing: 0;
    table-layout: fixed;
    /*box-shadow: 0px 0px 18px 0px rgba(0,0,0,0.1), 0 0 6px 0 rgba(0,0,0,0.1);
    -webkit-box-shadow: 0px 0px 18px 0px rgba(0,0,0,0.1), 0 0 6px 0 rgba(0,0,0,0.1);*/
}

th, td {
    color: #333;
    text-align: center;
}

th {
    padding: 0 0.75em 1.5em 0.75em;
    border-bottom: 3px solid #e5e5e5;
}

th:first-child {
    padding-left: 1.5em;
}

th:last-child {
    padding-right: 1.5em;
}

@media (max-width: 640px) {
    th {
        font-family: 'Montserrat';
        font-size: 1em;
    }
    td {
        font-size: 1em;
    }
}

.table-data td {
    padding: 1.5em 0 0 0;
}

/* Services List */

div.services-list {
    display: block;
    margin: 96px 0 48px 0;
}

div.services-list > div {
    margin-bottom: 12px;
}

div.services-list img {
    display: inline-block;
    width: 48px;
    margin: 1px 24px 0 0;
    float: left;
    max-height: 48px;
}

div.services-list h3 {
    display: inline-block;
    margin: 12px 0;
    vertical-align: top;
    width: calc(100% - 72px);
    color: #333;
}

div.services-list p {
    color: #666;
    font-size: 1em;
}

div.services-list p a {
    color: #669933;
}

/* WORK */

.work {
    padding: 96px 10% 0 10%;
}

.work .filter ul {
    padding: 0;
    margin: 1.5em 0 3em 0;
    background-color: #f2f2f2;
    border-radius: 1em;
    overflow: hidden;
    text-align: justify;
}

.work .filter li {
    list-style: none;
    display: inline-block;
    padding: 0.75em 1.5em;
}

.work .filter li:hover {
    background-color: #e6e6e6;
}

@media (max-width: 640px) {
    .work .filter li {
        display: block;
    }
}

.work .filter .here {
    background-color: rgba(102,153,51,0.25);
}

.work .filter a {
    color: #666;
}

.work .success-story {
    display: inline-block;
    width: 40%;
    margin-bottom: 1.5em;
    vertical-align: top;
}

.work .success-story:nth-child(2n) {
    margin-left: 10%;
}

@media (max-width: 768px) {
    .work .success-story {
        width: 30%;
    }
    .work .success-story:nth-child(2n) {
        margin-left: 20%;
    }
}

.work .success-story h3 {
    margin-bottom: 0;
}

.work .success-story p {
    color: #999;
    font-size: 1em;
    letter-spacing: 0.25px;
    margin: 0.375em 0 0.75em 0;
}

.work .success-story img {
    max-width: 240px;
    width: 100%;
}

@media (max-width: 640px) {
    .work .success-story {
        display: block;
        width: 100%;
        margin-bottom: 3em;
    }
    .work .success-story:nth-child(2n) {
        margin-left: 0;
    }
}

/* WORK ENTRY */

.work-entry {
    padding: 48px 10% 96px 0;
    width: calc(80%*10/9);
}

.work-entry h3 {
    margin-bottom: 0.375em;
}

.work-entry ul {
    width: 100%;
}


/* Highlight field */
.dynamic-flex {
  width: 100%;
  max-width: 704px;
  margin: 0 auto;
  background: #E0EAD6;
}

.flex-row {
  display: flex;
  gap: 15px;
  margin-bottom: 15px;
  flex-wrap: wrap;
}

.flex-item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
  min-height: 80px;
  font-weight: bold;
  text-align: center;
}

/* 手机端适配 */
@media only screen and (max-width: 768px) {
  .flex-row {
    flex-direction: column;
    gap: 10px; 
  }
  
  .flex-item {
    width: 90%;
    flex: none;
    min-height: 100%;
  }
  
  .table-headers th {
    padding: 0;
  }
}

@media only screen and (max-width: 810px) {
  .button--contact {
    padding: 0.75em 10%;
  }
}
.grecaptcha-badge { 
    visibility: hidden !important;
}

.layout__wide.case-studies {
  width: 100%;
  margin-left: 0;
}

.case-studies-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.case-studies-grid h2 a {
  color: #333;
}

.case-study-item {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 0px;
    padding: 20px;
    display: flex;
    flex-direction: column;
}

.case-study-image img {
    width: 100%;
    height: auto;
    border-radius: 0px;
}

@media (max-width: 480px) {
    .case-studies-grid {
        grid-template-columns: 1fr;
    }
}